Skip to content

Commit 77379f9

Browse files
committed
Add HW mode test
1 parent db18b21 commit 77379f9

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s | FileCheck %s
2+
3+
include "llvm/Target/Target.td"
4+
5+
def MyTarget : Target;
6+
7+
def M1 : HwMode<"", []>;
8+
def M2 : HwMode<"", []>;
9+
def M3 : HwMode<"", []>;
10+
11+
def VT1 : ValueTypeByHwMode<[M1], [i1]>;
12+
def VT2 : ValueTypeByHwMode<[M2], [i2]>;
13+
def VT3 : ValueTypeByHwMode<[M1, M2, M3, DefaultMode], [i1, i2, i4, i8]>;
14+
15+
def my_node_1 : SDNode<
16+
"MyTargetISD::NODE_1",
17+
SDTypeProfile<0, 5, [
18+
SDTCVecEltisVT<0, VT3>,
19+
SDTCisVT<1, i1>,
20+
SDTCVecEltisVT<2, i2>,
21+
SDTCisVT<3, VT1>,
22+
SDTCVecEltisVT<4, VT2>,
23+
]>
24+
>;
25+
26+
def my_node_2 : SDNode<
27+
"MyTargetISD::NODE_2",
28+
SDTypeProfile<1, 2, [
29+
SDTCVecEltisVT<0, VT3>,
30+
SDTCisVT<1, i1>,
31+
SDTCVecEltisVT<2, i2>,
32+
]>
33+
>;
34+
35+
def my_node_3 : SDNode<
36+
"MyTargetISD::NODE_3",
37+
SDTypeProfile<1, 0, [
38+
SDTCisVT<0, VT3>,
39+
]>
40+
>;
41+
42+
// CHECK: static const VTByHwModePair MyTargetVTByHwModeTable[] = {
43+
// CHECK-NEXT: /* 0 */ {0, MVT::i8}, {1, MVT::i1}, {2, MVT::i2}, {3, MVT::i4},
44+
// CHECK-NEXT: /* 4 */ {1, MVT::i1},
45+
// CHECK-NEXT: /* 5 */ {2, MVT::i2},
46+
// CHECK-NEXT: };
47+
// CHECK-EMPTY:
48+
// CHECK-NEXT: static const SDTypeConstraint MyTargetSDTypeConstraints[] = {
49+
// CHECK-NEXT: /* 0 */ {SDTCisVT, 0, 0, 4, 0},
50+
// CHECK-NEXT: /* 1 */ {SDTCVecEltisVT, 4, 0, 1, 5},
51+
// CHECK-SAME: {SDTCisVT, 3, 0, 1, 4},
52+
// CHECK-SAME: {SDTCVecEltisVT, 2, 0, 0, MVT::i2},
53+
// CHECK-SAME: {SDTCisVT, 1, 0, 0, MVT::i1},
54+
// CHECK-SAME: {SDTCVecEltisVT, 0, 0, 4, 0},
55+
// CHECK-NEXT: };
56+
// CHECK-EMPTY:
57+
// CHECK-NEXT: static const SDNodeDesc MyTargetSDNodeDescs[] = {
58+
// CHECK-NEXT: {0, 5, 0, 0, 0, 1, 1, 5}, // NODE_1
59+
// CHECK-NEXT: {1, 2, 0, 0, 0, 21, 3, 3}, // NODE_2
60+
// CHECK-NEXT: {1, 0, 0, 0, 0, 41, 0, 1}, // NODE_3
61+
// CHECK-NEXT: };

0 commit comments

Comments
 (0)