1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-tblgen -gen-disassembler -I %p/../../include %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker// Check that we don't generate invalid code of the form "( && Cond2)" when 4*9880d681SAndroid Build Coastguard Worker// emitting AssemblerPredicate conditions. In the example below, the invalid 5*9880d681SAndroid Build Coastguard Worker// code would be: "return ( && (Bits & arch::AssemblerCondition2));". 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerinclude "llvm/Target/Target.td" 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdef archInstrInfo : InstrInfo { } 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdef arch : Target { 12*9880d681SAndroid Build Coastguard Worker let InstructionSet = archInstrInfo; 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdef Pred1 : Predicate<"Condition1">; 16*9880d681SAndroid Build Coastguard Workerdef Pred2 : Predicate<"Condition2">, 17*9880d681SAndroid Build Coastguard Worker AssemblerPredicate<"AssemblerCondition2">; 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdef foo : Instruction { 20*9880d681SAndroid Build Coastguard Worker let Size = 2; 21*9880d681SAndroid Build Coastguard Worker let OutOperandList = (outs); 22*9880d681SAndroid Build Coastguard Worker let InOperandList = (ins); 23*9880d681SAndroid Build Coastguard Worker field bits<16> Inst; 24*9880d681SAndroid Build Coastguard Worker let Inst = 0xAAAA; 25*9880d681SAndroid Build Coastguard Worker let AsmString = "foo"; 26*9880d681SAndroid Build Coastguard Worker field bits<16> SoftFail = 0; 27*9880d681SAndroid Build Coastguard Worker // This is the important bit: 28*9880d681SAndroid Build Coastguard Worker let Predicates = [Pred1, Pred2]; 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker// CHECK: return (Bits[arch::AssemblerCondition2]); 32