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
10const unsigned MAX_SUBTARGET_PREDICATES = 0;
11using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
12#endif // ifdef GET_GLOBALISEL_PREDICATE_BITSET
13
14#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
15 mutable MatcherState State;
16 typedef ComplexRendererFns(SPIRVInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
17 typedef void(SPIRVInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
18 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
19 static SPIRVInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
20 static SPIRVInstructionSelector::CustomRendererFn CustomRenderers[];
21 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
22 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
23 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
24 const uint8_t *getMatchTable() const override;
25 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
26 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
27 bool testSimplePredicate(unsigned PredicateID) const override;
28 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
29#endif // ifdef GET_GLOBALISEL_TEMPORARIES_DECL
30
31#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
32, State(0),
33ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
34#endif // ifdef GET_GLOBALISEL_TEMPORARIES_INIT
35
36#ifdef GET_GLOBALISEL_IMPL
37// LLT Objects.
38enum {
39 GILLT_p0s64,
40 GILLT_s64,
41 GILLT_v2s64,
42};
43const static size_t NumTypeObjects = 3;
44const static LLT TypeObjects[] = {
45 LLT::pointer(0, 64),
46 LLT::scalar(64),
47 LLT::vector(ElementCount::getFixed(2), 64),
48};
49
50// Bits for subtarget features that participate in instruction matching.
51enum SubtargetFeatureBits : uint8_t {
52};
53
54PredicateBitset SPIRVInstructionSelector::
55computeAvailableModuleFeatures(const SPIRVSubtarget *Subtarget) const {
56 PredicateBitset Features{};
57 return Features;
58}
59
60void SPIRVInstructionSelector::setupGeneratedPerFunctionState(MachineFunction &MF) {
61 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const SPIRVSubtarget *)&MF.getSubtarget(), &MF);
62}
63PredicateBitset SPIRVInstructionSelector::
64computeAvailableFunctionFeatures(const SPIRVSubtarget *Subtarget, const MachineFunction *MF) const {
65 PredicateBitset Features{};
66 return Features;
67}
68
69// Feature bitsets.
70enum {
71 GIFBS_Invalid,
72};
73constexpr static PredicateBitset FeatureBitsets[] {
74 {}, // GIFBS_Invalid
75};
76
77// ComplexPattern predicates.
78enum {
79 GICP_Invalid,
80};
81// See constructor for table contents
82
83SPIRVInstructionSelector::ComplexMatcherMemFn
84SPIRVInstructionSelector::ComplexPredicateFns[] = {
85 nullptr, // GICP_Invalid
86};
87
88// PatFrag predicates.
89enum {
90 GICXXPred_MI_Predicate_ffloor_nnan = GICXXPred_Invalid + 1,
91 GICXXPred_MI_Predicate_or_disjoint,
92};
93bool SPIRVInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
94 const MachineFunction &MF = *MI.getParent()->getParent();
95 const MachineRegisterInfo &MRI = MF.getRegInfo();
96 const auto &Operands = State.RecordedOperands;
97 (void)Operands;
98 (void)MRI;
99 switch (PredicateID) {
100 case GICXXPred_MI_Predicate_ffloor_nnan: {
101
102 return MI.getFlag(MachineInstr::FmNoNans);
103
104 }
105 case GICXXPred_MI_Predicate_or_disjoint: {
106
107 return MI.getFlag(MachineInstr::Disjoint);
108
109 }
110 }
111 llvm_unreachable("Unknown predicate");
112 return false;
113}
114// PatFrag predicates.
115bool SPIRVInstructionSelector::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
116 const auto &Operands = State.RecordedOperands;
117 Register Reg = MO.getReg();
118 (void)Operands;
119 (void)Reg;
120 llvm_unreachable("Unknown predicate");
121 return false;
122}
123// PatFrag predicates.
124bool SPIRVInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
125 llvm_unreachable("Unknown predicate");
126 return false;
127}
128// PatFrag predicates.
129bool SPIRVInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
130 llvm_unreachable("Unknown predicate");
131 return false;
132}
133// PatFrag predicates.
134enum {
135 GICXXPred_APInt_Predicate_ConstPseudoFalse = GICXXPred_Invalid + 1,
136 GICXXPred_APInt_Predicate_ConstPseudoTrue,
137};
138bool SPIRVInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
139 switch (PredicateID) {
140 case GICXXPred_APInt_Predicate_ConstPseudoFalse: {
141 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 0;
142 }
143 case GICXXPred_APInt_Predicate_ConstPseudoTrue: {
144 return Imm.getBitWidth() == 1 && Imm.getZExtValue() == 1;
145 }
146 }
147 llvm_unreachable("Unknown predicate");
148 return false;
149}
150bool SPIRVInstructionSelector::testSimplePredicate(unsigned) const {
151 llvm_unreachable("SPIRVInstructionSelector does not support simple predicates!");
152 return false;
153}
154// Custom renderers.
155enum {
156 GICR_Invalid,
157};
158SPIRVInstructionSelector::CustomRendererFn
159SPIRVInstructionSelector::CustomRenderers[] = {
160 nullptr, // GICR_Invalid
161};
162
163bool SPIRVInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
164 const PredicateBitset AvailableFeatures = getAvailableFeatures();
165 MachineIRBuilder B(I);
166 State.MIs.clear();
167 State.MIs.push_back(&I);
168
169 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), TII, MF->getRegInfo(), TRI, RBI, AvailableFeatures, &CoverageInfo)) {
170 return true;
171 }
172
173 return false;
174}
175
176bool SPIRVInstructionSelector::runCustomAction(unsigned, const MatcherState&, NewMIVector &) const {
177 llvm_unreachable("SPIRVInstructionSelector does not support custom C++ actions!");
178}
179#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
180#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
181#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
182#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)
183#else
184#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
185#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
186#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)
187#endif
188const uint8_t *SPIRVInstructionSelector::getMatchTable() const {
189 constexpr static uint8_t MatchTable0[] = {
190 /* 0 */ GIM_Try, /*On fail goto*//*Label 0*/ GIMT_Encode4(3746),
191 /* 5 */ GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(SPIRV::ASSIGN_TYPE),
192 /* 9 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 4*/ GIMT_Encode4(3745),
193 /* 20 */ /*GILLT_p0s64*//*Label 1*/ GIMT_Encode4(32),
194 /* 24 */ /*GILLT_s64*//*Label 2*/ GIMT_Encode4(179),
195 /* 28 */ /*GILLT_v2s64*//*Label 3*/ GIMT_Encode4(2069),
196 /* 32 */ // Label 1: @32
197 /* 32 */ GIM_Try, /*On fail goto*//*Label 5*/ GIMT_Encode4(178),
198 /* 37 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_p0s64,
199 /* 40 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
200 /* 43 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
201 /* 47 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
202 /* 51 */ GIM_Try, /*On fail goto*//*Label 6*/ GIMT_Encode4(114), // Rule ID 54 //
203 /* 56 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
204 /* 60 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
205 /* 64 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
206 /* 68 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
207 /* 72 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
208 /* 76 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
209 /* 81 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
210 /* 86 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
211 /* 91 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
212 /* 93 */ // (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)
213 /* 93 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPSCond),
214 /* 96 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
215 /* 98 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
216 /* 100 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
217 /* 104 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
218 /* 108 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
219 /* 112 */ GIR_RootConstrainSelectedInstOperands,
220 /* 113 */ // GIR_Coverage, 54,
221 /* 113 */ GIR_EraseRootFromParent_Done,
222 /* 114 */ // Label 6: @114
223 /* 114 */ GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4(177), // Rule ID 55 //
224 /* 119 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
225 /* 123 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
226 /* 127 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
227 /* 131 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_p0s64,
228 /* 135 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_p0s64,
229 /* 139 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
230 /* 144 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
231 /* 149 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::pIDRegClassID),
232 /* 154 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
233 /* 156 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } vID:{ *:[v2i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSPVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, pID:{ *:[i64] }:$src1, pID:{ *:[i64] }:$src2)
234 /* 156 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSPVCond),
235 /* 159 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
236 /* 161 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
237 /* 163 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
238 /* 167 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
239 /* 171 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
240 /* 175 */ GIR_RootConstrainSelectedInstOperands,
241 /* 176 */ // GIR_Coverage, 55,
242 /* 176 */ GIR_EraseRootFromParent_Done,
243 /* 177 */ // Label 7: @177
244 /* 177 */ GIM_Reject,
245 /* 178 */ // Label 5: @178
246 /* 178 */ GIM_Reject,
247 /* 179 */ // Label 2: @179
248 /* 179 */ GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4(2068),
249 /* 184 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
250 /* 187 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
251 /* 190 */ GIM_Try, /*On fail goto*//*Label 9*/ GIMT_Encode4(226), // Rule ID 0 //
252 /* 195 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
253 /* 199 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
254 /* 203 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
255 /* 207 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoTrue),
256 /* 211 */ // MIs[1] Operand 1
257 /* 211 */ // No operand predicates
258 /* 211 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
259 /* 215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
260 /* 217 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoTrue>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantTrue:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
261 /* 217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantTrue),
262 /* 220 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
263 /* 222 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
264 /* 224 */ GIR_RootConstrainSelectedInstOperands,
265 /* 225 */ // GIR_Coverage, 0,
266 /* 225 */ GIR_EraseRootFromParent_Done,
267 /* 226 */ // Label 9: @226
268 /* 226 */ GIM_Try, /*On fail goto*//*Label 10*/ GIMT_Encode4(262), // Rule ID 1 //
269 /* 231 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
270 /* 235 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
271 /* 239 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
272 /* 243 */ GIM_CheckAPIntImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_ConstPseudoFalse),
273 /* 247 */ // MIs[1] Operand 1
274 /* 247 */ // No operand predicates
275 /* 247 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
276 /* 251 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
277 /* 253 */ // (assigntype:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_ConstPseudoFalse>>, TYPE:{ *:[i64] }:$src_ty) => (OpConstantFalse:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty)
278 /* 253 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpConstantFalse),
279 /* 256 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
280 /* 258 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
281 /* 260 */ GIR_RootConstrainSelectedInstOperands,
282 /* 261 */ // GIR_Coverage, 1,
283 /* 261 */ GIR_EraseRootFromParent_Done,
284 /* 262 */ // Label 10: @262
285 /* 262 */ GIM_Try, /*On fail goto*//*Label 11*/ GIMT_Encode4(333), // Rule ID 56 //
286 /* 267 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
287 /* 271 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
288 /* 275 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
289 /* 279 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
290 /* 283 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
291 /* 287 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
292 /* 291 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
293 /* 296 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
294 /* 301 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
295 /* 306 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
296 /* 310 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
297 /* 312 */ // (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)
298 /* 312 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSISCond),
299 /* 315 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
300 /* 317 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
301 /* 319 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
302 /* 323 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
303 /* 327 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
304 /* 331 */ GIR_RootConstrainSelectedInstOperands,
305 /* 332 */ // GIR_Coverage, 56,
306 /* 332 */ GIR_EraseRootFromParent_Done,
307 /* 333 */ // Label 11: @333
308 /* 333 */ GIM_Try, /*On fail goto*//*Label 12*/ GIMT_Encode4(404), // Rule ID 57 //
309 /* 338 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
310 /* 342 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
311 /* 346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
312 /* 350 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
313 /* 354 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
314 /* 358 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
315 /* 362 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
316 /* 367 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
317 /* 372 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
318 /* 377 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
319 /* 381 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
320 /* 383 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } vID:{ *:[v2i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSIVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, iID:{ *:[i64] }:$src1, iID:{ *:[i64] }:$src2)
321 /* 383 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSIVCond),
322 /* 386 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
323 /* 388 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
324 /* 390 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
325 /* 394 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
326 /* 398 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
327 /* 402 */ GIR_RootConstrainSelectedInstOperands,
328 /* 403 */ // GIR_Coverage, 57,
329 /* 403 */ GIR_EraseRootFromParent_Done,
330 /* 404 */ // Label 12: @404
331 /* 404 */ GIM_Try, /*On fail goto*//*Label 13*/ GIMT_Encode4(475), // Rule ID 58 //
332 /* 409 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
333 /* 413 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
334 /* 417 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
335 /* 421 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
336 /* 425 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
337 /* 429 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
338 /* 433 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
339 /* 438 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
340 /* 443 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
341 /* 448 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
342 /* 452 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
343 /* 454 */ // (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)
344 /* 454 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFSCond),
345 /* 457 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
346 /* 459 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
347 /* 461 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
348 /* 465 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
349 /* 469 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
350 /* 473 */ GIR_RootConstrainSelectedInstOperands,
351 /* 474 */ // GIR_Coverage, 58,
352 /* 474 */ GIR_EraseRootFromParent_Done,
353 /* 475 */ // Label 13: @475
354 /* 475 */ GIM_Try, /*On fail goto*//*Label 14*/ GIMT_Encode4(546), // Rule ID 59 //
355 /* 480 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
356 /* 484 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
357 /* 488 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
358 /* 492 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
359 /* 496 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
360 /* 500 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
361 /* 504 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
362 /* 509 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
363 /* 514 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
364 /* 519 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
365 /* 523 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
366 /* 525 */ // (assigntype:{ *:[f64] } (select:{ *:[f64] } vID:{ *:[v2i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectSFVCond:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, fID:{ *:[f64] }:$src1, fID:{ *:[f64] }:$src2)
367 /* 525 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectSFVCond),
368 /* 528 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
369 /* 530 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
370 /* 532 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
371 /* 536 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
372 /* 540 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
373 /* 544 */ GIR_RootConstrainSelectedInstOperands,
374 /* 545 */ // GIR_Coverage, 59,
375 /* 545 */ GIR_EraseRootFromParent_Done,
376 /* 546 */ // Label 14: @546
377 /* 546 */ GIM_Try, /*On fail goto*//*Label 15*/ GIMT_Encode4(617), // Rule ID 60 //
378 /* 551 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
379 /* 555 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
380 /* 559 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
381 /* 563 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
382 /* 567 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
383 /* 571 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
384 /* 575 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
385 /* 580 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
386 /* 585 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
387 /* 590 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
388 /* 594 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
389 /* 596 */ // (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)
390 /* 596 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPSCond),
391 /* 599 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
392 /* 601 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
393 /* 603 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
394 /* 607 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
395 /* 611 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
396 /* 615 */ GIR_RootConstrainSelectedInstOperands,
397 /* 616 */ // GIR_Coverage, 60,
398 /* 616 */ GIR_EraseRootFromParent_Done,
399 /* 617 */ // Label 15: @617
400 /* 617 */ GIM_Try, /*On fail goto*//*Label 16*/ GIMT_Encode4(688), // Rule ID 61 //
401 /* 622 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
402 /* 626 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
403 /* 630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
404 /* 634 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
405 /* 638 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
406 /* 642 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
407 /* 646 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
408 /* 651 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
409 /* 656 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vpIDRegClassID),
410 /* 661 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
411 /* 665 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
412 /* 667 */ // (assigntype:{ *:[i64] } (select:{ *:[i64] } vID:{ *:[v2i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVPVCond:{ *:[i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, vpID:{ *:[i64] }:$src1, vpID:{ *:[i64] }:$src2)
413 /* 667 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVPVCond),
414 /* 670 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
415 /* 672 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
416 /* 674 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
417 /* 678 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
418 /* 682 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
419 /* 686 */ GIR_RootConstrainSelectedInstOperands,
420 /* 687 */ // GIR_Coverage, 61,
421 /* 687 */ GIR_EraseRootFromParent_Done,
422 /* 688 */ // Label 16: @688
423 /* 688 */ GIM_Try, /*On fail goto*//*Label 17*/ GIMT_Encode4(746), // Rule ID 4 //
424 /* 693 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
425 /* 697 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
426 /* 701 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
427 /* 705 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
428 /* 709 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
429 /* 713 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
430 /* 718 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
431 /* 723 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
432 /* 727 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
433 /* 729 */ // (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)
434 /* 729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddS),
435 /* 732 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
436 /* 734 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
437 /* 736 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
438 /* 740 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
439 /* 744 */ GIR_RootConstrainSelectedInstOperands,
440 /* 745 */ // GIR_Coverage, 4,
441 /* 745 */ GIR_EraseRootFromParent_Done,
442 /* 746 */ // Label 17: @746
443 /* 746 */ GIM_Try, /*On fail goto*//*Label 18*/ GIMT_Encode4(804), // Rule ID 52 //
444 /* 751 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
445 /* 755 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
446 /* 759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
447 /* 763 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
448 /* 767 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
449 /* 771 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
450 /* 776 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
451 /* 781 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
452 /* 785 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
453 /* 787 */ // (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)
454 /* 787 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndS),
455 /* 790 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
456 /* 792 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
457 /* 794 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
458 /* 798 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
459 /* 802 */ GIR_RootConstrainSelectedInstOperands,
460 /* 803 */ // GIR_Coverage, 52,
461 /* 803 */ GIR_EraseRootFromParent_Done,
462 /* 804 */ // Label 18: @804
463 /* 804 */ GIM_Try, /*On fail goto*//*Label 19*/ GIMT_Encode4(862), // Rule ID 44 //
464 /* 809 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
465 /* 813 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
466 /* 817 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
467 /* 821 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
468 /* 825 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
469 /* 829 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
470 /* 834 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
471 /* 839 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
472 /* 843 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
473 /* 845 */ // (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)
474 /* 845 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticS),
475 /* 848 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
476 /* 850 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
477 /* 852 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
478 /* 856 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
479 /* 860 */ GIR_RootConstrainSelectedInstOperands,
480 /* 861 */ // GIR_Coverage, 44,
481 /* 861 */ GIR_EraseRootFromParent_Done,
482 /* 862 */ // Label 19: @862
483 /* 862 */ GIM_Try, /*On fail goto*//*Label 20*/ GIMT_Encode4(920), // Rule ID 6 //
484 /* 867 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
485 /* 871 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
486 /* 875 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
487 /* 879 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
488 /* 883 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
489 /* 887 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
490 /* 892 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
491 /* 897 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
492 /* 901 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
493 /* 903 */ // (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)
494 /* 903 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddS),
495 /* 906 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
496 /* 908 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
497 /* 910 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
498 /* 914 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
499 /* 918 */ GIR_RootConstrainSelectedInstOperands,
500 /* 919 */ // GIR_Coverage, 6,
501 /* 919 */ GIR_EraseRootFromParent_Done,
502 /* 920 */ // Label 20: @920
503 /* 920 */ GIM_Try, /*On fail goto*//*Label 21*/ GIMT_Encode4(978), // Rule ID 26 //
504 /* 925 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
505 /* 929 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
506 /* 933 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
507 /* 937 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
508 /* 941 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
509 /* 945 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
510 /* 950 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
511 /* 955 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
512 /* 959 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
513 /* 961 */ // (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)
514 /* 961 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivS),
515 /* 964 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
516 /* 966 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
517 /* 968 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
518 /* 972 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
519 /* 976 */ GIR_RootConstrainSelectedInstOperands,
520 /* 977 */ // GIR_Coverage, 26,
521 /* 977 */ GIR_EraseRootFromParent_Done,
522 /* 978 */ // Label 21: @978
523 /* 978 */ GIM_Try, /*On fail goto*//*Label 22*/ GIMT_Encode4(1036), // Rule ID 18 //
524 /* 983 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
525 /* 987 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
526 /* 991 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
527 /* 995 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
528 /* 999 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
529 /* 1003 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
530 /* 1008 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
531 /* 1013 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
532 /* 1017 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
533 /* 1019 */ // (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)
534 /* 1019 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulS),
535 /* 1022 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
536 /* 1024 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
537 /* 1026 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
538 /* 1030 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
539 /* 1034 */ GIR_RootConstrainSelectedInstOperands,
540 /* 1035 */ // GIR_Coverage, 18,
541 /* 1035 */ GIR_EraseRootFromParent_Done,
542 /* 1036 */ // Label 22: @1036
543 /* 1036 */ GIM_Try, /*On fail goto*//*Label 23*/ GIMT_Encode4(1094), // Rule ID 34 //
544 /* 1041 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
545 /* 1045 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
546 /* 1049 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
547 /* 1053 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
548 /* 1057 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
549 /* 1061 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
550 /* 1066 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
551 /* 1071 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
552 /* 1075 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
553 /* 1077 */ // (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)
554 /* 1077 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemS),
555 /* 1080 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
556 /* 1082 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
557 /* 1084 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
558 /* 1088 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
559 /* 1092 */ GIR_RootConstrainSelectedInstOperands,
560 /* 1093 */ // GIR_Coverage, 34,
561 /* 1093 */ GIR_EraseRootFromParent_Done,
562 /* 1094 */ // Label 23: @1094
563 /* 1094 */ GIM_Try, /*On fail goto*//*Label 24*/ GIMT_Encode4(1152), // Rule ID 12 //
564 /* 1099 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
565 /* 1103 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
566 /* 1107 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
567 /* 1111 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
568 /* 1115 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
569 /* 1119 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
570 /* 1124 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
571 /* 1129 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
572 /* 1133 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
573 /* 1135 */ // (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)
574 /* 1135 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubS),
575 /* 1138 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
576 /* 1140 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
577 /* 1142 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
578 /* 1146 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
579 /* 1150 */ GIR_RootConstrainSelectedInstOperands,
580 /* 1151 */ // GIR_Coverage, 12,
581 /* 1151 */ GIR_EraseRootFromParent_Done,
582 /* 1152 */ // Label 24: @1152
583 /* 1152 */ GIM_Try, /*On fail goto*//*Label 25*/ GIMT_Encode4(1210), // Rule ID 42 //
584 /* 1157 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
585 /* 1161 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
586 /* 1165 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
587 /* 1169 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
588 /* 1173 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
589 /* 1177 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
590 /* 1182 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
591 /* 1187 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
592 /* 1191 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
593 /* 1193 */ // (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)
594 /* 1193 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalS),
595 /* 1196 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
596 /* 1198 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
597 /* 1200 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
598 /* 1204 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
599 /* 1208 */ GIR_RootConstrainSelectedInstOperands,
600 /* 1209 */ // GIR_Coverage, 42,
601 /* 1209 */ GIR_EraseRootFromParent_Done,
602 /* 1210 */ // Label 25: @1210
603 /* 1210 */ GIM_Try, /*On fail goto*//*Label 26*/ GIMT_Encode4(1268), // Rule ID 16 //
604 /* 1215 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
605 /* 1219 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
606 /* 1223 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
607 /* 1227 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
608 /* 1231 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
609 /* 1235 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
610 /* 1240 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
611 /* 1245 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
612 /* 1249 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
613 /* 1251 */ // (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)
614 /* 1251 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulS),
615 /* 1254 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
616 /* 1256 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
617 /* 1258 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
618 /* 1262 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
619 /* 1266 */ GIR_RootConstrainSelectedInstOperands,
620 /* 1267 */ // GIR_Coverage, 16,
621 /* 1267 */ GIR_EraseRootFromParent_Done,
622 /* 1268 */ // Label 26: @1268
623 /* 1268 */ GIM_Try, /*On fail goto*//*Label 27*/ GIMT_Encode4(1326), // Rule ID 48 //
624 /* 1273 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
625 /* 1277 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
626 /* 1281 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
627 /* 1285 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
628 /* 1289 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
629 /* 1293 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
630 /* 1298 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
631 /* 1303 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
632 /* 1307 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
633 /* 1309 */ // (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)
634 /* 1309 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrS),
635 /* 1312 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
636 /* 1314 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
637 /* 1316 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
638 /* 1320 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
639 /* 1324 */ GIR_RootConstrainSelectedInstOperands,
640 /* 1325 */ // GIR_Coverage, 48,
641 /* 1325 */ GIR_EraseRootFromParent_Done,
642 /* 1326 */ // Label 27: @1326
643 /* 1326 */ GIM_Try, /*On fail goto*//*Label 28*/ GIMT_Encode4(1384), // Rule ID 24 //
644 /* 1331 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
645 /* 1335 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
646 /* 1339 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
647 /* 1343 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
648 /* 1347 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
649 /* 1351 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
650 /* 1356 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
651 /* 1361 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
652 /* 1365 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
653 /* 1367 */ // (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)
654 /* 1367 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivS),
655 /* 1370 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
656 /* 1372 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
657 /* 1374 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
658 /* 1378 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
659 /* 1382 */ GIR_RootConstrainSelectedInstOperands,
660 /* 1383 */ // GIR_Coverage, 24,
661 /* 1383 */ GIR_EraseRootFromParent_Done,
662 /* 1384 */ // Label 28: @1384
663 /* 1384 */ GIM_Try, /*On fail goto*//*Label 29*/ GIMT_Encode4(1442), // Rule ID 46 //
664 /* 1389 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
665 /* 1393 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
666 /* 1397 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
667 /* 1401 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
668 /* 1405 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
669 /* 1409 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
670 /* 1414 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
671 /* 1419 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
672 /* 1423 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
673 /* 1425 */ // (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)
674 /* 1425 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalS),
675 /* 1428 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
676 /* 1430 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
677 /* 1432 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
678 /* 1436 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
679 /* 1440 */ GIR_RootConstrainSelectedInstOperands,
680 /* 1441 */ // GIR_Coverage, 46,
681 /* 1441 */ GIR_EraseRootFromParent_Done,
682 /* 1442 */ // Label 29: @1442
683 /* 1442 */ GIM_Try, /*On fail goto*//*Label 30*/ GIMT_Encode4(1500), // Rule ID 32 //
684 /* 1447 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
685 /* 1451 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
686 /* 1455 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
687 /* 1459 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
688 /* 1463 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
689 /* 1467 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
690 /* 1472 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
691 /* 1477 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
692 /* 1481 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
693 /* 1483 */ // (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)
694 /* 1483 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemS),
695 /* 1486 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
696 /* 1488 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
697 /* 1490 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
698 /* 1494 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
699 /* 1498 */ GIR_RootConstrainSelectedInstOperands,
700 /* 1499 */ // GIR_Coverage, 32,
701 /* 1499 */ GIR_EraseRootFromParent_Done,
702 /* 1500 */ // Label 30: @1500
703 /* 1500 */ GIM_Try, /*On fail goto*//*Label 31*/ GIMT_Encode4(1558), // Rule ID 8 //
704 /* 1505 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
705 /* 1509 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
706 /* 1513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
707 /* 1517 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
708 /* 1521 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
709 /* 1525 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
710 /* 1530 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
711 /* 1535 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
712 /* 1539 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
713 /* 1541 */ // (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)
714 /* 1541 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddS),
715 /* 1544 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
716 /* 1546 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
717 /* 1548 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
718 /* 1552 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
719 /* 1556 */ GIR_RootConstrainSelectedInstOperands,
720 /* 1557 */ // GIR_Coverage, 8,
721 /* 1557 */ GIR_EraseRootFromParent_Done,
722 /* 1558 */ // Label 31: @1558
723 /* 1558 */ GIM_Try, /*On fail goto*//*Label 32*/ GIMT_Encode4(1616), // Rule ID 28 //
724 /* 1563 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
725 /* 1567 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
726 /* 1571 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
727 /* 1575 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
728 /* 1579 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
729 /* 1583 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
730 /* 1588 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
731 /* 1593 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
732 /* 1597 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
733 /* 1599 */ // (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)
734 /* 1599 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivS),
735 /* 1602 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
736 /* 1604 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
737 /* 1606 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
738 /* 1610 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
739 /* 1614 */ GIR_RootConstrainSelectedInstOperands,
740 /* 1615 */ // GIR_Coverage, 28,
741 /* 1615 */ GIR_EraseRootFromParent_Done,
742 /* 1616 */ // Label 32: @1616
743 /* 1616 */ GIM_Try, /*On fail goto*//*Label 33*/ GIMT_Encode4(1674), // Rule ID 20 //
744 /* 1621 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
745 /* 1625 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
746 /* 1629 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
747 /* 1633 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
748 /* 1637 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
749 /* 1641 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
750 /* 1646 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
751 /* 1651 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
752 /* 1655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
753 /* 1657 */ // (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)
754 /* 1657 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulS),
755 /* 1660 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
756 /* 1662 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
757 /* 1664 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
758 /* 1668 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
759 /* 1672 */ GIR_RootConstrainSelectedInstOperands,
760 /* 1673 */ // GIR_Coverage, 20,
761 /* 1673 */ GIR_EraseRootFromParent_Done,
762 /* 1674 */ // Label 33: @1674
763 /* 1674 */ GIM_Try, /*On fail goto*//*Label 34*/ GIMT_Encode4(1732), // Rule ID 36 //
764 /* 1679 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
765 /* 1683 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
766 /* 1687 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
767 /* 1691 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
768 /* 1695 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
769 /* 1699 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
770 /* 1704 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
771 /* 1709 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
772 /* 1713 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
773 /* 1715 */ // (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)
774 /* 1715 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemS),
775 /* 1718 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
776 /* 1720 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
777 /* 1722 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
778 /* 1726 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
779 /* 1730 */ GIR_RootConstrainSelectedInstOperands,
780 /* 1731 */ // GIR_Coverage, 36,
781 /* 1731 */ GIR_EraseRootFromParent_Done,
782 /* 1732 */ // Label 34: @1732
783 /* 1732 */ GIM_Try, /*On fail goto*//*Label 35*/ GIMT_Encode4(1790), // Rule ID 14 //
784 /* 1737 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
785 /* 1741 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
786 /* 1745 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
787 /* 1749 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
788 /* 1753 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
789 /* 1757 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
790 /* 1762 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
791 /* 1767 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
792 /* 1771 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
793 /* 1773 */ // (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)
794 /* 1773 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubS),
795 /* 1776 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
796 /* 1778 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
797 /* 1780 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
798 /* 1784 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
799 /* 1788 */ GIR_RootConstrainSelectedInstOperands,
800 /* 1789 */ // GIR_Coverage, 14,
801 /* 1789 */ GIR_EraseRootFromParent_Done,
802 /* 1790 */ // Label 35: @1790
803 /* 1790 */ GIM_Try, /*On fail goto*//*Label 36*/ GIMT_Encode4(1848), // Rule ID 10 //
804 /* 1795 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
805 /* 1799 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
806 /* 1803 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
807 /* 1807 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
808 /* 1811 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
809 /* 1815 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
810 /* 1820 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
811 /* 1825 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
812 /* 1829 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
813 /* 1831 */ // (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)
814 /* 1831 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubS),
815 /* 1834 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
816 /* 1836 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
817 /* 1838 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
818 /* 1842 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
819 /* 1846 */ GIR_RootConstrainSelectedInstOperands,
820 /* 1847 */ // GIR_Coverage, 10,
821 /* 1847 */ GIR_EraseRootFromParent_Done,
822 /* 1848 */ // Label 36: @1848
823 /* 1848 */ GIM_Try, /*On fail goto*//*Label 37*/ GIMT_Encode4(1906), // Rule ID 22 //
824 /* 1853 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
825 /* 1857 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
826 /* 1861 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
827 /* 1865 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
828 /* 1869 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
829 /* 1873 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
830 /* 1878 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
831 /* 1883 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
832 /* 1887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
833 /* 1889 */ // (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)
834 /* 1889 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivS),
835 /* 1892 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
836 /* 1894 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
837 /* 1896 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
838 /* 1900 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
839 /* 1904 */ GIR_RootConstrainSelectedInstOperands,
840 /* 1905 */ // GIR_Coverage, 22,
841 /* 1905 */ GIR_EraseRootFromParent_Done,
842 /* 1906 */ // Label 37: @1906
843 /* 1906 */ GIM_Try, /*On fail goto*//*Label 38*/ GIMT_Encode4(1964), // Rule ID 30 //
844 /* 1911 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
845 /* 1915 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
846 /* 1919 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
847 /* 1923 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
848 /* 1927 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
849 /* 1931 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
850 /* 1936 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
851 /* 1941 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
852 /* 1945 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
853 /* 1947 */ // (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)
854 /* 1947 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModS),
855 /* 1950 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
856 /* 1952 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
857 /* 1954 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
858 /* 1958 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
859 /* 1962 */ GIR_RootConstrainSelectedInstOperands,
860 /* 1963 */ // GIR_Coverage, 30,
861 /* 1963 */ GIR_EraseRootFromParent_Done,
862 /* 1964 */ // Label 38: @1964
863 /* 1964 */ GIM_Try, /*On fail goto*//*Label 39*/ GIMT_Encode4(2022), // Rule ID 50 //
864 /* 1969 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
865 /* 1973 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
866 /* 1977 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
867 /* 1981 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
868 /* 1985 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
869 /* 1989 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
870 /* 1994 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
871 /* 1999 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
872 /* 2003 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
873 /* 2005 */ // (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)
874 /* 2005 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorS),
875 /* 2008 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
876 /* 2010 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
877 /* 2012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
878 /* 2016 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
879 /* 2020 */ GIR_RootConstrainSelectedInstOperands,
880 /* 2021 */ // GIR_Coverage, 50,
881 /* 2021 */ GIR_EraseRootFromParent_Done,
882 /* 2022 */ // Label 39: @2022
883 /* 2022 */ GIM_Try, /*On fail goto*//*Label 40*/ GIMT_Encode4(2067), // Rule ID 2 //
884 /* 2027 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
885 /* 2031 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
886 /* 2035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
887 /* 2039 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
888 /* 2043 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::fIDRegClassID),
889 /* 2048 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
890 /* 2052 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
891 /* 2054 */ // (assigntype:{ *:[f64] } (fneg:{ *:[f64] } fID:{ *:[f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegate:{ *:[f64] } TYPE:{ *:[i64] }:$src_ty, fID:{ *:[f64] }:$src)
892 /* 2054 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegate),
893 /* 2057 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
894 /* 2059 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
895 /* 2061 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
896 /* 2065 */ GIR_RootConstrainSelectedInstOperands,
897 /* 2066 */ // GIR_Coverage, 2,
898 /* 2066 */ GIR_EraseRootFromParent_Done,
899 /* 2067 */ // Label 40: @2067
900 /* 2067 */ GIM_Reject,
901 /* 2068 */ // Label 8: @2068
902 /* 2068 */ GIM_Reject,
903 /* 2069 */ // Label 3: @2069
904 /* 2069 */ GIM_Try, /*On fail goto*//*Label 41*/ GIMT_Encode4(3744),
905 /* 2074 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
906 /* 2077 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
907 /* 2080 */ GIM_Try, /*On fail goto*//*Label 42*/ GIMT_Encode4(2151), // Rule ID 62 //
908 /* 2085 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
909 /* 2089 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
910 /* 2093 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
911 /* 2097 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
912 /* 2101 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
913 /* 2105 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
914 /* 2109 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
915 /* 2114 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
916 /* 2119 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
917 /* 2124 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
918 /* 2128 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
919 /* 2130 */ // (assigntype:{ *:[v2i64] } (select:{ *:[v2i64] } iID:{ *:[i64] }:$cond, vID:{ *:[v2i64] }:$src1, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVISCond:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, iID:{ *:[i64] }:$cond, vID:{ *:[v2i64] }:$src1, vID:{ *:[v2i64] }:$src2)
920 /* 2130 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVISCond),
921 /* 2133 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
922 /* 2135 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
923 /* 2137 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
924 /* 2141 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
925 /* 2145 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
926 /* 2149 */ GIR_RootConstrainSelectedInstOperands,
927 /* 2150 */ // GIR_Coverage, 62,
928 /* 2150 */ GIR_EraseRootFromParent_Done,
929 /* 2151 */ // Label 42: @2151
930 /* 2151 */ GIM_Try, /*On fail goto*//*Label 43*/ GIMT_Encode4(2222), // Rule ID 63 //
931 /* 2156 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
932 /* 2160 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
933 /* 2164 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
934 /* 2168 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
935 /* 2172 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
936 /* 2176 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
937 /* 2180 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
938 /* 2185 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
939 /* 2190 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
940 /* 2195 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
941 /* 2199 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
942 /* 2201 */ // (assigntype:{ *:[v2i64] } (select:{ *:[v2i64] } vID:{ *:[v2i64] }:$cond, vID:{ *:[v2i64] }:$src1, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVIVCond:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, vID:{ *:[v2i64] }:$src1, vID:{ *:[v2i64] }:$src2)
943 /* 2201 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVIVCond),
944 /* 2204 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
945 /* 2206 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
946 /* 2208 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
947 /* 2212 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
948 /* 2216 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
949 /* 2220 */ GIR_RootConstrainSelectedInstOperands,
950 /* 2221 */ // GIR_Coverage, 63,
951 /* 2221 */ GIR_EraseRootFromParent_Done,
952 /* 2222 */ // Label 43: @2222
953 /* 2222 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(2293), // Rule ID 64 //
954 /* 2227 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
955 /* 2231 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
956 /* 2235 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
957 /* 2239 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
958 /* 2243 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
959 /* 2247 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
960 /* 2251 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::iIDRegClassID),
961 /* 2256 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
962 /* 2261 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
963 /* 2266 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
964 /* 2270 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
965 /* 2272 */ // (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)
966 /* 2272 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFSCond),
967 /* 2275 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
968 /* 2277 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
969 /* 2279 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
970 /* 2283 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
971 /* 2287 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
972 /* 2291 */ GIR_RootConstrainSelectedInstOperands,
973 /* 2292 */ // GIR_Coverage, 64,
974 /* 2292 */ GIR_EraseRootFromParent_Done,
975 /* 2293 */ // Label 44: @2293
976 /* 2293 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(2364), // Rule ID 65 //
977 /* 2298 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
978 /* 2302 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
979 /* 2306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
980 /* 2310 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
981 /* 2314 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
982 /* 2318 */ GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s64,
983 /* 2322 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
984 /* 2327 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
985 /* 2332 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
986 /* 2337 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
987 /* 2341 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
988 /* 2343 */ // (assigntype:{ *:[v2f64] } (select:{ *:[v2f64] } vID:{ *:[v2i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSelectVFVCond:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$cond, vfID:{ *:[v2f64] }:$src1, vfID:{ *:[v2f64] }:$src2)
989 /* 2343 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSelectVFVCond),
990 /* 2346 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
991 /* 2348 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
992 /* 2350 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // cond
993 /* 2354 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src1
994 /* 2358 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // src2
995 /* 2362 */ GIR_RootConstrainSelectedInstOperands,
996 /* 2363 */ // GIR_Coverage, 65,
997 /* 2363 */ GIR_EraseRootFromParent_Done,
998 /* 2364 */ // Label 45: @2364
999 /* 2364 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(2422), // Rule ID 5 //
1000 /* 2369 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1001 /* 2373 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1002 /* 2377 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
1003 /* 2381 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1004 /* 2385 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1005 /* 2389 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1006 /* 2394 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1007 /* 2399 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1008 /* 2403 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1009 /* 2405 */ // (assigntype:{ *:[v2i64] } (add:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIAddV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1010 /* 2405 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIAddV),
1011 /* 2408 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1012 /* 2410 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1013 /* 2412 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1014 /* 2416 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1015 /* 2420 */ GIR_RootConstrainSelectedInstOperands,
1016 /* 2421 */ // GIR_Coverage, 5,
1017 /* 2421 */ GIR_EraseRootFromParent_Done,
1018 /* 2422 */ // Label 46: @2422
1019 /* 2422 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(2480), // Rule ID 53 //
1020 /* 2427 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1021 /* 2431 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1022 /* 2435 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1023 /* 2439 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1024 /* 2443 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1025 /* 2447 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1026 /* 2452 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1027 /* 2457 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1028 /* 2461 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1029 /* 2463 */ // (assigntype:{ *:[v2i64] } (and:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseAndV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1030 /* 2463 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseAndV),
1031 /* 2466 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1032 /* 2468 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1033 /* 2470 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1034 /* 2474 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1035 /* 2478 */ GIR_RootConstrainSelectedInstOperands,
1036 /* 2479 */ // GIR_Coverage, 53,
1037 /* 2479 */ GIR_EraseRootFromParent_Done,
1038 /* 2480 */ // Label 47: @2480
1039 /* 2480 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(2538), // Rule ID 45 //
1040 /* 2485 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1041 /* 2489 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1042 /* 2493 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
1043 /* 2497 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1044 /* 2501 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1045 /* 2505 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1046 /* 2510 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1047 /* 2515 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1048 /* 2519 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1049 /* 2521 */ // (assigntype:{ *:[v2i64] } (sra:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightArithmeticV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1050 /* 2521 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightArithmeticV),
1051 /* 2524 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1052 /* 2526 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1053 /* 2528 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1054 /* 2532 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1055 /* 2536 */ GIR_RootConstrainSelectedInstOperands,
1056 /* 2537 */ // GIR_Coverage, 45,
1057 /* 2537 */ GIR_EraseRootFromParent_Done,
1058 /* 2538 */ // Label 48: @2538
1059 /* 2538 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(2596), // Rule ID 7 //
1060 /* 2543 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1061 /* 2547 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1062 /* 2551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FADD),
1063 /* 2555 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1064 /* 2559 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1065 /* 2563 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1066 /* 2568 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1067 /* 2573 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1068 /* 2577 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1069 /* 2579 */ // (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)
1070 /* 2579 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFAddV),
1071 /* 2582 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1072 /* 2584 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1073 /* 2586 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1074 /* 2590 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1075 /* 2594 */ GIR_RootConstrainSelectedInstOperands,
1076 /* 2595 */ // GIR_Coverage, 7,
1077 /* 2595 */ GIR_EraseRootFromParent_Done,
1078 /* 2596 */ // Label 49: @2596
1079 /* 2596 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(2654), // Rule ID 27 //
1080 /* 2601 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1081 /* 2605 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1082 /* 2609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FDIV),
1083 /* 2613 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1084 /* 2617 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1085 /* 2621 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1086 /* 2626 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1087 /* 2631 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1088 /* 2635 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1089 /* 2637 */ // (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)
1090 /* 2637 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFDivV),
1091 /* 2640 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1092 /* 2642 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1093 /* 2644 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1094 /* 2648 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1095 /* 2652 */ GIR_RootConstrainSelectedInstOperands,
1096 /* 2653 */ // GIR_Coverage, 27,
1097 /* 2653 */ GIR_EraseRootFromParent_Done,
1098 /* 2654 */ // Label 50: @2654
1099 /* 2654 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(2712), // Rule ID 19 //
1100 /* 2659 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1101 /* 2663 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1102 /* 2667 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
1103 /* 2671 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1104 /* 2675 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1105 /* 2679 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1106 /* 2684 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1107 /* 2689 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1108 /* 2693 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1109 /* 2695 */ // (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)
1110 /* 2695 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFMulV),
1111 /* 2698 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1112 /* 2700 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1113 /* 2702 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1114 /* 2706 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1115 /* 2710 */ GIR_RootConstrainSelectedInstOperands,
1116 /* 2711 */ // GIR_Coverage, 19,
1117 /* 2711 */ GIR_EraseRootFromParent_Done,
1118 /* 2712 */ // Label 51: @2712
1119 /* 2712 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(2770), // Rule ID 35 //
1120 /* 2717 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1121 /* 2721 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1122 /* 2725 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREM),
1123 /* 2729 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1124 /* 2733 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1125 /* 2737 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1126 /* 2742 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1127 /* 2747 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1128 /* 2751 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1129 /* 2753 */ // (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)
1130 /* 2753 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFRemV),
1131 /* 2756 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1132 /* 2758 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1133 /* 2760 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1134 /* 2764 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1135 /* 2768 */ GIR_RootConstrainSelectedInstOperands,
1136 /* 2769 */ // GIR_Coverage, 35,
1137 /* 2769 */ GIR_EraseRootFromParent_Done,
1138 /* 2770 */ // Label 52: @2770
1139 /* 2770 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(2828), // Rule ID 13 //
1140 /* 2775 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1141 /* 2779 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1142 /* 2783 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
1143 /* 2787 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1144 /* 2791 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1145 /* 2795 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1146 /* 2800 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1147 /* 2805 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1148 /* 2809 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1149 /* 2811 */ // (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)
1150 /* 2811 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFSubV),
1151 /* 2814 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1152 /* 2816 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1153 /* 2818 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1154 /* 2822 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1155 /* 2826 */ GIR_RootConstrainSelectedInstOperands,
1156 /* 2827 */ // GIR_Coverage, 13,
1157 /* 2827 */ GIR_EraseRootFromParent_Done,
1158 /* 2828 */ // Label 53: @2828
1159 /* 2828 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(2886), // Rule ID 43 //
1160 /* 2833 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1161 /* 2837 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1162 /* 2841 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
1163 /* 2845 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1164 /* 2849 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1165 /* 2853 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1166 /* 2858 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1167 /* 2863 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1168 /* 2867 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1169 /* 2869 */ // (assigntype:{ *:[v2i64] } (srl:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftRightLogicalV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1170 /* 2869 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftRightLogicalV),
1171 /* 2872 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1172 /* 2874 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1173 /* 2876 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1174 /* 2880 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1175 /* 2884 */ GIR_RootConstrainSelectedInstOperands,
1176 /* 2885 */ // GIR_Coverage, 43,
1177 /* 2885 */ GIR_EraseRootFromParent_Done,
1178 /* 2886 */ // Label 54: @2886
1179 /* 2886 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(2944), // Rule ID 17 //
1180 /* 2891 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1181 /* 2895 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1182 /* 2899 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1183 /* 2903 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1184 /* 2907 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1185 /* 2911 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1186 /* 2916 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1187 /* 2921 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1188 /* 2925 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1189 /* 2927 */ // (assigntype:{ *:[v2i64] } (mul:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpIMulV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1190 /* 2927 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpIMulV),
1191 /* 2930 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1192 /* 2932 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1193 /* 2934 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1194 /* 2938 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1195 /* 2942 */ GIR_RootConstrainSelectedInstOperands,
1196 /* 2943 */ // GIR_Coverage, 17,
1197 /* 2943 */ GIR_EraseRootFromParent_Done,
1198 /* 2944 */ // Label 55: @2944
1199 /* 2944 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(3002), // Rule ID 49 //
1200 /* 2949 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1201 /* 2953 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1202 /* 2957 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
1203 /* 2961 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1204 /* 2965 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1205 /* 2969 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1206 /* 2974 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1207 /* 2979 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1208 /* 2983 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1209 /* 2985 */ // (assigntype:{ *:[v2i64] } (or:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseOrV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1210 /* 2985 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseOrV),
1211 /* 2988 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1212 /* 2990 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1213 /* 2992 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1214 /* 2996 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1215 /* 3000 */ GIR_RootConstrainSelectedInstOperands,
1216 /* 3001 */ // GIR_Coverage, 49,
1217 /* 3001 */ GIR_EraseRootFromParent_Done,
1218 /* 3002 */ // Label 56: @3002
1219 /* 3002 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(3060), // Rule ID 25 //
1220 /* 3007 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1221 /* 3011 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1222 /* 3015 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SDIV),
1223 /* 3019 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1224 /* 3023 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1225 /* 3027 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1226 /* 3032 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1227 /* 3037 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1228 /* 3041 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1229 /* 3043 */ // (assigntype:{ *:[v2i64] } (sdiv:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSDivV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1230 /* 3043 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSDivV),
1231 /* 3046 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1232 /* 3048 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1233 /* 3050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1234 /* 3054 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1235 /* 3058 */ GIR_RootConstrainSelectedInstOperands,
1236 /* 3059 */ // GIR_Coverage, 25,
1237 /* 3059 */ GIR_EraseRootFromParent_Done,
1238 /* 3060 */ // Label 57: @3060
1239 /* 3060 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(3118), // Rule ID 47 //
1240 /* 3065 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1241 /* 3069 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1242 /* 3073 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
1243 /* 3077 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1244 /* 3081 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1245 /* 3085 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1246 /* 3090 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1247 /* 3095 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1248 /* 3099 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1249 /* 3101 */ // (assigntype:{ *:[v2i64] } (shl:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpShiftLeftLogicalV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1250 /* 3101 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpShiftLeftLogicalV),
1251 /* 3104 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1252 /* 3106 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1253 /* 3108 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1254 /* 3112 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1255 /* 3116 */ GIR_RootConstrainSelectedInstOperands,
1256 /* 3117 */ // GIR_Coverage, 47,
1257 /* 3117 */ GIR_EraseRootFromParent_Done,
1258 /* 3118 */ // Label 58: @3118
1259 /* 3118 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(3176), // Rule ID 33 //
1260 /* 3123 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1261 /* 3127 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1262 /* 3131 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SREM),
1263 /* 3135 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1264 /* 3139 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1265 /* 3143 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1266 /* 3148 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1267 /* 3153 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1268 /* 3157 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1269 /* 3159 */ // (assigntype:{ *:[v2i64] } (srem:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpSRemV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1270 /* 3159 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpSRemV),
1271 /* 3162 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1272 /* 3164 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1273 /* 3166 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1274 /* 3170 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1275 /* 3174 */ GIR_RootConstrainSelectedInstOperands,
1276 /* 3175 */ // GIR_Coverage, 33,
1277 /* 3175 */ GIR_EraseRootFromParent_Done,
1278 /* 3176 */ // Label 59: @3176
1279 /* 3176 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(3234), // Rule ID 9 //
1280 /* 3181 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1281 /* 3185 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1282 /* 3189 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FADD),
1283 /* 3193 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1284 /* 3197 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1285 /* 3201 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1286 /* 3206 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1287 /* 3211 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1288 /* 3215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1289 /* 3217 */ // (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)
1290 /* 3217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFAddV),
1291 /* 3220 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1292 /* 3222 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1293 /* 3224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1294 /* 3228 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1295 /* 3232 */ GIR_RootConstrainSelectedInstOperands,
1296 /* 3233 */ // GIR_Coverage, 9,
1297 /* 3233 */ GIR_EraseRootFromParent_Done,
1298 /* 3234 */ // Label 60: @3234
1299 /* 3234 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(3292), // Rule ID 29 //
1300 /* 3239 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1301 /* 3243 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1302 /* 3247 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FDIV),
1303 /* 3251 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1304 /* 3255 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1305 /* 3259 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1306 /* 3264 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1307 /* 3269 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1308 /* 3273 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1309 /* 3275 */ // (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)
1310 /* 3275 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFDivV),
1311 /* 3278 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1312 /* 3280 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1313 /* 3282 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1314 /* 3286 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1315 /* 3290 */ GIR_RootConstrainSelectedInstOperands,
1316 /* 3291 */ // GIR_Coverage, 29,
1317 /* 3291 */ GIR_EraseRootFromParent_Done,
1318 /* 3292 */ // Label 61: @3292
1319 /* 3292 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(3350), // Rule ID 21 //
1320 /* 3297 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1321 /* 3301 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1322 /* 3305 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FMUL),
1323 /* 3309 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1324 /* 3313 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1325 /* 3317 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1326 /* 3322 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1327 /* 3327 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1328 /* 3331 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1329 /* 3333 */ // (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)
1330 /* 3333 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFMulV),
1331 /* 3336 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1332 /* 3338 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1333 /* 3340 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1334 /* 3344 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1335 /* 3348 */ GIR_RootConstrainSelectedInstOperands,
1336 /* 3349 */ // GIR_Coverage, 21,
1337 /* 3349 */ GIR_EraseRootFromParent_Done,
1338 /* 3350 */ // Label 62: @3350
1339 /* 3350 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(3408), // Rule ID 37 //
1340 /* 3355 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1341 /* 3359 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1342 /* 3363 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FREM),
1343 /* 3367 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1344 /* 3371 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1345 /* 3375 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1346 /* 3380 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1347 /* 3385 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1348 /* 3389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1349 /* 3391 */ // (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)
1350 /* 3391 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFRemV),
1351 /* 3394 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1352 /* 3396 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1353 /* 3398 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1354 /* 3402 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1355 /* 3406 */ GIR_RootConstrainSelectedInstOperands,
1356 /* 3407 */ // GIR_Coverage, 37,
1357 /* 3407 */ GIR_EraseRootFromParent_Done,
1358 /* 3408 */ // Label 63: @3408
1359 /* 3408 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(3466), // Rule ID 15 //
1360 /* 3413 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1361 /* 3417 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1362 /* 3421 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_STRICT_FSUB),
1363 /* 3425 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1364 /* 3429 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1365 /* 3433 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1366 /* 3438 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1367 /* 3443 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1368 /* 3447 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1369 /* 3449 */ // (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)
1370 /* 3449 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpStrictFSubV),
1371 /* 3452 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1372 /* 3454 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1373 /* 3456 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1374 /* 3460 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1375 /* 3464 */ GIR_RootConstrainSelectedInstOperands,
1376 /* 3465 */ // GIR_Coverage, 15,
1377 /* 3465 */ GIR_EraseRootFromParent_Done,
1378 /* 3466 */ // Label 64: @3466
1379 /* 3466 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(3524), // Rule ID 11 //
1380 /* 3471 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1381 /* 3475 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1382 /* 3479 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1383 /* 3483 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1384 /* 3487 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1385 /* 3491 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1386 /* 3496 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1387 /* 3501 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1388 /* 3505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1389 /* 3507 */ // (assigntype:{ *:[v2i64] } (sub:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpISubV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1390 /* 3507 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpISubV),
1391 /* 3510 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1392 /* 3512 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1393 /* 3514 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1394 /* 3518 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1395 /* 3522 */ GIR_RootConstrainSelectedInstOperands,
1396 /* 3523 */ // GIR_Coverage, 11,
1397 /* 3523 */ GIR_EraseRootFromParent_Done,
1398 /* 3524 */ // Label 65: @3524
1399 /* 3524 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(3582), // Rule ID 23 //
1400 /* 3529 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1401 /* 3533 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1402 /* 3537 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UDIV),
1403 /* 3541 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1404 /* 3545 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1405 /* 3549 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1406 /* 3554 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1407 /* 3559 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1408 /* 3563 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1409 /* 3565 */ // (assigntype:{ *:[v2i64] } (udiv:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUDivV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1410 /* 3565 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUDivV),
1411 /* 3568 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1412 /* 3570 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1413 /* 3572 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1414 /* 3576 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1415 /* 3580 */ GIR_RootConstrainSelectedInstOperands,
1416 /* 3581 */ // GIR_Coverage, 23,
1417 /* 3581 */ GIR_EraseRootFromParent_Done,
1418 /* 3582 */ // Label 66: @3582
1419 /* 3582 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(3640), // Rule ID 31 //
1420 /* 3587 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1421 /* 3591 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1422 /* 3595 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UREM),
1423 /* 3599 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1424 /* 3603 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1425 /* 3607 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1426 /* 3612 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1427 /* 3617 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1428 /* 3621 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1429 /* 3623 */ // (assigntype:{ *:[v2i64] } (urem:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpUModV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1430 /* 3623 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpUModV),
1431 /* 3626 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1432 /* 3628 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1433 /* 3630 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1434 /* 3634 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1435 /* 3638 */ GIR_RootConstrainSelectedInstOperands,
1436 /* 3639 */ // GIR_Coverage, 31,
1437 /* 3639 */ GIR_EraseRootFromParent_Done,
1438 /* 3640 */ // Label 67: @3640
1439 /* 3640 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(3698), // Rule ID 51 //
1440 /* 3645 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1441 /* 3649 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1442 /* 3653 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
1443 /* 3657 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1444 /* 3661 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
1445 /* 3665 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1446 /* 3670 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::vIDRegClassID),
1447 /* 3675 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1448 /* 3679 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1449 /* 3681 */ // (assigntype:{ *:[v2i64] } (xor:{ *:[v2i64] } vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2), TYPE:{ *:[i64] }:$src_ty) => (OpBitwiseXorV:{ *:[v2i64] } TYPE:{ *:[i64] }:$src_ty, vID:{ *:[v2i64] }:$src, vID:{ *:[v2i64] }:$src2)
1450 /* 3681 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpBitwiseXorV),
1451 /* 3684 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1452 /* 3686 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1453 /* 3688 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1454 /* 3692 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
1455 /* 3696 */ GIR_RootConstrainSelectedInstOperands,
1456 /* 3697 */ // GIR_Coverage, 51,
1457 /* 3697 */ GIR_EraseRootFromParent_Done,
1458 /* 3698 */ // Label 68: @3698
1459 /* 3698 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(3743), // Rule ID 3 //
1460 /* 3703 */ GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1461 /* 3707 */ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1462 /* 3711 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1463 /* 3715 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
1464 /* 3719 */ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(SPIRV::vfIDRegClassID),
1465 /* 3724 */ GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(SPIRV::TYPERegClassID),
1466 /* 3728 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1467 /* 3730 */ // (assigntype:{ *:[v2f64] } (fneg:{ *:[v2f64] } vfID:{ *:[v2f64] }:$src), TYPE:{ *:[i64] }:$src_ty) => (OpFNegateV:{ *:[v2f64] } TYPE:{ *:[i64] }:$src_ty, vfID:{ *:[v2f64] }:$src)
1468 /* 3730 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(SPIRV::OpFNegateV),
1469 /* 3733 */ GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
1470 /* 3735 */ GIR_RootToRootCopy, /*OpIdx*/2, // src_ty
1471 /* 3737 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
1472 /* 3741 */ GIR_RootConstrainSelectedInstOperands,
1473 /* 3742 */ // GIR_Coverage, 3,
1474 /* 3742 */ GIR_EraseRootFromParent_Done,
1475 /* 3743 */ // Label 69: @3743
1476 /* 3743 */ GIM_Reject,
1477 /* 3744 */ // Label 41: @3744
1478 /* 3744 */ GIM_Reject,
1479 /* 3745 */ // Label 4: @3745
1480 /* 3745 */ GIM_Reject,
1481 /* 3746 */ // Label 0: @3746
1482 /* 3746 */ GIM_Reject,
1483 /* 3747 */ }; // Size: 3747 bytes
1484 return MatchTable0;
1485}
1486#undef GIMT_Encode2
1487#undef GIMT_Encode4
1488#undef GIMT_Encode8
1489
1490#endif // ifdef GET_GLOBALISEL_IMPL
1491
1492#ifdef GET_GLOBALISEL_PREDICATES_DECL
1493PredicateBitset AvailableModuleFeatures;
1494mutable PredicateBitset AvailableFunctionFeatures;
1495PredicateBitset getAvailableFeatures() const {
1496 return AvailableModuleFeatures | AvailableFunctionFeatures;
1497}
1498PredicateBitset
1499computeAvailableModuleFeatures(const SPIRVSubtarget *Subtarget) const;
1500PredicateBitset
1501computeAvailableFunctionFeatures(const SPIRVSubtarget *Subtarget,
1502 const MachineFunction *MF) const;
1503void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1504#endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
1505#ifdef GET_GLOBALISEL_PREDICATES_INIT
1506AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
1507AvailableFunctionFeatures()
1508#endif // ifdef GET_GLOBALISEL_PREDICATES_INIT
1509