1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Global Instruction Selector for the SPIRV target *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GLOBALISEL_PREDICATE_BITSET
10
11const unsigned MAX_SUBTARGET_PREDICATES = 0;
12using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
13
14#endif // GET_GLOBALISEL_PREDICATE_BITSET
15
16#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
17
18 mutable MatcherState State;
19 typedef ComplexRendererFns(SPIRVInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
20 typedef void(SPIRVInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
21 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
22 static SPIRVInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
23 static SPIRVInstructionSelector::CustomRendererFn CustomRenderers[];
24 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
25 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
26 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
27 const uint8_t *getMatchTable() const override;
28 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
29 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
30 bool testSimplePredicate(unsigned PredicateID) const override;
31 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
32
33#endif // GET_GLOBALISEL_TEMPORARIES_DECL
34
35#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
36
37, State(0),
38ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
39
40#endif // GET_GLOBALISEL_TEMPORARIES_INIT
41
42#ifdef GET_GLOBALISEL_IMPL
43
44// LLT Objects.
45enum {
46 GILLT_s64,
47 GILLT_p0s64,
48 GILLT_v2s64,
49};
50const static size_t NumTypeObjects = 3;
51const static LLT TypeObjects[] = {
52 LLT::scalar(64),
53 LLT::pointer(0, 64),
54 LLT::vector(ElementCount::getFixed(2), LLT::scalar(64)),
55};
56
57// Bits for subtarget features that participate in instruction matching.
58enum SubtargetFeatureBits : uint8_t {
59};
60
61PredicateBitset SPIRVInstructionSelector::
62computeAvailableModuleFeatures(const SPIRVSubtarget *Subtarget) const {
63 PredicateBitset Features{};
64 return Features;
65}
66
67void SPIRVInstructionSelector::setupGeneratedPerFunctionState(MachineFunction &MF) {
68 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const SPIRVSubtarget *)&MF.getSubtarget(), &MF);
69}
70PredicateBitset SPIRVInstructionSelector::
71computeAvailableFunctionFeatures(const SPIRVSubtarget *Subtarget, const MachineFunction *MF) const {
72 PredicateBitset Features{};
73 return Features;
74}
75
76// Feature bitsets.
77enum {
78 GIFBS_Invalid,
79};
80constexpr static PredicateBitset FeatureBitsets[] {
81 {}, // GIFBS_Invalid
82};
83
84// ComplexPattern predicates.
85enum {
86 GICP_Invalid,
87};
88// See constructor for table contents
89
90SPIRVInstructionSelector::ComplexMatcherMemFn
91SPIRVInstructionSelector::ComplexPredicateFns[] = {
92 nullptr, // GICP_Invalid
93};
94
95// PatFrag predicates.
96enum {
97 GICXXPred_MI_Predicate_ffloor_nnan = GICXXPred_Invalid + 1,
98 GICXXPred_MI_Predicate_or_disjoint,
99};
100bool SPIRVInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
101 const MachineFunction &MF = *MI.getParent()->getParent();
102 const MachineRegisterInfo &MRI = MF.getRegInfo();
103 const auto &Operands = State.RecordedOperands;
104 (void)Operands;
105 (void)MRI;
106 switch (PredicateID) {
107 case GICXXPred_MI_Predicate_ffloor_nnan: {
108
109 return MI.getFlag(MachineInstr::FmNoNans);
110
111 }
112 case GICXXPred_MI_Predicate_or_disjoint: {
113
114 return MI.getFlag(MachineInstr::Disjoint);
115
116 }
117 }
118 llvm_unreachable("Unknown predicate");
119 return false;
120}
121// PatFrag predicates.
122bool SPIRVInstructionSelector::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
123 const auto &Operands = State.RecordedOperands;
124 Register Reg = MO.getReg();
125 (void)Operands;
126 (void)Reg;
127 llvm_unreachable("Unknown predicate");
128 return false;
129}
130// PatFrag predicates.
131bool SPIRVInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
132 llvm_unreachable("Unknown predicate");
133 return false;
134}
135// PatFrag predicates.
136bool SPIRVInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
137 llvm_unreachable("Unknown predicate");
138 return false;
139}
140// PatFrag predicates.
141enum {
142 GICXXPred_APInt_Predicate_ConstPseudoFalse = GICXXPred_Invalid + 1,
143 GICXXPred_APInt_Predicate_ConstPseudoTrue,
144};
145bool SPIRVInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
146 switch (PredicateID) {
147 case GICXXPred_APInt_Predicate_ConstPseudoFalse: {
148 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 0;
149 }
150 case GICXXPred_APInt_Predicate_ConstPseudoTrue: {
151 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 1;
152 }
153 }
154 llvm_unreachable("Unknown predicate");
155 return false;
156}
157bool SPIRVInstructionSelector::testSimplePredicate(unsigned) const {
158 llvm_unreachable("SPIRVInstructionSelector does not support simple predicates!");
159 return false;
160}
161// Custom renderers.
162enum {
163 GICR_Invalid,
164};
165SPIRVInstructionSelector::CustomRendererFn
166SPIRVInstructionSelector::CustomRenderers[] = {
167 nullptr, // GICR_Invalid
168};
169
170bool SPIRVInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
171 const PredicateBitset AvailableFeatures = getAvailableFeatures();
172 MachineIRBuilder B(I);
173 State.MIs.clear();
174 State.MIs.push_back(&I);
175
176 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), TII, MF->getRegInfo(), TRI, RBI, AvailableFeatures, &CoverageInfo)) {
177 return true;
178 }
179
180 return false;
181}
182
183bool SPIRVInstructionSelector::runCustomAction(unsigned, const MatcherState&, NewMIVector &) const {
184 llvm_unreachable("SPIRVInstructionSelector does not support custom C++ actions!");
185}
186#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
187#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
188#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
189#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24), uint8_t(uint64_t(Val) >> 32), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 56)
190#else
191#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
192#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
193#define GIMT_Encode8(Val) uint8_t(uint64_t(Val) >> 56), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 32), uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
194#endif
195const uint8_t *SPIRVInstructionSelector::getMatchTable() const {
196 constexpr static uint8_t MatchTable0[] = {
197 /* 0 */ GIM_Try, /*On fail goto*//*Label 0*/ GIMT_Encode4(3492),
198 /* 5 */ GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(SPIRV::ASSIGN_TYPE),
199 /* 9 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 4*/ GIMT_Encode4(3491),
200 /* 20 */ /*GILLT_s64*//*Label 1*/ GIMT_Encode4(32),
201 /* 24 */ /*GILLT_p0s64*//*Label 2*/ GIMT_Encode4(1786),
202 /* 28 */ /*GILLT_v2s64*//*Label 3*/ GIMT_Encode4(1933),
203 /* 32 */ // Label 1: @32
204 /* 32 */ GIM_Try, /*On fail goto*//*Label 5*/ GIMT_Encode4(1785),
205 /* 37 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
206 /* 40 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
207 /* 43 */ GIM_Try, /*On fail goto*//*Label 6*/ GIMT_Encode4(239),
208 /* 48 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
209 /* 52 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
210 /* 56 */ GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4(84), // Rule ID 0 //
211 /* 61 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
212 /* 65 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
213 /* 69 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoTrue),
214 /* 73 */ // MIs[1] Operand 1
215 /* 73 */ // No operand predicates
216 /* 73 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
217 /* 75 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoTrue>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantTrue:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
218 /* 75 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantTrue),
219 /* 78 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
220 /* 80 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
221 /* 82 */ GIR_RootConstrainSelectedInstOperands,
222 /* 83 */ // GIR_Coverage, 0,
223 /* 83 */ GIR_EraseRootFromParent_Done,
224 /* 84 */ // Label 7: @84
225 /* 84 */ GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4(112), // Rule ID 1 //
226 /* 89 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
227 /* 93 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
228 /* 97 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoFalse),
229 /* 101 */ // MIs[1] Operand 1
230 /* 101 */ // No operand predicates
231 /* 101 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
232 /* 103 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoFalse>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantFalse:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
233 /* 103 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantFalse),
234 /* 106 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
235 /* 108 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
236 /* 110 */ GIR_RootConstrainSelectedInstOperands,
237 /* 111 */ // GIR_Coverage, 1,
238 /* 111 */ GIR_EraseRootFromParent_Done,
239 /* 112 */ // Label 8: @112
240 /* 112 */ GIM_Try, /*On fail goto*//*Label 9*/ GIMT_Encode4(175), // Rule ID 56 //
241 /* 117 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
242 /* 121 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
243 /* 125 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
244 /* 129 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
245 /* 133 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
246 /* 137 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
247 /* 142 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
248 /* 147 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
249 /* 152 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
250 /* 154 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } iID:{ *:[i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSISCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2)
251 /* 154 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSISCond),
252 /* 157 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
253 /* 159 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
254 /* 161 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
255 /* 165 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
256 /* 169 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
257 /* 173 */ GIR_RootConstrainSelectedInstOperands,
258 /* 174 */ // GIR_Coverage, 56,
259 /* 174 */ GIR_EraseRootFromParent_Done,
260 /* 175 */ // Label 9: @175
261 /* 175 */ GIM_Try, /*On fail goto*//*Label 10*/ GIMT_Encode4(238), // Rule ID 57 //
262 /* 180 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
263 /* 184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
264 /* 188 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
265 /* 192 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
266 /* 196 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
267 /* 200 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
268 /* 205 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
269 /* 210 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
270 /* 215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
271 /* 217 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } viID:{ *:[v2i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSIVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2)
272 /* 217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSIVCond),
273 /* 220 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
274 /* 222 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
275 /* 224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
276 /* 228 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
277 /* 232 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
278 /* 236 */ GIR_RootConstrainSelectedInstOperands,
279 /* 237 */ // GIR_Coverage, 57,
280 /* 237 */ GIR_EraseRootFromParent_Done,
281 /* 238 */ // Label 10: @238
282 /* 238 */ GIM_Reject,
283 /* 239 */ // Label 6: @239
284 /* 239 */ GIM_Try, /*On fail goto*//*Label 11*/ GIMT_Encode4(379),
285 /* 244 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
286 /* 248 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
287 /* 252 */ GIM_Try, /*On fail goto*//*Label 12*/ GIMT_Encode4(315), // Rule ID 58 //
288 /* 257 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
289 /* 261 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
290 /* 265 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
291 /* 269 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
292 /* 273 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
293 /* 277 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
294 /* 282 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
295 /* 287 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
296 /* 292 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
297 /* 294 */ // (assigntype:{ *:[f64] } (select:{ *:[f64] } iID:{ *:[i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSFSCond:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2)
298 /* 294 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFSCond),
299 /* 297 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
300 /* 299 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
301 /* 301 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
302 /* 305 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
303 /* 309 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
304 /* 313 */ GIR_RootConstrainSelectedInstOperands,
305 /* 314 */ // GIR_Coverage, 58,
306 /* 314 */ GIR_EraseRootFromParent_Done,
307 /* 315 */ // Label 12: @315
308 /* 315 */ GIM_Try, /*On fail goto*//*Label 13*/ GIMT_Encode4(378), // Rule ID 59 //
309 /* 320 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
310 /* 324 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
311 /* 328 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
312 /* 332 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
313 /* 336 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
314 /* 340 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
315 /* 345 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
316 /* 350 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
317 /* 355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
318 /* 357 */ // (assigntype:{ *:[f64] } (select:{ *:[f64] } viID:{ *:[v2i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSFVCond:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2)
319 /* 357 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFVCond),
320 /* 360 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
321 /* 362 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
322 /* 364 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
323 /* 368 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
324 /* 372 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
325 /* 376 */ GIR_RootConstrainSelectedInstOperands,
326 /* 377 */ // GIR_Coverage, 59,
327 /* 377 */ GIR_EraseRootFromParent_Done,
328 /* 378 */ // Label 13: @378
329 /* 378 */ GIM_Reject,
330 /* 379 */ // Label 11: @379
331 /* 379 */ GIM_Try, /*On fail goto*//*Label 14*/ GIMT_Encode4(519),
332 /* 384 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
333 /* 388 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
334 /* 392 */ GIM_Try, /*On fail goto*//*Label 15*/ GIMT_Encode4(455), // Rule ID 60 //
335 /* 397 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
336 /* 401 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
337 /* 405 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
338 /* 409 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
339 /* 413 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
340 /* 417 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
341 /* 422 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
342 /* 427 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
343 /* 432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
344 /* 434 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } iID:{ *:[i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVPSCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2)
345 /* 434 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPSCond),
346 /* 437 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
347 /* 439 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
348 /* 441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
349 /* 445 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
350 /* 449 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
351 /* 453 */ GIR_RootConstrainSelectedInstOperands,
352 /* 454 */ // GIR_Coverage, 60,
353 /* 454 */ GIR_EraseRootFromParent_Done,
354 /* 455 */ // Label 15: @455
355 /* 455 */ GIM_Try, /*On fail goto*//*Label 16*/ GIMT_Encode4(518), // Rule ID 61 //
356 /* 460 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
357 /* 464 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
358 /* 468 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
359 /* 472 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
360 /* 476 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
361 /* 480 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
362 /* 485 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
363 /* 490 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
364 /* 495 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
365 /* 497 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } viID:{ *:[v2i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVPVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2)
366 /* 497 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPVCond),
367 /* 500 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
368 /* 502 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
369 /* 504 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
370 /* 508 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
371 /* 512 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
372 /* 516 */ GIR_RootConstrainSelectedInstOperands,
373 /* 517 */ // GIR_Coverage, 61,
374 /* 517 */ GIR_EraseRootFromParent_Done,
375 /* 518 */ // Label 16: @518
376 /* 518 */ GIM_Reject,
377 /* 519 */ // Label 14: @519
378 /* 519 */ GIM_Try, /*On fail goto*//*Label 17*/ GIMT_Encode4(683),
379 /* 524 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
380 /* 528 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
381 /* 532 */ GIM_Try, /*On fail goto*//*Label 18*/ GIMT_Encode4(582), // Rule ID 4 //
382 /* 537 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
383 /* 541 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
384 /* 545 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
385 /* 549 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
386 /* 553 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
387 /* 558 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
388 /* 563 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
389 /* 565 */ // (assigntype:{ *:[i64] } (add:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIAddS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
390 /* 565 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddS),
391 /* 568 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
392 /* 570 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
393 /* 572 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
394 /* 576 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
395 /* 580 */ GIR_RootConstrainSelectedInstOperands,
396 /* 581 */ // GIR_Coverage, 4,
397 /* 581 */ GIR_EraseRootFromParent_Done,
398 /* 582 */ // Label 18: @582
399 /* 582 */ GIM_Try, /*On fail goto*//*Label 19*/ GIMT_Encode4(632), // Rule ID 52 //
400 /* 587 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
401 /* 591 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
402 /* 595 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
403 /* 599 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
404 /* 603 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
405 /* 608 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
406 /* 613 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
407 /* 615 */ // (assigntype:{ *:[i64] } (and:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseAndS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
408 /* 615 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndS),
409 /* 618 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
410 /* 620 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
411 /* 622 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
412 /* 626 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
413 /* 630 */ GIR_RootConstrainSelectedInstOperands,
414 /* 631 */ // GIR_Coverage, 52,
415 /* 631 */ GIR_EraseRootFromParent_Done,
416 /* 632 */ // Label 19: @632
417 /* 632 */ GIM_Try, /*On fail goto*//*Label 20*/ GIMT_Encode4(682), // Rule ID 44 //
418 /* 637 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
419 /* 641 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
420 /* 645 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
421 /* 649 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
422 /* 653 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
423 /* 658 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
424 /* 663 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
425 /* 665 */ // (assigntype:{ *:[i64] } (sra:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightArithmeticS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
426 /* 665 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticS),
427 /* 668 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
428 /* 670 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
429 /* 672 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
430 /* 676 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
431 /* 680 */ GIR_RootConstrainSelectedInstOperands,
432 /* 681 */ // GIR_Coverage, 44,
433 /* 681 */ GIR_EraseRootFromParent_Done,
434 /* 682 */ // Label 20: @682
435 /* 682 */ GIM_Reject,
436 /* 683 */ // Label 17: @683
437 /* 683 */ GIM_Try, /*On fail goto*//*Label 21*/ GIMT_Encode4(947),
438 /* 688 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
439 /* 692 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
440 /* 696 */ GIM_Try, /*On fail goto*//*Label 22*/ GIMT_Encode4(746), // Rule ID 6 //
441 /* 701 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
442 /* 705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
443 /* 709 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
444 /* 713 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
445 /* 717 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
446 /* 722 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
447 /* 727 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
448 /* 729 */ // (assigntype:{ *:[f64] } (fadd:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFAddS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
449 /* 729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddS),
450 /* 732 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
451 /* 734 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
452 /* 736 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
453 /* 740 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
454 /* 744 */ GIR_RootConstrainSelectedInstOperands,
455 /* 745 */ // GIR_Coverage, 6,
456 /* 745 */ GIR_EraseRootFromParent_Done,
457 /* 746 */ // Label 22: @746
458 /* 746 */ GIM_Try, /*On fail goto*//*Label 23*/ GIMT_Encode4(796), // Rule ID 26 //
459 /* 751 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
460 /* 755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
461 /* 759 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
462 /* 763 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
463 /* 767 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
464 /* 772 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
465 /* 777 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
466 /* 779 */ // (assigntype:{ *:[f64] } (fdiv:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFDivS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
467 /* 779 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivS),
468 /* 782 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
469 /* 784 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
470 /* 786 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
471 /* 790 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
472 /* 794 */ GIR_RootConstrainSelectedInstOperands,
473 /* 795 */ // GIR_Coverage, 26,
474 /* 795 */ GIR_EraseRootFromParent_Done,
475 /* 796 */ // Label 23: @796
476 /* 796 */ GIM_Try, /*On fail goto*//*Label 24*/ GIMT_Encode4(846), // Rule ID 18 //
477 /* 801 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
478 /* 805 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
479 /* 809 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
480 /* 813 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
481 /* 817 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
482 /* 822 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
483 /* 827 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
484 /* 829 */ // (assigntype:{ *:[f64] } (fmul:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFMulS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
485 /* 829 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulS),
486 /* 832 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
487 /* 834 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
488 /* 836 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
489 /* 840 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
490 /* 844 */ GIR_RootConstrainSelectedInstOperands,
491 /* 845 */ // GIR_Coverage, 18,
492 /* 845 */ GIR_EraseRootFromParent_Done,
493 /* 846 */ // Label 24: @846
494 /* 846 */ GIM_Try, /*On fail goto*//*Label 25*/ GIMT_Encode4(896), // Rule ID 34 //
495 /* 851 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
496 /* 855 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
497 /* 859 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
498 /* 863 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
499 /* 867 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
500 /* 872 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
501 /* 877 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
502 /* 879 */ // (assigntype:{ *:[f64] } (frem:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFRemS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
503 /* 879 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemS),
504 /* 882 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
505 /* 884 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
506 /* 886 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
507 /* 890 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
508 /* 894 */ GIR_RootConstrainSelectedInstOperands,
509 /* 895 */ // GIR_Coverage, 34,
510 /* 895 */ GIR_EraseRootFromParent_Done,
511 /* 896 */ // Label 25: @896
512 /* 896 */ GIM_Try, /*On fail goto*//*Label 26*/ GIMT_Encode4(946), // Rule ID 12 //
513 /* 901 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
514 /* 905 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
515 /* 909 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
516 /* 913 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
517 /* 917 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
518 /* 922 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
519 /* 927 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
520 /* 929 */ // (assigntype:{ *:[f64] } (fsub:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFSubS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
521 /* 929 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubS),
522 /* 932 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
523 /* 934 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
524 /* 936 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
525 /* 940 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
526 /* 944 */ GIR_RootConstrainSelectedInstOperands,
527 /* 945 */ // GIR_Coverage, 12,
528 /* 945 */ GIR_EraseRootFromParent_Done,
529 /* 946 */ // Label 26: @946
530 /* 946 */ GIM_Reject,
531 /* 947 */ // Label 21: @947
532 /* 947 */ GIM_Try, /*On fail goto*//*Label 27*/ GIMT_Encode4(1261),
533 /* 952 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
534 /* 956 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
535 /* 960 */ GIM_Try, /*On fail goto*//*Label 28*/ GIMT_Encode4(1010), // Rule ID 42 //
536 /* 965 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
537 /* 969 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
538 /* 973 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
539 /* 977 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
540 /* 981 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
541 /* 986 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
542 /* 991 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
543 /* 993 */ // (assigntype:{ *:[i64] } (srl:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightLogicalS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
544 /* 993 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalS),
545 /* 996 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
546 /* 998 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
547 /* 1000 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
548 /* 1004 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
549 /* 1008 */ GIR_RootConstrainSelectedInstOperands,
550 /* 1009 */ // GIR_Coverage, 42,
551 /* 1009 */ GIR_EraseRootFromParent_Done,
552 /* 1010 */ // Label 28: @1010
553 /* 1010 */ GIM_Try, /*On fail goto*//*Label 29*/ GIMT_Encode4(1060), // Rule ID 16 //
554 /* 1015 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
555 /* 1019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
556 /* 1023 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
557 /* 1027 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
558 /* 1031 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
559 /* 1036 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
560 /* 1041 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
561 /* 1043 */ // (assigntype:{ *:[i64] } (mul:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIMulS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
562 /* 1043 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulS),
563 /* 1046 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
564 /* 1048 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
565 /* 1050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
566 /* 1054 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
567 /* 1058 */ GIR_RootConstrainSelectedInstOperands,
568 /* 1059 */ // GIR_Coverage, 16,
569 /* 1059 */ GIR_EraseRootFromParent_Done,
570 /* 1060 */ // Label 29: @1060
571 /* 1060 */ GIM_Try, /*On fail goto*//*Label 30*/ GIMT_Encode4(1110), // Rule ID 48 //
572 /* 1065 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
573 /* 1069 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
574 /* 1073 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
575 /* 1077 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
576 /* 1081 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
577 /* 1086 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
578 /* 1091 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
579 /* 1093 */ // (assigntype:{ *:[i64] } (or:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseOrS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
580 /* 1093 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrS),
581 /* 1096 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
582 /* 1098 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
583 /* 1100 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
584 /* 1104 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
585 /* 1108 */ GIR_RootConstrainSelectedInstOperands,
586 /* 1109 */ // GIR_Coverage, 48,
587 /* 1109 */ GIR_EraseRootFromParent_Done,
588 /* 1110 */ // Label 30: @1110
589 /* 1110 */ GIM_Try, /*On fail goto*//*Label 31*/ GIMT_Encode4(1160), // Rule ID 24 //
590 /* 1115 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
591 /* 1119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
592 /* 1123 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
593 /* 1127 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
594 /* 1131 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
595 /* 1136 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
596 /* 1141 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
597 /* 1143 */ // (assigntype:{ *:[i64] } (sdiv:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSDivS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
598 /* 1143 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivS),
599 /* 1146 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
600 /* 1148 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
601 /* 1150 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
602 /* 1154 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
603 /* 1158 */ GIR_RootConstrainSelectedInstOperands,
604 /* 1159 */ // GIR_Coverage, 24,
605 /* 1159 */ GIR_EraseRootFromParent_Done,
606 /* 1160 */ // Label 31: @1160
607 /* 1160 */ GIM_Try, /*On fail goto*//*Label 32*/ GIMT_Encode4(1210), // Rule ID 46 //
608 /* 1165 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
609 /* 1169 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
610 /* 1173 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
611 /* 1177 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
612 /* 1181 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
613 /* 1186 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
614 /* 1191 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
615 /* 1193 */ // (assigntype:{ *:[i64] } (shl:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftLeftLogicalS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
616 /* 1193 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalS),
617 /* 1196 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
618 /* 1198 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
619 /* 1200 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
620 /* 1204 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
621 /* 1208 */ GIR_RootConstrainSelectedInstOperands,
622 /* 1209 */ // GIR_Coverage, 46,
623 /* 1209 */ GIR_EraseRootFromParent_Done,
624 /* 1210 */ // Label 32: @1210
625 /* 1210 */ GIM_Try, /*On fail goto*//*Label 33*/ GIMT_Encode4(1260), // Rule ID 32 //
626 /* 1215 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
627 /* 1219 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
628 /* 1223 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
629 /* 1227 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
630 /* 1231 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
631 /* 1236 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
632 /* 1241 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
633 /* 1243 */ // (assigntype:{ *:[i64] } (srem:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSRemS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
634 /* 1243 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemS),
635 /* 1246 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
636 /* 1248 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
637 /* 1250 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
638 /* 1254 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
639 /* 1258 */ GIR_RootConstrainSelectedInstOperands,
640 /* 1259 */ // GIR_Coverage, 32,
641 /* 1259 */ GIR_EraseRootFromParent_Done,
642 /* 1260 */ // Label 33: @1260
643 /* 1260 */ GIM_Reject,
644 /* 1261 */ // Label 27: @1261
645 /* 1261 */ GIM_Try, /*On fail goto*//*Label 34*/ GIMT_Encode4(1525),
646 /* 1266 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
647 /* 1270 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
648 /* 1274 */ GIM_Try, /*On fail goto*//*Label 35*/ GIMT_Encode4(1324), // Rule ID 8 //
649 /* 1279 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
650 /* 1283 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
651 /* 1287 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
652 /* 1291 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
653 /* 1295 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
654 /* 1300 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
655 /* 1305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
656 /* 1307 */ // (assigntype:{ *:[f64] } (strict_fadd:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFAddS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
657 /* 1307 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddS),
658 /* 1310 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
659 /* 1312 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
660 /* 1314 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
661 /* 1318 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
662 /* 1322 */ GIR_RootConstrainSelectedInstOperands,
663 /* 1323 */ // GIR_Coverage, 8,
664 /* 1323 */ GIR_EraseRootFromParent_Done,
665 /* 1324 */ // Label 35: @1324
666 /* 1324 */ GIM_Try, /*On fail goto*//*Label 36*/ GIMT_Encode4(1374), // Rule ID 28 //
667 /* 1329 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
668 /* 1333 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
669 /* 1337 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
670 /* 1341 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
671 /* 1345 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
672 /* 1350 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
673 /* 1355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
674 /* 1357 */ // (assigntype:{ *:[f64] } (strict_fdiv:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFDivS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
675 /* 1357 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivS),
676 /* 1360 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
677 /* 1362 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
678 /* 1364 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
679 /* 1368 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
680 /* 1372 */ GIR_RootConstrainSelectedInstOperands,
681 /* 1373 */ // GIR_Coverage, 28,
682 /* 1373 */ GIR_EraseRootFromParent_Done,
683 /* 1374 */ // Label 36: @1374
684 /* 1374 */ GIM_Try, /*On fail goto*//*Label 37*/ GIMT_Encode4(1424), // Rule ID 20 //
685 /* 1379 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
686 /* 1383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
687 /* 1387 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
688 /* 1391 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
689 /* 1395 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
690 /* 1400 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
691 /* 1405 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
692 /* 1407 */ // (assigntype:{ *:[f64] } (strict_fmul:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFMulS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
693 /* 1407 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulS),
694 /* 1410 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
695 /* 1412 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
696 /* 1414 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
697 /* 1418 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
698 /* 1422 */ GIR_RootConstrainSelectedInstOperands,
699 /* 1423 */ // GIR_Coverage, 20,
700 /* 1423 */ GIR_EraseRootFromParent_Done,
701 /* 1424 */ // Label 37: @1424
702 /* 1424 */ GIM_Try, /*On fail goto*//*Label 38*/ GIMT_Encode4(1474), // Rule ID 36 //
703 /* 1429 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
704 /* 1433 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
705 /* 1437 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
706 /* 1441 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
707 /* 1445 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
708 /* 1450 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
709 /* 1455 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
710 /* 1457 */ // (assigntype:{ *:[f64] } (strict_frem:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFRemS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
711 /* 1457 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemS),
712 /* 1460 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
713 /* 1462 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
714 /* 1464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
715 /* 1468 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
716 /* 1472 */ GIR_RootConstrainSelectedInstOperands,
717 /* 1473 */ // GIR_Coverage, 36,
718 /* 1473 */ GIR_EraseRootFromParent_Done,
719 /* 1474 */ // Label 38: @1474
720 /* 1474 */ GIM_Try, /*On fail goto*//*Label 39*/ GIMT_Encode4(1524), // Rule ID 14 //
721 /* 1479 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
722 /* 1483 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
723 /* 1487 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
724 /* 1491 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
725 /* 1495 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
726 /* 1500 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
727 /* 1505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
728 /* 1507 */ // (assigntype:{ *:[f64] } (strict_fsub:{ *:[f64] } fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFSubS:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src, fID:{ *:[f64] }:$src2)
729 /* 1507 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubS),
730 /* 1510 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
731 /* 1512 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
732 /* 1514 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
733 /* 1518 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
734 /* 1522 */ GIR_RootConstrainSelectedInstOperands,
735 /* 1523 */ // GIR_Coverage, 14,
736 /* 1523 */ GIR_EraseRootFromParent_Done,
737 /* 1524 */ // Label 39: @1524
738 /* 1524 */ GIM_Reject,
739 /* 1525 */ // Label 34: @1525
740 /* 1525 */ GIM_Try, /*On fail goto*//*Label 40*/ GIMT_Encode4(1739),
741 /* 1530 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
742 /* 1534 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
743 /* 1538 */ GIM_Try, /*On fail goto*//*Label 41*/ GIMT_Encode4(1588), // Rule ID 10 //
744 /* 1543 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
745 /* 1547 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
746 /* 1551 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
747 /* 1555 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
748 /* 1559 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
749 /* 1564 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
750 /* 1569 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
751 /* 1571 */ // (assigntype:{ *:[i64] } (sub:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpISubS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
752 /* 1571 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubS),
753 /* 1574 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
754 /* 1576 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
755 /* 1578 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
756 /* 1582 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
757 /* 1586 */ GIR_RootConstrainSelectedInstOperands,
758 /* 1587 */ // GIR_Coverage, 10,
759 /* 1587 */ GIR_EraseRootFromParent_Done,
760 /* 1588 */ // Label 41: @1588
761 /* 1588 */ GIM_Try, /*On fail goto*//*Label 42*/ GIMT_Encode4(1638), // Rule ID 22 //
762 /* 1593 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
763 /* 1597 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
764 /* 1601 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
765 /* 1605 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
766 /* 1609 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
767 /* 1614 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
768 /* 1619 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
769 /* 1621 */ // (assigntype:{ *:[i64] } (udiv:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUDivS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
770 /* 1621 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivS),
771 /* 1624 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
772 /* 1626 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
773 /* 1628 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
774 /* 1632 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
775 /* 1636 */ GIR_RootConstrainSelectedInstOperands,
776 /* 1637 */ // GIR_Coverage, 22,
777 /* 1637 */ GIR_EraseRootFromParent_Done,
778 /* 1638 */ // Label 42: @1638
779 /* 1638 */ GIM_Try, /*On fail goto*//*Label 43*/ GIMT_Encode4(1688), // Rule ID 30 //
780 /* 1643 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
781 /* 1647 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
782 /* 1651 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
783 /* 1655 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
784 /* 1659 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
785 /* 1664 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
786 /* 1669 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
787 /* 1671 */ // (assigntype:{ *:[i64] } (urem:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUModS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
788 /* 1671 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModS),
789 /* 1674 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
790 /* 1676 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
791 /* 1678 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
792 /* 1682 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
793 /* 1686 */ GIR_RootConstrainSelectedInstOperands,
794 /* 1687 */ // GIR_Coverage, 30,
795 /* 1687 */ GIR_EraseRootFromParent_Done,
796 /* 1688 */ // Label 43: @1688
797 /* 1688 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(1738), // Rule ID 50 //
798 /* 1693 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
799 /* 1697 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
800 /* 1701 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
801 /* 1705 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
802 /* 1709 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
803 /* 1714 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
804 /* 1719 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
805 /* 1721 */ // (assigntype:{ *:[i64] } (xor:{ *:[i64] } iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseXorS:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$src, iID:{ *:[i64] }:$src2)
806 /* 1721 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorS),
807 /* 1724 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
808 /* 1726 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
809 /* 1728 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
810 /* 1732 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
811 /* 1736 */ GIR_RootConstrainSelectedInstOperands,
812 /* 1737 */ // GIR_Coverage, 50,
813 /* 1737 */ GIR_EraseRootFromParent_Done,
814 /* 1738 */ // Label 44: @1738
815 /* 1738 */ GIM_Reject,
816 /* 1739 */ // Label 40: @1739
817 /* 1739 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(1784), // Rule ID 2 //
818 /* 1744 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
819 /* 1748 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
820 /* 1752 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
821 /* 1756 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
822 /* 1760 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
823 /* 1765 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
824 /* 1769 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
825 /* 1771 */ // (assigntype:{ *:[f64] } (fneg:{ *:[f64] } fID:{ *:[f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegate:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src)
826 /* 1771 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegate),
827 /* 1774 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
828 /* 1776 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
829 /* 1778 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
830 /* 1782 */ GIR_RootConstrainSelectedInstOperands,
831 /* 1783 */ // GIR_Coverage, 2,
832 /* 1783 */ GIR_EraseRootFromParent_Done,
833 /* 1784 */ // Label 45: @1784
834 /* 1784 */ GIM_Reject,
835 /* 1785 */ // Label 5: @1785
836 /* 1785 */ GIM_Reject,
837 /* 1786 */ // Label 2: @1786
838 /* 1786 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(1932),
839 /* 1791 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_p0s64,
840 /* 1794 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
841 /* 1797 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
842 /* 1801 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
843 /* 1805 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(1868), // Rule ID 54 //
844 /* 1810 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
845 /* 1814 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
846 /* 1818 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
847 /* 1822 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
848 /* 1826 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
849 /* 1830 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
850 /* 1835 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
851 /* 1840 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
852 /* 1845 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
853 /* 1847 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } iID:{ *:[i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSPSCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2)
854 /* 1847 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPSCond),
855 /* 1850 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
856 /* 1852 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
857 /* 1854 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
858 /* 1858 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
859 /* 1862 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
860 /* 1866 */ GIR_RootConstrainSelectedInstOperands,
861 /* 1867 */ // GIR_Coverage, 54,
862 /* 1867 */ GIR_EraseRootFromParent_Done,
863 /* 1868 */ // Label 47: @1868
864 /* 1868 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(1931), // Rule ID 55 //
865 /* 1873 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
866 /* 1877 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
867 /* 1881 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
868 /* 1885 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
869 /* 1889 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
870 /* 1893 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
871 /* 1898 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
872 /* 1903 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
873 /* 1908 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
874 /* 1910 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } viID:{ *:[v2i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSPVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2)
875 /* 1910 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPVCond),
876 /* 1913 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
877 /* 1915 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
878 /* 1917 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
879 /* 1921 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
880 /* 1925 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
881 /* 1929 */ GIR_RootConstrainSelectedInstOperands,
882 /* 1930 */ // GIR_Coverage, 55,
883 /* 1930 */ GIR_EraseRootFromParent_Done,
884 /* 1931 */ // Label 48: @1931
885 /* 1931 */ GIM_Reject,
886 /* 1932 */ // Label 46: @1932
887 /* 1932 */ GIM_Reject,
888 /* 1933 */ // Label 3: @1933
889 /* 1933 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(3490),
890 /* 1938 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
891 /* 1941 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
892 /* 1944 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(2084),
893 /* 1949 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
894 /* 1953 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
895 /* 1957 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(2020), // Rule ID 62 //
896 /* 1962 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
897 /* 1966 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
898 /* 1970 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
899 /* 1974 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
900 /* 1978 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
901 /* 1982 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
902 /* 1987 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
903 /* 1992 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
904 /* 1997 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
905 /* 1999 */ // (assigntype:{ *:[v2i64] } (select:{ *:[v2i64] } iID:{ *:[i64] }:$cond, viID:{ *:[v2i64] }:$src1, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVISCond:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, viID:{ *:[v2i64] }:$src1, viID:{ *:[v2i64] }:$src2)
906 /* 1999 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVISCond),
907 /* 2002 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
908 /* 2004 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
909 /* 2006 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
910 /* 2010 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
911 /* 2014 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
912 /* 2018 */ GIR_RootConstrainSelectedInstOperands,
913 /* 2019 */ // GIR_Coverage, 62,
914 /* 2019 */ GIR_EraseRootFromParent_Done,
915 /* 2020 */ // Label 51: @2020
916 /* 2020 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(2083), // Rule ID 63 //
917 /* 2025 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
918 /* 2029 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
919 /* 2033 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
920 /* 2037 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
921 /* 2041 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
922 /* 2045 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
923 /* 2050 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
924 /* 2055 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
925 /* 2060 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
926 /* 2062 */ // (assigntype:{ *:[v2i64] } (select:{ *:[v2i64] } viID:{ *:[v2i64] }:$cond, viID:{ *:[v2i64] }:$src1, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVIVCond:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, viID:{ *:[v2i64] }:$src1, viID:{ *:[v2i64] }:$src2)
927 /* 2062 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVIVCond),
928 /* 2065 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
929 /* 2067 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
930 /* 2069 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
931 /* 2073 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
932 /* 2077 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
933 /* 2081 */ GIR_RootConstrainSelectedInstOperands,
934 /* 2082 */ // GIR_Coverage, 63,
935 /* 2082 */ GIR_EraseRootFromParent_Done,
936 /* 2083 */ // Label 52: @2083
937 /* 2083 */ GIM_Reject,
938 /* 2084 */ // Label 50: @2084
939 /* 2084 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(2224),
940 /* 2089 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
941 /* 2093 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
942 /* 2097 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(2160), // Rule ID 64 //
943 /* 2102 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
944 /* 2106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
945 /* 2110 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
946 /* 2114 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
947 /* 2118 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
948 /* 2122 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
949 /* 2127 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
950 /* 2132 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
951 /* 2137 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
952 /* 2139 */ // (assigntype:{ *:[v2f64] } (select:{ *:[v2f64] } iID:{ *:[i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVFSCond:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2)
953 /* 2139 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFSCond),
954 /* 2142 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
955 /* 2144 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
956 /* 2146 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
957 /* 2150 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
958 /* 2154 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
959 /* 2158 */ GIR_RootConstrainSelectedInstOperands,
960 /* 2159 */ // GIR_Coverage, 64,
961 /* 2159 */ GIR_EraseRootFromParent_Done,
962 /* 2160 */ // Label 54: @2160
963 /* 2160 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(2223), // Rule ID 65 //
964 /* 2165 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
965 /* 2169 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
966 /* 2173 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
967 /* 2177 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
968 /* 2181 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
969 /* 2185 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
970 /* 2190 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
971 /* 2195 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
972 /* 2200 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
973 /* 2202 */ // (assigntype:{ *:[v2f64] } (select:{ *:[v2f64] } viID:{ *:[v2i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVFVCond:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2)
974 /* 2202 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFVCond),
975 /* 2205 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
976 /* 2207 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
977 /* 2209 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
978 /* 2213 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
979 /* 2217 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
980 /* 2221 */ GIR_RootConstrainSelectedInstOperands,
981 /* 2222 */ // GIR_Coverage, 65,
982 /* 2222 */ GIR_EraseRootFromParent_Done,
983 /* 2223 */ // Label 55: @2223
984 /* 2223 */ GIM_Reject,
985 /* 2224 */ // Label 53: @2224
986 /* 2224 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(2388),
987 /* 2229 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
988 /* 2233 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
989 /* 2237 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(2287), // Rule ID 5 //
990 /* 2242 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
991 /* 2246 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
992 /* 2250 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
993 /* 2254 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
994 /* 2258 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
995 /* 2263 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
996 /* 2268 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
997 /* 2270 */ // (assigntype:{ *:[v2i64] } (add:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIAddV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
998 /* 2270 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddV),
999 /* 2273 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1000 /* 2275 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1001 /* 2277 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1002 /* 2281 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1003 /* 2285 */ GIR_RootConstrainSelectedInstOperands,
1004 /* 2286 */ // GIR_Coverage, 5,
1005 /* 2286 */ GIR_EraseRootFromParent_Done,
1006 /* 2287 */ // Label 57: @2287
1007 /* 2287 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(2337), // Rule ID 53 //
1008 /* 2292 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1009 /* 2296 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1010 /* 2300 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1011 /* 2304 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1012 /* 2308 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1013 /* 2313 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1014 /* 2318 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1015 /* 2320 */ // (assigntype:{ *:[v2i64] } (and:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseAndV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1016 /* 2320 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndV),
1017 /* 2323 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1018 /* 2325 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1019 /* 2327 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1020 /* 2331 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1021 /* 2335 */ GIR_RootConstrainSelectedInstOperands,
1022 /* 2336 */ // GIR_Coverage, 53,
1023 /* 2336 */ GIR_EraseRootFromParent_Done,
1024 /* 2337 */ // Label 58: @2337
1025 /* 2337 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(2387), // Rule ID 45 //
1026 /* 2342 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1027 /* 2346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
1028 /* 2350 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1029 /* 2354 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1030 /* 2358 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1031 /* 2363 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1032 /* 2368 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1033 /* 2370 */ // (assigntype:{ *:[v2i64] } (sra:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightArithmeticV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1034 /* 2370 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticV),
1035 /* 2373 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1036 /* 2375 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1037 /* 2377 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1038 /* 2381 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1039 /* 2385 */ GIR_RootConstrainSelectedInstOperands,
1040 /* 2386 */ // GIR_Coverage, 45,
1041 /* 2386 */ GIR_EraseRootFromParent_Done,
1042 /* 2387 */ // Label 59: @2387
1043 /* 2387 */ GIM_Reject,
1044 /* 2388 */ // Label 56: @2388
1045 /* 2388 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(2652),
1046 /* 2393 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1047 /* 2397 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1048 /* 2401 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(2451), // Rule ID 7 //
1049 /* 2406 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1050 /* 2410 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
1051 /* 2414 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1052 /* 2418 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1053 /* 2422 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1054 /* 2427 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1055 /* 2432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1056 /* 2434 */ // (assigntype:{ *:[v2f64] } (fadd:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFAddV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1057 /* 2434 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddV),
1058 /* 2437 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1059 /* 2439 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1060 /* 2441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1061 /* 2445 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1062 /* 2449 */ GIR_RootConstrainSelectedInstOperands,
1063 /* 2450 */ // GIR_Coverage, 7,
1064 /* 2450 */ GIR_EraseRootFromParent_Done,
1065 /* 2451 */ // Label 61: @2451
1066 /* 2451 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(2501), // Rule ID 27 //
1067 /* 2456 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1068 /* 2460 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
1069 /* 2464 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1070 /* 2468 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1071 /* 2472 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1072 /* 2477 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1073 /* 2482 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1074 /* 2484 */ // (assigntype:{ *:[v2f64] } (fdiv:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFDivV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1075 /* 2484 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivV),
1076 /* 2487 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1077 /* 2489 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1078 /* 2491 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1079 /* 2495 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1080 /* 2499 */ GIR_RootConstrainSelectedInstOperands,
1081 /* 2500 */ // GIR_Coverage, 27,
1082 /* 2500 */ GIR_EraseRootFromParent_Done,
1083 /* 2501 */ // Label 62: @2501
1084 /* 2501 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(2551), // Rule ID 19 //
1085 /* 2506 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1086 /* 2510 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
1087 /* 2514 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1088 /* 2518 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1089 /* 2522 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1090 /* 2527 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1091 /* 2532 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1092 /* 2534 */ // (assigntype:{ *:[v2f64] } (fmul:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFMulV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1093 /* 2534 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulV),
1094 /* 2537 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1095 /* 2539 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1096 /* 2541 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1097 /* 2545 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1098 /* 2549 */ GIR_RootConstrainSelectedInstOperands,
1099 /* 2550 */ // GIR_Coverage, 19,
1100 /* 2550 */ GIR_EraseRootFromParent_Done,
1101 /* 2551 */ // Label 63: @2551
1102 /* 2551 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(2601), // Rule ID 35 //
1103 /* 2556 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1104 /* 2560 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
1105 /* 2564 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1106 /* 2568 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1107 /* 2572 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1108 /* 2577 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1109 /* 2582 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1110 /* 2584 */ // (assigntype:{ *:[v2f64] } (frem:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFRemV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1111 /* 2584 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemV),
1112 /* 2587 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1113 /* 2589 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1114 /* 2591 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1115 /* 2595 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1116 /* 2599 */ GIR_RootConstrainSelectedInstOperands,
1117 /* 2600 */ // GIR_Coverage, 35,
1118 /* 2600 */ GIR_EraseRootFromParent_Done,
1119 /* 2601 */ // Label 64: @2601
1120 /* 2601 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(2651), // Rule ID 13 //
1121 /* 2606 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1122 /* 2610 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
1123 /* 2614 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1124 /* 2618 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1125 /* 2622 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1126 /* 2627 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1127 /* 2632 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1128 /* 2634 */ // (assigntype:{ *:[v2f64] } (fsub:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpFSubV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1129 /* 2634 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubV),
1130 /* 2637 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1131 /* 2639 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1132 /* 2641 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1133 /* 2645 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1134 /* 2649 */ GIR_RootConstrainSelectedInstOperands,
1135 /* 2650 */ // GIR_Coverage, 13,
1136 /* 2650 */ GIR_EraseRootFromParent_Done,
1137 /* 2651 */ // Label 65: @2651
1138 /* 2651 */ GIM_Reject,
1139 /* 2652 */ // Label 60: @2652
1140 /* 2652 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(2966),
1141 /* 2657 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1142 /* 2661 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1143 /* 2665 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(2715), // Rule ID 43 //
1144 /* 2670 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1145 /* 2674 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
1146 /* 2678 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1147 /* 2682 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1148 /* 2686 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1149 /* 2691 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1150 /* 2696 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1151 /* 2698 */ // (assigntype:{ *:[v2i64] } (srl:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightLogicalV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1152 /* 2698 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalV),
1153 /* 2701 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1154 /* 2703 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1155 /* 2705 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1156 /* 2709 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1157 /* 2713 */ GIR_RootConstrainSelectedInstOperands,
1158 /* 2714 */ // GIR_Coverage, 43,
1159 /* 2714 */ GIR_EraseRootFromParent_Done,
1160 /* 2715 */ // Label 67: @2715
1161 /* 2715 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(2765), // Rule ID 17 //
1162 /* 2720 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1163 /* 2724 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1164 /* 2728 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1165 /* 2732 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1166 /* 2736 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1167 /* 2741 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1168 /* 2746 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1169 /* 2748 */ // (assigntype:{ *:[v2i64] } (mul:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIMulV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1170 /* 2748 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulV),
1171 /* 2751 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1172 /* 2753 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1173 /* 2755 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1174 /* 2759 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1175 /* 2763 */ GIR_RootConstrainSelectedInstOperands,
1176 /* 2764 */ // GIR_Coverage, 17,
1177 /* 2764 */ GIR_EraseRootFromParent_Done,
1178 /* 2765 */ // Label 68: @2765
1179 /* 2765 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(2815), // Rule ID 49 //
1180 /* 2770 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1181 /* 2774 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
1182 /* 2778 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1183 /* 2782 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1184 /* 2786 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1185 /* 2791 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1186 /* 2796 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1187 /* 2798 */ // (assigntype:{ *:[v2i64] } (or:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseOrV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1188 /* 2798 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrV),
1189 /* 2801 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1190 /* 2803 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1191 /* 2805 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1192 /* 2809 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1193 /* 2813 */ GIR_RootConstrainSelectedInstOperands,
1194 /* 2814 */ // GIR_Coverage, 49,
1195 /* 2814 */ GIR_EraseRootFromParent_Done,
1196 /* 2815 */ // Label 69: @2815
1197 /* 2815 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(2865), // Rule ID 25 //
1198 /* 2820 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1199 /* 2824 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
1200 /* 2828 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1201 /* 2832 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1202 /* 2836 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1203 /* 2841 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1204 /* 2846 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1205 /* 2848 */ // (assigntype:{ *:[v2i64] } (sdiv:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSDivV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1206 /* 2848 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivV),
1207 /* 2851 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1208 /* 2853 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1209 /* 2855 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1210 /* 2859 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1211 /* 2863 */ GIR_RootConstrainSelectedInstOperands,
1212 /* 2864 */ // GIR_Coverage, 25,
1213 /* 2864 */ GIR_EraseRootFromParent_Done,
1214 /* 2865 */ // Label 70: @2865
1215 /* 2865 */ GIM_Try, /*On fail goto*//*Label 71*/ GIMT_Encode4(2915), // Rule ID 47 //
1216 /* 2870 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1217 /* 2874 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
1218 /* 2878 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1219 /* 2882 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1220 /* 2886 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1221 /* 2891 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1222 /* 2896 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1223 /* 2898 */ // (assigntype:{ *:[v2i64] } (shl:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftLeftLogicalV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1224 /* 2898 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalV),
1225 /* 2901 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1226 /* 2903 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1227 /* 2905 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1228 /* 2909 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1229 /* 2913 */ GIR_RootConstrainSelectedInstOperands,
1230 /* 2914 */ // GIR_Coverage, 47,
1231 /* 2914 */ GIR_EraseRootFromParent_Done,
1232 /* 2915 */ // Label 71: @2915
1233 /* 2915 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(2965), // Rule ID 33 //
1234 /* 2920 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1235 /* 2924 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
1236 /* 2928 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1237 /* 2932 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1238 /* 2936 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1239 /* 2941 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1240 /* 2946 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1241 /* 2948 */ // (assigntype:{ *:[v2i64] } (srem:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSRemV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1242 /* 2948 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemV),
1243 /* 2951 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1244 /* 2953 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1245 /* 2955 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1246 /* 2959 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1247 /* 2963 */ GIR_RootConstrainSelectedInstOperands,
1248 /* 2964 */ // GIR_Coverage, 33,
1249 /* 2964 */ GIR_EraseRootFromParent_Done,
1250 /* 2965 */ // Label 72: @2965
1251 /* 2965 */ GIM_Reject,
1252 /* 2966 */ // Label 66: @2966
1253 /* 2966 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(3230),
1254 /* 2971 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1255 /* 2975 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1256 /* 2979 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(3029), // Rule ID 9 //
1257 /* 2984 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1258 /* 2988 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
1259 /* 2992 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1260 /* 2996 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1261 /* 3000 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1262 /* 3005 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1263 /* 3010 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1264 /* 3012 */ // (assigntype:{ *:[v2f64] } (strict_fadd:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFAddV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1265 /* 3012 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddV),
1266 /* 3015 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1267 /* 3017 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1268 /* 3019 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1269 /* 3023 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1270 /* 3027 */ GIR_RootConstrainSelectedInstOperands,
1271 /* 3028 */ // GIR_Coverage, 9,
1272 /* 3028 */ GIR_EraseRootFromParent_Done,
1273 /* 3029 */ // Label 74: @3029
1274 /* 3029 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(3079), // Rule ID 29 //
1275 /* 3034 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1276 /* 3038 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
1277 /* 3042 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1278 /* 3046 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1279 /* 3050 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1280 /* 3055 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1281 /* 3060 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1282 /* 3062 */ // (assigntype:{ *:[v2f64] } (strict_fdiv:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFDivV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1283 /* 3062 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivV),
1284 /* 3065 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1285 /* 3067 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1286 /* 3069 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1287 /* 3073 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1288 /* 3077 */ GIR_RootConstrainSelectedInstOperands,
1289 /* 3078 */ // GIR_Coverage, 29,
1290 /* 3078 */ GIR_EraseRootFromParent_Done,
1291 /* 3079 */ // Label 75: @3079
1292 /* 3079 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(3129), // Rule ID 21 //
1293 /* 3084 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1294 /* 3088 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
1295 /* 3092 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1296 /* 3096 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1297 /* 3100 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1298 /* 3105 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1299 /* 3110 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1300 /* 3112 */ // (assigntype:{ *:[v2f64] } (strict_fmul:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFMulV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1301 /* 3112 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulV),
1302 /* 3115 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1303 /* 3117 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1304 /* 3119 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1305 /* 3123 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1306 /* 3127 */ GIR_RootConstrainSelectedInstOperands,
1307 /* 3128 */ // GIR_Coverage, 21,
1308 /* 3128 */ GIR_EraseRootFromParent_Done,
1309 /* 3129 */ // Label 76: @3129
1310 /* 3129 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(3179), // Rule ID 37 //
1311 /* 3134 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1312 /* 3138 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
1313 /* 3142 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1314 /* 3146 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1315 /* 3150 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1316 /* 3155 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1317 /* 3160 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1318 /* 3162 */ // (assigntype:{ *:[v2f64] } (strict_frem:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFRemV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1319 /* 3162 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemV),
1320 /* 3165 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1321 /* 3167 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1322 /* 3169 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1323 /* 3173 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1324 /* 3177 */ GIR_RootConstrainSelectedInstOperands,
1325 /* 3178 */ // GIR_Coverage, 37,
1326 /* 3178 */ GIR_EraseRootFromParent_Done,
1327 /* 3179 */ // Label 77: @3179
1328 /* 3179 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(3229), // Rule ID 15 //
1329 /* 3184 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1330 /* 3188 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
1331 /* 3192 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1332 /* 3196 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1333 /* 3200 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1334 /* 3205 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1335 /* 3210 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1336 /* 3212 */ // (assigntype:{ *:[v2f64] } (strict_fsub:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpStrictFSubV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src, vfID:{ *:[v2f64] }:$src2)
1337 /* 3212 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubV),
1338 /* 3215 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1339 /* 3217 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1340 /* 3219 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1341 /* 3223 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1342 /* 3227 */ GIR_RootConstrainSelectedInstOperands,
1343 /* 3228 */ // GIR_Coverage, 15,
1344 /* 3228 */ GIR_EraseRootFromParent_Done,
1345 /* 3229 */ // Label 78: @3229
1346 /* 3229 */ GIM_Reject,
1347 /* 3230 */ // Label 73: @3230
1348 /* 3230 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(3444),
1349 /* 3235 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1350 /* 3239 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1351 /* 3243 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(3293), // Rule ID 11 //
1352 /* 3248 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1353 /* 3252 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1354 /* 3256 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1355 /* 3260 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1356 /* 3264 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1357 /* 3269 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1358 /* 3274 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1359 /* 3276 */ // (assigntype:{ *:[v2i64] } (sub:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpISubV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1360 /* 3276 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubV),
1361 /* 3279 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1362 /* 3281 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1363 /* 3283 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1364 /* 3287 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1365 /* 3291 */ GIR_RootConstrainSelectedInstOperands,
1366 /* 3292 */ // GIR_Coverage, 11,
1367 /* 3292 */ GIR_EraseRootFromParent_Done,
1368 /* 3293 */ // Label 80: @3293
1369 /* 3293 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(3343), // Rule ID 23 //
1370 /* 3298 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1371 /* 3302 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
1372 /* 3306 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1373 /* 3310 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1374 /* 3314 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1375 /* 3319 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1376 /* 3324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1377 /* 3326 */ // (assigntype:{ *:[v2i64] } (udiv:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUDivV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1378 /* 3326 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivV),
1379 /* 3329 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1380 /* 3331 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1381 /* 3333 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1382 /* 3337 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1383 /* 3341 */ GIR_RootConstrainSelectedInstOperands,
1384 /* 3342 */ // GIR_Coverage, 23,
1385 /* 3342 */ GIR_EraseRootFromParent_Done,
1386 /* 3343 */ // Label 81: @3343
1387 /* 3343 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(3393), // Rule ID 31 //
1388 /* 3348 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1389 /* 3352 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
1390 /* 3356 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1391 /* 3360 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1392 /* 3364 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1393 /* 3369 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1394 /* 3374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1395 /* 3376 */ // (assigntype:{ *:[v2i64] } (urem:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUModV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1396 /* 3376 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModV),
1397 /* 3379 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1398 /* 3381 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1399 /* 3383 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1400 /* 3387 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1401 /* 3391 */ GIR_RootConstrainSelectedInstOperands,
1402 /* 3392 */ // GIR_Coverage, 31,
1403 /* 3392 */ GIR_EraseRootFromParent_Done,
1404 /* 3393 */ // Label 82: @3393
1405 /* 3393 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(3443), // Rule ID 51 //
1406 /* 3398 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1407 /* 3402 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
1408 /* 3406 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1409 /* 3410 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1410 /* 3414 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1411 /* 3419 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1412 /* 3424 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1413 /* 3426 */ // (assigntype:{ *:[v2i64] } (xor:{ *:[v2i64] } viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseXorV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, viID:{ *:[v2i64] }:$src, viID:{ *:[v2i64] }:$src2)
1414 /* 3426 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorV),
1415 /* 3429 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1416 /* 3431 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1417 /* 3433 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1418 /* 3437 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1419 /* 3441 */ GIR_RootConstrainSelectedInstOperands,
1420 /* 3442 */ // GIR_Coverage, 51,
1421 /* 3442 */ GIR_EraseRootFromParent_Done,
1422 /* 3443 */ // Label 83: @3443
1423 /* 3443 */ GIM_Reject,
1424 /* 3444 */ // Label 79: @3444
1425 /* 3444 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(3489), // Rule ID 3 //
1426 /* 3449 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1427 /* 3453 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1428 /* 3457 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1429 /* 3461 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1430 /* 3465 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1431 /* 3470 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1432 /* 3474 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1433 /* 3476 */ // (assigntype:{ *:[v2f64] } (fneg:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegateV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src)
1434 /* 3476 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegateV),
1435 /* 3479 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1436 /* 3481 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1437 /* 3483 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1438 /* 3487 */ GIR_RootConstrainSelectedInstOperands,
1439 /* 3488 */ // GIR_Coverage, 3,
1440 /* 3488 */ GIR_EraseRootFromParent_Done,
1441 /* 3489 */ // Label 84: @3489
1442 /* 3489 */ GIM_Reject,
1443 /* 3490 */ // Label 49: @3490
1444 /* 3490 */ GIM_Reject,
1445 /* 3491 */ // Label 4: @3491
1446 /* 3491 */ GIM_Reject,
1447 /* 3492 */ // Label 0: @3492
1448 /* 3492 */ GIM_Reject,
1449 /* 3493 */ }; // Size: 3493 bytes
1450 return MatchTable0;
1451}
1452#undef GIMT_Encode2
1453#undef GIMT_Encode4
1454#undef GIMT_Encode8
1455
1456
1457#endif // GET_GLOBALISEL_IMPL
1458
1459#ifdef GET_GLOBALISEL_PREDICATES_DECL
1460
1461PredicateBitset AvailableModuleFeatures;
1462mutable PredicateBitset AvailableFunctionFeatures;
1463PredicateBitset getAvailableFeatures() const {
1464 return AvailableModuleFeatures | AvailableFunctionFeatures;
1465}
1466PredicateBitset
1467computeAvailableModuleFeatures(const SPIRVSubtarget *Subtarget) const;
1468PredicateBitset
1469computeAvailableFunctionFeatures(const SPIRVSubtarget *Subtarget,
1470 const MachineFunction *MF) const;
1471void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1472
1473#endif // GET_GLOBALISEL_PREDICATES_DECL
1474
1475#ifdef GET_GLOBALISEL_PREDICATES_INIT
1476
1477AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
1478AvailableFunctionFeatures()
1479
1480#endif // GET_GLOBALISEL_PREDICATES_INIT
1481
1482