Skip to content

Commit 3af4cbb

Browse files
committed
[TableGen][test] Test INT64_MIN literals
1 parent 5ccc734 commit 3af4cbb

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// RUN: llvm-tblgen -gen-global-isel -optimize-match-table=false -I %p/../../../include -I %p/../Common %s | FileCheck %s
2+
3+
include "llvm/Target/Target.td"
4+
include "GlobalISelEmitterCommon.td"
5+
6+
def GPR : RegisterClass<"MyTarget", [i64], 64, (add R0)>;
7+
def ANDI : I<(outs GPR:$dst), (ins GPR:$src1, i64imm:$src2), []>;
8+
9+
// CHECK-LABEL: GIM_Try, /*On fail goto*//*Label 0*/ GIMT_Encode4(59), // Rule ID 0 //
10+
// CHECK-NEXT: GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
11+
// CHECK-NEXT: GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(TargetOpcode::G_AND),
12+
// CHECK-NEXT: // MIs[0] DstI[dst]
13+
// CHECK-NEXT: GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
14+
// CHECK-NEXT: GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(MyTarget::GPRRegClassID),
15+
// CHECK-NEXT: // MIs[0] rs1
16+
// CHECK-NEXT: GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
17+
// CHECK-NEXT: GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(MyTarget::GPRRegClassID),
18+
// CHECK-NEXT: // MIs[0] Operand 2
19+
// CHECK-NEXT: GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20+
// CHECK-NEXT: GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(-9223372036854775808),
21+
// CHECK-NEXT: // (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, -9223372036854775808:{ *:[i64] }) => (ANDI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, -9223372036854775808:{ *:[i64] })
22+
// CHECK-NEXT: GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(MyTarget::ANDI),
23+
// CHECK-NEXT: GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24+
// CHECK-NEXT: GIR_RootToRootCopy, /*OpIdx*/1, // rs1
25+
// CHECK-NEXT: GIR_AddImm, /*InsnID*/0, /*Imm*/GIMT_Encode8(-9223372036854775808),
26+
// CHECK-NEXT: GIR_RootConstrainSelectedInstOperands,
27+
// CHECK-NEXT: // GIR_Coverage, 0,
28+
// CHECK-NEXT: GIR_EraseRootFromParent_Done,
29+
def : Pat<(and GPR:$rs1, 0x8000000000000000),
30+
(ANDI GPR:$rs1, 0x8000000000000000)>;

0 commit comments

Comments
 (0)