@@ -128,10 +128,12 @@ def HasC : Predicate<"Subtarget->hasC()"> { let RecomputePerFunction = 1; }
128
128
129
129
// CHECK-LABEL: // LLT Objects.
130
130
// CHECK-NEXT: enum {
131
+ // CHECK-NEXT: GILLT_p0s32
131
132
// CHECK-NEXT: GILLT_s32,
132
133
// CHECK-NEXT: }
133
- // CHECK-NEXT: const static size_t NumTypeObjects = 1 ;
134
+ // CHECK-NEXT: const static size_t NumTypeObjects = 2 ;
134
135
// CHECK-NEXT: const static LLT TypeObjects[] = {
136
+ // CHECK-NEXT: LLT::pointer(0, 32),
135
137
// CHECK-NEXT: LLT::scalar(32),
136
138
// CHECK-NEXT: };
137
139
@@ -829,7 +831,7 @@ def : Pat<(not GPR32:$Wm), (ORN R0, GPR32:$Wm)>;
829
831
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src3
830
832
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
831
833
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
832
- // NOOPT-NEXT: // GIR_Coverage, 25 ,
834
+ // NOOPT-NEXT: // GIR_Coverage, 26 ,
833
835
// NOOPT-NEXT: GIR_Done,
834
836
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
835
837
@@ -974,6 +976,31 @@ def MOVcimm8 : I<(outs GPR32:$dst), (ins i32imm:$imm), [(set GPR32:$dst, cimm8:$
974
976
def LOAD : I<(outs GPR32:$dst), (ins GPR32:$src1),
975
977
[(set GPR32:$dst, (load GPR32:$src1))]>;
976
978
979
+ //===- Test a simple pattern with explicit pointer operands. ---------------===//
980
+
981
+ // NOOPT-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ [[LABEL:[0-9]+]],
982
+ // NOOPT-NEXT: GIM_CheckNumOperands, /*MI*/0, /*Expected*/2,
983
+ // NOOPT-NEXT: GIM_CheckOpcode, /*MI*/0, TargetOpcode::G_LOAD,
984
+ // NOOPT-NEXT: GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
985
+ // NOOPT-NEXT: GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
986
+ // NOOPT-NEXT: // MIs[0] dst
987
+ // NOOPT-NEXT: GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_p0s32,
988
+ // NOOPT-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/MyTarget::GPR32RegClassID,
989
+ // NOOPT-NEXT: // MIs[0] src
990
+ // NOOPT-NEXT: GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
991
+ // NOOPT-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/MyTarget::GPR32RegClassID,
992
+ // NOOPT-NEXT: // (ld:{ *:[i32] } GPR32:{ *:[i32] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LOAD:{ *:[i32] } GPR32:{ *:[i32] }:$src)
993
+ // NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/MyTarget::LOAD,
994
+ // NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
995
+ // NOOPT-NEXT: // GIR_Coverage, 23,
996
+ // NOOPT-NEXT: GIR_Done,
997
+ // NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
998
+
999
+ def p0 : PtrValueType <i32, 0>;
1000
+
1001
+ def : Pat<(load GPR32:$src),
1002
+ (p0 (LOAD GPR32:$src))>;
1003
+
977
1004
//===- Test a simple pattern with a sextload -------------------------------===//
978
1005
//
979
1006
// NOOPT-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ [[LABEL:[0-9]+]],
@@ -1061,7 +1088,7 @@ def DOUBLE : I<(outs GPR32:$dst), (ins GPR32:$src), [(set GPR32:$dst, (add GPR32
1061
1088
// NOOPT-NEXT: // (add:{ *:[i32] } i32:{ *:[i32] }:$src1, i32:{ *:[i32] }:$src2) => (ADD:{ *:[i32] } i32:{ *:[i32] }:$src1, i32:{ *:[i32] }:$src2)
1062
1089
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/MyTarget::ADD,
1063
1090
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1064
- // NOOPT-NEXT: // GIR_Coverage, 23 ,
1091
+ // NOOPT-NEXT: // GIR_Coverage, 24 ,
1065
1092
// NOOPT-NEXT: GIR_Done,
1066
1093
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1067
1094
@@ -1113,7 +1140,7 @@ def MUL : I<(outs GPR32:$dst), (ins GPR32:$src2, GPR32:$src1),
1113
1140
// NOOPT-NEXT: // (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$src1) => (COPY_TO_REGCLASS:{ *:[i32] } FPR32:{ *:[f32] }:$src1, GPR32:{ *:[i32] })
1114
1141
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
1115
1142
// NOOPT-NEXT: GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR32*/1,
1116
- // NOOPT-NEXT: // GIR_Coverage, 24 ,
1143
+ // NOOPT-NEXT: // GIR_Coverage, 25 ,
1117
1144
// NOOPT-NEXT: GIR_Done,
1118
1145
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1119
1146
0 commit comments