Skip to content

Commit e06e493

Browse files
committed
Make a tablegen test match-table.td more robust.
Some organizations have added operators downstream, and the test match-table.td tends to fail with off-by-n errors (with n being the number of `added operators`) periodically. This patch will increase the test robust and reduce the impact of merge process.
1 parent db1a762 commit e06e493

File tree

1 file changed

+31
-27
lines changed

1 file changed

+31
-27
lines changed

llvm/test/TableGen/GlobalISelCombinerEmitter/match-table.td

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,18 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
136136
// CHECK: const uint8_t *GenMyCombiner::getMatchTable() const {
137137
// CHECK-NEXT: constexpr static uint8_t MatchTable0[] = {
138138
// CHECK-NEXT: GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2([[#LOWER:]]), GIMT_Encode2([[#UPPER:]]), /*)*//*default:*//*Label 6*/ GIMT_Encode4([[#DEFAULT:]]),
139-
// CHECK-NEXT: /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(482), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
140-
// CHECK-NEXT: /*TargetOpcode::G_AND*//*Label 1*/ GIMT_Encode4(518), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
141-
// CHECK-NEXT: /*TargetOpcode::G_STORE*//*Label 2*/ GIMT_Encode4(565), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
142-
// CHECK-NEXT: /*TargetOpcode::G_TRUNC*//*Label 3*/ GIMT_Encode4(599), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
143-
// CHECK-NEXT: /*TargetOpcode::G_SEXT*//*Label 4*/ GIMT_Encode4(622), GIMT_Encode4(0),
144-
// CHECK-NEXT: /*TargetOpcode::G_ZEXT*//*Label 5*/ GIMT_Encode4(634),
139+
// CHECK-NEXT: /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4([[#%u, mul(UPPER-LOWER, 4) + 10]]),
140+
// CHECK-COUNT-40: GIMT_Encode4(0),
141+
// CHECK-NEXT: /*TargetOpcode::G_AND*//*Label 1*/ GIMT_Encode4([[L1:[0-9]+]]),
142+
// CHECK-COUNT-34: GIMT_Encode4(0),
143+
// CHECK-NEXT: /*TargetOpcode::G_STORE*//*Label 2*/ GIMT_Encode4([[L2:[0-9]+]]),
144+
// CHECK-COUNT-30: GIMT_Encode4(0),
145+
// CHECK-NEXT: /*TargetOpcode::G_TRUNC*//*Label 3*/ GIMT_Encode4([[L3:[0-9]+]]),
146+
// CHECK-COUNT-4: GIMT_Encode4(0),
147+
// CHECK-NEXT: /*TargetOpcode::G_SEXT*//*Label 4*/ GIMT_Encode4([[L4:[0-9]+]]), GIMT_Encode4(0),
148+
// CHECK-NEXT: /*TargetOpcode::G_ZEXT*//*Label 5*/ GIMT_Encode4([[L5:[0-9]+]]),
145149
// CHECK-NEXT: // Label 0: @[[#%u, mul(UPPER-LOWER, 4) + 10]]
146-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4(506), // Rule ID 4 //
150+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4([[L7:[0-9]+]]), // Rule ID 4 //
147151
// CHECK-NEXT: GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAnswerToEverything),
148152
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
149153
// CHECK-NEXT: // MIs[0] a
@@ -156,19 +160,19 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
156160
// CHECK-NEXT: GIM_CheckIsSafeToFold, /*NumInsns*/1,
157161
// CHECK-NEXT: // Combiner Rule #3: InstTest1
158162
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
159-
// CHECK-NEXT: // Label 7: @506
160-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4(517), // Rule ID 3 //
163+
// CHECK-NEXT: // Label 7: @[[L7]]
164+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4([[L8:[0-9]+]]), // Rule ID 3 //
161165
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
162166
// CHECK-NEXT: // MIs[0] a
163167
// CHECK-NEXT: // No operand predicates
164168
// CHECK-NEXT: // MIs[0] b
165169
// CHECK-NEXT: // No operand predicates
166170
// CHECK-NEXT: // Combiner Rule #2: InstTest0
167171
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
168-
// CHECK-NEXT: // Label 8: @517
172+
// CHECK-NEXT: // Label 8: @[[L8]]
169173
// CHECK-NEXT: GIM_Reject,
170-
// CHECK-NEXT: // Label 1: @518
171-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 9*/ GIMT_Encode4(564), // Rule ID 6 //
174+
// CHECK-NEXT: // Label 1: @[[L1]]
175+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 9*/ GIMT_Encode4([[L9:[0-9]+]]), // Rule ID 6 //
172176
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
173177
// CHECK-NEXT: GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
174178
// CHECK-NEXT: // MIs[0] dst
@@ -185,10 +189,10 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
185189
// CHECK-NEXT: GIR_RootToRootCopy, /*OpIdx*/0, // dst
186190
// CHECK-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // z
187191
// CHECK-NEXT: GIR_EraseRootFromParent_Done,
188-
// CHECK-NEXT: // Label 9: @564
192+
// CHECK-NEXT: // Label 9: @[[L9]]
189193
// CHECK-NEXT: GIM_Reject,
190-
// CHECK-NEXT: // Label 2: @565
191-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 10*/ GIMT_Encode4(598), // Rule ID 5 //
194+
// CHECK-NEXT: // Label 2: @[[L2]]
195+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 10*/ GIMT_Encode4([[L10:[0-9]+]]), // Rule ID 5 //
192196
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
193197
// CHECK-NEXT: // MIs[0] tmp
194198
// CHECK-NEXT: GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/0, // MIs[1]
@@ -204,29 +208,29 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
204208
// CHECK-NEXT: GIR_RootToRootCopy, /*OpIdx*/1, // ptr
205209
// CHECK-NEXT: GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
206210
// CHECK-NEXT: GIR_EraseRootFromParent_Done,
207-
// CHECK-NEXT: // Label 10: @598
211+
// CHECK-NEXT: // Label 10: @[[L10]]
208212
// CHECK-NEXT: GIM_Reject,
209-
// CHECK-NEXT: // Label 3: @599
210-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 11*/ GIMT_Encode4(610), // Rule ID 0 //
213+
// CHECK-NEXT: // Label 3: @[[L3]]
214+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 11*/ GIMT_Encode4([[L11:[0-9]+]]), // Rule ID 0 //
211215
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
212216
// CHECK-NEXT: // Combiner Rule #0: WipOpcodeTest0; wip_match_opcode 'G_TRUNC'
213217
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
214-
// CHECK-NEXT: // Label 11: @610
215-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 12*/ GIMT_Encode4(621), // Rule ID 1 //
218+
// CHECK-NEXT: // Label 11: @[[L11]]
219+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 12*/ GIMT_Encode4([[L12:[0-9]+]]), // Rule ID 1 //
216220
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
217221
// CHECK-NEXT: // Combiner Rule #1: WipOpcodeTest1; wip_match_opcode 'G_TRUNC'
218222
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
219-
// CHECK-NEXT: // Label 12: @621
223+
// CHECK-NEXT: // Label 12: @[[L12]]
220224
// CHECK-NEXT: GIM_Reject,
221-
// CHECK-NEXT: // Label 4: @622
222-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 13*/ GIMT_Encode4(633), // Rule ID 2 //
225+
// CHECK-NEXT: // Label 4: @[[L4]]
226+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 13*/ GIMT_Encode4([[L13:[0-9]+]]), // Rule ID 2 //
223227
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
224228
// CHECK-NEXT: // Combiner Rule #1: WipOpcodeTest1; wip_match_opcode 'G_SEXT'
225229
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
226-
// CHECK-NEXT: // Label 13: @633
230+
// CHECK-NEXT: // Label 13: @[[L13]]
227231
// CHECK-NEXT: GIM_Reject,
228-
// CHECK-NEXT: // Label 5: @634
229-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 14*/ GIMT_Encode4(668), // Rule ID 7 //
232+
// CHECK-NEXT: // Label 5: @[[L5]]
233+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 14*/ GIMT_Encode4([[L14:[0-9]+]]), // Rule ID 7 //
230234
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
231235
// CHECK-NEXT: // MIs[0] dst
232236
// CHECK-NEXT: // No operand predicates
@@ -240,7 +244,7 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
240244
// CHECK-NEXT: GIR_RootToRootCopy, /*OpIdx*/0, // dst
241245
// CHECK-NEXT: GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
242246
// CHECK-NEXT: GIR_EraseRootFromParent_Done,
243-
// CHECK-NEXT: // Label 14: @668
247+
// CHECK-NEXT: // Label 14: @[[L14]]
244248
// CHECK-NEXT: GIM_Reject,
245249
// CHECK-NEXT: // Label 6: @[[#%u, DEFAULT]]
246250
// CHECK-NEXT: GIM_Reject,

0 commit comments

Comments
 (0)