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_fadd_contract = GICXXPred_Invalid + 1,
98 GICXXPred_MI_Predicate_ffloor_nnan,
99 GICXXPred_MI_Predicate_fmul_contract,
100 GICXXPred_MI_Predicate_fsub_contract,
101 GICXXPred_MI_Predicate_or_disjoint,
102};
103bool SPIRVInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
104 const MachineFunction &MF = *MI.getParent()->getParent();
105 const MachineRegisterInfo &MRI = MF.getRegInfo();
106 const auto &Operands = State.RecordedOperands;
107 (void)Operands;
108 (void)MRI;
109 switch (PredicateID) {
110 case GICXXPred_MI_Predicate_fadd_contract: {
111
112 return MI.getFlag(MachineInstr::FmContract);
113
114 }
115 case GICXXPred_MI_Predicate_ffloor_nnan: {
116
117 return MI.getFlag(MachineInstr::FmNoNans);
118
119 }
120 case GICXXPred_MI_Predicate_fmul_contract: {
121
122 return MI.getFlag(MachineInstr::FmContract);
123
124 }
125 case GICXXPred_MI_Predicate_fsub_contract: {
126
127 return MI.getFlag(MachineInstr::FmContract);
128
129 }
130 case GICXXPred_MI_Predicate_or_disjoint: {
131
132 return MI.getFlag(MachineInstr::Disjoint);
133
134 }
135 }
136 llvm_unreachable("Unknown predicate");
137 return false;
138}
139// PatFrag predicates.
140bool SPIRVInstructionSelector::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
141 const auto &Operands = State.RecordedOperands;
142 Register Reg = MO.getReg();
143 (void)Operands;
144 (void)Reg;
145 llvm_unreachable("Unknown predicate");
146 return false;
147}
148// PatFrag predicates.
149enum {
150 GICXXPred_I64_Predicate_FPNoSaturation = GICXXPred_Invalid + 1,
151 GICXXPred_I64_Predicate_Float8E4M3FN,
152 GICXXPred_I64_Predicate_Float8E5M2,
153 GICXXPred_I64_Predicate_NearestTiesToEven,
154};
155bool SPIRVInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
156 switch (PredicateID) {
157 case GICXXPred_I64_Predicate_FPNoSaturation: {
158 return Imm == 0;
159 }
160 case GICXXPred_I64_Predicate_Float8E4M3FN: {
161 return Imm == APFloatBase::S_Float8E4M3FN;
162 }
163 case GICXXPred_I64_Predicate_Float8E5M2: {
164 return Imm == APFloatBase::S_Float8E5M2;
165 }
166 case GICXXPred_I64_Predicate_NearestTiesToEven: {
167 return Imm == static_cast<int>(RoundingMode::NearestTiesToEven);
168 }
169 }
170 llvm_unreachable("Unknown predicate");
171 return false;
172}
173// PatFrag predicates.
174bool SPIRVInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
175 llvm_unreachable("Unknown predicate");
176 return false;
177}
178// PatFrag predicates.
179enum {
180 GICXXPred_APInt_Predicate_ConstPseudoFalse = GICXXPred_Invalid + 1,
181 GICXXPred_APInt_Predicate_ConstPseudoTrue,
182};
183bool SPIRVInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
184 switch (PredicateID) {
185 case GICXXPred_APInt_Predicate_ConstPseudoFalse: {
186 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 0;
187 }
188 case GICXXPred_APInt_Predicate_ConstPseudoTrue: {
189 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 1;
190 }
191 }
192 llvm_unreachable("Unknown predicate");
193 return false;
194}
195bool SPIRVInstructionSelector::testSimplePredicate(unsigned) const {
196 llvm_unreachable("SPIRVInstructionSelector does not support simple predicates!");
197 return false;
198}
199// Custom renderers.
200enum {
201 GICR_Invalid,
202 GICR_renderFrameIndex,
203};
204SPIRVInstructionSelector::CustomRendererFn
205SPIRVInstructionSelector::CustomRenderers[] = {
206 nullptr, // GICR_Invalid
207 &SPIRVInstructionSelector::renderFrameIndex,
208};
209
210bool SPIRVInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
211 const PredicateBitset AvailableFeatures = getAvailableFeatures();
212 MachineIRBuilder B(I);
213 State.MIs.clear();
214 State.MIs.push_back(&I);
215
216 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), TII, MF->getRegInfo(), TRI, RBI, AvailableFeatures, &CoverageInfo)) {
217 return true;
218 }
219
220 return false;
221}
222
223bool SPIRVInstructionSelector::runCustomAction(unsigned, const MatcherState&, NewMIVector &) const {
224 llvm_unreachable("SPIRVInstructionSelector does not support custom C++ actions!");
225}
226#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
227#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
228#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
229#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)
230#else
231#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
232#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
233#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)
234#endif
235const uint8_t *SPIRVInstructionSelector::getMatchTable() const {
236 constexpr static uint8_t MatchTable0[] = {
237 /* 0 */ GIM_Try, /*On fail goto*//*Label 0*/ GIMT_Encode4(3500),
238 /* 5 */ GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(SPIRV::ASSIGN_TYPE),
239 /* 9 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 4*/ GIMT_Encode4(3499),
240 /* 20 */ /*GILLT_s64*//*Label 1*/ GIMT_Encode4(32),
241 /* 24 */ /*GILLT_p0s64*//*Label 2*/ GIMT_Encode4(1786),
242 /* 28 */ /*GILLT_v2s64*//*Label 3*/ GIMT_Encode4(1941),
243 /* 32 */ // Label 1: @32
244 /* 32 */ GIM_Try, /*On fail goto*//*Label 5*/ GIMT_Encode4(1785),
245 /* 37 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
246 /* 40 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
247 /* 43 */ GIM_Try, /*On fail goto*//*Label 6*/ GIMT_Encode4(239),
248 /* 48 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
249 /* 52 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
250 /* 56 */ GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4(84), // Rule ID 0 //
251 /* 61 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
252 /* 65 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
253 /* 69 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoTrue),
254 /* 73 */ // MIs[1] Operand 1
255 /* 73 */ // No operand predicates
256 /* 73 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
257 /* 75 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoTrue>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantTrue:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
258 /* 75 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantTrue),
259 /* 78 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
260 /* 80 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
261 /* 82 */ GIR_RootConstrainSelectedInstOperands,
262 /* 83 */ // GIR_Coverage, 0,
263 /* 83 */ GIR_EraseRootFromParent_Done,
264 /* 84 */ // Label 7: @84
265 /* 84 */ GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4(112), // Rule ID 1 //
266 /* 89 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
267 /* 93 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
268 /* 97 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoFalse),
269 /* 101 */ // MIs[1] Operand 1
270 /* 101 */ // No operand predicates
271 /* 101 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
272 /* 103 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoFalse>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantFalse:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
273 /* 103 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantFalse),
274 /* 106 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
275 /* 108 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
276 /* 110 */ GIR_RootConstrainSelectedInstOperands,
277 /* 111 */ // GIR_Coverage, 1,
278 /* 111 */ GIR_EraseRootFromParent_Done,
279 /* 112 */ // Label 8: @112
280 /* 112 */ GIM_Try, /*On fail goto*//*Label 9*/ GIMT_Encode4(175), // Rule ID 56 //
281 /* 117 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
282 /* 121 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
283 /* 125 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
284 /* 129 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
285 /* 133 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
286 /* 137 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
287 /* 142 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
288 /* 147 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
289 /* 152 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
290 /* 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)
291 /* 154 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSISCond),
292 /* 157 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
293 /* 159 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
294 /* 161 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
295 /* 165 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
296 /* 169 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
297 /* 173 */ GIR_RootConstrainSelectedInstOperands,
298 /* 174 */ // GIR_Coverage, 56,
299 /* 174 */ GIR_EraseRootFromParent_Done,
300 /* 175 */ // Label 9: @175
301 /* 175 */ GIM_Try, /*On fail goto*//*Label 10*/ GIMT_Encode4(238), // Rule ID 57 //
302 /* 180 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
303 /* 184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
304 /* 188 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
305 /* 192 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
306 /* 196 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
307 /* 200 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
308 /* 205 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
309 /* 210 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
310 /* 215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
311 /* 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)
312 /* 217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSIVCond),
313 /* 220 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
314 /* 222 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
315 /* 224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
316 /* 228 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
317 /* 232 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
318 /* 236 */ GIR_RootConstrainSelectedInstOperands,
319 /* 237 */ // GIR_Coverage, 57,
320 /* 237 */ GIR_EraseRootFromParent_Done,
321 /* 238 */ // Label 10: @238
322 /* 238 */ GIM_Reject,
323 /* 239 */ // Label 6: @239
324 /* 239 */ GIM_Try, /*On fail goto*//*Label 11*/ GIMT_Encode4(379),
325 /* 244 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
326 /* 248 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
327 /* 252 */ GIM_Try, /*On fail goto*//*Label 12*/ GIMT_Encode4(315), // Rule ID 58 //
328 /* 257 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
329 /* 261 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
330 /* 265 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
331 /* 269 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
332 /* 273 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
333 /* 277 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
334 /* 282 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
335 /* 287 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
336 /* 292 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
337 /* 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)
338 /* 294 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFSCond),
339 /* 297 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
340 /* 299 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
341 /* 301 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
342 /* 305 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
343 /* 309 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
344 /* 313 */ GIR_RootConstrainSelectedInstOperands,
345 /* 314 */ // GIR_Coverage, 58,
346 /* 314 */ GIR_EraseRootFromParent_Done,
347 /* 315 */ // Label 12: @315
348 /* 315 */ GIM_Try, /*On fail goto*//*Label 13*/ GIMT_Encode4(378), // Rule ID 59 //
349 /* 320 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
350 /* 324 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
351 /* 328 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
352 /* 332 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
353 /* 336 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
354 /* 340 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
355 /* 345 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
356 /* 350 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
357 /* 355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
358 /* 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)
359 /* 357 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFVCond),
360 /* 360 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
361 /* 362 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
362 /* 364 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
363 /* 368 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
364 /* 372 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
365 /* 376 */ GIR_RootConstrainSelectedInstOperands,
366 /* 377 */ // GIR_Coverage, 59,
367 /* 377 */ GIR_EraseRootFromParent_Done,
368 /* 378 */ // Label 13: @378
369 /* 378 */ GIM_Reject,
370 /* 379 */ // Label 11: @379
371 /* 379 */ GIM_Try, /*On fail goto*//*Label 14*/ GIMT_Encode4(519),
372 /* 384 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
373 /* 388 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
374 /* 392 */ GIM_Try, /*On fail goto*//*Label 15*/ GIMT_Encode4(455), // Rule ID 60 //
375 /* 397 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
376 /* 401 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
377 /* 405 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
378 /* 409 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
379 /* 413 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
380 /* 417 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
381 /* 422 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
382 /* 427 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
383 /* 432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
384 /* 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)
385 /* 434 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPSCond),
386 /* 437 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
387 /* 439 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
388 /* 441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
389 /* 445 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
390 /* 449 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
391 /* 453 */ GIR_RootConstrainSelectedInstOperands,
392 /* 454 */ // GIR_Coverage, 60,
393 /* 454 */ GIR_EraseRootFromParent_Done,
394 /* 455 */ // Label 15: @455
395 /* 455 */ GIM_Try, /*On fail goto*//*Label 16*/ GIMT_Encode4(518), // Rule ID 61 //
396 /* 460 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
397 /* 464 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
398 /* 468 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
399 /* 472 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
400 /* 476 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
401 /* 480 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
402 /* 485 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
403 /* 490 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
404 /* 495 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
405 /* 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)
406 /* 497 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPVCond),
407 /* 500 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
408 /* 502 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
409 /* 504 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
410 /* 508 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
411 /* 512 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
412 /* 516 */ GIR_RootConstrainSelectedInstOperands,
413 /* 517 */ // GIR_Coverage, 61,
414 /* 517 */ GIR_EraseRootFromParent_Done,
415 /* 518 */ // Label 16: @518
416 /* 518 */ GIM_Reject,
417 /* 519 */ // Label 14: @519
418 /* 519 */ GIM_Try, /*On fail goto*//*Label 17*/ GIMT_Encode4(683),
419 /* 524 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
420 /* 528 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
421 /* 532 */ GIM_Try, /*On fail goto*//*Label 18*/ GIMT_Encode4(582), // Rule ID 4 //
422 /* 537 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
423 /* 541 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
424 /* 545 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
425 /* 549 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
426 /* 553 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
427 /* 558 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
428 /* 563 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
429 /* 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)
430 /* 565 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddS),
431 /* 568 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
432 /* 570 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
433 /* 572 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
434 /* 576 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
435 /* 580 */ GIR_RootConstrainSelectedInstOperands,
436 /* 581 */ // GIR_Coverage, 4,
437 /* 581 */ GIR_EraseRootFromParent_Done,
438 /* 582 */ // Label 18: @582
439 /* 582 */ GIM_Try, /*On fail goto*//*Label 19*/ GIMT_Encode4(632), // Rule ID 52 //
440 /* 587 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
441 /* 591 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
442 /* 595 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
443 /* 599 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
444 /* 603 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
445 /* 608 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
446 /* 613 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
447 /* 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)
448 /* 615 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndS),
449 /* 618 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
450 /* 620 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
451 /* 622 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
452 /* 626 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
453 /* 630 */ GIR_RootConstrainSelectedInstOperands,
454 /* 631 */ // GIR_Coverage, 52,
455 /* 631 */ GIR_EraseRootFromParent_Done,
456 /* 632 */ // Label 19: @632
457 /* 632 */ GIM_Try, /*On fail goto*//*Label 20*/ GIMT_Encode4(682), // Rule ID 44 //
458 /* 637 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
459 /* 641 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
460 /* 645 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
461 /* 649 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
462 /* 653 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
463 /* 658 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
464 /* 663 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
465 /* 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)
466 /* 665 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticS),
467 /* 668 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
468 /* 670 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
469 /* 672 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
470 /* 676 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
471 /* 680 */ GIR_RootConstrainSelectedInstOperands,
472 /* 681 */ // GIR_Coverage, 44,
473 /* 681 */ GIR_EraseRootFromParent_Done,
474 /* 682 */ // Label 20: @682
475 /* 682 */ GIM_Reject,
476 /* 683 */ // Label 17: @683
477 /* 683 */ GIM_Try, /*On fail goto*//*Label 21*/ GIMT_Encode4(947),
478 /* 688 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
479 /* 692 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
480 /* 696 */ GIM_Try, /*On fail goto*//*Label 22*/ GIMT_Encode4(746), // Rule ID 6 //
481 /* 701 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
482 /* 705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
483 /* 709 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
484 /* 713 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
485 /* 717 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
486 /* 722 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
487 /* 727 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
488 /* 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)
489 /* 729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddS),
490 /* 732 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
491 /* 734 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
492 /* 736 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
493 /* 740 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
494 /* 744 */ GIR_RootConstrainSelectedInstOperands,
495 /* 745 */ // GIR_Coverage, 6,
496 /* 745 */ GIR_EraseRootFromParent_Done,
497 /* 746 */ // Label 22: @746
498 /* 746 */ GIM_Try, /*On fail goto*//*Label 23*/ GIMT_Encode4(796), // Rule ID 26 //
499 /* 751 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
500 /* 755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
501 /* 759 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
502 /* 763 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
503 /* 767 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
504 /* 772 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
505 /* 777 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
506 /* 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)
507 /* 779 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivS),
508 /* 782 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
509 /* 784 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
510 /* 786 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
511 /* 790 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
512 /* 794 */ GIR_RootConstrainSelectedInstOperands,
513 /* 795 */ // GIR_Coverage, 26,
514 /* 795 */ GIR_EraseRootFromParent_Done,
515 /* 796 */ // Label 23: @796
516 /* 796 */ GIM_Try, /*On fail goto*//*Label 24*/ GIMT_Encode4(846), // Rule ID 18 //
517 /* 801 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
518 /* 805 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
519 /* 809 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
520 /* 813 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
521 /* 817 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
522 /* 822 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
523 /* 827 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
524 /* 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)
525 /* 829 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulS),
526 /* 832 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
527 /* 834 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
528 /* 836 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
529 /* 840 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
530 /* 844 */ GIR_RootConstrainSelectedInstOperands,
531 /* 845 */ // GIR_Coverage, 18,
532 /* 845 */ GIR_EraseRootFromParent_Done,
533 /* 846 */ // Label 24: @846
534 /* 846 */ GIM_Try, /*On fail goto*//*Label 25*/ GIMT_Encode4(896), // Rule ID 34 //
535 /* 851 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
536 /* 855 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
537 /* 859 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
538 /* 863 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
539 /* 867 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
540 /* 872 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
541 /* 877 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
542 /* 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)
543 /* 879 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemS),
544 /* 882 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
545 /* 884 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
546 /* 886 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
547 /* 890 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
548 /* 894 */ GIR_RootConstrainSelectedInstOperands,
549 /* 895 */ // GIR_Coverage, 34,
550 /* 895 */ GIR_EraseRootFromParent_Done,
551 /* 896 */ // Label 25: @896
552 /* 896 */ GIM_Try, /*On fail goto*//*Label 26*/ GIMT_Encode4(946), // Rule ID 12 //
553 /* 901 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
554 /* 905 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
555 /* 909 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
556 /* 913 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
557 /* 917 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
558 /* 922 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
559 /* 927 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
560 /* 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)
561 /* 929 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubS),
562 /* 932 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
563 /* 934 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
564 /* 936 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
565 /* 940 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
566 /* 944 */ GIR_RootConstrainSelectedInstOperands,
567 /* 945 */ // GIR_Coverage, 12,
568 /* 945 */ GIR_EraseRootFromParent_Done,
569 /* 946 */ // Label 26: @946
570 /* 946 */ GIM_Reject,
571 /* 947 */ // Label 21: @947
572 /* 947 */ GIM_Try, /*On fail goto*//*Label 27*/ GIMT_Encode4(1261),
573 /* 952 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
574 /* 956 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
575 /* 960 */ GIM_Try, /*On fail goto*//*Label 28*/ GIMT_Encode4(1010), // Rule ID 42 //
576 /* 965 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
577 /* 969 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
578 /* 973 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
579 /* 977 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
580 /* 981 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
581 /* 986 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
582 /* 991 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
583 /* 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)
584 /* 993 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalS),
585 /* 996 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
586 /* 998 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
587 /* 1000 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
588 /* 1004 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
589 /* 1008 */ GIR_RootConstrainSelectedInstOperands,
590 /* 1009 */ // GIR_Coverage, 42,
591 /* 1009 */ GIR_EraseRootFromParent_Done,
592 /* 1010 */ // Label 28: @1010
593 /* 1010 */ GIM_Try, /*On fail goto*//*Label 29*/ GIMT_Encode4(1060), // Rule ID 16 //
594 /* 1015 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
595 /* 1019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
596 /* 1023 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
597 /* 1027 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
598 /* 1031 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
599 /* 1036 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
600 /* 1041 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
601 /* 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)
602 /* 1043 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulS),
603 /* 1046 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
604 /* 1048 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
605 /* 1050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
606 /* 1054 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
607 /* 1058 */ GIR_RootConstrainSelectedInstOperands,
608 /* 1059 */ // GIR_Coverage, 16,
609 /* 1059 */ GIR_EraseRootFromParent_Done,
610 /* 1060 */ // Label 29: @1060
611 /* 1060 */ GIM_Try, /*On fail goto*//*Label 30*/ GIMT_Encode4(1110), // Rule ID 48 //
612 /* 1065 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
613 /* 1069 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
614 /* 1073 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
615 /* 1077 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
616 /* 1081 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
617 /* 1086 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
618 /* 1091 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
619 /* 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)
620 /* 1093 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrS),
621 /* 1096 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
622 /* 1098 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
623 /* 1100 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
624 /* 1104 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
625 /* 1108 */ GIR_RootConstrainSelectedInstOperands,
626 /* 1109 */ // GIR_Coverage, 48,
627 /* 1109 */ GIR_EraseRootFromParent_Done,
628 /* 1110 */ // Label 30: @1110
629 /* 1110 */ GIM_Try, /*On fail goto*//*Label 31*/ GIMT_Encode4(1160), // Rule ID 24 //
630 /* 1115 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
631 /* 1119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
632 /* 1123 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
633 /* 1127 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
634 /* 1131 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
635 /* 1136 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
636 /* 1141 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
637 /* 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)
638 /* 1143 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivS),
639 /* 1146 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
640 /* 1148 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
641 /* 1150 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
642 /* 1154 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
643 /* 1158 */ GIR_RootConstrainSelectedInstOperands,
644 /* 1159 */ // GIR_Coverage, 24,
645 /* 1159 */ GIR_EraseRootFromParent_Done,
646 /* 1160 */ // Label 31: @1160
647 /* 1160 */ GIM_Try, /*On fail goto*//*Label 32*/ GIMT_Encode4(1210), // Rule ID 46 //
648 /* 1165 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
649 /* 1169 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
650 /* 1173 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
651 /* 1177 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
652 /* 1181 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
653 /* 1186 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
654 /* 1191 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
655 /* 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)
656 /* 1193 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalS),
657 /* 1196 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
658 /* 1198 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
659 /* 1200 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
660 /* 1204 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
661 /* 1208 */ GIR_RootConstrainSelectedInstOperands,
662 /* 1209 */ // GIR_Coverage, 46,
663 /* 1209 */ GIR_EraseRootFromParent_Done,
664 /* 1210 */ // Label 32: @1210
665 /* 1210 */ GIM_Try, /*On fail goto*//*Label 33*/ GIMT_Encode4(1260), // Rule ID 32 //
666 /* 1215 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
667 /* 1219 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
668 /* 1223 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
669 /* 1227 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
670 /* 1231 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
671 /* 1236 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
672 /* 1241 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
673 /* 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)
674 /* 1243 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemS),
675 /* 1246 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
676 /* 1248 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
677 /* 1250 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
678 /* 1254 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
679 /* 1258 */ GIR_RootConstrainSelectedInstOperands,
680 /* 1259 */ // GIR_Coverage, 32,
681 /* 1259 */ GIR_EraseRootFromParent_Done,
682 /* 1260 */ // Label 33: @1260
683 /* 1260 */ GIM_Reject,
684 /* 1261 */ // Label 27: @1261
685 /* 1261 */ GIM_Try, /*On fail goto*//*Label 34*/ GIMT_Encode4(1525),
686 /* 1266 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
687 /* 1270 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
688 /* 1274 */ GIM_Try, /*On fail goto*//*Label 35*/ GIMT_Encode4(1324), // Rule ID 8 //
689 /* 1279 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
690 /* 1283 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
691 /* 1287 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
692 /* 1291 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
693 /* 1295 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
694 /* 1300 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
695 /* 1305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
696 /* 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)
697 /* 1307 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddS),
698 /* 1310 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
699 /* 1312 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
700 /* 1314 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
701 /* 1318 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
702 /* 1322 */ GIR_RootConstrainSelectedInstOperands,
703 /* 1323 */ // GIR_Coverage, 8,
704 /* 1323 */ GIR_EraseRootFromParent_Done,
705 /* 1324 */ // Label 35: @1324
706 /* 1324 */ GIM_Try, /*On fail goto*//*Label 36*/ GIMT_Encode4(1374), // Rule ID 28 //
707 /* 1329 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
708 /* 1333 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
709 /* 1337 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
710 /* 1341 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
711 /* 1345 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
712 /* 1350 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
713 /* 1355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
714 /* 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)
715 /* 1357 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivS),
716 /* 1360 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
717 /* 1362 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
718 /* 1364 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
719 /* 1368 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
720 /* 1372 */ GIR_RootConstrainSelectedInstOperands,
721 /* 1373 */ // GIR_Coverage, 28,
722 /* 1373 */ GIR_EraseRootFromParent_Done,
723 /* 1374 */ // Label 36: @1374
724 /* 1374 */ GIM_Try, /*On fail goto*//*Label 37*/ GIMT_Encode4(1424), // Rule ID 20 //
725 /* 1379 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
726 /* 1383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
727 /* 1387 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
728 /* 1391 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
729 /* 1395 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
730 /* 1400 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
731 /* 1405 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
732 /* 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)
733 /* 1407 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulS),
734 /* 1410 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
735 /* 1412 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
736 /* 1414 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
737 /* 1418 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
738 /* 1422 */ GIR_RootConstrainSelectedInstOperands,
739 /* 1423 */ // GIR_Coverage, 20,
740 /* 1423 */ GIR_EraseRootFromParent_Done,
741 /* 1424 */ // Label 37: @1424
742 /* 1424 */ GIM_Try, /*On fail goto*//*Label 38*/ GIMT_Encode4(1474), // Rule ID 36 //
743 /* 1429 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
744 /* 1433 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
745 /* 1437 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
746 /* 1441 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
747 /* 1445 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
748 /* 1450 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
749 /* 1455 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
750 /* 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)
751 /* 1457 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemS),
752 /* 1460 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
753 /* 1462 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
754 /* 1464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
755 /* 1468 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
756 /* 1472 */ GIR_RootConstrainSelectedInstOperands,
757 /* 1473 */ // GIR_Coverage, 36,
758 /* 1473 */ GIR_EraseRootFromParent_Done,
759 /* 1474 */ // Label 38: @1474
760 /* 1474 */ GIM_Try, /*On fail goto*//*Label 39*/ GIMT_Encode4(1524), // Rule ID 14 //
761 /* 1479 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
762 /* 1483 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
763 /* 1487 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
764 /* 1491 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
765 /* 1495 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
766 /* 1500 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
767 /* 1505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
768 /* 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)
769 /* 1507 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubS),
770 /* 1510 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
771 /* 1512 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
772 /* 1514 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
773 /* 1518 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
774 /* 1522 */ GIR_RootConstrainSelectedInstOperands,
775 /* 1523 */ // GIR_Coverage, 14,
776 /* 1523 */ GIR_EraseRootFromParent_Done,
777 /* 1524 */ // Label 39: @1524
778 /* 1524 */ GIM_Reject,
779 /* 1525 */ // Label 34: @1525
780 /* 1525 */ GIM_Try, /*On fail goto*//*Label 40*/ GIMT_Encode4(1739),
781 /* 1530 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
782 /* 1534 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
783 /* 1538 */ GIM_Try, /*On fail goto*//*Label 41*/ GIMT_Encode4(1588), // Rule ID 10 //
784 /* 1543 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
785 /* 1547 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
786 /* 1551 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
787 /* 1555 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
788 /* 1559 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
789 /* 1564 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
790 /* 1569 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
791 /* 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)
792 /* 1571 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubS),
793 /* 1574 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
794 /* 1576 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
795 /* 1578 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
796 /* 1582 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
797 /* 1586 */ GIR_RootConstrainSelectedInstOperands,
798 /* 1587 */ // GIR_Coverage, 10,
799 /* 1587 */ GIR_EraseRootFromParent_Done,
800 /* 1588 */ // Label 41: @1588
801 /* 1588 */ GIM_Try, /*On fail goto*//*Label 42*/ GIMT_Encode4(1638), // Rule ID 22 //
802 /* 1593 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
803 /* 1597 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
804 /* 1601 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
805 /* 1605 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
806 /* 1609 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
807 /* 1614 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
808 /* 1619 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
809 /* 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)
810 /* 1621 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivS),
811 /* 1624 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
812 /* 1626 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
813 /* 1628 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
814 /* 1632 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
815 /* 1636 */ GIR_RootConstrainSelectedInstOperands,
816 /* 1637 */ // GIR_Coverage, 22,
817 /* 1637 */ GIR_EraseRootFromParent_Done,
818 /* 1638 */ // Label 42: @1638
819 /* 1638 */ GIM_Try, /*On fail goto*//*Label 43*/ GIMT_Encode4(1688), // Rule ID 30 //
820 /* 1643 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
821 /* 1647 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
822 /* 1651 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
823 /* 1655 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
824 /* 1659 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
825 /* 1664 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
826 /* 1669 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
827 /* 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)
828 /* 1671 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModS),
829 /* 1674 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
830 /* 1676 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
831 /* 1678 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
832 /* 1682 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
833 /* 1686 */ GIR_RootConstrainSelectedInstOperands,
834 /* 1687 */ // GIR_Coverage, 30,
835 /* 1687 */ GIR_EraseRootFromParent_Done,
836 /* 1688 */ // Label 43: @1688
837 /* 1688 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(1738), // Rule ID 50 //
838 /* 1693 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
839 /* 1697 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
840 /* 1701 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
841 /* 1705 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
842 /* 1709 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
843 /* 1714 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
844 /* 1719 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
845 /* 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)
846 /* 1721 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorS),
847 /* 1724 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
848 /* 1726 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
849 /* 1728 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
850 /* 1732 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
851 /* 1736 */ GIR_RootConstrainSelectedInstOperands,
852 /* 1737 */ // GIR_Coverage, 50,
853 /* 1737 */ GIR_EraseRootFromParent_Done,
854 /* 1738 */ // Label 44: @1738
855 /* 1738 */ GIM_Reject,
856 /* 1739 */ // Label 40: @1739
857 /* 1739 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(1784), // Rule ID 2 //
858 /* 1744 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
859 /* 1748 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
860 /* 1752 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
861 /* 1756 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
862 /* 1760 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
863 /* 1765 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
864 /* 1769 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
865 /* 1771 */ // (assigntype:{ *:[f64] } (fneg:{ *:[f64] } fID:{ *:[f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegate:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src)
866 /* 1771 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegate),
867 /* 1774 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
868 /* 1776 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
869 /* 1778 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
870 /* 1782 */ GIR_RootConstrainSelectedInstOperands,
871 /* 1783 */ // GIR_Coverage, 2,
872 /* 1783 */ GIR_EraseRootFromParent_Done,
873 /* 1784 */ // Label 45: @1784
874 /* 1784 */ GIM_Reject,
875 /* 1785 */ // Label 5: @1785
876 /* 1785 */ GIM_Reject,
877 /* 1786 */ // Label 2: @1786
878 /* 1786 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(1940),
879 /* 1791 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_p0s64,
880 /* 1794 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
881 /* 1797 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
882 /* 1801 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
883 /* 1805 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(1872), // Rule ID 54 //
884 /* 1810 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
885 /* 1814 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
886 /* 1818 */ GIM_CheckType, /*MI*/1, /*Op*/0, /*Type*/GILLT_p0s64,
887 /* 1822 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
888 /* 1826 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
889 /* 1830 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
890 /* 1834 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
891 /* 1839 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
892 /* 1844 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
893 /* 1849 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
894 /* 1851 */ // (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)
895 /* 1851 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPSCond),
896 /* 1854 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
897 /* 1856 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
898 /* 1858 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
899 /* 1862 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
900 /* 1866 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
901 /* 1870 */ GIR_RootConstrainSelectedInstOperands,
902 /* 1871 */ // GIR_Coverage, 54,
903 /* 1871 */ GIR_EraseRootFromParent_Done,
904 /* 1872 */ // Label 47: @1872
905 /* 1872 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(1939), // Rule ID 55 //
906 /* 1877 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
907 /* 1881 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
908 /* 1885 */ GIM_CheckType, /*MI*/1, /*Op*/0, /*Type*/GILLT_p0s64,
909 /* 1889 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
910 /* 1893 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
911 /* 1897 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
912 /* 1901 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
913 /* 1906 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
914 /* 1911 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
915 /* 1916 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
916 /* 1918 */ // (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)
917 /* 1918 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPVCond),
918 /* 1921 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
919 /* 1923 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
920 /* 1925 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
921 /* 1929 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
922 /* 1933 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
923 /* 1937 */ GIR_RootConstrainSelectedInstOperands,
924 /* 1938 */ // GIR_Coverage, 55,
925 /* 1938 */ GIR_EraseRootFromParent_Done,
926 /* 1939 */ // Label 48: @1939
927 /* 1939 */ GIM_Reject,
928 /* 1940 */ // Label 46: @1940
929 /* 1940 */ GIM_Reject,
930 /* 1941 */ // Label 3: @1941
931 /* 1941 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(3498),
932 /* 1946 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
933 /* 1949 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
934 /* 1952 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(2092),
935 /* 1957 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
936 /* 1961 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
937 /* 1965 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(2028), // Rule ID 62 //
938 /* 1970 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
939 /* 1974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
940 /* 1978 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
941 /* 1982 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
942 /* 1986 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
943 /* 1990 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
944 /* 1995 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
945 /* 2000 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
946 /* 2005 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
947 /* 2007 */ // (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)
948 /* 2007 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVISCond),
949 /* 2010 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
950 /* 2012 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
951 /* 2014 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
952 /* 2018 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
953 /* 2022 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
954 /* 2026 */ GIR_RootConstrainSelectedInstOperands,
955 /* 2027 */ // GIR_Coverage, 62,
956 /* 2027 */ GIR_EraseRootFromParent_Done,
957 /* 2028 */ // Label 51: @2028
958 /* 2028 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(2091), // Rule ID 63 //
959 /* 2033 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
960 /* 2037 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
961 /* 2041 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
962 /* 2045 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
963 /* 2049 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
964 /* 2053 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
965 /* 2058 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
966 /* 2063 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
967 /* 2068 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
968 /* 2070 */ // (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)
969 /* 2070 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVIVCond),
970 /* 2073 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
971 /* 2075 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
972 /* 2077 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
973 /* 2081 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
974 /* 2085 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
975 /* 2089 */ GIR_RootConstrainSelectedInstOperands,
976 /* 2090 */ // GIR_Coverage, 63,
977 /* 2090 */ GIR_EraseRootFromParent_Done,
978 /* 2091 */ // Label 52: @2091
979 /* 2091 */ GIM_Reject,
980 /* 2092 */ // Label 50: @2092
981 /* 2092 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(2232),
982 /* 2097 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
983 /* 2101 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
984 /* 2105 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(2168), // Rule ID 64 //
985 /* 2110 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
986 /* 2114 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
987 /* 2118 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
988 /* 2122 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
989 /* 2126 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
990 /* 2130 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
991 /* 2135 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
992 /* 2140 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
993 /* 2145 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
994 /* 2147 */ // (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)
995 /* 2147 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFSCond),
996 /* 2150 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
997 /* 2152 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
998 /* 2154 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
999 /* 2158 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
1000 /* 2162 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
1001 /* 2166 */ GIR_RootConstrainSelectedInstOperands,
1002 /* 2167 */ // GIR_Coverage, 64,
1003 /* 2167 */ GIR_EraseRootFromParent_Done,
1004 /* 2168 */ // Label 54: @2168
1005 /* 2168 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(2231), // Rule ID 65 //
1006 /* 2173 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1007 /* 2177 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
1008 /* 2181 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1009 /* 2185 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1010 /* 2189 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
1011 /* 2193 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1012 /* 2198 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1013 /* 2203 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1014 /* 2208 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1015 /* 2210 */ // (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)
1016 /* 2210 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFVCond),
1017 /* 2213 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1018 /* 2215 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1019 /* 2217 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
1020 /* 2221 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
1021 /* 2225 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
1022 /* 2229 */ GIR_RootConstrainSelectedInstOperands,
1023 /* 2230 */ // GIR_Coverage, 65,
1024 /* 2230 */ GIR_EraseRootFromParent_Done,
1025 /* 2231 */ // Label 55: @2231
1026 /* 2231 */ GIM_Reject,
1027 /* 2232 */ // Label 53: @2232
1028 /* 2232 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(2396),
1029 /* 2237 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1030 /* 2241 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1031 /* 2245 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(2295), // Rule ID 5 //
1032 /* 2250 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1033 /* 2254 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
1034 /* 2258 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1035 /* 2262 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1036 /* 2266 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1037 /* 2271 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1038 /* 2276 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1039 /* 2278 */ // (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)
1040 /* 2278 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddV),
1041 /* 2281 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1042 /* 2283 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1043 /* 2285 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1044 /* 2289 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1045 /* 2293 */ GIR_RootConstrainSelectedInstOperands,
1046 /* 2294 */ // GIR_Coverage, 5,
1047 /* 2294 */ GIR_EraseRootFromParent_Done,
1048 /* 2295 */ // Label 57: @2295
1049 /* 2295 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(2345), // Rule ID 53 //
1050 /* 2300 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1051 /* 2304 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1052 /* 2308 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1053 /* 2312 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1054 /* 2316 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1055 /* 2321 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1056 /* 2326 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1057 /* 2328 */ // (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)
1058 /* 2328 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndV),
1059 /* 2331 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1060 /* 2333 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1061 /* 2335 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1062 /* 2339 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1063 /* 2343 */ GIR_RootConstrainSelectedInstOperands,
1064 /* 2344 */ // GIR_Coverage, 53,
1065 /* 2344 */ GIR_EraseRootFromParent_Done,
1066 /* 2345 */ // Label 58: @2345
1067 /* 2345 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(2395), // Rule ID 45 //
1068 /* 2350 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1069 /* 2354 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
1070 /* 2358 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1071 /* 2362 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1072 /* 2366 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1073 /* 2371 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1074 /* 2376 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1075 /* 2378 */ // (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)
1076 /* 2378 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticV),
1077 /* 2381 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1078 /* 2383 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1079 /* 2385 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1080 /* 2389 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1081 /* 2393 */ GIR_RootConstrainSelectedInstOperands,
1082 /* 2394 */ // GIR_Coverage, 45,
1083 /* 2394 */ GIR_EraseRootFromParent_Done,
1084 /* 2395 */ // Label 59: @2395
1085 /* 2395 */ GIM_Reject,
1086 /* 2396 */ // Label 56: @2396
1087 /* 2396 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(2660),
1088 /* 2401 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1089 /* 2405 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1090 /* 2409 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(2459), // Rule ID 7 //
1091 /* 2414 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1092 /* 2418 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
1093 /* 2422 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1094 /* 2426 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1095 /* 2430 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1096 /* 2435 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1097 /* 2440 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1098 /* 2442 */ // (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)
1099 /* 2442 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddV),
1100 /* 2445 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1101 /* 2447 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1102 /* 2449 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1103 /* 2453 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1104 /* 2457 */ GIR_RootConstrainSelectedInstOperands,
1105 /* 2458 */ // GIR_Coverage, 7,
1106 /* 2458 */ GIR_EraseRootFromParent_Done,
1107 /* 2459 */ // Label 61: @2459
1108 /* 2459 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(2509), // Rule ID 27 //
1109 /* 2464 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1110 /* 2468 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
1111 /* 2472 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1112 /* 2476 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1113 /* 2480 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1114 /* 2485 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1115 /* 2490 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1116 /* 2492 */ // (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)
1117 /* 2492 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivV),
1118 /* 2495 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1119 /* 2497 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1120 /* 2499 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1121 /* 2503 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1122 /* 2507 */ GIR_RootConstrainSelectedInstOperands,
1123 /* 2508 */ // GIR_Coverage, 27,
1124 /* 2508 */ GIR_EraseRootFromParent_Done,
1125 /* 2509 */ // Label 62: @2509
1126 /* 2509 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(2559), // Rule ID 19 //
1127 /* 2514 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1128 /* 2518 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
1129 /* 2522 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1130 /* 2526 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1131 /* 2530 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1132 /* 2535 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1133 /* 2540 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1134 /* 2542 */ // (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)
1135 /* 2542 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulV),
1136 /* 2545 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1137 /* 2547 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1138 /* 2549 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1139 /* 2553 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1140 /* 2557 */ GIR_RootConstrainSelectedInstOperands,
1141 /* 2558 */ // GIR_Coverage, 19,
1142 /* 2558 */ GIR_EraseRootFromParent_Done,
1143 /* 2559 */ // Label 63: @2559
1144 /* 2559 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(2609), // Rule ID 35 //
1145 /* 2564 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1146 /* 2568 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
1147 /* 2572 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1148 /* 2576 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1149 /* 2580 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1150 /* 2585 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1151 /* 2590 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1152 /* 2592 */ // (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)
1153 /* 2592 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemV),
1154 /* 2595 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1155 /* 2597 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1156 /* 2599 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1157 /* 2603 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1158 /* 2607 */ GIR_RootConstrainSelectedInstOperands,
1159 /* 2608 */ // GIR_Coverage, 35,
1160 /* 2608 */ GIR_EraseRootFromParent_Done,
1161 /* 2609 */ // Label 64: @2609
1162 /* 2609 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(2659), // Rule ID 13 //
1163 /* 2614 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1164 /* 2618 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
1165 /* 2622 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1166 /* 2626 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1167 /* 2630 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1168 /* 2635 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1169 /* 2640 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1170 /* 2642 */ // (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)
1171 /* 2642 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubV),
1172 /* 2645 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1173 /* 2647 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1174 /* 2649 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1175 /* 2653 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1176 /* 2657 */ GIR_RootConstrainSelectedInstOperands,
1177 /* 2658 */ // GIR_Coverage, 13,
1178 /* 2658 */ GIR_EraseRootFromParent_Done,
1179 /* 2659 */ // Label 65: @2659
1180 /* 2659 */ GIM_Reject,
1181 /* 2660 */ // Label 60: @2660
1182 /* 2660 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(2974),
1183 /* 2665 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1184 /* 2669 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1185 /* 2673 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(2723), // Rule ID 43 //
1186 /* 2678 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1187 /* 2682 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
1188 /* 2686 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1189 /* 2690 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1190 /* 2694 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1191 /* 2699 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1192 /* 2704 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1193 /* 2706 */ // (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)
1194 /* 2706 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalV),
1195 /* 2709 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1196 /* 2711 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1197 /* 2713 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1198 /* 2717 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1199 /* 2721 */ GIR_RootConstrainSelectedInstOperands,
1200 /* 2722 */ // GIR_Coverage, 43,
1201 /* 2722 */ GIR_EraseRootFromParent_Done,
1202 /* 2723 */ // Label 67: @2723
1203 /* 2723 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(2773), // Rule ID 17 //
1204 /* 2728 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1205 /* 2732 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1206 /* 2736 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1207 /* 2740 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1208 /* 2744 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1209 /* 2749 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1210 /* 2754 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1211 /* 2756 */ // (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)
1212 /* 2756 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulV),
1213 /* 2759 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1214 /* 2761 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1215 /* 2763 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1216 /* 2767 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1217 /* 2771 */ GIR_RootConstrainSelectedInstOperands,
1218 /* 2772 */ // GIR_Coverage, 17,
1219 /* 2772 */ GIR_EraseRootFromParent_Done,
1220 /* 2773 */ // Label 68: @2773
1221 /* 2773 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(2823), // Rule ID 49 //
1222 /* 2778 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1223 /* 2782 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
1224 /* 2786 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1225 /* 2790 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1226 /* 2794 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1227 /* 2799 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1228 /* 2804 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1229 /* 2806 */ // (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)
1230 /* 2806 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrV),
1231 /* 2809 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1232 /* 2811 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1233 /* 2813 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1234 /* 2817 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1235 /* 2821 */ GIR_RootConstrainSelectedInstOperands,
1236 /* 2822 */ // GIR_Coverage, 49,
1237 /* 2822 */ GIR_EraseRootFromParent_Done,
1238 /* 2823 */ // Label 69: @2823
1239 /* 2823 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(2873), // Rule ID 25 //
1240 /* 2828 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1241 /* 2832 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
1242 /* 2836 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1243 /* 2840 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1244 /* 2844 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1245 /* 2849 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1246 /* 2854 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1247 /* 2856 */ // (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)
1248 /* 2856 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivV),
1249 /* 2859 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1250 /* 2861 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1251 /* 2863 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1252 /* 2867 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1253 /* 2871 */ GIR_RootConstrainSelectedInstOperands,
1254 /* 2872 */ // GIR_Coverage, 25,
1255 /* 2872 */ GIR_EraseRootFromParent_Done,
1256 /* 2873 */ // Label 70: @2873
1257 /* 2873 */ GIM_Try, /*On fail goto*//*Label 71*/ GIMT_Encode4(2923), // Rule ID 47 //
1258 /* 2878 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1259 /* 2882 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
1260 /* 2886 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1261 /* 2890 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1262 /* 2894 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1263 /* 2899 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1264 /* 2904 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1265 /* 2906 */ // (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)
1266 /* 2906 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalV),
1267 /* 2909 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1268 /* 2911 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1269 /* 2913 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1270 /* 2917 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1271 /* 2921 */ GIR_RootConstrainSelectedInstOperands,
1272 /* 2922 */ // GIR_Coverage, 47,
1273 /* 2922 */ GIR_EraseRootFromParent_Done,
1274 /* 2923 */ // Label 71: @2923
1275 /* 2923 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(2973), // Rule ID 33 //
1276 /* 2928 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1277 /* 2932 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
1278 /* 2936 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1279 /* 2940 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1280 /* 2944 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1281 /* 2949 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1282 /* 2954 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1283 /* 2956 */ // (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)
1284 /* 2956 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemV),
1285 /* 2959 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1286 /* 2961 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1287 /* 2963 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1288 /* 2967 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1289 /* 2971 */ GIR_RootConstrainSelectedInstOperands,
1290 /* 2972 */ // GIR_Coverage, 33,
1291 /* 2972 */ GIR_EraseRootFromParent_Done,
1292 /* 2973 */ // Label 72: @2973
1293 /* 2973 */ GIM_Reject,
1294 /* 2974 */ // Label 66: @2974
1295 /* 2974 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(3238),
1296 /* 2979 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1297 /* 2983 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1298 /* 2987 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(3037), // Rule ID 9 //
1299 /* 2992 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1300 /* 2996 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
1301 /* 3000 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1302 /* 3004 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1303 /* 3008 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1304 /* 3013 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1305 /* 3018 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1306 /* 3020 */ // (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)
1307 /* 3020 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddV),
1308 /* 3023 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1309 /* 3025 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1310 /* 3027 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1311 /* 3031 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1312 /* 3035 */ GIR_RootConstrainSelectedInstOperands,
1313 /* 3036 */ // GIR_Coverage, 9,
1314 /* 3036 */ GIR_EraseRootFromParent_Done,
1315 /* 3037 */ // Label 74: @3037
1316 /* 3037 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(3087), // Rule ID 29 //
1317 /* 3042 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1318 /* 3046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
1319 /* 3050 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1320 /* 3054 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1321 /* 3058 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1322 /* 3063 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1323 /* 3068 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1324 /* 3070 */ // (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)
1325 /* 3070 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivV),
1326 /* 3073 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1327 /* 3075 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1328 /* 3077 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1329 /* 3081 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1330 /* 3085 */ GIR_RootConstrainSelectedInstOperands,
1331 /* 3086 */ // GIR_Coverage, 29,
1332 /* 3086 */ GIR_EraseRootFromParent_Done,
1333 /* 3087 */ // Label 75: @3087
1334 /* 3087 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(3137), // Rule ID 21 //
1335 /* 3092 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1336 /* 3096 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
1337 /* 3100 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1338 /* 3104 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1339 /* 3108 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1340 /* 3113 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1341 /* 3118 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1342 /* 3120 */ // (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)
1343 /* 3120 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulV),
1344 /* 3123 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1345 /* 3125 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1346 /* 3127 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1347 /* 3131 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1348 /* 3135 */ GIR_RootConstrainSelectedInstOperands,
1349 /* 3136 */ // GIR_Coverage, 21,
1350 /* 3136 */ GIR_EraseRootFromParent_Done,
1351 /* 3137 */ // Label 76: @3137
1352 /* 3137 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(3187), // Rule ID 37 //
1353 /* 3142 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1354 /* 3146 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
1355 /* 3150 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1356 /* 3154 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1357 /* 3158 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1358 /* 3163 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1359 /* 3168 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1360 /* 3170 */ // (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)
1361 /* 3170 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemV),
1362 /* 3173 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1363 /* 3175 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1364 /* 3177 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1365 /* 3181 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1366 /* 3185 */ GIR_RootConstrainSelectedInstOperands,
1367 /* 3186 */ // GIR_Coverage, 37,
1368 /* 3186 */ GIR_EraseRootFromParent_Done,
1369 /* 3187 */ // Label 77: @3187
1370 /* 3187 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(3237), // Rule ID 15 //
1371 /* 3192 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1372 /* 3196 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
1373 /* 3200 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1374 /* 3204 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1375 /* 3208 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1376 /* 3213 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1377 /* 3218 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1378 /* 3220 */ // (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)
1379 /* 3220 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubV),
1380 /* 3223 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1381 /* 3225 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1382 /* 3227 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1383 /* 3231 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1384 /* 3235 */ GIR_RootConstrainSelectedInstOperands,
1385 /* 3236 */ // GIR_Coverage, 15,
1386 /* 3236 */ GIR_EraseRootFromParent_Done,
1387 /* 3237 */ // Label 78: @3237
1388 /* 3237 */ GIM_Reject,
1389 /* 3238 */ // Label 73: @3238
1390 /* 3238 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(3452),
1391 /* 3243 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1392 /* 3247 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1393 /* 3251 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(3301), // Rule ID 11 //
1394 /* 3256 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1395 /* 3260 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1396 /* 3264 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1397 /* 3268 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1398 /* 3272 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1399 /* 3277 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1400 /* 3282 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1401 /* 3284 */ // (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)
1402 /* 3284 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubV),
1403 /* 3287 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1404 /* 3289 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1405 /* 3291 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1406 /* 3295 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1407 /* 3299 */ GIR_RootConstrainSelectedInstOperands,
1408 /* 3300 */ // GIR_Coverage, 11,
1409 /* 3300 */ GIR_EraseRootFromParent_Done,
1410 /* 3301 */ // Label 80: @3301
1411 /* 3301 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(3351), // Rule ID 23 //
1412 /* 3306 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1413 /* 3310 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
1414 /* 3314 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1415 /* 3318 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1416 /* 3322 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1417 /* 3327 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1418 /* 3332 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1419 /* 3334 */ // (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)
1420 /* 3334 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivV),
1421 /* 3337 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1422 /* 3339 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1423 /* 3341 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1424 /* 3345 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1425 /* 3349 */ GIR_RootConstrainSelectedInstOperands,
1426 /* 3350 */ // GIR_Coverage, 23,
1427 /* 3350 */ GIR_EraseRootFromParent_Done,
1428 /* 3351 */ // Label 81: @3351
1429 /* 3351 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(3401), // Rule ID 31 //
1430 /* 3356 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1431 /* 3360 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
1432 /* 3364 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1433 /* 3368 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1434 /* 3372 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1435 /* 3377 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1436 /* 3382 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1437 /* 3384 */ // (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)
1438 /* 3384 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModV),
1439 /* 3387 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1440 /* 3389 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1441 /* 3391 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1442 /* 3395 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1443 /* 3399 */ GIR_RootConstrainSelectedInstOperands,
1444 /* 3400 */ // GIR_Coverage, 31,
1445 /* 3400 */ GIR_EraseRootFromParent_Done,
1446 /* 3401 */ // Label 82: @3401
1447 /* 3401 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(3451), // Rule ID 51 //
1448 /* 3406 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1449 /* 3410 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
1450 /* 3414 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1451 /* 3418 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1452 /* 3422 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1453 /* 3427 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::viIDRegClassID),
1454 /* 3432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1455 /* 3434 */ // (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)
1456 /* 3434 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorV),
1457 /* 3437 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1458 /* 3439 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1459 /* 3441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1460 /* 3445 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1461 /* 3449 */ GIR_RootConstrainSelectedInstOperands,
1462 /* 3450 */ // GIR_Coverage, 51,
1463 /* 3450 */ GIR_EraseRootFromParent_Done,
1464 /* 3451 */ // Label 83: @3451
1465 /* 3451 */ GIM_Reject,
1466 /* 3452 */ // Label 79: @3452
1467 /* 3452 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(3497), // Rule ID 3 //
1468 /* 3457 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1469 /* 3461 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1470 /* 3465 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1471 /* 3469 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1472 /* 3473 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1473 /* 3478 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1474 /* 3482 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1475 /* 3484 */ // (assigntype:{ *:[v2f64] } (fneg:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegateV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src)
1476 /* 3484 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegateV),
1477 /* 3487 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1478 /* 3489 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1479 /* 3491 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1480 /* 3495 */ GIR_RootConstrainSelectedInstOperands,
1481 /* 3496 */ // GIR_Coverage, 3,
1482 /* 3496 */ GIR_EraseRootFromParent_Done,
1483 /* 3497 */ // Label 84: @3497
1484 /* 3497 */ GIM_Reject,
1485 /* 3498 */ // Label 49: @3498
1486 /* 3498 */ GIM_Reject,
1487 /* 3499 */ // Label 4: @3499
1488 /* 3499 */ GIM_Reject,
1489 /* 3500 */ // Label 0: @3500
1490 /* 3500 */ GIM_Reject,
1491 /* 3501 */ }; // Size: 3501 bytes
1492 return MatchTable0;
1493}
1494#undef GIMT_Encode2
1495#undef GIMT_Encode4
1496#undef GIMT_Encode8
1497
1498
1499#endif // GET_GLOBALISEL_IMPL
1500
1501#ifdef GET_GLOBALISEL_PREDICATES_DECL
1502
1503PredicateBitset AvailableModuleFeatures;
1504mutable PredicateBitset AvailableFunctionFeatures;
1505PredicateBitset getAvailableFeatures() const {
1506 return AvailableModuleFeatures | AvailableFunctionFeatures;
1507}
1508PredicateBitset
1509computeAvailableModuleFeatures(const SPIRVSubtarget *Subtarget) const;
1510PredicateBitset
1511computeAvailableFunctionFeatures(const SPIRVSubtarget *Subtarget,
1512 const MachineFunction *MF) const;
1513void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1514
1515#endif // GET_GLOBALISEL_PREDICATES_DECL
1516
1517#ifdef GET_GLOBALISEL_PREDICATES_INIT
1518
1519AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
1520AvailableFunctionFeatures()
1521
1522#endif // GET_GLOBALISEL_PREDICATES_INIT
1523
1524