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