Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/TableGen/BigEncoder.td @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: llvm-tblgen -gen-emitter -I %p/../../include %s | FileCheck %s | |
2 | |
3 include "llvm/Target/Target.td" | |
4 | |
5 def archInstrInfo : InstrInfo { } | |
6 | |
7 def arch : Target { | |
8 let InstructionSet = archInstrInfo; | |
9 } | |
10 | |
11 def Myi32 : Operand<i32> { | |
12 let DecoderMethod = "DecodeMyi32"; | |
13 } | |
14 | |
15 | |
16 let OutOperandList = (outs), Size = 2 in { | |
17 | |
18 def foo : Instruction { | |
19 let InOperandList = (ins i32imm:$factor); | |
20 field bits<65> Inst; | |
21 bits<32> factor; | |
22 let Inst{7-0} = 0xAA; | |
23 let Inst{14-8} = factor{6-0}; // no offset | |
24 let AsmString = "foo $factor"; | |
25 field bits<16> SoftFail = 0; | |
26 } | |
27 | |
28 def bar : Instruction { | |
29 let InOperandList = (ins i32imm:$factor); | |
30 field bits<65> Inst; | |
31 bits<32> factor; | |
32 let Inst{7-0} = 0xBB; | |
33 let Inst{15-8} = factor{10-3}; // offset by 3 | |
34 let AsmString = "bar $factor"; | |
35 field bits<16> SoftFail = 0; | |
36 } | |
37 | |
38 def biz : Instruction { | |
39 let InOperandList = (ins i32imm:$factor); | |
40 field bits<65> Inst; | |
41 bits<32> factor; | |
42 let Inst{7-0} = 0xCC; | |
43 let Inst{11-8,15-12} = factor{10-3}; // offset by 3, multipart | |
44 let AsmString = "biz $factor"; | |
45 field bits<16> SoftFail = 0; | |
46 } | |
47 | |
48 } | |
49 // CHECK-LABEL: case ::biz: { | |
50 // CHECK: Value.insertBits(op.extractBitsAsZExtValue(4, 3), 12, 4); | |
51 // CHECK-NEXT: Value.insertBits(op.extractBitsAsZExtValue(4, 7), 8, 4); | |
52 | |
53 // CHECK-LABEL: case ::foo: { | |
54 // CHECK: Value.insertBits(op.extractBitsAsZExtValue(7, 0), 8, 7); | |
55 | |
56 // CHECK-LABEL: case ::bar: { | |
57 // CHECK: Value.insertBits(op.extractBitsAsZExtValue(8, 3), 8, 8); |