OSDN Git Service

Merging r370430:
[android-x86/external-llvm.git] / test / TableGen / get-operand-type.td
1 // RUN: llvm-tblgen -gen-instr-info -I %p/../../include %s | FileCheck %s
2
3 // Check that getOperandType has the expected info in it
4
5 include "llvm/Target/Target.td"
6
7 def archInstrInfo : InstrInfo { }
8
9 def arch : Target {
10   let InstructionSet = archInstrInfo;
11 }
12
13 def Reg : Register<"reg">;
14 def RegClass : RegisterClass<"foo", [i32], 0, (add Reg)>;
15
16 def OpA : Operand<i32>;
17 def OpB : Operand<i32>;
18
19 def InstA : Instruction {
20   let Size = 1;
21   let OutOperandList = (outs OpA:$a);
22   let InOperandList = (ins OpB:$b, i32imm:$c);
23   field bits<8> Inst;
24   field bits<8> SoftFail = 0;
25   let Namespace = "MyNamespace";
26 }
27
28 def InstB : Instruction {
29   let Size = 1;
30   let OutOperandList = (outs i32imm:$d);
31   let InOperandList = (ins unknown:$x);
32   field bits<8> Inst;
33   field bits<8> SoftFail = 0;
34   let Namespace = "MyNamespace";
35 }
36
37 // CHECK: #ifdef GET_INSTRINFO_OPERAND_TYPE
38 // CHECK:        OpTypes::OpA, OpTypes::OpB, OpTypes::i32imm,
39 // CHECK-NEXT:   OpTypes::i32imm, -1,
40 // CHECK: #endif //GET_INSTRINFO_OPERAND_TYPE