Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* DAG Instruction Selector for the AMDGPU target *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 : // *** NOTE: This file is #included into the middle of the target
10 : // *** instruction selector class. These functions are really methods.
11 :
12 : // If GET_DAGISEL_DECL is #defined with any value, only function
13 : // declarations will be included when this file is included.
14 : // If GET_DAGISEL_BODY is #defined, its value should be the name of
15 : // the instruction selector class. Function bodies will be emitted
16 : // and each function's name will be qualified with the name of the
17 : // class.
18 : //
19 : // When neither of the GET_DAGISEL* macros is defined, the functions
20 : // are emitted inline.
21 :
22 : #if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
23 : #error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
24 : #endif
25 :
26 : #ifdef GET_DAGISEL_BODY
27 : #define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
28 : #define LOCAL_DAGISEL_STRINGIZE_(X) #X
29 : static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
30 : "GET_DAGISEL_BODY is empty: it should be defined with the class name");
31 : #undef LOCAL_DAGISEL_STRINGIZE_
32 : #undef LOCAL_DAGISEL_STRINGIZE
33 : #endif
34 :
35 : #if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
36 : #define DAGISEL_INLINE 1
37 : #else
38 : #define DAGISEL_INLINE 0
39 : #endif
40 :
41 : #if !DAGISEL_INLINE
42 : #define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
43 : #else
44 : #define DAGISEL_CLASS_COLONCOLON
45 : #endif
46 :
47 : #ifdef GET_DAGISEL_DECL
48 : void SelectCode(SDNode *N);
49 : #endif
50 : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
51 : void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
52 : {
53 : // Some target values are emitted as 2 bytes, TARGET_VAL handles
54 : // this.
55 : #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
56 : static const unsigned char MatcherTable[] = {
57 : /* 0*/ OPC_SwitchOpcode /*196 cases */, 84|128,70|128,3/*58196*/, TARGET_VAL(ISD::ADD),// ->58202
58 : /* 6*/ OPC_Scope, 123|128,63|128,3/*57339*/, /*->57349*/ // 10 children in Scope
59 : /* 10*/ OPC_MoveChild0,
60 : /* 11*/ OPC_SwitchOpcode /*4 cases */, 60|128,94|128,1/*28476*/, TARGET_VAL(ISD::ADD),// ->28493
61 : /* 17*/ OPC_Scope, 48|128,88|128,1/*27696*/, /*->27717*/ // 4 children in Scope
62 : /* 21*/ OPC_MoveChild0,
63 : /* 22*/ OPC_SwitchOpcode /*3 cases */, 95|128,113/*14559*/, TARGET_VAL(ISD::ADD),// ->14586
64 : /* 27*/ OPC_MoveChild0,
65 : /* 28*/ OPC_SwitchOpcode /*3 cases */, 30|128,61/*7838*/, TARGET_VAL(ISD::ADD),// ->7871
66 : /* 33*/ OPC_Scope, 14|128,12/*1550*/, /*->1586*/ // 5 children in Scope
67 : /* 36*/ OPC_MoveChild0,
68 : /* 37*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
69 : /* 40*/ OPC_MoveChild0,
70 : /* 41*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
71 : /* 44*/ OPC_MoveChild0,
72 : /* 45*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
73 : /* 48*/ OPC_MoveChild0,
74 : /* 49*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
75 : /* 52*/ OPC_Scope, 41|128,3/*425*/, /*->480*/ // 4 children in Scope
76 : /* 55*/ OPC_RecordChild0, // #0 = $src2
77 : /* 56*/ OPC_MoveChild1,
78 : /* 57*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
79 : /* 60*/ OPC_MoveChild0,
80 : /* 61*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
81 : /* 64*/ OPC_MoveChild0,
82 : /* 65*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
83 : /* 68*/ OPC_RecordChild0, // #1 = $src0
84 : /* 69*/ OPC_CheckChild1Integer, 28,
85 : /* 71*/ OPC_CheckChild1Type, MVT::i32,
86 : /* 73*/ OPC_MoveParent,
87 : /* 74*/ OPC_CheckChild1Integer, 28,
88 : /* 76*/ OPC_CheckChild1Type, MVT::i32,
89 : /* 78*/ OPC_MoveParent,
90 : /* 79*/ OPC_MoveChild1,
91 : /* 80*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
92 : /* 83*/ OPC_MoveChild0,
93 : /* 84*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
94 : /* 87*/ OPC_RecordChild0, // #2 = $src1
95 : /* 88*/ OPC_CheckChild1Integer, 28,
96 : /* 90*/ OPC_CheckChild1Type, MVT::i32,
97 : /* 92*/ OPC_MoveParent,
98 : /* 93*/ OPC_CheckChild1Integer, 28,
99 : /* 95*/ OPC_CheckChild1Type, MVT::i32,
100 : /* 97*/ OPC_MoveParent,
101 : /* 98*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
102 : /* 100*/ OPC_MoveParent,
103 : /* 101*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
104 : /* 103*/ OPC_MoveParent,
105 : /* 104*/ OPC_MoveChild1,
106 : /* 105*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
107 : /* 108*/ OPC_MoveChild0,
108 : /* 109*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
109 : /* 112*/ OPC_MoveChild0,
110 : /* 113*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
111 : /* 116*/ OPC_CheckChild0Same, 1,
112 : /* 118*/ OPC_CheckChild1Integer, 24,
113 : /* 120*/ OPC_CheckChild1Type, MVT::i32,
114 : /* 122*/ OPC_MoveParent,
115 : /* 123*/ OPC_CheckChild1Integer, 28,
116 : /* 125*/ OPC_CheckChild1Type, MVT::i32,
117 : /* 127*/ OPC_MoveParent,
118 : /* 128*/ OPC_MoveChild1,
119 : /* 129*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
120 : /* 132*/ OPC_MoveChild0,
121 : /* 133*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
122 : /* 136*/ OPC_CheckChild0Same, 2,
123 : /* 138*/ OPC_CheckChild1Integer, 24,
124 : /* 140*/ OPC_CheckChild1Type, MVT::i32,
125 : /* 142*/ OPC_MoveParent,
126 : /* 143*/ OPC_CheckChild1Integer, 28,
127 : /* 145*/ OPC_CheckChild1Type, MVT::i32,
128 : /* 147*/ OPC_MoveParent,
129 : /* 148*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
130 : /* 150*/ OPC_MoveParent,
131 : /* 151*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
132 : /* 153*/ OPC_MoveParent,
133 : /* 154*/ OPC_MoveChild1,
134 : /* 155*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
135 : /* 158*/ OPC_MoveChild0,
136 : /* 159*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
137 : /* 162*/ OPC_MoveChild0,
138 : /* 163*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
139 : /* 166*/ OPC_CheckChild0Same, 1,
140 : /* 168*/ OPC_CheckChild1Integer, 20,
141 : /* 170*/ OPC_CheckChild1Type, MVT::i32,
142 : /* 172*/ OPC_MoveParent,
143 : /* 173*/ OPC_CheckChild1Integer, 28,
144 : /* 175*/ OPC_CheckChild1Type, MVT::i32,
145 : /* 177*/ OPC_MoveParent,
146 : /* 178*/ OPC_MoveChild1,
147 : /* 179*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
148 : /* 182*/ OPC_MoveChild0,
149 : /* 183*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
150 : /* 186*/ OPC_CheckChild0Same, 2,
151 : /* 188*/ OPC_CheckChild1Integer, 20,
152 : /* 190*/ OPC_CheckChild1Type, MVT::i32,
153 : /* 192*/ OPC_MoveParent,
154 : /* 193*/ OPC_CheckChild1Integer, 28,
155 : /* 195*/ OPC_CheckChild1Type, MVT::i32,
156 : /* 197*/ OPC_MoveParent,
157 : /* 198*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
158 : /* 200*/ OPC_MoveParent,
159 : /* 201*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
160 : /* 203*/ OPC_MoveParent,
161 : /* 204*/ OPC_MoveChild1,
162 : /* 205*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
163 : /* 208*/ OPC_MoveChild0,
164 : /* 209*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
165 : /* 212*/ OPC_MoveChild0,
166 : /* 213*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
167 : /* 216*/ OPC_CheckChild0Same, 1,
168 : /* 218*/ OPC_CheckChild1Integer, 16,
169 : /* 220*/ OPC_CheckChild1Type, MVT::i32,
170 : /* 222*/ OPC_MoveParent,
171 : /* 223*/ OPC_CheckChild1Integer, 28,
172 : /* 225*/ OPC_CheckChild1Type, MVT::i32,
173 : /* 227*/ OPC_MoveParent,
174 : /* 228*/ OPC_MoveChild1,
175 : /* 229*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
176 : /* 232*/ OPC_MoveChild0,
177 : /* 233*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
178 : /* 236*/ OPC_CheckChild0Same, 2,
179 : /* 238*/ OPC_CheckChild1Integer, 16,
180 : /* 240*/ OPC_CheckChild1Type, MVT::i32,
181 : /* 242*/ OPC_MoveParent,
182 : /* 243*/ OPC_CheckChild1Integer, 28,
183 : /* 245*/ OPC_CheckChild1Type, MVT::i32,
184 : /* 247*/ OPC_MoveParent,
185 : /* 248*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
186 : /* 250*/ OPC_MoveParent,
187 : /* 251*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
188 : /* 253*/ OPC_MoveParent,
189 : /* 254*/ OPC_MoveChild1,
190 : /* 255*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
191 : /* 258*/ OPC_MoveChild0,
192 : /* 259*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
193 : /* 262*/ OPC_MoveChild0,
194 : /* 263*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
195 : /* 266*/ OPC_CheckChild0Same, 1,
196 : /* 268*/ OPC_CheckChild1Integer, 12,
197 : /* 270*/ OPC_CheckChild1Type, MVT::i32,
198 : /* 272*/ OPC_MoveParent,
199 : /* 273*/ OPC_CheckChild1Integer, 28,
200 : /* 275*/ OPC_CheckChild1Type, MVT::i32,
201 : /* 277*/ OPC_MoveParent,
202 : /* 278*/ OPC_MoveChild1,
203 : /* 279*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
204 : /* 282*/ OPC_MoveChild0,
205 : /* 283*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
206 : /* 286*/ OPC_CheckChild0Same, 2,
207 : /* 288*/ OPC_CheckChild1Integer, 12,
208 : /* 290*/ OPC_CheckChild1Type, MVT::i32,
209 : /* 292*/ OPC_MoveParent,
210 : /* 293*/ OPC_CheckChild1Integer, 28,
211 : /* 295*/ OPC_CheckChild1Type, MVT::i32,
212 : /* 297*/ OPC_MoveParent,
213 : /* 298*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
214 : /* 300*/ OPC_MoveParent,
215 : /* 301*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
216 : /* 303*/ OPC_MoveParent,
217 : /* 304*/ OPC_MoveChild1,
218 : /* 305*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
219 : /* 308*/ OPC_MoveChild0,
220 : /* 309*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
221 : /* 312*/ OPC_MoveChild0,
222 : /* 313*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
223 : /* 316*/ OPC_CheckChild0Same, 1,
224 : /* 318*/ OPC_CheckChild1Integer, 8,
225 : /* 320*/ OPC_CheckChild1Type, MVT::i32,
226 : /* 322*/ OPC_MoveParent,
227 : /* 323*/ OPC_CheckChild1Integer, 28,
228 : /* 325*/ OPC_CheckChild1Type, MVT::i32,
229 : /* 327*/ OPC_MoveParent,
230 : /* 328*/ OPC_MoveChild1,
231 : /* 329*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
232 : /* 332*/ OPC_MoveChild0,
233 : /* 333*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
234 : /* 336*/ OPC_CheckChild0Same, 2,
235 : /* 338*/ OPC_CheckChild1Integer, 8,
236 : /* 340*/ OPC_CheckChild1Type, MVT::i32,
237 : /* 342*/ OPC_MoveParent,
238 : /* 343*/ OPC_CheckChild1Integer, 28,
239 : /* 345*/ OPC_CheckChild1Type, MVT::i32,
240 : /* 347*/ OPC_MoveParent,
241 : /* 348*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
242 : /* 350*/ OPC_MoveParent,
243 : /* 351*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
244 : /* 353*/ OPC_MoveParent,
245 : /* 354*/ OPC_MoveChild1,
246 : /* 355*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
247 : /* 358*/ OPC_MoveChild0,
248 : /* 359*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
249 : /* 362*/ OPC_MoveChild0,
250 : /* 363*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
251 : /* 366*/ OPC_CheckChild0Same, 1,
252 : /* 368*/ OPC_CheckChild1Integer, 4,
253 : /* 370*/ OPC_CheckChild1Type, MVT::i32,
254 : /* 372*/ OPC_MoveParent,
255 : /* 373*/ OPC_CheckChild1Integer, 28,
256 : /* 375*/ OPC_CheckChild1Type, MVT::i32,
257 : /* 377*/ OPC_MoveParent,
258 : /* 378*/ OPC_MoveChild1,
259 : /* 379*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
260 : /* 382*/ OPC_MoveChild0,
261 : /* 383*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
262 : /* 386*/ OPC_CheckChild0Same, 2,
263 : /* 388*/ OPC_CheckChild1Integer, 4,
264 : /* 390*/ OPC_CheckChild1Type, MVT::i32,
265 : /* 392*/ OPC_MoveParent,
266 : /* 393*/ OPC_CheckChild1Integer, 28,
267 : /* 395*/ OPC_CheckChild1Type, MVT::i32,
268 : /* 397*/ OPC_MoveParent,
269 : /* 398*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
270 : /* 400*/ OPC_MoveParent,
271 : /* 401*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
272 : /* 403*/ OPC_MoveParent,
273 : /* 404*/ OPC_MoveChild1,
274 : /* 405*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
275 : /* 408*/ OPC_MoveChild0,
276 : /* 409*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
277 : /* 412*/ OPC_CheckChild0Same, 1,
278 : /* 414*/ OPC_CheckChild1Integer, 28,
279 : /* 416*/ OPC_CheckChild1Type, MVT::i32,
280 : /* 418*/ OPC_MoveParent,
281 : /* 419*/ OPC_MoveChild1,
282 : /* 420*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
283 : /* 423*/ OPC_CheckChild0Same, 2,
284 : /* 425*/ OPC_CheckChild1Integer, 28,
285 : /* 427*/ OPC_CheckChild1Type, MVT::i32,
286 : /* 429*/ OPC_MoveParent,
287 : /* 430*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
288 : /* 432*/ OPC_MoveParent,
289 : /* 433*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
290 : /* 435*/ OPC_CheckType, MVT::i32,
291 : /* 437*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
292 : /* 439*/ OPC_EmitInteger, MVT::i32, 8,
293 : /* 442*/ OPC_EmitInteger, MVT::i32, 8,
294 : /* 445*/ OPC_EmitInteger, MVT::i32, 8,
295 : /* 448*/ OPC_EmitInteger, MVT::i1, 0,
296 : /* 451*/ OPC_EmitInteger, MVT::i32, 0,
297 : /* 454*/ OPC_EmitInteger, MVT::i32, 0,
298 : /* 457*/ OPC_EmitInteger, MVT::i32, 0,
299 : /* 460*/ OPC_EmitInteger, MVT::i32, 0,
300 : /* 463*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
301 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
302 : // Src: (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 20:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 20:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 12:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 12:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 4:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 4:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>> - Complexity = 304
303 : // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
304 : /* 480*/ /*Scope*/ 41|128,3/*425*/, /*->907*/
305 : /* 482*/ OPC_MoveChild0,
306 : /* 483*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
307 : /* 486*/ OPC_MoveChild0,
308 : /* 487*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
309 : /* 490*/ OPC_MoveChild0,
310 : /* 491*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
311 : /* 494*/ OPC_RecordChild0, // #0 = $src0
312 : /* 495*/ OPC_CheckChild1Integer, 28,
313 : /* 497*/ OPC_CheckChild1Type, MVT::i32,
314 : /* 499*/ OPC_MoveParent,
315 : /* 500*/ OPC_CheckChild1Integer, 28,
316 : /* 502*/ OPC_CheckChild1Type, MVT::i32,
317 : /* 504*/ OPC_MoveParent,
318 : /* 505*/ OPC_MoveChild1,
319 : /* 506*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
320 : /* 509*/ OPC_MoveChild0,
321 : /* 510*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
322 : /* 513*/ OPC_RecordChild0, // #1 = $src1
323 : /* 514*/ OPC_CheckChild1Integer, 28,
324 : /* 516*/ OPC_CheckChild1Type, MVT::i32,
325 : /* 518*/ OPC_MoveParent,
326 : /* 519*/ OPC_CheckChild1Integer, 28,
327 : /* 521*/ OPC_CheckChild1Type, MVT::i32,
328 : /* 523*/ OPC_MoveParent,
329 : /* 524*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
330 : /* 526*/ OPC_MoveParent,
331 : /* 527*/ OPC_RecordChild1, // #2 = $src2
332 : /* 528*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
333 : /* 530*/ OPC_MoveParent,
334 : /* 531*/ OPC_MoveChild1,
335 : /* 532*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
336 : /* 535*/ OPC_MoveChild0,
337 : /* 536*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
338 : /* 539*/ OPC_MoveChild0,
339 : /* 540*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
340 : /* 543*/ OPC_CheckChild0Same, 0,
341 : /* 545*/ OPC_CheckChild1Integer, 24,
342 : /* 547*/ OPC_CheckChild1Type, MVT::i32,
343 : /* 549*/ OPC_MoveParent,
344 : /* 550*/ OPC_CheckChild1Integer, 28,
345 : /* 552*/ OPC_CheckChild1Type, MVT::i32,
346 : /* 554*/ OPC_MoveParent,
347 : /* 555*/ OPC_MoveChild1,
348 : /* 556*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
349 : /* 559*/ OPC_MoveChild0,
350 : /* 560*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
351 : /* 563*/ OPC_CheckChild0Same, 1,
352 : /* 565*/ OPC_CheckChild1Integer, 24,
353 : /* 567*/ OPC_CheckChild1Type, MVT::i32,
354 : /* 569*/ OPC_MoveParent,
355 : /* 570*/ OPC_CheckChild1Integer, 28,
356 : /* 572*/ OPC_CheckChild1Type, MVT::i32,
357 : /* 574*/ OPC_MoveParent,
358 : /* 575*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
359 : /* 577*/ OPC_MoveParent,
360 : /* 578*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
361 : /* 580*/ OPC_MoveParent,
362 : /* 581*/ OPC_MoveChild1,
363 : /* 582*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
364 : /* 585*/ OPC_MoveChild0,
365 : /* 586*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
366 : /* 589*/ OPC_MoveChild0,
367 : /* 590*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
368 : /* 593*/ OPC_CheckChild0Same, 0,
369 : /* 595*/ OPC_CheckChild1Integer, 20,
370 : /* 597*/ OPC_CheckChild1Type, MVT::i32,
371 : /* 599*/ OPC_MoveParent,
372 : /* 600*/ OPC_CheckChild1Integer, 28,
373 : /* 602*/ OPC_CheckChild1Type, MVT::i32,
374 : /* 604*/ OPC_MoveParent,
375 : /* 605*/ OPC_MoveChild1,
376 : /* 606*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
377 : /* 609*/ OPC_MoveChild0,
378 : /* 610*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
379 : /* 613*/ OPC_CheckChild0Same, 1,
380 : /* 615*/ OPC_CheckChild1Integer, 20,
381 : /* 617*/ OPC_CheckChild1Type, MVT::i32,
382 : /* 619*/ OPC_MoveParent,
383 : /* 620*/ OPC_CheckChild1Integer, 28,
384 : /* 622*/ OPC_CheckChild1Type, MVT::i32,
385 : /* 624*/ OPC_MoveParent,
386 : /* 625*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
387 : /* 627*/ OPC_MoveParent,
388 : /* 628*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
389 : /* 630*/ OPC_MoveParent,
390 : /* 631*/ OPC_MoveChild1,
391 : /* 632*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
392 : /* 635*/ OPC_MoveChild0,
393 : /* 636*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
394 : /* 639*/ OPC_MoveChild0,
395 : /* 640*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
396 : /* 643*/ OPC_CheckChild0Same, 0,
397 : /* 645*/ OPC_CheckChild1Integer, 16,
398 : /* 647*/ OPC_CheckChild1Type, MVT::i32,
399 : /* 649*/ OPC_MoveParent,
400 : /* 650*/ OPC_CheckChild1Integer, 28,
401 : /* 652*/ OPC_CheckChild1Type, MVT::i32,
402 : /* 654*/ OPC_MoveParent,
403 : /* 655*/ OPC_MoveChild1,
404 : /* 656*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
405 : /* 659*/ OPC_MoveChild0,
406 : /* 660*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
407 : /* 663*/ OPC_CheckChild0Same, 1,
408 : /* 665*/ OPC_CheckChild1Integer, 16,
409 : /* 667*/ OPC_CheckChild1Type, MVT::i32,
410 : /* 669*/ OPC_MoveParent,
411 : /* 670*/ OPC_CheckChild1Integer, 28,
412 : /* 672*/ OPC_CheckChild1Type, MVT::i32,
413 : /* 674*/ OPC_MoveParent,
414 : /* 675*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
415 : /* 677*/ OPC_MoveParent,
416 : /* 678*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
417 : /* 680*/ OPC_MoveParent,
418 : /* 681*/ OPC_MoveChild1,
419 : /* 682*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
420 : /* 685*/ OPC_MoveChild0,
421 : /* 686*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
422 : /* 689*/ OPC_MoveChild0,
423 : /* 690*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
424 : /* 693*/ OPC_CheckChild0Same, 0,
425 : /* 695*/ OPC_CheckChild1Integer, 12,
426 : /* 697*/ OPC_CheckChild1Type, MVT::i32,
427 : /* 699*/ OPC_MoveParent,
428 : /* 700*/ OPC_CheckChild1Integer, 28,
429 : /* 702*/ OPC_CheckChild1Type, MVT::i32,
430 : /* 704*/ OPC_MoveParent,
431 : /* 705*/ OPC_MoveChild1,
432 : /* 706*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
433 : /* 709*/ OPC_MoveChild0,
434 : /* 710*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
435 : /* 713*/ OPC_CheckChild0Same, 1,
436 : /* 715*/ OPC_CheckChild1Integer, 12,
437 : /* 717*/ OPC_CheckChild1Type, MVT::i32,
438 : /* 719*/ OPC_MoveParent,
439 : /* 720*/ OPC_CheckChild1Integer, 28,
440 : /* 722*/ OPC_CheckChild1Type, MVT::i32,
441 : /* 724*/ OPC_MoveParent,
442 : /* 725*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
443 : /* 727*/ OPC_MoveParent,
444 : /* 728*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
445 : /* 730*/ OPC_MoveParent,
446 : /* 731*/ OPC_MoveChild1,
447 : /* 732*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
448 : /* 735*/ OPC_MoveChild0,
449 : /* 736*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
450 : /* 739*/ OPC_MoveChild0,
451 : /* 740*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
452 : /* 743*/ OPC_CheckChild0Same, 0,
453 : /* 745*/ OPC_CheckChild1Integer, 8,
454 : /* 747*/ OPC_CheckChild1Type, MVT::i32,
455 : /* 749*/ OPC_MoveParent,
456 : /* 750*/ OPC_CheckChild1Integer, 28,
457 : /* 752*/ OPC_CheckChild1Type, MVT::i32,
458 : /* 754*/ OPC_MoveParent,
459 : /* 755*/ OPC_MoveChild1,
460 : /* 756*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
461 : /* 759*/ OPC_MoveChild0,
462 : /* 760*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
463 : /* 763*/ OPC_CheckChild0Same, 1,
464 : /* 765*/ OPC_CheckChild1Integer, 8,
465 : /* 767*/ OPC_CheckChild1Type, MVT::i32,
466 : /* 769*/ OPC_MoveParent,
467 : /* 770*/ OPC_CheckChild1Integer, 28,
468 : /* 772*/ OPC_CheckChild1Type, MVT::i32,
469 : /* 774*/ OPC_MoveParent,
470 : /* 775*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
471 : /* 777*/ OPC_MoveParent,
472 : /* 778*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
473 : /* 780*/ OPC_MoveParent,
474 : /* 781*/ OPC_MoveChild1,
475 : /* 782*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
476 : /* 785*/ OPC_MoveChild0,
477 : /* 786*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
478 : /* 789*/ OPC_MoveChild0,
479 : /* 790*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
480 : /* 793*/ OPC_CheckChild0Same, 0,
481 : /* 795*/ OPC_CheckChild1Integer, 4,
482 : /* 797*/ OPC_CheckChild1Type, MVT::i32,
483 : /* 799*/ OPC_MoveParent,
484 : /* 800*/ OPC_CheckChild1Integer, 28,
485 : /* 802*/ OPC_CheckChild1Type, MVT::i32,
486 : /* 804*/ OPC_MoveParent,
487 : /* 805*/ OPC_MoveChild1,
488 : /* 806*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
489 : /* 809*/ OPC_MoveChild0,
490 : /* 810*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
491 : /* 813*/ OPC_CheckChild0Same, 1,
492 : /* 815*/ OPC_CheckChild1Integer, 4,
493 : /* 817*/ OPC_CheckChild1Type, MVT::i32,
494 : /* 819*/ OPC_MoveParent,
495 : /* 820*/ OPC_CheckChild1Integer, 28,
496 : /* 822*/ OPC_CheckChild1Type, MVT::i32,
497 : /* 824*/ OPC_MoveParent,
498 : /* 825*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
499 : /* 827*/ OPC_MoveParent,
500 : /* 828*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
501 : /* 830*/ OPC_MoveParent,
502 : /* 831*/ OPC_MoveChild1,
503 : /* 832*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
504 : /* 835*/ OPC_MoveChild0,
505 : /* 836*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
506 : /* 839*/ OPC_CheckChild0Same, 0,
507 : /* 841*/ OPC_CheckChild1Integer, 28,
508 : /* 843*/ OPC_CheckChild1Type, MVT::i32,
509 : /* 845*/ OPC_MoveParent,
510 : /* 846*/ OPC_MoveChild1,
511 : /* 847*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
512 : /* 850*/ OPC_CheckChild0Same, 1,
513 : /* 852*/ OPC_CheckChild1Integer, 28,
514 : /* 854*/ OPC_CheckChild1Type, MVT::i32,
515 : /* 856*/ OPC_MoveParent,
516 : /* 857*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
517 : /* 859*/ OPC_MoveParent,
518 : /* 860*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
519 : /* 862*/ OPC_CheckType, MVT::i32,
520 : /* 864*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
521 : /* 866*/ OPC_EmitInteger, MVT::i32, 8,
522 : /* 869*/ OPC_EmitInteger, MVT::i32, 8,
523 : /* 872*/ OPC_EmitInteger, MVT::i32, 8,
524 : /* 875*/ OPC_EmitInteger, MVT::i1, 0,
525 : /* 878*/ OPC_EmitInteger, MVT::i32, 0,
526 : /* 881*/ OPC_EmitInteger, MVT::i32, 0,
527 : /* 884*/ OPC_EmitInteger, MVT::i32, 0,
528 : /* 887*/ OPC_EmitInteger, MVT::i32, 0,
529 : /* 890*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
530 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
531 : // Src: (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (add:{ *:[i32] } (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 20:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 20:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 12:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 12:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src0, 4:{ *:[i32] }), 28:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } i32:{ *:[i32] }:$src1, 4:{ *:[i32] }), 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>> - Complexity = 304
532 : // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
533 : /* 907*/ /*Scope*/ 81|128,2/*337*/, /*->1246*/
534 : /* 909*/ OPC_RecordChild0, // #0 = $src2
535 : /* 910*/ OPC_MoveChild1,
536 : /* 911*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
537 : /* 914*/ OPC_MoveChild0,
538 : /* 915*/ OPC_CheckAndImm, 15,
539 : /* 917*/ OPC_RecordChild0, // #1 = $src0
540 : /* 918*/ OPC_MoveParent,
541 : /* 919*/ OPC_MoveChild1,
542 : /* 920*/ OPC_CheckAndImm, 15,
543 : /* 922*/ OPC_RecordChild0, // #2 = $src1
544 : /* 923*/ OPC_MoveParent,
545 : /* 924*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
546 : /* 926*/ OPC_MoveParent,
547 : /* 927*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
548 : /* 929*/ OPC_MoveParent,
549 : /* 930*/ OPC_MoveChild1,
550 : /* 931*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
551 : /* 934*/ OPC_MoveChild0,
552 : /* 935*/ OPC_CheckAndImm, 15,
553 : /* 937*/ OPC_MoveChild0,
554 : /* 938*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
555 : /* 941*/ OPC_CheckChild0Same, 1,
556 : /* 943*/ OPC_CheckChild1Integer, 4,
557 : /* 945*/ OPC_CheckChild1Type, MVT::i32,
558 : /* 947*/ OPC_MoveParent,
559 : /* 948*/ OPC_MoveParent,
560 : /* 949*/ OPC_MoveChild1,
561 : /* 950*/ OPC_CheckAndImm, 15,
562 : /* 952*/ OPC_MoveChild0,
563 : /* 953*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
564 : /* 956*/ OPC_CheckChild0Same, 2,
565 : /* 958*/ OPC_CheckChild1Integer, 4,
566 : /* 960*/ OPC_CheckChild1Type, MVT::i32,
567 : /* 962*/ OPC_MoveParent,
568 : /* 963*/ OPC_MoveParent,
569 : /* 964*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
570 : /* 966*/ OPC_MoveParent,
571 : /* 967*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
572 : /* 969*/ OPC_MoveParent,
573 : /* 970*/ OPC_MoveChild1,
574 : /* 971*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
575 : /* 974*/ OPC_MoveChild0,
576 : /* 975*/ OPC_CheckAndImm, 15,
577 : /* 977*/ OPC_MoveChild0,
578 : /* 978*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
579 : /* 981*/ OPC_CheckChild0Same, 1,
580 : /* 983*/ OPC_CheckChild1Integer, 8,
581 : /* 985*/ OPC_CheckChild1Type, MVT::i32,
582 : /* 987*/ OPC_MoveParent,
583 : /* 988*/ OPC_MoveParent,
584 : /* 989*/ OPC_MoveChild1,
585 : /* 990*/ OPC_CheckAndImm, 15,
586 : /* 992*/ OPC_MoveChild0,
587 : /* 993*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
588 : /* 996*/ OPC_CheckChild0Same, 2,
589 : /* 998*/ OPC_CheckChild1Integer, 8,
590 : /* 1000*/ OPC_CheckChild1Type, MVT::i32,
591 : /* 1002*/ OPC_MoveParent,
592 : /* 1003*/ OPC_MoveParent,
593 : /* 1004*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
594 : /* 1006*/ OPC_MoveParent,
595 : /* 1007*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
596 : /* 1009*/ OPC_MoveParent,
597 : /* 1010*/ OPC_MoveChild1,
598 : /* 1011*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
599 : /* 1014*/ OPC_MoveChild0,
600 : /* 1015*/ OPC_CheckAndImm, 15,
601 : /* 1017*/ OPC_MoveChild0,
602 : /* 1018*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
603 : /* 1021*/ OPC_CheckChild0Same, 1,
604 : /* 1023*/ OPC_CheckChild1Integer, 12,
605 : /* 1025*/ OPC_CheckChild1Type, MVT::i32,
606 : /* 1027*/ OPC_MoveParent,
607 : /* 1028*/ OPC_MoveParent,
608 : /* 1029*/ OPC_MoveChild1,
609 : /* 1030*/ OPC_CheckAndImm, 15,
610 : /* 1032*/ OPC_MoveChild0,
611 : /* 1033*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
612 : /* 1036*/ OPC_CheckChild0Same, 2,
613 : /* 1038*/ OPC_CheckChild1Integer, 12,
614 : /* 1040*/ OPC_CheckChild1Type, MVT::i32,
615 : /* 1042*/ OPC_MoveParent,
616 : /* 1043*/ OPC_MoveParent,
617 : /* 1044*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
618 : /* 1046*/ OPC_MoveParent,
619 : /* 1047*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
620 : /* 1049*/ OPC_MoveParent,
621 : /* 1050*/ OPC_MoveChild1,
622 : /* 1051*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
623 : /* 1054*/ OPC_MoveChild0,
624 : /* 1055*/ OPC_CheckAndImm, 15,
625 : /* 1057*/ OPC_MoveChild0,
626 : /* 1058*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
627 : /* 1061*/ OPC_CheckChild0Same, 1,
628 : /* 1063*/ OPC_CheckChild1Integer, 16,
629 : /* 1065*/ OPC_CheckChild1Type, MVT::i32,
630 : /* 1067*/ OPC_MoveParent,
631 : /* 1068*/ OPC_MoveParent,
632 : /* 1069*/ OPC_MoveChild1,
633 : /* 1070*/ OPC_CheckAndImm, 15,
634 : /* 1072*/ OPC_MoveChild0,
635 : /* 1073*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
636 : /* 1076*/ OPC_CheckChild0Same, 2,
637 : /* 1078*/ OPC_CheckChild1Integer, 16,
638 : /* 1080*/ OPC_CheckChild1Type, MVT::i32,
639 : /* 1082*/ OPC_MoveParent,
640 : /* 1083*/ OPC_MoveParent,
641 : /* 1084*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
642 : /* 1086*/ OPC_MoveParent,
643 : /* 1087*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
644 : /* 1089*/ OPC_MoveParent,
645 : /* 1090*/ OPC_MoveChild1,
646 : /* 1091*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
647 : /* 1094*/ OPC_MoveChild0,
648 : /* 1095*/ OPC_CheckAndImm, 15,
649 : /* 1097*/ OPC_MoveChild0,
650 : /* 1098*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
651 : /* 1101*/ OPC_CheckChild0Same, 1,
652 : /* 1103*/ OPC_CheckChild1Integer, 20,
653 : /* 1105*/ OPC_CheckChild1Type, MVT::i32,
654 : /* 1107*/ OPC_MoveParent,
655 : /* 1108*/ OPC_MoveParent,
656 : /* 1109*/ OPC_MoveChild1,
657 : /* 1110*/ OPC_CheckAndImm, 15,
658 : /* 1112*/ OPC_MoveChild0,
659 : /* 1113*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
660 : /* 1116*/ OPC_CheckChild0Same, 2,
661 : /* 1118*/ OPC_CheckChild1Integer, 20,
662 : /* 1120*/ OPC_CheckChild1Type, MVT::i32,
663 : /* 1122*/ OPC_MoveParent,
664 : /* 1123*/ OPC_MoveParent,
665 : /* 1124*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
666 : /* 1126*/ OPC_MoveParent,
667 : /* 1127*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
668 : /* 1129*/ OPC_MoveParent,
669 : /* 1130*/ OPC_MoveChild1,
670 : /* 1131*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
671 : /* 1134*/ OPC_MoveChild0,
672 : /* 1135*/ OPC_CheckAndImm, 15,
673 : /* 1137*/ OPC_MoveChild0,
674 : /* 1138*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
675 : /* 1141*/ OPC_CheckChild0Same, 1,
676 : /* 1143*/ OPC_CheckChild1Integer, 24,
677 : /* 1145*/ OPC_CheckChild1Type, MVT::i32,
678 : /* 1147*/ OPC_MoveParent,
679 : /* 1148*/ OPC_MoveParent,
680 : /* 1149*/ OPC_MoveChild1,
681 : /* 1150*/ OPC_CheckAndImm, 15,
682 : /* 1152*/ OPC_MoveChild0,
683 : /* 1153*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
684 : /* 1156*/ OPC_CheckChild0Same, 2,
685 : /* 1158*/ OPC_CheckChild1Integer, 24,
686 : /* 1160*/ OPC_CheckChild1Type, MVT::i32,
687 : /* 1162*/ OPC_MoveParent,
688 : /* 1163*/ OPC_MoveParent,
689 : /* 1164*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
690 : /* 1166*/ OPC_MoveParent,
691 : /* 1167*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
692 : /* 1169*/ OPC_MoveParent,
693 : /* 1170*/ OPC_MoveChild1,
694 : /* 1171*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
695 : /* 1174*/ OPC_MoveChild0,
696 : /* 1175*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
697 : /* 1178*/ OPC_CheckChild0Same, 1,
698 : /* 1180*/ OPC_CheckChild1Integer, 28,
699 : /* 1182*/ OPC_CheckChild1Type, MVT::i32,
700 : /* 1184*/ OPC_MoveParent,
701 : /* 1185*/ OPC_MoveChild1,
702 : /* 1186*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
703 : /* 1189*/ OPC_CheckChild0Same, 2,
704 : /* 1191*/ OPC_CheckChild1Integer, 28,
705 : /* 1193*/ OPC_CheckChild1Type, MVT::i32,
706 : /* 1195*/ OPC_MoveParent,
707 : /* 1196*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
708 : /* 1198*/ OPC_MoveParent,
709 : /* 1199*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
710 : /* 1201*/ OPC_CheckType, MVT::i32,
711 : /* 1203*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
712 : /* 1205*/ OPC_EmitInteger, MVT::i32, 8,
713 : /* 1208*/ OPC_EmitInteger, MVT::i32, 8,
714 : /* 1211*/ OPC_EmitInteger, MVT::i32, 8,
715 : /* 1214*/ OPC_EmitInteger, MVT::i1, 0,
716 : /* 1217*/ OPC_EmitInteger, MVT::i32, 0,
717 : /* 1220*/ OPC_EmitInteger, MVT::i32, 0,
718 : /* 1223*/ OPC_EmitInteger, MVT::i32, 0,
719 : /* 1226*/ OPC_EmitInteger, MVT::i32, 0,
720 : /* 1229*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
721 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
722 : // Src: (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 15:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 4:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 4:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 12:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 12:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 20:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 20:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>> - Complexity = 288
723 : // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
724 : /* 1246*/ /*Scope*/ 81|128,2/*337*/, /*->1585*/
725 : /* 1248*/ OPC_MoveChild0,
726 : /* 1249*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
727 : /* 1252*/ OPC_MoveChild0,
728 : /* 1253*/ OPC_CheckAndImm, 15,
729 : /* 1255*/ OPC_RecordChild0, // #0 = $src0
730 : /* 1256*/ OPC_MoveParent,
731 : /* 1257*/ OPC_MoveChild1,
732 : /* 1258*/ OPC_CheckAndImm, 15,
733 : /* 1260*/ OPC_RecordChild0, // #1 = $src1
734 : /* 1261*/ OPC_MoveParent,
735 : /* 1262*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
736 : /* 1264*/ OPC_MoveParent,
737 : /* 1265*/ OPC_RecordChild1, // #2 = $src2
738 : /* 1266*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
739 : /* 1268*/ OPC_MoveParent,
740 : /* 1269*/ OPC_MoveChild1,
741 : /* 1270*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
742 : /* 1273*/ OPC_MoveChild0,
743 : /* 1274*/ OPC_CheckAndImm, 15,
744 : /* 1276*/ OPC_MoveChild0,
745 : /* 1277*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
746 : /* 1280*/ OPC_CheckChild0Same, 0,
747 : /* 1282*/ OPC_CheckChild1Integer, 4,
748 : /* 1284*/ OPC_CheckChild1Type, MVT::i32,
749 : /* 1286*/ OPC_MoveParent,
750 : /* 1287*/ OPC_MoveParent,
751 : /* 1288*/ OPC_MoveChild1,
752 : /* 1289*/ OPC_CheckAndImm, 15,
753 : /* 1291*/ OPC_MoveChild0,
754 : /* 1292*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
755 : /* 1295*/ OPC_CheckChild0Same, 1,
756 : /* 1297*/ OPC_CheckChild1Integer, 4,
757 : /* 1299*/ OPC_CheckChild1Type, MVT::i32,
758 : /* 1301*/ OPC_MoveParent,
759 : /* 1302*/ OPC_MoveParent,
760 : /* 1303*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
761 : /* 1305*/ OPC_MoveParent,
762 : /* 1306*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
763 : /* 1308*/ OPC_MoveParent,
764 : /* 1309*/ OPC_MoveChild1,
765 : /* 1310*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
766 : /* 1313*/ OPC_MoveChild0,
767 : /* 1314*/ OPC_CheckAndImm, 15,
768 : /* 1316*/ OPC_MoveChild0,
769 : /* 1317*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
770 : /* 1320*/ OPC_CheckChild0Same, 0,
771 : /* 1322*/ OPC_CheckChild1Integer, 8,
772 : /* 1324*/ OPC_CheckChild1Type, MVT::i32,
773 : /* 1326*/ OPC_MoveParent,
774 : /* 1327*/ OPC_MoveParent,
775 : /* 1328*/ OPC_MoveChild1,
776 : /* 1329*/ OPC_CheckAndImm, 15,
777 : /* 1331*/ OPC_MoveChild0,
778 : /* 1332*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
779 : /* 1335*/ OPC_CheckChild0Same, 1,
780 : /* 1337*/ OPC_CheckChild1Integer, 8,
781 : /* 1339*/ OPC_CheckChild1Type, MVT::i32,
782 : /* 1341*/ OPC_MoveParent,
783 : /* 1342*/ OPC_MoveParent,
784 : /* 1343*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
785 : /* 1345*/ OPC_MoveParent,
786 : /* 1346*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
787 : /* 1348*/ OPC_MoveParent,
788 : /* 1349*/ OPC_MoveChild1,
789 : /* 1350*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
790 : /* 1353*/ OPC_MoveChild0,
791 : /* 1354*/ OPC_CheckAndImm, 15,
792 : /* 1356*/ OPC_MoveChild0,
793 : /* 1357*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
794 : /* 1360*/ OPC_CheckChild0Same, 0,
795 : /* 1362*/ OPC_CheckChild1Integer, 12,
796 : /* 1364*/ OPC_CheckChild1Type, MVT::i32,
797 : /* 1366*/ OPC_MoveParent,
798 : /* 1367*/ OPC_MoveParent,
799 : /* 1368*/ OPC_MoveChild1,
800 : /* 1369*/ OPC_CheckAndImm, 15,
801 : /* 1371*/ OPC_MoveChild0,
802 : /* 1372*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
803 : /* 1375*/ OPC_CheckChild0Same, 1,
804 : /* 1377*/ OPC_CheckChild1Integer, 12,
805 : /* 1379*/ OPC_CheckChild1Type, MVT::i32,
806 : /* 1381*/ OPC_MoveParent,
807 : /* 1382*/ OPC_MoveParent,
808 : /* 1383*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
809 : /* 1385*/ OPC_MoveParent,
810 : /* 1386*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
811 : /* 1388*/ OPC_MoveParent,
812 : /* 1389*/ OPC_MoveChild1,
813 : /* 1390*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
814 : /* 1393*/ OPC_MoveChild0,
815 : /* 1394*/ OPC_CheckAndImm, 15,
816 : /* 1396*/ OPC_MoveChild0,
817 : /* 1397*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
818 : /* 1400*/ OPC_CheckChild0Same, 0,
819 : /* 1402*/ OPC_CheckChild1Integer, 16,
820 : /* 1404*/ OPC_CheckChild1Type, MVT::i32,
821 : /* 1406*/ OPC_MoveParent,
822 : /* 1407*/ OPC_MoveParent,
823 : /* 1408*/ OPC_MoveChild1,
824 : /* 1409*/ OPC_CheckAndImm, 15,
825 : /* 1411*/ OPC_MoveChild0,
826 : /* 1412*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
827 : /* 1415*/ OPC_CheckChild0Same, 1,
828 : /* 1417*/ OPC_CheckChild1Integer, 16,
829 : /* 1419*/ OPC_CheckChild1Type, MVT::i32,
830 : /* 1421*/ OPC_MoveParent,
831 : /* 1422*/ OPC_MoveParent,
832 : /* 1423*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
833 : /* 1425*/ OPC_MoveParent,
834 : /* 1426*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
835 : /* 1428*/ OPC_MoveParent,
836 : /* 1429*/ OPC_MoveChild1,
837 : /* 1430*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
838 : /* 1433*/ OPC_MoveChild0,
839 : /* 1434*/ OPC_CheckAndImm, 15,
840 : /* 1436*/ OPC_MoveChild0,
841 : /* 1437*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
842 : /* 1440*/ OPC_CheckChild0Same, 0,
843 : /* 1442*/ OPC_CheckChild1Integer, 20,
844 : /* 1444*/ OPC_CheckChild1Type, MVT::i32,
845 : /* 1446*/ OPC_MoveParent,
846 : /* 1447*/ OPC_MoveParent,
847 : /* 1448*/ OPC_MoveChild1,
848 : /* 1449*/ OPC_CheckAndImm, 15,
849 : /* 1451*/ OPC_MoveChild0,
850 : /* 1452*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
851 : /* 1455*/ OPC_CheckChild0Same, 1,
852 : /* 1457*/ OPC_CheckChild1Integer, 20,
853 : /* 1459*/ OPC_CheckChild1Type, MVT::i32,
854 : /* 1461*/ OPC_MoveParent,
855 : /* 1462*/ OPC_MoveParent,
856 : /* 1463*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
857 : /* 1465*/ OPC_MoveParent,
858 : /* 1466*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
859 : /* 1468*/ OPC_MoveParent,
860 : /* 1469*/ OPC_MoveChild1,
861 : /* 1470*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
862 : /* 1473*/ OPC_MoveChild0,
863 : /* 1474*/ OPC_CheckAndImm, 15,
864 : /* 1476*/ OPC_MoveChild0,
865 : /* 1477*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
866 : /* 1480*/ OPC_CheckChild0Same, 0,
867 : /* 1482*/ OPC_CheckChild1Integer, 24,
868 : /* 1484*/ OPC_CheckChild1Type, MVT::i32,
869 : /* 1486*/ OPC_MoveParent,
870 : /* 1487*/ OPC_MoveParent,
871 : /* 1488*/ OPC_MoveChild1,
872 : /* 1489*/ OPC_CheckAndImm, 15,
873 : /* 1491*/ OPC_MoveChild0,
874 : /* 1492*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
875 : /* 1495*/ OPC_CheckChild0Same, 1,
876 : /* 1497*/ OPC_CheckChild1Integer, 24,
877 : /* 1499*/ OPC_CheckChild1Type, MVT::i32,
878 : /* 1501*/ OPC_MoveParent,
879 : /* 1502*/ OPC_MoveParent,
880 : /* 1503*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
881 : /* 1505*/ OPC_MoveParent,
882 : /* 1506*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
883 : /* 1508*/ OPC_MoveParent,
884 : /* 1509*/ OPC_MoveChild1,
885 : /* 1510*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
886 : /* 1513*/ OPC_MoveChild0,
887 : /* 1514*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
888 : /* 1517*/ OPC_CheckChild0Same, 0,
889 : /* 1519*/ OPC_CheckChild1Integer, 28,
890 : /* 1521*/ OPC_CheckChild1Type, MVT::i32,
891 : /* 1523*/ OPC_MoveParent,
892 : /* 1524*/ OPC_MoveChild1,
893 : /* 1525*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
894 : /* 1528*/ OPC_CheckChild0Same, 1,
895 : /* 1530*/ OPC_CheckChild1Integer, 28,
896 : /* 1532*/ OPC_CheckChild1Type, MVT::i32,
897 : /* 1534*/ OPC_MoveParent,
898 : /* 1535*/ OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
899 : /* 1537*/ OPC_MoveParent,
900 : /* 1538*/ OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
901 : /* 1540*/ OPC_CheckType, MVT::i32,
902 : /* 1542*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
903 : /* 1544*/ OPC_EmitInteger, MVT::i32, 8,
904 : /* 1547*/ OPC_EmitInteger, MVT::i32, 8,
905 : /* 1550*/ OPC_EmitInteger, MVT::i32, 8,
906 : /* 1553*/ OPC_EmitInteger, MVT::i1, 0,
907 : /* 1556*/ OPC_EmitInteger, MVT::i32, 0,
908 : /* 1559*/ OPC_EmitInteger, MVT::i32, 0,
909 : /* 1562*/ OPC_EmitInteger, MVT::i32, 0,
910 : /* 1565*/ OPC_EmitInteger, MVT::i32, 0,
911 : /* 1568*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
912 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
913 : // Src: (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (NonACAdd:{ *:[i32] } (add:{ *:[i32] } (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 15:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 4:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 4:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 12:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 12:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 20:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 20:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), 15:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), 15:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>>, (NonACAMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_oneuse>> - Complexity = 288
914 : // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
915 : /* 1585*/ 0, /*End of Scope*/
916 : /* 1586*/ /*Scope*/ 117|128,11/*1525*/, /*->3113*/
917 : /* 1588*/ OPC_RecordChild0, // #0 = $src2
918 : /* 1589*/ OPC_MoveChild1,
919 : /* 1590*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
920 : /* 1593*/ OPC_MoveChild0,
921 : /* 1594*/ OPC_CheckAndImm, 127|128,1/*255*/,
922 : /* 1597*/ OPC_RecordChild0, // #1 = $src0
923 : /* 1598*/ OPC_MoveParent,
924 : /* 1599*/ OPC_MoveChild1,
925 : /* 1600*/ OPC_CheckAndImm, 127|128,1/*255*/,
926 : /* 1603*/ OPC_RecordChild0, // #2 = $src1
927 : /* 1604*/ OPC_MoveParent,
928 : /* 1605*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
929 : /* 1607*/ OPC_MoveParent,
930 : /* 1608*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
931 : /* 1610*/ OPC_MoveParent,
932 : /* 1611*/ OPC_MoveChild1,
933 : /* 1612*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
934 : /* 1615*/ OPC_MoveChild0,
935 : /* 1616*/ OPC_CheckAndImm, 127|128,1/*255*/,
936 : /* 1619*/ OPC_MoveChild0,
937 : /* 1620*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
938 : /* 1623*/ OPC_Scope, 20|128,3/*404*/, /*->2030*/ // 3 children in Scope
939 : /* 1626*/ OPC_CheckChild0Same, 1,
940 : /* 1628*/ OPC_CheckChild1Integer, 8,
941 : /* 1630*/ OPC_CheckChild1Type, MVT::i32,
942 : /* 1632*/ OPC_MoveParent,
943 : /* 1633*/ OPC_MoveParent,
944 : /* 1634*/ OPC_MoveChild1,
945 : /* 1635*/ OPC_CheckAndImm, 127|128,1/*255*/,
946 : /* 1638*/ OPC_MoveChild0,
947 : /* 1639*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
948 : /* 1642*/ OPC_CheckChild0Same, 2,
949 : /* 1644*/ OPC_CheckChild1Integer, 8,
950 : /* 1646*/ OPC_CheckChild1Type, MVT::i32,
951 : /* 1648*/ OPC_MoveParent,
952 : /* 1649*/ OPC_MoveParent,
953 : /* 1650*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
954 : /* 1652*/ OPC_MoveParent,
955 : /* 1653*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
956 : /* 1655*/ OPC_MoveParent,
957 : /* 1656*/ OPC_MoveChild1,
958 : /* 1657*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
959 : /* 1660*/ OPC_MoveChild0,
960 : /* 1661*/ OPC_CheckAndImm, 127|128,1/*255*/,
961 : /* 1664*/ OPC_MoveChild0,
962 : /* 1665*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
963 : /* 1668*/ OPC_Scope, 50|128,1/*178*/, /*->1849*/ // 2 children in Scope
964 : /* 1671*/ OPC_CheckChild0Same, 1,
965 : /* 1673*/ OPC_CheckChild1Integer, 16,
966 : /* 1675*/ OPC_CheckChild1Type, MVT::i32,
967 : /* 1677*/ OPC_MoveParent,
968 : /* 1678*/ OPC_MoveParent,
969 : /* 1679*/ OPC_MoveChild1,
970 : /* 1680*/ OPC_CheckAndImm, 127|128,1/*255*/,
971 : /* 1683*/ OPC_MoveChild0,
972 : /* 1684*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
973 : /* 1687*/ OPC_CheckChild0Same, 2,
974 : /* 1689*/ OPC_CheckChild1Integer, 16,
975 : /* 1691*/ OPC_CheckChild1Type, MVT::i32,
976 : /* 1693*/ OPC_MoveParent,
977 : /* 1694*/ OPC_MoveParent,
978 : /* 1695*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
979 : /* 1697*/ OPC_MoveParent,
980 : /* 1698*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
981 : /* 1700*/ OPC_MoveParent,
982 : /* 1701*/ OPC_MoveChild1,
983 : /* 1702*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
984 : /* 1705*/ OPC_MoveChild0,
985 : /* 1706*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
986 : /* 1709*/ OPC_Scope, 68, /*->1779*/ // 2 children in Scope
987 : /* 1711*/ OPC_CheckChild0Same, 1,
988 : /* 1713*/ OPC_CheckChild1Integer, 24,
989 : /* 1715*/ OPC_CheckChild1Type, MVT::i32,
990 : /* 1717*/ OPC_MoveParent,
991 : /* 1718*/ OPC_MoveChild1,
992 : /* 1719*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
993 : /* 1722*/ OPC_CheckChild0Same, 2,
994 : /* 1724*/ OPC_CheckChild1Integer, 24,
995 : /* 1726*/ OPC_CheckChild1Type, MVT::i32,
996 : /* 1728*/ OPC_MoveParent,
997 : /* 1729*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
998 : /* 1731*/ OPC_MoveParent,
999 : /* 1732*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1000 : /* 1734*/ OPC_CheckType, MVT::i32,
1001 : /* 1736*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1002 : /* 1738*/ OPC_EmitInteger, MVT::i32, 8,
1003 : /* 1741*/ OPC_EmitInteger, MVT::i32, 8,
1004 : /* 1744*/ OPC_EmitInteger, MVT::i32, 8,
1005 : /* 1747*/ OPC_EmitInteger, MVT::i1, 0,
1006 : /* 1750*/ OPC_EmitInteger, MVT::i32, 0,
1007 : /* 1753*/ OPC_EmitInteger, MVT::i32, 0,
1008 : /* 1756*/ OPC_EmitInteger, MVT::i32, 0,
1009 : /* 1759*/ OPC_EmitInteger, MVT::i32, 0,
1010 : /* 1762*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1011 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1012 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1013 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1014 : /* 1779*/ /*Scope*/ 68, /*->1848*/
1015 : /* 1780*/ OPC_CheckChild0Same, 2,
1016 : /* 1782*/ OPC_CheckChild1Integer, 24,
1017 : /* 1784*/ OPC_CheckChild1Type, MVT::i32,
1018 : /* 1786*/ OPC_MoveParent,
1019 : /* 1787*/ OPC_MoveChild1,
1020 : /* 1788*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1021 : /* 1791*/ OPC_CheckChild0Same, 1,
1022 : /* 1793*/ OPC_CheckChild1Integer, 24,
1023 : /* 1795*/ OPC_CheckChild1Type, MVT::i32,
1024 : /* 1797*/ OPC_MoveParent,
1025 : /* 1798*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1026 : /* 1800*/ OPC_MoveParent,
1027 : /* 1801*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1028 : /* 1803*/ OPC_CheckType, MVT::i32,
1029 : /* 1805*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1030 : /* 1807*/ OPC_EmitInteger, MVT::i32, 8,
1031 : /* 1810*/ OPC_EmitInteger, MVT::i32, 8,
1032 : /* 1813*/ OPC_EmitInteger, MVT::i32, 8,
1033 : /* 1816*/ OPC_EmitInteger, MVT::i1, 0,
1034 : /* 1819*/ OPC_EmitInteger, MVT::i32, 0,
1035 : /* 1822*/ OPC_EmitInteger, MVT::i32, 0,
1036 : /* 1825*/ OPC_EmitInteger, MVT::i32, 0,
1037 : /* 1828*/ OPC_EmitInteger, MVT::i32, 0,
1038 : /* 1831*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1039 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1040 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1041 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1042 : /* 1848*/ 0, /*End of Scope*/
1043 : /* 1849*/ /*Scope*/ 50|128,1/*178*/, /*->2029*/
1044 : /* 1851*/ OPC_CheckChild0Same, 2,
1045 : /* 1853*/ OPC_CheckChild1Integer, 16,
1046 : /* 1855*/ OPC_CheckChild1Type, MVT::i32,
1047 : /* 1857*/ OPC_MoveParent,
1048 : /* 1858*/ OPC_MoveParent,
1049 : /* 1859*/ OPC_MoveChild1,
1050 : /* 1860*/ OPC_CheckAndImm, 127|128,1/*255*/,
1051 : /* 1863*/ OPC_MoveChild0,
1052 : /* 1864*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1053 : /* 1867*/ OPC_CheckChild0Same, 1,
1054 : /* 1869*/ OPC_CheckChild1Integer, 16,
1055 : /* 1871*/ OPC_CheckChild1Type, MVT::i32,
1056 : /* 1873*/ OPC_MoveParent,
1057 : /* 1874*/ OPC_MoveParent,
1058 : /* 1875*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1059 : /* 1877*/ OPC_MoveParent,
1060 : /* 1878*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1061 : /* 1880*/ OPC_MoveParent,
1062 : /* 1881*/ OPC_MoveChild1,
1063 : /* 1882*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1064 : /* 1885*/ OPC_MoveChild0,
1065 : /* 1886*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1066 : /* 1889*/ OPC_Scope, 68, /*->1959*/ // 2 children in Scope
1067 : /* 1891*/ OPC_CheckChild0Same, 1,
1068 : /* 1893*/ OPC_CheckChild1Integer, 24,
1069 : /* 1895*/ OPC_CheckChild1Type, MVT::i32,
1070 : /* 1897*/ OPC_MoveParent,
1071 : /* 1898*/ OPC_MoveChild1,
1072 : /* 1899*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1073 : /* 1902*/ OPC_CheckChild0Same, 2,
1074 : /* 1904*/ OPC_CheckChild1Integer, 24,
1075 : /* 1906*/ OPC_CheckChild1Type, MVT::i32,
1076 : /* 1908*/ OPC_MoveParent,
1077 : /* 1909*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1078 : /* 1911*/ OPC_MoveParent,
1079 : /* 1912*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1080 : /* 1914*/ OPC_CheckType, MVT::i32,
1081 : /* 1916*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1082 : /* 1918*/ OPC_EmitInteger, MVT::i32, 8,
1083 : /* 1921*/ OPC_EmitInteger, MVT::i32, 8,
1084 : /* 1924*/ OPC_EmitInteger, MVT::i32, 8,
1085 : /* 1927*/ OPC_EmitInteger, MVT::i1, 0,
1086 : /* 1930*/ OPC_EmitInteger, MVT::i32, 0,
1087 : /* 1933*/ OPC_EmitInteger, MVT::i32, 0,
1088 : /* 1936*/ OPC_EmitInteger, MVT::i32, 0,
1089 : /* 1939*/ OPC_EmitInteger, MVT::i32, 0,
1090 : /* 1942*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1091 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1092 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1093 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1094 : /* 1959*/ /*Scope*/ 68, /*->2028*/
1095 : /* 1960*/ OPC_CheckChild0Same, 2,
1096 : /* 1962*/ OPC_CheckChild1Integer, 24,
1097 : /* 1964*/ OPC_CheckChild1Type, MVT::i32,
1098 : /* 1966*/ OPC_MoveParent,
1099 : /* 1967*/ OPC_MoveChild1,
1100 : /* 1968*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1101 : /* 1971*/ OPC_CheckChild0Same, 1,
1102 : /* 1973*/ OPC_CheckChild1Integer, 24,
1103 : /* 1975*/ OPC_CheckChild1Type, MVT::i32,
1104 : /* 1977*/ OPC_MoveParent,
1105 : /* 1978*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1106 : /* 1980*/ OPC_MoveParent,
1107 : /* 1981*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1108 : /* 1983*/ OPC_CheckType, MVT::i32,
1109 : /* 1985*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1110 : /* 1987*/ OPC_EmitInteger, MVT::i32, 8,
1111 : /* 1990*/ OPC_EmitInteger, MVT::i32, 8,
1112 : /* 1993*/ OPC_EmitInteger, MVT::i32, 8,
1113 : /* 1996*/ OPC_EmitInteger, MVT::i1, 0,
1114 : /* 1999*/ OPC_EmitInteger, MVT::i32, 0,
1115 : /* 2002*/ OPC_EmitInteger, MVT::i32, 0,
1116 : /* 2005*/ OPC_EmitInteger, MVT::i32, 0,
1117 : /* 2008*/ OPC_EmitInteger, MVT::i32, 0,
1118 : /* 2011*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1119 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1120 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1121 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1122 : /* 2028*/ 0, /*End of Scope*/
1123 : /* 2029*/ 0, /*End of Scope*/
1124 : /* 2030*/ /*Scope*/ 34|128,5/*674*/, /*->2706*/
1125 : /* 2032*/ OPC_CheckChild0Same, 2,
1126 : /* 2034*/ OPC_CheckChild1Integer, 8,
1127 : /* 2036*/ OPC_CheckChild1Type, MVT::i32,
1128 : /* 2038*/ OPC_MoveParent,
1129 : /* 2039*/ OPC_MoveParent,
1130 : /* 2040*/ OPC_MoveChild1,
1131 : /* 2041*/ OPC_CheckAndImm, 127|128,1/*255*/,
1132 : /* 2044*/ OPC_MoveChild0,
1133 : /* 2045*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1134 : /* 2048*/ OPC_CheckChild0Same, 1,
1135 : /* 2050*/ OPC_CheckChild1Integer, 8,
1136 : /* 2052*/ OPC_CheckChild1Type, MVT::i32,
1137 : /* 2054*/ OPC_MoveParent,
1138 : /* 2055*/ OPC_MoveParent,
1139 : /* 2056*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1140 : /* 2058*/ OPC_MoveParent,
1141 : /* 2059*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1142 : /* 2061*/ OPC_MoveParent,
1143 : /* 2062*/ OPC_MoveChild1,
1144 : /* 2063*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1145 : /* 2066*/ OPC_MoveChild0,
1146 : /* 2067*/ OPC_CheckAndImm, 127|128,1/*255*/,
1147 : /* 2070*/ OPC_MoveChild0,
1148 : /* 2071*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1149 : /* 2074*/ OPC_Scope, 50|128,1/*178*/, /*->2255*/ // 3 children in Scope
1150 : /* 2077*/ OPC_CheckChild0Same, 1,
1151 : /* 2079*/ OPC_CheckChild1Integer, 16,
1152 : /* 2081*/ OPC_CheckChild1Type, MVT::i32,
1153 : /* 2083*/ OPC_MoveParent,
1154 : /* 2084*/ OPC_MoveParent,
1155 : /* 2085*/ OPC_MoveChild1,
1156 : /* 2086*/ OPC_CheckAndImm, 127|128,1/*255*/,
1157 : /* 2089*/ OPC_MoveChild0,
1158 : /* 2090*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1159 : /* 2093*/ OPC_CheckChild0Same, 2,
1160 : /* 2095*/ OPC_CheckChild1Integer, 16,
1161 : /* 2097*/ OPC_CheckChild1Type, MVT::i32,
1162 : /* 2099*/ OPC_MoveParent,
1163 : /* 2100*/ OPC_MoveParent,
1164 : /* 2101*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1165 : /* 2103*/ OPC_MoveParent,
1166 : /* 2104*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1167 : /* 2106*/ OPC_MoveParent,
1168 : /* 2107*/ OPC_MoveChild1,
1169 : /* 2108*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1170 : /* 2111*/ OPC_MoveChild0,
1171 : /* 2112*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1172 : /* 2115*/ OPC_Scope, 68, /*->2185*/ // 2 children in Scope
1173 : /* 2117*/ OPC_CheckChild0Same, 1,
1174 : /* 2119*/ OPC_CheckChild1Integer, 24,
1175 : /* 2121*/ OPC_CheckChild1Type, MVT::i32,
1176 : /* 2123*/ OPC_MoveParent,
1177 : /* 2124*/ OPC_MoveChild1,
1178 : /* 2125*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1179 : /* 2128*/ OPC_CheckChild0Same, 2,
1180 : /* 2130*/ OPC_CheckChild1Integer, 24,
1181 : /* 2132*/ OPC_CheckChild1Type, MVT::i32,
1182 : /* 2134*/ OPC_MoveParent,
1183 : /* 2135*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1184 : /* 2137*/ OPC_MoveParent,
1185 : /* 2138*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1186 : /* 2140*/ OPC_CheckType, MVT::i32,
1187 : /* 2142*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1188 : /* 2144*/ OPC_EmitInteger, MVT::i32, 8,
1189 : /* 2147*/ OPC_EmitInteger, MVT::i32, 8,
1190 : /* 2150*/ OPC_EmitInteger, MVT::i32, 8,
1191 : /* 2153*/ OPC_EmitInteger, MVT::i1, 0,
1192 : /* 2156*/ OPC_EmitInteger, MVT::i32, 0,
1193 : /* 2159*/ OPC_EmitInteger, MVT::i32, 0,
1194 : /* 2162*/ OPC_EmitInteger, MVT::i32, 0,
1195 : /* 2165*/ OPC_EmitInteger, MVT::i32, 0,
1196 : /* 2168*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1197 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1198 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1199 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1200 : /* 2185*/ /*Scope*/ 68, /*->2254*/
1201 : /* 2186*/ OPC_CheckChild0Same, 2,
1202 : /* 2188*/ OPC_CheckChild1Integer, 24,
1203 : /* 2190*/ OPC_CheckChild1Type, MVT::i32,
1204 : /* 2192*/ OPC_MoveParent,
1205 : /* 2193*/ OPC_MoveChild1,
1206 : /* 2194*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1207 : /* 2197*/ OPC_CheckChild0Same, 1,
1208 : /* 2199*/ OPC_CheckChild1Integer, 24,
1209 : /* 2201*/ OPC_CheckChild1Type, MVT::i32,
1210 : /* 2203*/ OPC_MoveParent,
1211 : /* 2204*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1212 : /* 2206*/ OPC_MoveParent,
1213 : /* 2207*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1214 : /* 2209*/ OPC_CheckType, MVT::i32,
1215 : /* 2211*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1216 : /* 2213*/ OPC_EmitInteger, MVT::i32, 8,
1217 : /* 2216*/ OPC_EmitInteger, MVT::i32, 8,
1218 : /* 2219*/ OPC_EmitInteger, MVT::i32, 8,
1219 : /* 2222*/ OPC_EmitInteger, MVT::i1, 0,
1220 : /* 2225*/ OPC_EmitInteger, MVT::i32, 0,
1221 : /* 2228*/ OPC_EmitInteger, MVT::i32, 0,
1222 : /* 2231*/ OPC_EmitInteger, MVT::i32, 0,
1223 : /* 2234*/ OPC_EmitInteger, MVT::i32, 0,
1224 : /* 2237*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1225 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1226 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1227 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1228 : /* 2254*/ 0, /*End of Scope*/
1229 : /* 2255*/ /*Scope*/ 12|128,2/*268*/, /*->2525*/
1230 : /* 2257*/ OPC_CheckChild0Same, 2,
1231 : /* 2259*/ OPC_CheckChild1Integer, 16,
1232 : /* 2261*/ OPC_CheckChild1Type, MVT::i32,
1233 : /* 2263*/ OPC_MoveParent,
1234 : /* 2264*/ OPC_MoveParent,
1235 : /* 2265*/ OPC_MoveChild1,
1236 : /* 2266*/ OPC_CheckAndImm, 127|128,1/*255*/,
1237 : /* 2269*/ OPC_MoveChild0,
1238 : /* 2270*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1239 : /* 2273*/ OPC_CheckChild0Same, 1,
1240 : /* 2275*/ OPC_CheckChild1Integer, 16,
1241 : /* 2277*/ OPC_CheckChild1Type, MVT::i32,
1242 : /* 2279*/ OPC_MoveParent,
1243 : /* 2280*/ OPC_MoveParent,
1244 : /* 2281*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1245 : /* 2283*/ OPC_MoveParent,
1246 : /* 2284*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1247 : /* 2286*/ OPC_MoveParent,
1248 : /* 2287*/ OPC_MoveChild1,
1249 : /* 2288*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1250 : /* 2291*/ OPC_MoveChild0,
1251 : /* 2292*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1252 : /* 2295*/ OPC_Scope, 68, /*->2365*/ // 3 children in Scope
1253 : /* 2297*/ OPC_CheckChild0Same, 1,
1254 : /* 2299*/ OPC_CheckChild1Integer, 24,
1255 : /* 2301*/ OPC_CheckChild1Type, MVT::i32,
1256 : /* 2303*/ OPC_MoveParent,
1257 : /* 2304*/ OPC_MoveChild1,
1258 : /* 2305*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1259 : /* 2308*/ OPC_CheckChild0Same, 2,
1260 : /* 2310*/ OPC_CheckChild1Integer, 24,
1261 : /* 2312*/ OPC_CheckChild1Type, MVT::i32,
1262 : /* 2314*/ OPC_MoveParent,
1263 : /* 2315*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1264 : /* 2317*/ OPC_MoveParent,
1265 : /* 2318*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1266 : /* 2320*/ OPC_CheckType, MVT::i32,
1267 : /* 2322*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1268 : /* 2324*/ OPC_EmitInteger, MVT::i32, 8,
1269 : /* 2327*/ OPC_EmitInteger, MVT::i32, 8,
1270 : /* 2330*/ OPC_EmitInteger, MVT::i32, 8,
1271 : /* 2333*/ OPC_EmitInteger, MVT::i1, 0,
1272 : /* 2336*/ OPC_EmitInteger, MVT::i32, 0,
1273 : /* 2339*/ OPC_EmitInteger, MVT::i32, 0,
1274 : /* 2342*/ OPC_EmitInteger, MVT::i32, 0,
1275 : /* 2345*/ OPC_EmitInteger, MVT::i32, 0,
1276 : /* 2348*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1277 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1278 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1279 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1280 : /* 2365*/ /*Scope*/ 89, /*->2455*/
1281 : /* 2366*/ OPC_CheckChild0Same, 2,
1282 : /* 2368*/ OPC_CheckChild1Integer, 24,
1283 : /* 2370*/ OPC_CheckChild1Type, MVT::i32,
1284 : /* 2372*/ OPC_MoveParent,
1285 : /* 2373*/ OPC_MoveChild1,
1286 : /* 2374*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1287 : /* 2377*/ OPC_CheckChild0Same, 1,
1288 : /* 2379*/ OPC_CheckChild1Integer, 24,
1289 : /* 2381*/ OPC_CheckChild1Type, MVT::i32,
1290 : /* 2383*/ OPC_MoveParent,
1291 : /* 2384*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1292 : /* 2386*/ OPC_MoveParent,
1293 : /* 2387*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1294 : /* 2389*/ OPC_CheckType, MVT::i32,
1295 : /* 2391*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1296 : /* 2393*/ OPC_EmitInteger, MVT::i32, 8,
1297 : /* 2396*/ OPC_EmitInteger, MVT::i32, 8,
1298 : /* 2399*/ OPC_EmitInteger, MVT::i32, 8,
1299 : /* 2402*/ OPC_EmitInteger, MVT::i1, 0,
1300 : /* 2405*/ OPC_EmitInteger, MVT::i32, 0,
1301 : /* 2408*/ OPC_EmitInteger, MVT::i32, 0,
1302 : /* 2411*/ OPC_EmitInteger, MVT::i32, 0,
1303 : /* 2414*/ OPC_EmitInteger, MVT::i32, 0,
1304 : /* 2417*/ OPC_Scope, 17, /*->2436*/ // 2 children in Scope
1305 : /* 2419*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1306 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
1307 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1308 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1309 : /* 2436*/ /*Scope*/ 17, /*->2454*/
1310 : /* 2437*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1311 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1312 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1313 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1314 : /* 2454*/ 0, /*End of Scope*/
1315 : /* 2455*/ /*Scope*/ 68, /*->2524*/
1316 : /* 2456*/ OPC_CheckChild0Same, 1,
1317 : /* 2458*/ OPC_CheckChild1Integer, 24,
1318 : /* 2460*/ OPC_CheckChild1Type, MVT::i32,
1319 : /* 2462*/ OPC_MoveParent,
1320 : /* 2463*/ OPC_MoveChild1,
1321 : /* 2464*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1322 : /* 2467*/ OPC_CheckChild0Same, 2,
1323 : /* 2469*/ OPC_CheckChild1Integer, 24,
1324 : /* 2471*/ OPC_CheckChild1Type, MVT::i32,
1325 : /* 2473*/ OPC_MoveParent,
1326 : /* 2474*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1327 : /* 2476*/ OPC_MoveParent,
1328 : /* 2477*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1329 : /* 2479*/ OPC_CheckType, MVT::i32,
1330 : /* 2481*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1331 : /* 2483*/ OPC_EmitInteger, MVT::i32, 8,
1332 : /* 2486*/ OPC_EmitInteger, MVT::i32, 8,
1333 : /* 2489*/ OPC_EmitInteger, MVT::i32, 8,
1334 : /* 2492*/ OPC_EmitInteger, MVT::i1, 0,
1335 : /* 2495*/ OPC_EmitInteger, MVT::i32, 0,
1336 : /* 2498*/ OPC_EmitInteger, MVT::i32, 0,
1337 : /* 2501*/ OPC_EmitInteger, MVT::i32, 0,
1338 : /* 2504*/ OPC_EmitInteger, MVT::i32, 0,
1339 : /* 2507*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1340 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1341 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1342 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1343 : /* 2524*/ 0, /*End of Scope*/
1344 : /* 2525*/ /*Scope*/ 50|128,1/*178*/, /*->2705*/
1345 : /* 2527*/ OPC_CheckChild0Same, 1,
1346 : /* 2529*/ OPC_CheckChild1Integer, 16,
1347 : /* 2531*/ OPC_CheckChild1Type, MVT::i32,
1348 : /* 2533*/ OPC_MoveParent,
1349 : /* 2534*/ OPC_MoveParent,
1350 : /* 2535*/ OPC_MoveChild1,
1351 : /* 2536*/ OPC_CheckAndImm, 127|128,1/*255*/,
1352 : /* 2539*/ OPC_MoveChild0,
1353 : /* 2540*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1354 : /* 2543*/ OPC_CheckChild0Same, 2,
1355 : /* 2545*/ OPC_CheckChild1Integer, 16,
1356 : /* 2547*/ OPC_CheckChild1Type, MVT::i32,
1357 : /* 2549*/ OPC_MoveParent,
1358 : /* 2550*/ OPC_MoveParent,
1359 : /* 2551*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1360 : /* 2553*/ OPC_MoveParent,
1361 : /* 2554*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1362 : /* 2556*/ OPC_MoveParent,
1363 : /* 2557*/ OPC_MoveChild1,
1364 : /* 2558*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1365 : /* 2561*/ OPC_MoveChild0,
1366 : /* 2562*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1367 : /* 2565*/ OPC_Scope, 68, /*->2635*/ // 2 children in Scope
1368 : /* 2567*/ OPC_CheckChild0Same, 2,
1369 : /* 2569*/ OPC_CheckChild1Integer, 24,
1370 : /* 2571*/ OPC_CheckChild1Type, MVT::i32,
1371 : /* 2573*/ OPC_MoveParent,
1372 : /* 2574*/ OPC_MoveChild1,
1373 : /* 2575*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1374 : /* 2578*/ OPC_CheckChild0Same, 1,
1375 : /* 2580*/ OPC_CheckChild1Integer, 24,
1376 : /* 2582*/ OPC_CheckChild1Type, MVT::i32,
1377 : /* 2584*/ OPC_MoveParent,
1378 : /* 2585*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1379 : /* 2587*/ OPC_MoveParent,
1380 : /* 2588*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1381 : /* 2590*/ OPC_CheckType, MVT::i32,
1382 : /* 2592*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1383 : /* 2594*/ OPC_EmitInteger, MVT::i32, 8,
1384 : /* 2597*/ OPC_EmitInteger, MVT::i32, 8,
1385 : /* 2600*/ OPC_EmitInteger, MVT::i32, 8,
1386 : /* 2603*/ OPC_EmitInteger, MVT::i1, 0,
1387 : /* 2606*/ OPC_EmitInteger, MVT::i32, 0,
1388 : /* 2609*/ OPC_EmitInteger, MVT::i32, 0,
1389 : /* 2612*/ OPC_EmitInteger, MVT::i32, 0,
1390 : /* 2615*/ OPC_EmitInteger, MVT::i32, 0,
1391 : /* 2618*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1392 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1393 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1394 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1395 : /* 2635*/ /*Scope*/ 68, /*->2704*/
1396 : /* 2636*/ OPC_CheckChild0Same, 1,
1397 : /* 2638*/ OPC_CheckChild1Integer, 24,
1398 : /* 2640*/ OPC_CheckChild1Type, MVT::i32,
1399 : /* 2642*/ OPC_MoveParent,
1400 : /* 2643*/ OPC_MoveChild1,
1401 : /* 2644*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1402 : /* 2647*/ OPC_CheckChild0Same, 2,
1403 : /* 2649*/ OPC_CheckChild1Integer, 24,
1404 : /* 2651*/ OPC_CheckChild1Type, MVT::i32,
1405 : /* 2653*/ OPC_MoveParent,
1406 : /* 2654*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1407 : /* 2656*/ OPC_MoveParent,
1408 : /* 2657*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1409 : /* 2659*/ OPC_CheckType, MVT::i32,
1410 : /* 2661*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1411 : /* 2663*/ OPC_EmitInteger, MVT::i32, 8,
1412 : /* 2666*/ OPC_EmitInteger, MVT::i32, 8,
1413 : /* 2669*/ OPC_EmitInteger, MVT::i32, 8,
1414 : /* 2672*/ OPC_EmitInteger, MVT::i1, 0,
1415 : /* 2675*/ OPC_EmitInteger, MVT::i32, 0,
1416 : /* 2678*/ OPC_EmitInteger, MVT::i32, 0,
1417 : /* 2681*/ OPC_EmitInteger, MVT::i32, 0,
1418 : /* 2684*/ OPC_EmitInteger, MVT::i32, 0,
1419 : /* 2687*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1420 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1421 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1422 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1423 : /* 2704*/ 0, /*End of Scope*/
1424 : /* 2705*/ 0, /*End of Scope*/
1425 : /* 2706*/ /*Scope*/ 20|128,3/*404*/, /*->3112*/
1426 : /* 2708*/ OPC_CheckChild0Same, 1,
1427 : /* 2710*/ OPC_CheckChild1Integer, 8,
1428 : /* 2712*/ OPC_CheckChild1Type, MVT::i32,
1429 : /* 2714*/ OPC_MoveParent,
1430 : /* 2715*/ OPC_MoveParent,
1431 : /* 2716*/ OPC_MoveChild1,
1432 : /* 2717*/ OPC_CheckAndImm, 127|128,1/*255*/,
1433 : /* 2720*/ OPC_MoveChild0,
1434 : /* 2721*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1435 : /* 2724*/ OPC_CheckChild0Same, 2,
1436 : /* 2726*/ OPC_CheckChild1Integer, 8,
1437 : /* 2728*/ OPC_CheckChild1Type, MVT::i32,
1438 : /* 2730*/ OPC_MoveParent,
1439 : /* 2731*/ OPC_MoveParent,
1440 : /* 2732*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1441 : /* 2734*/ OPC_MoveParent,
1442 : /* 2735*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1443 : /* 2737*/ OPC_MoveParent,
1444 : /* 2738*/ OPC_MoveChild1,
1445 : /* 2739*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1446 : /* 2742*/ OPC_MoveChild0,
1447 : /* 2743*/ OPC_CheckAndImm, 127|128,1/*255*/,
1448 : /* 2746*/ OPC_MoveChild0,
1449 : /* 2747*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1450 : /* 2750*/ OPC_Scope, 50|128,1/*178*/, /*->2931*/ // 2 children in Scope
1451 : /* 2753*/ OPC_CheckChild0Same, 2,
1452 : /* 2755*/ OPC_CheckChild1Integer, 16,
1453 : /* 2757*/ OPC_CheckChild1Type, MVT::i32,
1454 : /* 2759*/ OPC_MoveParent,
1455 : /* 2760*/ OPC_MoveParent,
1456 : /* 2761*/ OPC_MoveChild1,
1457 : /* 2762*/ OPC_CheckAndImm, 127|128,1/*255*/,
1458 : /* 2765*/ OPC_MoveChild0,
1459 : /* 2766*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1460 : /* 2769*/ OPC_CheckChild0Same, 1,
1461 : /* 2771*/ OPC_CheckChild1Integer, 16,
1462 : /* 2773*/ OPC_CheckChild1Type, MVT::i32,
1463 : /* 2775*/ OPC_MoveParent,
1464 : /* 2776*/ OPC_MoveParent,
1465 : /* 2777*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1466 : /* 2779*/ OPC_MoveParent,
1467 : /* 2780*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1468 : /* 2782*/ OPC_MoveParent,
1469 : /* 2783*/ OPC_MoveChild1,
1470 : /* 2784*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1471 : /* 2787*/ OPC_MoveChild0,
1472 : /* 2788*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1473 : /* 2791*/ OPC_Scope, 68, /*->2861*/ // 2 children in Scope
1474 : /* 2793*/ OPC_CheckChild0Same, 2,
1475 : /* 2795*/ OPC_CheckChild1Integer, 24,
1476 : /* 2797*/ OPC_CheckChild1Type, MVT::i32,
1477 : /* 2799*/ OPC_MoveParent,
1478 : /* 2800*/ OPC_MoveChild1,
1479 : /* 2801*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1480 : /* 2804*/ OPC_CheckChild0Same, 1,
1481 : /* 2806*/ OPC_CheckChild1Integer, 24,
1482 : /* 2808*/ OPC_CheckChild1Type, MVT::i32,
1483 : /* 2810*/ OPC_MoveParent,
1484 : /* 2811*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1485 : /* 2813*/ OPC_MoveParent,
1486 : /* 2814*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1487 : /* 2816*/ OPC_CheckType, MVT::i32,
1488 : /* 2818*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1489 : /* 2820*/ OPC_EmitInteger, MVT::i32, 8,
1490 : /* 2823*/ OPC_EmitInteger, MVT::i32, 8,
1491 : /* 2826*/ OPC_EmitInteger, MVT::i32, 8,
1492 : /* 2829*/ OPC_EmitInteger, MVT::i1, 0,
1493 : /* 2832*/ OPC_EmitInteger, MVT::i32, 0,
1494 : /* 2835*/ OPC_EmitInteger, MVT::i32, 0,
1495 : /* 2838*/ OPC_EmitInteger, MVT::i32, 0,
1496 : /* 2841*/ OPC_EmitInteger, MVT::i32, 0,
1497 : /* 2844*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1498 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1499 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1500 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1501 : /* 2861*/ /*Scope*/ 68, /*->2930*/
1502 : /* 2862*/ OPC_CheckChild0Same, 1,
1503 : /* 2864*/ OPC_CheckChild1Integer, 24,
1504 : /* 2866*/ OPC_CheckChild1Type, MVT::i32,
1505 : /* 2868*/ OPC_MoveParent,
1506 : /* 2869*/ OPC_MoveChild1,
1507 : /* 2870*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1508 : /* 2873*/ OPC_CheckChild0Same, 2,
1509 : /* 2875*/ OPC_CheckChild1Integer, 24,
1510 : /* 2877*/ OPC_CheckChild1Type, MVT::i32,
1511 : /* 2879*/ OPC_MoveParent,
1512 : /* 2880*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1513 : /* 2882*/ OPC_MoveParent,
1514 : /* 2883*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1515 : /* 2885*/ OPC_CheckType, MVT::i32,
1516 : /* 2887*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1517 : /* 2889*/ OPC_EmitInteger, MVT::i32, 8,
1518 : /* 2892*/ OPC_EmitInteger, MVT::i32, 8,
1519 : /* 2895*/ OPC_EmitInteger, MVT::i32, 8,
1520 : /* 2898*/ OPC_EmitInteger, MVT::i1, 0,
1521 : /* 2901*/ OPC_EmitInteger, MVT::i32, 0,
1522 : /* 2904*/ OPC_EmitInteger, MVT::i32, 0,
1523 : /* 2907*/ OPC_EmitInteger, MVT::i32, 0,
1524 : /* 2910*/ OPC_EmitInteger, MVT::i32, 0,
1525 : /* 2913*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1526 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1527 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1528 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1529 : /* 2930*/ 0, /*End of Scope*/
1530 : /* 2931*/ /*Scope*/ 50|128,1/*178*/, /*->3111*/
1531 : /* 2933*/ OPC_CheckChild0Same, 1,
1532 : /* 2935*/ OPC_CheckChild1Integer, 16,
1533 : /* 2937*/ OPC_CheckChild1Type, MVT::i32,
1534 : /* 2939*/ OPC_MoveParent,
1535 : /* 2940*/ OPC_MoveParent,
1536 : /* 2941*/ OPC_MoveChild1,
1537 : /* 2942*/ OPC_CheckAndImm, 127|128,1/*255*/,
1538 : /* 2945*/ OPC_MoveChild0,
1539 : /* 2946*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1540 : /* 2949*/ OPC_CheckChild0Same, 2,
1541 : /* 2951*/ OPC_CheckChild1Integer, 16,
1542 : /* 2953*/ OPC_CheckChild1Type, MVT::i32,
1543 : /* 2955*/ OPC_MoveParent,
1544 : /* 2956*/ OPC_MoveParent,
1545 : /* 2957*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1546 : /* 2959*/ OPC_MoveParent,
1547 : /* 2960*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1548 : /* 2962*/ OPC_MoveParent,
1549 : /* 2963*/ OPC_MoveChild1,
1550 : /* 2964*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1551 : /* 2967*/ OPC_MoveChild0,
1552 : /* 2968*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1553 : /* 2971*/ OPC_Scope, 68, /*->3041*/ // 2 children in Scope
1554 : /* 2973*/ OPC_CheckChild0Same, 2,
1555 : /* 2975*/ OPC_CheckChild1Integer, 24,
1556 : /* 2977*/ OPC_CheckChild1Type, MVT::i32,
1557 : /* 2979*/ OPC_MoveParent,
1558 : /* 2980*/ OPC_MoveChild1,
1559 : /* 2981*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1560 : /* 2984*/ OPC_CheckChild0Same, 1,
1561 : /* 2986*/ OPC_CheckChild1Integer, 24,
1562 : /* 2988*/ OPC_CheckChild1Type, MVT::i32,
1563 : /* 2990*/ OPC_MoveParent,
1564 : /* 2991*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1565 : /* 2993*/ OPC_MoveParent,
1566 : /* 2994*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1567 : /* 2996*/ OPC_CheckType, MVT::i32,
1568 : /* 2998*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1569 : /* 3000*/ OPC_EmitInteger, MVT::i32, 8,
1570 : /* 3003*/ OPC_EmitInteger, MVT::i32, 8,
1571 : /* 3006*/ OPC_EmitInteger, MVT::i32, 8,
1572 : /* 3009*/ OPC_EmitInteger, MVT::i1, 0,
1573 : /* 3012*/ OPC_EmitInteger, MVT::i32, 0,
1574 : /* 3015*/ OPC_EmitInteger, MVT::i32, 0,
1575 : /* 3018*/ OPC_EmitInteger, MVT::i32, 0,
1576 : /* 3021*/ OPC_EmitInteger, MVT::i32, 0,
1577 : /* 3024*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1578 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1579 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1580 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1581 : /* 3041*/ /*Scope*/ 68, /*->3110*/
1582 : /* 3042*/ OPC_CheckChild0Same, 1,
1583 : /* 3044*/ OPC_CheckChild1Integer, 24,
1584 : /* 3046*/ OPC_CheckChild1Type, MVT::i32,
1585 : /* 3048*/ OPC_MoveParent,
1586 : /* 3049*/ OPC_MoveChild1,
1587 : /* 3050*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1588 : /* 3053*/ OPC_CheckChild0Same, 2,
1589 : /* 3055*/ OPC_CheckChild1Integer, 24,
1590 : /* 3057*/ OPC_CheckChild1Type, MVT::i32,
1591 : /* 3059*/ OPC_MoveParent,
1592 : /* 3060*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1593 : /* 3062*/ OPC_MoveParent,
1594 : /* 3063*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1595 : /* 3065*/ OPC_CheckType, MVT::i32,
1596 : /* 3067*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1597 : /* 3069*/ OPC_EmitInteger, MVT::i32, 8,
1598 : /* 3072*/ OPC_EmitInteger, MVT::i32, 8,
1599 : /* 3075*/ OPC_EmitInteger, MVT::i32, 8,
1600 : /* 3078*/ OPC_EmitInteger, MVT::i1, 0,
1601 : /* 3081*/ OPC_EmitInteger, MVT::i32, 0,
1602 : /* 3084*/ OPC_EmitInteger, MVT::i32, 0,
1603 : /* 3087*/ OPC_EmitInteger, MVT::i32, 0,
1604 : /* 3090*/ OPC_EmitInteger, MVT::i32, 0,
1605 : /* 3093*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1606 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
1607 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1608 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1609 : /* 3110*/ 0, /*End of Scope*/
1610 : /* 3111*/ 0, /*End of Scope*/
1611 : /* 3112*/ 0, /*End of Scope*/
1612 : /* 3113*/ /*Scope*/ 117|128,11/*1525*/, /*->4640*/
1613 : /* 3115*/ OPC_MoveChild0,
1614 : /* 3116*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1615 : /* 3119*/ OPC_MoveChild0,
1616 : /* 3120*/ OPC_CheckAndImm, 127|128,1/*255*/,
1617 : /* 3123*/ OPC_RecordChild0, // #0 = $src0
1618 : /* 3124*/ OPC_MoveParent,
1619 : /* 3125*/ OPC_MoveChild1,
1620 : /* 3126*/ OPC_CheckAndImm, 127|128,1/*255*/,
1621 : /* 3129*/ OPC_RecordChild0, // #1 = $src1
1622 : /* 3130*/ OPC_MoveParent,
1623 : /* 3131*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1624 : /* 3133*/ OPC_MoveParent,
1625 : /* 3134*/ OPC_RecordChild1, // #2 = $src2
1626 : /* 3135*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1627 : /* 3137*/ OPC_MoveParent,
1628 : /* 3138*/ OPC_MoveChild1,
1629 : /* 3139*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1630 : /* 3142*/ OPC_MoveChild0,
1631 : /* 3143*/ OPC_CheckAndImm, 127|128,1/*255*/,
1632 : /* 3146*/ OPC_MoveChild0,
1633 : /* 3147*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1634 : /* 3150*/ OPC_Scope, 20|128,3/*404*/, /*->3557*/ // 3 children in Scope
1635 : /* 3153*/ OPC_CheckChild0Same, 0,
1636 : /* 3155*/ OPC_CheckChild1Integer, 8,
1637 : /* 3157*/ OPC_CheckChild1Type, MVT::i32,
1638 : /* 3159*/ OPC_MoveParent,
1639 : /* 3160*/ OPC_MoveParent,
1640 : /* 3161*/ OPC_MoveChild1,
1641 : /* 3162*/ OPC_CheckAndImm, 127|128,1/*255*/,
1642 : /* 3165*/ OPC_MoveChild0,
1643 : /* 3166*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1644 : /* 3169*/ OPC_CheckChild0Same, 1,
1645 : /* 3171*/ OPC_CheckChild1Integer, 8,
1646 : /* 3173*/ OPC_CheckChild1Type, MVT::i32,
1647 : /* 3175*/ OPC_MoveParent,
1648 : /* 3176*/ OPC_MoveParent,
1649 : /* 3177*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1650 : /* 3179*/ OPC_MoveParent,
1651 : /* 3180*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1652 : /* 3182*/ OPC_MoveParent,
1653 : /* 3183*/ OPC_MoveChild1,
1654 : /* 3184*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1655 : /* 3187*/ OPC_MoveChild0,
1656 : /* 3188*/ OPC_CheckAndImm, 127|128,1/*255*/,
1657 : /* 3191*/ OPC_MoveChild0,
1658 : /* 3192*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1659 : /* 3195*/ OPC_Scope, 50|128,1/*178*/, /*->3376*/ // 2 children in Scope
1660 : /* 3198*/ OPC_CheckChild0Same, 0,
1661 : /* 3200*/ OPC_CheckChild1Integer, 16,
1662 : /* 3202*/ OPC_CheckChild1Type, MVT::i32,
1663 : /* 3204*/ OPC_MoveParent,
1664 : /* 3205*/ OPC_MoveParent,
1665 : /* 3206*/ OPC_MoveChild1,
1666 : /* 3207*/ OPC_CheckAndImm, 127|128,1/*255*/,
1667 : /* 3210*/ OPC_MoveChild0,
1668 : /* 3211*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1669 : /* 3214*/ OPC_CheckChild0Same, 1,
1670 : /* 3216*/ OPC_CheckChild1Integer, 16,
1671 : /* 3218*/ OPC_CheckChild1Type, MVT::i32,
1672 : /* 3220*/ OPC_MoveParent,
1673 : /* 3221*/ OPC_MoveParent,
1674 : /* 3222*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1675 : /* 3224*/ OPC_MoveParent,
1676 : /* 3225*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1677 : /* 3227*/ OPC_MoveParent,
1678 : /* 3228*/ OPC_MoveChild1,
1679 : /* 3229*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1680 : /* 3232*/ OPC_MoveChild0,
1681 : /* 3233*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1682 : /* 3236*/ OPC_Scope, 68, /*->3306*/ // 2 children in Scope
1683 : /* 3238*/ OPC_CheckChild0Same, 0,
1684 : /* 3240*/ OPC_CheckChild1Integer, 24,
1685 : /* 3242*/ OPC_CheckChild1Type, MVT::i32,
1686 : /* 3244*/ OPC_MoveParent,
1687 : /* 3245*/ OPC_MoveChild1,
1688 : /* 3246*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1689 : /* 3249*/ OPC_CheckChild0Same, 1,
1690 : /* 3251*/ OPC_CheckChild1Integer, 24,
1691 : /* 3253*/ OPC_CheckChild1Type, MVT::i32,
1692 : /* 3255*/ OPC_MoveParent,
1693 : /* 3256*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1694 : /* 3258*/ OPC_MoveParent,
1695 : /* 3259*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1696 : /* 3261*/ OPC_CheckType, MVT::i32,
1697 : /* 3263*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1698 : /* 3265*/ OPC_EmitInteger, MVT::i32, 8,
1699 : /* 3268*/ OPC_EmitInteger, MVT::i32, 8,
1700 : /* 3271*/ OPC_EmitInteger, MVT::i32, 8,
1701 : /* 3274*/ OPC_EmitInteger, MVT::i1, 0,
1702 : /* 3277*/ OPC_EmitInteger, MVT::i32, 0,
1703 : /* 3280*/ OPC_EmitInteger, MVT::i32, 0,
1704 : /* 3283*/ OPC_EmitInteger, MVT::i32, 0,
1705 : /* 3286*/ OPC_EmitInteger, MVT::i32, 0,
1706 : /* 3289*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1707 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1708 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1709 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1710 : /* 3306*/ /*Scope*/ 68, /*->3375*/
1711 : /* 3307*/ OPC_CheckChild0Same, 1,
1712 : /* 3309*/ OPC_CheckChild1Integer, 24,
1713 : /* 3311*/ OPC_CheckChild1Type, MVT::i32,
1714 : /* 3313*/ OPC_MoveParent,
1715 : /* 3314*/ OPC_MoveChild1,
1716 : /* 3315*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1717 : /* 3318*/ OPC_CheckChild0Same, 0,
1718 : /* 3320*/ OPC_CheckChild1Integer, 24,
1719 : /* 3322*/ OPC_CheckChild1Type, MVT::i32,
1720 : /* 3324*/ OPC_MoveParent,
1721 : /* 3325*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1722 : /* 3327*/ OPC_MoveParent,
1723 : /* 3328*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1724 : /* 3330*/ OPC_CheckType, MVT::i32,
1725 : /* 3332*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1726 : /* 3334*/ OPC_EmitInteger, MVT::i32, 8,
1727 : /* 3337*/ OPC_EmitInteger, MVT::i32, 8,
1728 : /* 3340*/ OPC_EmitInteger, MVT::i32, 8,
1729 : /* 3343*/ OPC_EmitInteger, MVT::i1, 0,
1730 : /* 3346*/ OPC_EmitInteger, MVT::i32, 0,
1731 : /* 3349*/ OPC_EmitInteger, MVT::i32, 0,
1732 : /* 3352*/ OPC_EmitInteger, MVT::i32, 0,
1733 : /* 3355*/ OPC_EmitInteger, MVT::i32, 0,
1734 : /* 3358*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1735 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1736 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1737 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1738 : /* 3375*/ 0, /*End of Scope*/
1739 : /* 3376*/ /*Scope*/ 50|128,1/*178*/, /*->3556*/
1740 : /* 3378*/ OPC_CheckChild0Same, 1,
1741 : /* 3380*/ OPC_CheckChild1Integer, 16,
1742 : /* 3382*/ OPC_CheckChild1Type, MVT::i32,
1743 : /* 3384*/ OPC_MoveParent,
1744 : /* 3385*/ OPC_MoveParent,
1745 : /* 3386*/ OPC_MoveChild1,
1746 : /* 3387*/ OPC_CheckAndImm, 127|128,1/*255*/,
1747 : /* 3390*/ OPC_MoveChild0,
1748 : /* 3391*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1749 : /* 3394*/ OPC_CheckChild0Same, 0,
1750 : /* 3396*/ OPC_CheckChild1Integer, 16,
1751 : /* 3398*/ OPC_CheckChild1Type, MVT::i32,
1752 : /* 3400*/ OPC_MoveParent,
1753 : /* 3401*/ OPC_MoveParent,
1754 : /* 3402*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1755 : /* 3404*/ OPC_MoveParent,
1756 : /* 3405*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1757 : /* 3407*/ OPC_MoveParent,
1758 : /* 3408*/ OPC_MoveChild1,
1759 : /* 3409*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1760 : /* 3412*/ OPC_MoveChild0,
1761 : /* 3413*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1762 : /* 3416*/ OPC_Scope, 68, /*->3486*/ // 2 children in Scope
1763 : /* 3418*/ OPC_CheckChild0Same, 0,
1764 : /* 3420*/ OPC_CheckChild1Integer, 24,
1765 : /* 3422*/ OPC_CheckChild1Type, MVT::i32,
1766 : /* 3424*/ OPC_MoveParent,
1767 : /* 3425*/ OPC_MoveChild1,
1768 : /* 3426*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1769 : /* 3429*/ OPC_CheckChild0Same, 1,
1770 : /* 3431*/ OPC_CheckChild1Integer, 24,
1771 : /* 3433*/ OPC_CheckChild1Type, MVT::i32,
1772 : /* 3435*/ OPC_MoveParent,
1773 : /* 3436*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1774 : /* 3438*/ OPC_MoveParent,
1775 : /* 3439*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1776 : /* 3441*/ OPC_CheckType, MVT::i32,
1777 : /* 3443*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1778 : /* 3445*/ OPC_EmitInteger, MVT::i32, 8,
1779 : /* 3448*/ OPC_EmitInteger, MVT::i32, 8,
1780 : /* 3451*/ OPC_EmitInteger, MVT::i32, 8,
1781 : /* 3454*/ OPC_EmitInteger, MVT::i1, 0,
1782 : /* 3457*/ OPC_EmitInteger, MVT::i32, 0,
1783 : /* 3460*/ OPC_EmitInteger, MVT::i32, 0,
1784 : /* 3463*/ OPC_EmitInteger, MVT::i32, 0,
1785 : /* 3466*/ OPC_EmitInteger, MVT::i32, 0,
1786 : /* 3469*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1787 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1788 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1789 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1790 : /* 3486*/ /*Scope*/ 68, /*->3555*/
1791 : /* 3487*/ OPC_CheckChild0Same, 1,
1792 : /* 3489*/ OPC_CheckChild1Integer, 24,
1793 : /* 3491*/ OPC_CheckChild1Type, MVT::i32,
1794 : /* 3493*/ OPC_MoveParent,
1795 : /* 3494*/ OPC_MoveChild1,
1796 : /* 3495*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1797 : /* 3498*/ OPC_CheckChild0Same, 0,
1798 : /* 3500*/ OPC_CheckChild1Integer, 24,
1799 : /* 3502*/ OPC_CheckChild1Type, MVT::i32,
1800 : /* 3504*/ OPC_MoveParent,
1801 : /* 3505*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1802 : /* 3507*/ OPC_MoveParent,
1803 : /* 3508*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1804 : /* 3510*/ OPC_CheckType, MVT::i32,
1805 : /* 3512*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1806 : /* 3514*/ OPC_EmitInteger, MVT::i32, 8,
1807 : /* 3517*/ OPC_EmitInteger, MVT::i32, 8,
1808 : /* 3520*/ OPC_EmitInteger, MVT::i32, 8,
1809 : /* 3523*/ OPC_EmitInteger, MVT::i1, 0,
1810 : /* 3526*/ OPC_EmitInteger, MVT::i32, 0,
1811 : /* 3529*/ OPC_EmitInteger, MVT::i32, 0,
1812 : /* 3532*/ OPC_EmitInteger, MVT::i32, 0,
1813 : /* 3535*/ OPC_EmitInteger, MVT::i32, 0,
1814 : /* 3538*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1815 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1816 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1817 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1818 : /* 3555*/ 0, /*End of Scope*/
1819 : /* 3556*/ 0, /*End of Scope*/
1820 : /* 3557*/ /*Scope*/ 34|128,5/*674*/, /*->4233*/
1821 : /* 3559*/ OPC_CheckChild0Same, 1,
1822 : /* 3561*/ OPC_CheckChild1Integer, 8,
1823 : /* 3563*/ OPC_CheckChild1Type, MVT::i32,
1824 : /* 3565*/ OPC_MoveParent,
1825 : /* 3566*/ OPC_MoveParent,
1826 : /* 3567*/ OPC_MoveChild1,
1827 : /* 3568*/ OPC_CheckAndImm, 127|128,1/*255*/,
1828 : /* 3571*/ OPC_MoveChild0,
1829 : /* 3572*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1830 : /* 3575*/ OPC_CheckChild0Same, 0,
1831 : /* 3577*/ OPC_CheckChild1Integer, 8,
1832 : /* 3579*/ OPC_CheckChild1Type, MVT::i32,
1833 : /* 3581*/ OPC_MoveParent,
1834 : /* 3582*/ OPC_MoveParent,
1835 : /* 3583*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1836 : /* 3585*/ OPC_MoveParent,
1837 : /* 3586*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1838 : /* 3588*/ OPC_MoveParent,
1839 : /* 3589*/ OPC_MoveChild1,
1840 : /* 3590*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1841 : /* 3593*/ OPC_MoveChild0,
1842 : /* 3594*/ OPC_CheckAndImm, 127|128,1/*255*/,
1843 : /* 3597*/ OPC_MoveChild0,
1844 : /* 3598*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1845 : /* 3601*/ OPC_Scope, 50|128,1/*178*/, /*->3782*/ // 3 children in Scope
1846 : /* 3604*/ OPC_CheckChild0Same, 0,
1847 : /* 3606*/ OPC_CheckChild1Integer, 16,
1848 : /* 3608*/ OPC_CheckChild1Type, MVT::i32,
1849 : /* 3610*/ OPC_MoveParent,
1850 : /* 3611*/ OPC_MoveParent,
1851 : /* 3612*/ OPC_MoveChild1,
1852 : /* 3613*/ OPC_CheckAndImm, 127|128,1/*255*/,
1853 : /* 3616*/ OPC_MoveChild0,
1854 : /* 3617*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1855 : /* 3620*/ OPC_CheckChild0Same, 1,
1856 : /* 3622*/ OPC_CheckChild1Integer, 16,
1857 : /* 3624*/ OPC_CheckChild1Type, MVT::i32,
1858 : /* 3626*/ OPC_MoveParent,
1859 : /* 3627*/ OPC_MoveParent,
1860 : /* 3628*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1861 : /* 3630*/ OPC_MoveParent,
1862 : /* 3631*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1863 : /* 3633*/ OPC_MoveParent,
1864 : /* 3634*/ OPC_MoveChild1,
1865 : /* 3635*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1866 : /* 3638*/ OPC_MoveChild0,
1867 : /* 3639*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1868 : /* 3642*/ OPC_Scope, 68, /*->3712*/ // 2 children in Scope
1869 : /* 3644*/ OPC_CheckChild0Same, 0,
1870 : /* 3646*/ OPC_CheckChild1Integer, 24,
1871 : /* 3648*/ OPC_CheckChild1Type, MVT::i32,
1872 : /* 3650*/ OPC_MoveParent,
1873 : /* 3651*/ OPC_MoveChild1,
1874 : /* 3652*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1875 : /* 3655*/ OPC_CheckChild0Same, 1,
1876 : /* 3657*/ OPC_CheckChild1Integer, 24,
1877 : /* 3659*/ OPC_CheckChild1Type, MVT::i32,
1878 : /* 3661*/ OPC_MoveParent,
1879 : /* 3662*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1880 : /* 3664*/ OPC_MoveParent,
1881 : /* 3665*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1882 : /* 3667*/ OPC_CheckType, MVT::i32,
1883 : /* 3669*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1884 : /* 3671*/ OPC_EmitInteger, MVT::i32, 8,
1885 : /* 3674*/ OPC_EmitInteger, MVT::i32, 8,
1886 : /* 3677*/ OPC_EmitInteger, MVT::i32, 8,
1887 : /* 3680*/ OPC_EmitInteger, MVT::i1, 0,
1888 : /* 3683*/ OPC_EmitInteger, MVT::i32, 0,
1889 : /* 3686*/ OPC_EmitInteger, MVT::i32, 0,
1890 : /* 3689*/ OPC_EmitInteger, MVT::i32, 0,
1891 : /* 3692*/ OPC_EmitInteger, MVT::i32, 0,
1892 : /* 3695*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1893 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1894 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1895 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1896 : /* 3712*/ /*Scope*/ 68, /*->3781*/
1897 : /* 3713*/ OPC_CheckChild0Same, 1,
1898 : /* 3715*/ OPC_CheckChild1Integer, 24,
1899 : /* 3717*/ OPC_CheckChild1Type, MVT::i32,
1900 : /* 3719*/ OPC_MoveParent,
1901 : /* 3720*/ OPC_MoveChild1,
1902 : /* 3721*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1903 : /* 3724*/ OPC_CheckChild0Same, 0,
1904 : /* 3726*/ OPC_CheckChild1Integer, 24,
1905 : /* 3728*/ OPC_CheckChild1Type, MVT::i32,
1906 : /* 3730*/ OPC_MoveParent,
1907 : /* 3731*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1908 : /* 3733*/ OPC_MoveParent,
1909 : /* 3734*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1910 : /* 3736*/ OPC_CheckType, MVT::i32,
1911 : /* 3738*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1912 : /* 3740*/ OPC_EmitInteger, MVT::i32, 8,
1913 : /* 3743*/ OPC_EmitInteger, MVT::i32, 8,
1914 : /* 3746*/ OPC_EmitInteger, MVT::i32, 8,
1915 : /* 3749*/ OPC_EmitInteger, MVT::i1, 0,
1916 : /* 3752*/ OPC_EmitInteger, MVT::i32, 0,
1917 : /* 3755*/ OPC_EmitInteger, MVT::i32, 0,
1918 : /* 3758*/ OPC_EmitInteger, MVT::i32, 0,
1919 : /* 3761*/ OPC_EmitInteger, MVT::i32, 0,
1920 : /* 3764*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1921 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1922 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1923 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1924 : /* 3781*/ 0, /*End of Scope*/
1925 : /* 3782*/ /*Scope*/ 12|128,2/*268*/, /*->4052*/
1926 : /* 3784*/ OPC_CheckChild0Same, 1,
1927 : /* 3786*/ OPC_CheckChild1Integer, 16,
1928 : /* 3788*/ OPC_CheckChild1Type, MVT::i32,
1929 : /* 3790*/ OPC_MoveParent,
1930 : /* 3791*/ OPC_MoveParent,
1931 : /* 3792*/ OPC_MoveChild1,
1932 : /* 3793*/ OPC_CheckAndImm, 127|128,1/*255*/,
1933 : /* 3796*/ OPC_MoveChild0,
1934 : /* 3797*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1935 : /* 3800*/ OPC_CheckChild0Same, 0,
1936 : /* 3802*/ OPC_CheckChild1Integer, 16,
1937 : /* 3804*/ OPC_CheckChild1Type, MVT::i32,
1938 : /* 3806*/ OPC_MoveParent,
1939 : /* 3807*/ OPC_MoveParent,
1940 : /* 3808*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1941 : /* 3810*/ OPC_MoveParent,
1942 : /* 3811*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1943 : /* 3813*/ OPC_MoveParent,
1944 : /* 3814*/ OPC_MoveChild1,
1945 : /* 3815*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1946 : /* 3818*/ OPC_MoveChild0,
1947 : /* 3819*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1948 : /* 3822*/ OPC_Scope, 68, /*->3892*/ // 3 children in Scope
1949 : /* 3824*/ OPC_CheckChild0Same, 0,
1950 : /* 3826*/ OPC_CheckChild1Integer, 24,
1951 : /* 3828*/ OPC_CheckChild1Type, MVT::i32,
1952 : /* 3830*/ OPC_MoveParent,
1953 : /* 3831*/ OPC_MoveChild1,
1954 : /* 3832*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1955 : /* 3835*/ OPC_CheckChild0Same, 1,
1956 : /* 3837*/ OPC_CheckChild1Integer, 24,
1957 : /* 3839*/ OPC_CheckChild1Type, MVT::i32,
1958 : /* 3841*/ OPC_MoveParent,
1959 : /* 3842*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1960 : /* 3844*/ OPC_MoveParent,
1961 : /* 3845*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1962 : /* 3847*/ OPC_CheckType, MVT::i32,
1963 : /* 3849*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1964 : /* 3851*/ OPC_EmitInteger, MVT::i32, 8,
1965 : /* 3854*/ OPC_EmitInteger, MVT::i32, 8,
1966 : /* 3857*/ OPC_EmitInteger, MVT::i32, 8,
1967 : /* 3860*/ OPC_EmitInteger, MVT::i1, 0,
1968 : /* 3863*/ OPC_EmitInteger, MVT::i32, 0,
1969 : /* 3866*/ OPC_EmitInteger, MVT::i32, 0,
1970 : /* 3869*/ OPC_EmitInteger, MVT::i32, 0,
1971 : /* 3872*/ OPC_EmitInteger, MVT::i32, 0,
1972 : /* 3875*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1973 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
1974 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
1975 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1976 : /* 3892*/ /*Scope*/ 89, /*->3982*/
1977 : /* 3893*/ OPC_CheckChild0Same, 1,
1978 : /* 3895*/ OPC_CheckChild1Integer, 24,
1979 : /* 3897*/ OPC_CheckChild1Type, MVT::i32,
1980 : /* 3899*/ OPC_MoveParent,
1981 : /* 3900*/ OPC_MoveChild1,
1982 : /* 3901*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1983 : /* 3904*/ OPC_CheckChild0Same, 0,
1984 : /* 3906*/ OPC_CheckChild1Integer, 24,
1985 : /* 3908*/ OPC_CheckChild1Type, MVT::i32,
1986 : /* 3910*/ OPC_MoveParent,
1987 : /* 3911*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1988 : /* 3913*/ OPC_MoveParent,
1989 : /* 3914*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
1990 : /* 3916*/ OPC_CheckType, MVT::i32,
1991 : /* 3918*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1992 : /* 3920*/ OPC_EmitInteger, MVT::i32, 8,
1993 : /* 3923*/ OPC_EmitInteger, MVT::i32, 8,
1994 : /* 3926*/ OPC_EmitInteger, MVT::i32, 8,
1995 : /* 3929*/ OPC_EmitInteger, MVT::i1, 0,
1996 : /* 3932*/ OPC_EmitInteger, MVT::i32, 0,
1997 : /* 3935*/ OPC_EmitInteger, MVT::i32, 0,
1998 : /* 3938*/ OPC_EmitInteger, MVT::i32, 0,
1999 : /* 3941*/ OPC_EmitInteger, MVT::i32, 0,
2000 : /* 3944*/ OPC_Scope, 17, /*->3963*/ // 2 children in Scope
2001 : /* 3946*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2002 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
2003 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2004 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2005 : /* 3963*/ /*Scope*/ 17, /*->3981*/
2006 : /* 3964*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2007 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2008 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2009 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2010 : /* 3981*/ 0, /*End of Scope*/
2011 : /* 3982*/ /*Scope*/ 68, /*->4051*/
2012 : /* 3983*/ OPC_CheckChild0Same, 0,
2013 : /* 3985*/ OPC_CheckChild1Integer, 24,
2014 : /* 3987*/ OPC_CheckChild1Type, MVT::i32,
2015 : /* 3989*/ OPC_MoveParent,
2016 : /* 3990*/ OPC_MoveChild1,
2017 : /* 3991*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2018 : /* 3994*/ OPC_CheckChild0Same, 1,
2019 : /* 3996*/ OPC_CheckChild1Integer, 24,
2020 : /* 3998*/ OPC_CheckChild1Type, MVT::i32,
2021 : /* 4000*/ OPC_MoveParent,
2022 : /* 4001*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2023 : /* 4003*/ OPC_MoveParent,
2024 : /* 4004*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2025 : /* 4006*/ OPC_CheckType, MVT::i32,
2026 : /* 4008*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2027 : /* 4010*/ OPC_EmitInteger, MVT::i32, 8,
2028 : /* 4013*/ OPC_EmitInteger, MVT::i32, 8,
2029 : /* 4016*/ OPC_EmitInteger, MVT::i32, 8,
2030 : /* 4019*/ OPC_EmitInteger, MVT::i1, 0,
2031 : /* 4022*/ OPC_EmitInteger, MVT::i32, 0,
2032 : /* 4025*/ OPC_EmitInteger, MVT::i32, 0,
2033 : /* 4028*/ OPC_EmitInteger, MVT::i32, 0,
2034 : /* 4031*/ OPC_EmitInteger, MVT::i32, 0,
2035 : /* 4034*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2036 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2037 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2038 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2039 : /* 4051*/ 0, /*End of Scope*/
2040 : /* 4052*/ /*Scope*/ 50|128,1/*178*/, /*->4232*/
2041 : /* 4054*/ OPC_CheckChild0Same, 0,
2042 : /* 4056*/ OPC_CheckChild1Integer, 16,
2043 : /* 4058*/ OPC_CheckChild1Type, MVT::i32,
2044 : /* 4060*/ OPC_MoveParent,
2045 : /* 4061*/ OPC_MoveParent,
2046 : /* 4062*/ OPC_MoveChild1,
2047 : /* 4063*/ OPC_CheckAndImm, 127|128,1/*255*/,
2048 : /* 4066*/ OPC_MoveChild0,
2049 : /* 4067*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2050 : /* 4070*/ OPC_CheckChild0Same, 1,
2051 : /* 4072*/ OPC_CheckChild1Integer, 16,
2052 : /* 4074*/ OPC_CheckChild1Type, MVT::i32,
2053 : /* 4076*/ OPC_MoveParent,
2054 : /* 4077*/ OPC_MoveParent,
2055 : /* 4078*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2056 : /* 4080*/ OPC_MoveParent,
2057 : /* 4081*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2058 : /* 4083*/ OPC_MoveParent,
2059 : /* 4084*/ OPC_MoveChild1,
2060 : /* 4085*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2061 : /* 4088*/ OPC_MoveChild0,
2062 : /* 4089*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2063 : /* 4092*/ OPC_Scope, 68, /*->4162*/ // 2 children in Scope
2064 : /* 4094*/ OPC_CheckChild0Same, 1,
2065 : /* 4096*/ OPC_CheckChild1Integer, 24,
2066 : /* 4098*/ OPC_CheckChild1Type, MVT::i32,
2067 : /* 4100*/ OPC_MoveParent,
2068 : /* 4101*/ OPC_MoveChild1,
2069 : /* 4102*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2070 : /* 4105*/ OPC_CheckChild0Same, 0,
2071 : /* 4107*/ OPC_CheckChild1Integer, 24,
2072 : /* 4109*/ OPC_CheckChild1Type, MVT::i32,
2073 : /* 4111*/ OPC_MoveParent,
2074 : /* 4112*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2075 : /* 4114*/ OPC_MoveParent,
2076 : /* 4115*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2077 : /* 4117*/ OPC_CheckType, MVT::i32,
2078 : /* 4119*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2079 : /* 4121*/ OPC_EmitInteger, MVT::i32, 8,
2080 : /* 4124*/ OPC_EmitInteger, MVT::i32, 8,
2081 : /* 4127*/ OPC_EmitInteger, MVT::i32, 8,
2082 : /* 4130*/ OPC_EmitInteger, MVT::i1, 0,
2083 : /* 4133*/ OPC_EmitInteger, MVT::i32, 0,
2084 : /* 4136*/ OPC_EmitInteger, MVT::i32, 0,
2085 : /* 4139*/ OPC_EmitInteger, MVT::i32, 0,
2086 : /* 4142*/ OPC_EmitInteger, MVT::i32, 0,
2087 : /* 4145*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2088 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2089 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2090 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2091 : /* 4162*/ /*Scope*/ 68, /*->4231*/
2092 : /* 4163*/ OPC_CheckChild0Same, 0,
2093 : /* 4165*/ OPC_CheckChild1Integer, 24,
2094 : /* 4167*/ OPC_CheckChild1Type, MVT::i32,
2095 : /* 4169*/ OPC_MoveParent,
2096 : /* 4170*/ OPC_MoveChild1,
2097 : /* 4171*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2098 : /* 4174*/ OPC_CheckChild0Same, 1,
2099 : /* 4176*/ OPC_CheckChild1Integer, 24,
2100 : /* 4178*/ OPC_CheckChild1Type, MVT::i32,
2101 : /* 4180*/ OPC_MoveParent,
2102 : /* 4181*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2103 : /* 4183*/ OPC_MoveParent,
2104 : /* 4184*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2105 : /* 4186*/ OPC_CheckType, MVT::i32,
2106 : /* 4188*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2107 : /* 4190*/ OPC_EmitInteger, MVT::i32, 8,
2108 : /* 4193*/ OPC_EmitInteger, MVT::i32, 8,
2109 : /* 4196*/ OPC_EmitInteger, MVT::i32, 8,
2110 : /* 4199*/ OPC_EmitInteger, MVT::i1, 0,
2111 : /* 4202*/ OPC_EmitInteger, MVT::i32, 0,
2112 : /* 4205*/ OPC_EmitInteger, MVT::i32, 0,
2113 : /* 4208*/ OPC_EmitInteger, MVT::i32, 0,
2114 : /* 4211*/ OPC_EmitInteger, MVT::i32, 0,
2115 : /* 4214*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2116 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2117 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2118 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2119 : /* 4231*/ 0, /*End of Scope*/
2120 : /* 4232*/ 0, /*End of Scope*/
2121 : /* 4233*/ /*Scope*/ 20|128,3/*404*/, /*->4639*/
2122 : /* 4235*/ OPC_CheckChild0Same, 0,
2123 : /* 4237*/ OPC_CheckChild1Integer, 8,
2124 : /* 4239*/ OPC_CheckChild1Type, MVT::i32,
2125 : /* 4241*/ OPC_MoveParent,
2126 : /* 4242*/ OPC_MoveParent,
2127 : /* 4243*/ OPC_MoveChild1,
2128 : /* 4244*/ OPC_CheckAndImm, 127|128,1/*255*/,
2129 : /* 4247*/ OPC_MoveChild0,
2130 : /* 4248*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2131 : /* 4251*/ OPC_CheckChild0Same, 1,
2132 : /* 4253*/ OPC_CheckChild1Integer, 8,
2133 : /* 4255*/ OPC_CheckChild1Type, MVT::i32,
2134 : /* 4257*/ OPC_MoveParent,
2135 : /* 4258*/ OPC_MoveParent,
2136 : /* 4259*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2137 : /* 4261*/ OPC_MoveParent,
2138 : /* 4262*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2139 : /* 4264*/ OPC_MoveParent,
2140 : /* 4265*/ OPC_MoveChild1,
2141 : /* 4266*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2142 : /* 4269*/ OPC_MoveChild0,
2143 : /* 4270*/ OPC_CheckAndImm, 127|128,1/*255*/,
2144 : /* 4273*/ OPC_MoveChild0,
2145 : /* 4274*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2146 : /* 4277*/ OPC_Scope, 50|128,1/*178*/, /*->4458*/ // 2 children in Scope
2147 : /* 4280*/ OPC_CheckChild0Same, 1,
2148 : /* 4282*/ OPC_CheckChild1Integer, 16,
2149 : /* 4284*/ OPC_CheckChild1Type, MVT::i32,
2150 : /* 4286*/ OPC_MoveParent,
2151 : /* 4287*/ OPC_MoveParent,
2152 : /* 4288*/ OPC_MoveChild1,
2153 : /* 4289*/ OPC_CheckAndImm, 127|128,1/*255*/,
2154 : /* 4292*/ OPC_MoveChild0,
2155 : /* 4293*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2156 : /* 4296*/ OPC_CheckChild0Same, 0,
2157 : /* 4298*/ OPC_CheckChild1Integer, 16,
2158 : /* 4300*/ OPC_CheckChild1Type, MVT::i32,
2159 : /* 4302*/ OPC_MoveParent,
2160 : /* 4303*/ OPC_MoveParent,
2161 : /* 4304*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2162 : /* 4306*/ OPC_MoveParent,
2163 : /* 4307*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2164 : /* 4309*/ OPC_MoveParent,
2165 : /* 4310*/ OPC_MoveChild1,
2166 : /* 4311*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2167 : /* 4314*/ OPC_MoveChild0,
2168 : /* 4315*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2169 : /* 4318*/ OPC_Scope, 68, /*->4388*/ // 2 children in Scope
2170 : /* 4320*/ OPC_CheckChild0Same, 1,
2171 : /* 4322*/ OPC_CheckChild1Integer, 24,
2172 : /* 4324*/ OPC_CheckChild1Type, MVT::i32,
2173 : /* 4326*/ OPC_MoveParent,
2174 : /* 4327*/ OPC_MoveChild1,
2175 : /* 4328*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2176 : /* 4331*/ OPC_CheckChild0Same, 0,
2177 : /* 4333*/ OPC_CheckChild1Integer, 24,
2178 : /* 4335*/ OPC_CheckChild1Type, MVT::i32,
2179 : /* 4337*/ OPC_MoveParent,
2180 : /* 4338*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2181 : /* 4340*/ OPC_MoveParent,
2182 : /* 4341*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2183 : /* 4343*/ OPC_CheckType, MVT::i32,
2184 : /* 4345*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2185 : /* 4347*/ OPC_EmitInteger, MVT::i32, 8,
2186 : /* 4350*/ OPC_EmitInteger, MVT::i32, 8,
2187 : /* 4353*/ OPC_EmitInteger, MVT::i32, 8,
2188 : /* 4356*/ OPC_EmitInteger, MVT::i1, 0,
2189 : /* 4359*/ OPC_EmitInteger, MVT::i32, 0,
2190 : /* 4362*/ OPC_EmitInteger, MVT::i32, 0,
2191 : /* 4365*/ OPC_EmitInteger, MVT::i32, 0,
2192 : /* 4368*/ OPC_EmitInteger, MVT::i32, 0,
2193 : /* 4371*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2194 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2195 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2196 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2197 : /* 4388*/ /*Scope*/ 68, /*->4457*/
2198 : /* 4389*/ OPC_CheckChild0Same, 0,
2199 : /* 4391*/ OPC_CheckChild1Integer, 24,
2200 : /* 4393*/ OPC_CheckChild1Type, MVT::i32,
2201 : /* 4395*/ OPC_MoveParent,
2202 : /* 4396*/ OPC_MoveChild1,
2203 : /* 4397*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2204 : /* 4400*/ OPC_CheckChild0Same, 1,
2205 : /* 4402*/ OPC_CheckChild1Integer, 24,
2206 : /* 4404*/ OPC_CheckChild1Type, MVT::i32,
2207 : /* 4406*/ OPC_MoveParent,
2208 : /* 4407*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2209 : /* 4409*/ OPC_MoveParent,
2210 : /* 4410*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2211 : /* 4412*/ OPC_CheckType, MVT::i32,
2212 : /* 4414*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2213 : /* 4416*/ OPC_EmitInteger, MVT::i32, 8,
2214 : /* 4419*/ OPC_EmitInteger, MVT::i32, 8,
2215 : /* 4422*/ OPC_EmitInteger, MVT::i32, 8,
2216 : /* 4425*/ OPC_EmitInteger, MVT::i1, 0,
2217 : /* 4428*/ OPC_EmitInteger, MVT::i32, 0,
2218 : /* 4431*/ OPC_EmitInteger, MVT::i32, 0,
2219 : /* 4434*/ OPC_EmitInteger, MVT::i32, 0,
2220 : /* 4437*/ OPC_EmitInteger, MVT::i32, 0,
2221 : /* 4440*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2222 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2223 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2224 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2225 : /* 4457*/ 0, /*End of Scope*/
2226 : /* 4458*/ /*Scope*/ 50|128,1/*178*/, /*->4638*/
2227 : /* 4460*/ OPC_CheckChild0Same, 0,
2228 : /* 4462*/ OPC_CheckChild1Integer, 16,
2229 : /* 4464*/ OPC_CheckChild1Type, MVT::i32,
2230 : /* 4466*/ OPC_MoveParent,
2231 : /* 4467*/ OPC_MoveParent,
2232 : /* 4468*/ OPC_MoveChild1,
2233 : /* 4469*/ OPC_CheckAndImm, 127|128,1/*255*/,
2234 : /* 4472*/ OPC_MoveChild0,
2235 : /* 4473*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2236 : /* 4476*/ OPC_CheckChild0Same, 1,
2237 : /* 4478*/ OPC_CheckChild1Integer, 16,
2238 : /* 4480*/ OPC_CheckChild1Type, MVT::i32,
2239 : /* 4482*/ OPC_MoveParent,
2240 : /* 4483*/ OPC_MoveParent,
2241 : /* 4484*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2242 : /* 4486*/ OPC_MoveParent,
2243 : /* 4487*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2244 : /* 4489*/ OPC_MoveParent,
2245 : /* 4490*/ OPC_MoveChild1,
2246 : /* 4491*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2247 : /* 4494*/ OPC_MoveChild0,
2248 : /* 4495*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2249 : /* 4498*/ OPC_Scope, 68, /*->4568*/ // 2 children in Scope
2250 : /* 4500*/ OPC_CheckChild0Same, 1,
2251 : /* 4502*/ OPC_CheckChild1Integer, 24,
2252 : /* 4504*/ OPC_CheckChild1Type, MVT::i32,
2253 : /* 4506*/ OPC_MoveParent,
2254 : /* 4507*/ OPC_MoveChild1,
2255 : /* 4508*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2256 : /* 4511*/ OPC_CheckChild0Same, 0,
2257 : /* 4513*/ OPC_CheckChild1Integer, 24,
2258 : /* 4515*/ OPC_CheckChild1Type, MVT::i32,
2259 : /* 4517*/ OPC_MoveParent,
2260 : /* 4518*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2261 : /* 4520*/ OPC_MoveParent,
2262 : /* 4521*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2263 : /* 4523*/ OPC_CheckType, MVT::i32,
2264 : /* 4525*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2265 : /* 4527*/ OPC_EmitInteger, MVT::i32, 8,
2266 : /* 4530*/ OPC_EmitInteger, MVT::i32, 8,
2267 : /* 4533*/ OPC_EmitInteger, MVT::i32, 8,
2268 : /* 4536*/ OPC_EmitInteger, MVT::i1, 0,
2269 : /* 4539*/ OPC_EmitInteger, MVT::i32, 0,
2270 : /* 4542*/ OPC_EmitInteger, MVT::i32, 0,
2271 : /* 4545*/ OPC_EmitInteger, MVT::i32, 0,
2272 : /* 4548*/ OPC_EmitInteger, MVT::i32, 0,
2273 : /* 4551*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2274 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2275 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2276 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2277 : /* 4568*/ /*Scope*/ 68, /*->4637*/
2278 : /* 4569*/ OPC_CheckChild0Same, 0,
2279 : /* 4571*/ OPC_CheckChild1Integer, 24,
2280 : /* 4573*/ OPC_CheckChild1Type, MVT::i32,
2281 : /* 4575*/ OPC_MoveParent,
2282 : /* 4576*/ OPC_MoveChild1,
2283 : /* 4577*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2284 : /* 4580*/ OPC_CheckChild0Same, 1,
2285 : /* 4582*/ OPC_CheckChild1Integer, 24,
2286 : /* 4584*/ OPC_CheckChild1Type, MVT::i32,
2287 : /* 4586*/ OPC_MoveParent,
2288 : /* 4587*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2289 : /* 4589*/ OPC_MoveParent,
2290 : /* 4590*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2291 : /* 4592*/ OPC_CheckType, MVT::i32,
2292 : /* 4594*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2293 : /* 4596*/ OPC_EmitInteger, MVT::i32, 8,
2294 : /* 4599*/ OPC_EmitInteger, MVT::i32, 8,
2295 : /* 4602*/ OPC_EmitInteger, MVT::i32, 8,
2296 : /* 4605*/ OPC_EmitInteger, MVT::i1, 0,
2297 : /* 4608*/ OPC_EmitInteger, MVT::i32, 0,
2298 : /* 4611*/ OPC_EmitInteger, MVT::i32, 0,
2299 : /* 4614*/ OPC_EmitInteger, MVT::i32, 0,
2300 : /* 4617*/ OPC_EmitInteger, MVT::i32, 0,
2301 : /* 4620*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2302 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
2303 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
2304 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2305 : /* 4637*/ 0, /*End of Scope*/
2306 : /* 4638*/ 0, /*End of Scope*/
2307 : /* 4639*/ 0, /*End of Scope*/
2308 : /* 4640*/ /*Scope*/ 77|128,12/*1613*/, /*->6255*/
2309 : /* 4642*/ OPC_RecordChild0, // #0 = $src2
2310 : /* 4643*/ OPC_MoveChild1,
2311 : /* 4644*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2312 : /* 4647*/ OPC_MoveChild0,
2313 : /* 4648*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2314 : /* 4651*/ OPC_RecordChild0, // #1 = $src0
2315 : /* 4652*/ OPC_MoveChild1,
2316 : /* 4653*/ OPC_CheckValueType, MVT::i8,
2317 : /* 4655*/ OPC_MoveParent,
2318 : /* 4656*/ OPC_MoveParent,
2319 : /* 4657*/ OPC_MoveChild1,
2320 : /* 4658*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2321 : /* 4661*/ OPC_RecordChild0, // #2 = $src1
2322 : /* 4662*/ OPC_MoveChild1,
2323 : /* 4663*/ OPC_CheckValueType, MVT::i8,
2324 : /* 4665*/ OPC_MoveParent,
2325 : /* 4666*/ OPC_MoveParent,
2326 : /* 4667*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2327 : /* 4669*/ OPC_MoveParent,
2328 : /* 4670*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2329 : /* 4672*/ OPC_MoveParent,
2330 : /* 4673*/ OPC_MoveChild1,
2331 : /* 4674*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2332 : /* 4677*/ OPC_MoveChild0,
2333 : /* 4678*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2334 : /* 4681*/ OPC_MoveChild0,
2335 : /* 4682*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2336 : /* 4685*/ OPC_Scope, 44|128,3/*428*/, /*->5116*/ // 3 children in Scope
2337 : /* 4688*/ OPC_CheckChild0Same, 1,
2338 : /* 4690*/ OPC_CheckChild1Integer, 8,
2339 : /* 4692*/ OPC_CheckChild1Type, MVT::i32,
2340 : /* 4694*/ OPC_MoveParent,
2341 : /* 4695*/ OPC_MoveChild1,
2342 : /* 4696*/ OPC_CheckValueType, MVT::i8,
2343 : /* 4698*/ OPC_MoveParent,
2344 : /* 4699*/ OPC_MoveParent,
2345 : /* 4700*/ OPC_MoveChild1,
2346 : /* 4701*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2347 : /* 4704*/ OPC_MoveChild0,
2348 : /* 4705*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2349 : /* 4708*/ OPC_CheckChild0Same, 2,
2350 : /* 4710*/ OPC_CheckChild1Integer, 8,
2351 : /* 4712*/ OPC_CheckChild1Type, MVT::i32,
2352 : /* 4714*/ OPC_MoveParent,
2353 : /* 4715*/ OPC_MoveChild1,
2354 : /* 4716*/ OPC_CheckValueType, MVT::i8,
2355 : /* 4718*/ OPC_MoveParent,
2356 : /* 4719*/ OPC_MoveParent,
2357 : /* 4720*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2358 : /* 4722*/ OPC_MoveParent,
2359 : /* 4723*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2360 : /* 4725*/ OPC_MoveParent,
2361 : /* 4726*/ OPC_MoveChild1,
2362 : /* 4727*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2363 : /* 4730*/ OPC_MoveChild0,
2364 : /* 4731*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2365 : /* 4734*/ OPC_MoveChild0,
2366 : /* 4735*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2367 : /* 4738*/ OPC_Scope, 58|128,1/*186*/, /*->4927*/ // 2 children in Scope
2368 : /* 4741*/ OPC_CheckChild0Same, 1,
2369 : /* 4743*/ OPC_CheckChild1Integer, 16,
2370 : /* 4745*/ OPC_CheckChild1Type, MVT::i32,
2371 : /* 4747*/ OPC_MoveParent,
2372 : /* 4748*/ OPC_MoveChild1,
2373 : /* 4749*/ OPC_CheckValueType, MVT::i8,
2374 : /* 4751*/ OPC_MoveParent,
2375 : /* 4752*/ OPC_MoveParent,
2376 : /* 4753*/ OPC_MoveChild1,
2377 : /* 4754*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2378 : /* 4757*/ OPC_MoveChild0,
2379 : /* 4758*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2380 : /* 4761*/ OPC_CheckChild0Same, 2,
2381 : /* 4763*/ OPC_CheckChild1Integer, 16,
2382 : /* 4765*/ OPC_CheckChild1Type, MVT::i32,
2383 : /* 4767*/ OPC_MoveParent,
2384 : /* 4768*/ OPC_MoveChild1,
2385 : /* 4769*/ OPC_CheckValueType, MVT::i8,
2386 : /* 4771*/ OPC_MoveParent,
2387 : /* 4772*/ OPC_MoveParent,
2388 : /* 4773*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2389 : /* 4775*/ OPC_MoveParent,
2390 : /* 4776*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2391 : /* 4778*/ OPC_MoveParent,
2392 : /* 4779*/ OPC_MoveChild1,
2393 : /* 4780*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2394 : /* 4783*/ OPC_MoveChild0,
2395 : /* 4784*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2396 : /* 4787*/ OPC_Scope, 68, /*->4857*/ // 2 children in Scope
2397 : /* 4789*/ OPC_CheckChild0Same, 1,
2398 : /* 4791*/ OPC_CheckChild1Integer, 24,
2399 : /* 4793*/ OPC_CheckChild1Type, MVT::i32,
2400 : /* 4795*/ OPC_MoveParent,
2401 : /* 4796*/ OPC_MoveChild1,
2402 : /* 4797*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2403 : /* 4800*/ OPC_CheckChild0Same, 2,
2404 : /* 4802*/ OPC_CheckChild1Integer, 24,
2405 : /* 4804*/ OPC_CheckChild1Type, MVT::i32,
2406 : /* 4806*/ OPC_MoveParent,
2407 : /* 4807*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2408 : /* 4809*/ OPC_MoveParent,
2409 : /* 4810*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2410 : /* 4812*/ OPC_CheckType, MVT::i32,
2411 : /* 4814*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2412 : /* 4816*/ OPC_EmitInteger, MVT::i32, 8,
2413 : /* 4819*/ OPC_EmitInteger, MVT::i32, 8,
2414 : /* 4822*/ OPC_EmitInteger, MVT::i32, 8,
2415 : /* 4825*/ OPC_EmitInteger, MVT::i1, 0,
2416 : /* 4828*/ OPC_EmitInteger, MVT::i32, 0,
2417 : /* 4831*/ OPC_EmitInteger, MVT::i32, 0,
2418 : /* 4834*/ OPC_EmitInteger, MVT::i32, 0,
2419 : /* 4837*/ OPC_EmitInteger, MVT::i32, 0,
2420 : /* 4840*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2421 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2422 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2423 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2424 : /* 4857*/ /*Scope*/ 68, /*->4926*/
2425 : /* 4858*/ OPC_CheckChild0Same, 2,
2426 : /* 4860*/ OPC_CheckChild1Integer, 24,
2427 : /* 4862*/ OPC_CheckChild1Type, MVT::i32,
2428 : /* 4864*/ OPC_MoveParent,
2429 : /* 4865*/ OPC_MoveChild1,
2430 : /* 4866*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2431 : /* 4869*/ OPC_CheckChild0Same, 1,
2432 : /* 4871*/ OPC_CheckChild1Integer, 24,
2433 : /* 4873*/ OPC_CheckChild1Type, MVT::i32,
2434 : /* 4875*/ OPC_MoveParent,
2435 : /* 4876*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2436 : /* 4878*/ OPC_MoveParent,
2437 : /* 4879*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2438 : /* 4881*/ OPC_CheckType, MVT::i32,
2439 : /* 4883*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2440 : /* 4885*/ OPC_EmitInteger, MVT::i32, 8,
2441 : /* 4888*/ OPC_EmitInteger, MVT::i32, 8,
2442 : /* 4891*/ OPC_EmitInteger, MVT::i32, 8,
2443 : /* 4894*/ OPC_EmitInteger, MVT::i1, 0,
2444 : /* 4897*/ OPC_EmitInteger, MVT::i32, 0,
2445 : /* 4900*/ OPC_EmitInteger, MVT::i32, 0,
2446 : /* 4903*/ OPC_EmitInteger, MVT::i32, 0,
2447 : /* 4906*/ OPC_EmitInteger, MVT::i32, 0,
2448 : /* 4909*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2449 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2450 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2451 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2452 : /* 4926*/ 0, /*End of Scope*/
2453 : /* 4927*/ /*Scope*/ 58|128,1/*186*/, /*->5115*/
2454 : /* 4929*/ OPC_CheckChild0Same, 2,
2455 : /* 4931*/ OPC_CheckChild1Integer, 16,
2456 : /* 4933*/ OPC_CheckChild1Type, MVT::i32,
2457 : /* 4935*/ OPC_MoveParent,
2458 : /* 4936*/ OPC_MoveChild1,
2459 : /* 4937*/ OPC_CheckValueType, MVT::i8,
2460 : /* 4939*/ OPC_MoveParent,
2461 : /* 4940*/ OPC_MoveParent,
2462 : /* 4941*/ OPC_MoveChild1,
2463 : /* 4942*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2464 : /* 4945*/ OPC_MoveChild0,
2465 : /* 4946*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2466 : /* 4949*/ OPC_CheckChild0Same, 1,
2467 : /* 4951*/ OPC_CheckChild1Integer, 16,
2468 : /* 4953*/ OPC_CheckChild1Type, MVT::i32,
2469 : /* 4955*/ OPC_MoveParent,
2470 : /* 4956*/ OPC_MoveChild1,
2471 : /* 4957*/ OPC_CheckValueType, MVT::i8,
2472 : /* 4959*/ OPC_MoveParent,
2473 : /* 4960*/ OPC_MoveParent,
2474 : /* 4961*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2475 : /* 4963*/ OPC_MoveParent,
2476 : /* 4964*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2477 : /* 4966*/ OPC_MoveParent,
2478 : /* 4967*/ OPC_MoveChild1,
2479 : /* 4968*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2480 : /* 4971*/ OPC_MoveChild0,
2481 : /* 4972*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2482 : /* 4975*/ OPC_Scope, 68, /*->5045*/ // 2 children in Scope
2483 : /* 4977*/ OPC_CheckChild0Same, 1,
2484 : /* 4979*/ OPC_CheckChild1Integer, 24,
2485 : /* 4981*/ OPC_CheckChild1Type, MVT::i32,
2486 : /* 4983*/ OPC_MoveParent,
2487 : /* 4984*/ OPC_MoveChild1,
2488 : /* 4985*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2489 : /* 4988*/ OPC_CheckChild0Same, 2,
2490 : /* 4990*/ OPC_CheckChild1Integer, 24,
2491 : /* 4992*/ OPC_CheckChild1Type, MVT::i32,
2492 : /* 4994*/ OPC_MoveParent,
2493 : /* 4995*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2494 : /* 4997*/ OPC_MoveParent,
2495 : /* 4998*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2496 : /* 5000*/ OPC_CheckType, MVT::i32,
2497 : /* 5002*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2498 : /* 5004*/ OPC_EmitInteger, MVT::i32, 8,
2499 : /* 5007*/ OPC_EmitInteger, MVT::i32, 8,
2500 : /* 5010*/ OPC_EmitInteger, MVT::i32, 8,
2501 : /* 5013*/ OPC_EmitInteger, MVT::i1, 0,
2502 : /* 5016*/ OPC_EmitInteger, MVT::i32, 0,
2503 : /* 5019*/ OPC_EmitInteger, MVT::i32, 0,
2504 : /* 5022*/ OPC_EmitInteger, MVT::i32, 0,
2505 : /* 5025*/ OPC_EmitInteger, MVT::i32, 0,
2506 : /* 5028*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2507 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2508 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2509 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2510 : /* 5045*/ /*Scope*/ 68, /*->5114*/
2511 : /* 5046*/ OPC_CheckChild0Same, 2,
2512 : /* 5048*/ OPC_CheckChild1Integer, 24,
2513 : /* 5050*/ OPC_CheckChild1Type, MVT::i32,
2514 : /* 5052*/ OPC_MoveParent,
2515 : /* 5053*/ OPC_MoveChild1,
2516 : /* 5054*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2517 : /* 5057*/ OPC_CheckChild0Same, 1,
2518 : /* 5059*/ OPC_CheckChild1Integer, 24,
2519 : /* 5061*/ OPC_CheckChild1Type, MVT::i32,
2520 : /* 5063*/ OPC_MoveParent,
2521 : /* 5064*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2522 : /* 5066*/ OPC_MoveParent,
2523 : /* 5067*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2524 : /* 5069*/ OPC_CheckType, MVT::i32,
2525 : /* 5071*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2526 : /* 5073*/ OPC_EmitInteger, MVT::i32, 8,
2527 : /* 5076*/ OPC_EmitInteger, MVT::i32, 8,
2528 : /* 5079*/ OPC_EmitInteger, MVT::i32, 8,
2529 : /* 5082*/ OPC_EmitInteger, MVT::i1, 0,
2530 : /* 5085*/ OPC_EmitInteger, MVT::i32, 0,
2531 : /* 5088*/ OPC_EmitInteger, MVT::i32, 0,
2532 : /* 5091*/ OPC_EmitInteger, MVT::i32, 0,
2533 : /* 5094*/ OPC_EmitInteger, MVT::i32, 0,
2534 : /* 5097*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2535 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2536 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2537 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2538 : /* 5114*/ 0, /*End of Scope*/
2539 : /* 5115*/ 0, /*End of Scope*/
2540 : /* 5116*/ /*Scope*/ 66|128,5/*706*/, /*->5824*/
2541 : /* 5118*/ OPC_CheckChild0Same, 2,
2542 : /* 5120*/ OPC_CheckChild1Integer, 8,
2543 : /* 5122*/ OPC_CheckChild1Type, MVT::i32,
2544 : /* 5124*/ OPC_MoveParent,
2545 : /* 5125*/ OPC_MoveChild1,
2546 : /* 5126*/ OPC_CheckValueType, MVT::i8,
2547 : /* 5128*/ OPC_MoveParent,
2548 : /* 5129*/ OPC_MoveParent,
2549 : /* 5130*/ OPC_MoveChild1,
2550 : /* 5131*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2551 : /* 5134*/ OPC_MoveChild0,
2552 : /* 5135*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2553 : /* 5138*/ OPC_CheckChild0Same, 1,
2554 : /* 5140*/ OPC_CheckChild1Integer, 8,
2555 : /* 5142*/ OPC_CheckChild1Type, MVT::i32,
2556 : /* 5144*/ OPC_MoveParent,
2557 : /* 5145*/ OPC_MoveChild1,
2558 : /* 5146*/ OPC_CheckValueType, MVT::i8,
2559 : /* 5148*/ OPC_MoveParent,
2560 : /* 5149*/ OPC_MoveParent,
2561 : /* 5150*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2562 : /* 5152*/ OPC_MoveParent,
2563 : /* 5153*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2564 : /* 5155*/ OPC_MoveParent,
2565 : /* 5156*/ OPC_MoveChild1,
2566 : /* 5157*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2567 : /* 5160*/ OPC_MoveChild0,
2568 : /* 5161*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2569 : /* 5164*/ OPC_MoveChild0,
2570 : /* 5165*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2571 : /* 5168*/ OPC_Scope, 58|128,1/*186*/, /*->5357*/ // 3 children in Scope
2572 : /* 5171*/ OPC_CheckChild0Same, 1,
2573 : /* 5173*/ OPC_CheckChild1Integer, 16,
2574 : /* 5175*/ OPC_CheckChild1Type, MVT::i32,
2575 : /* 5177*/ OPC_MoveParent,
2576 : /* 5178*/ OPC_MoveChild1,
2577 : /* 5179*/ OPC_CheckValueType, MVT::i8,
2578 : /* 5181*/ OPC_MoveParent,
2579 : /* 5182*/ OPC_MoveParent,
2580 : /* 5183*/ OPC_MoveChild1,
2581 : /* 5184*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2582 : /* 5187*/ OPC_MoveChild0,
2583 : /* 5188*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2584 : /* 5191*/ OPC_CheckChild0Same, 2,
2585 : /* 5193*/ OPC_CheckChild1Integer, 16,
2586 : /* 5195*/ OPC_CheckChild1Type, MVT::i32,
2587 : /* 5197*/ OPC_MoveParent,
2588 : /* 5198*/ OPC_MoveChild1,
2589 : /* 5199*/ OPC_CheckValueType, MVT::i8,
2590 : /* 5201*/ OPC_MoveParent,
2591 : /* 5202*/ OPC_MoveParent,
2592 : /* 5203*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2593 : /* 5205*/ OPC_MoveParent,
2594 : /* 5206*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2595 : /* 5208*/ OPC_MoveParent,
2596 : /* 5209*/ OPC_MoveChild1,
2597 : /* 5210*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2598 : /* 5213*/ OPC_MoveChild0,
2599 : /* 5214*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2600 : /* 5217*/ OPC_Scope, 68, /*->5287*/ // 2 children in Scope
2601 : /* 5219*/ OPC_CheckChild0Same, 1,
2602 : /* 5221*/ OPC_CheckChild1Integer, 24,
2603 : /* 5223*/ OPC_CheckChild1Type, MVT::i32,
2604 : /* 5225*/ OPC_MoveParent,
2605 : /* 5226*/ OPC_MoveChild1,
2606 : /* 5227*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2607 : /* 5230*/ OPC_CheckChild0Same, 2,
2608 : /* 5232*/ OPC_CheckChild1Integer, 24,
2609 : /* 5234*/ OPC_CheckChild1Type, MVT::i32,
2610 : /* 5236*/ OPC_MoveParent,
2611 : /* 5237*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2612 : /* 5239*/ OPC_MoveParent,
2613 : /* 5240*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2614 : /* 5242*/ OPC_CheckType, MVT::i32,
2615 : /* 5244*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2616 : /* 5246*/ OPC_EmitInteger, MVT::i32, 8,
2617 : /* 5249*/ OPC_EmitInteger, MVT::i32, 8,
2618 : /* 5252*/ OPC_EmitInteger, MVT::i32, 8,
2619 : /* 5255*/ OPC_EmitInteger, MVT::i1, 0,
2620 : /* 5258*/ OPC_EmitInteger, MVT::i32, 0,
2621 : /* 5261*/ OPC_EmitInteger, MVT::i32, 0,
2622 : /* 5264*/ OPC_EmitInteger, MVT::i32, 0,
2623 : /* 5267*/ OPC_EmitInteger, MVT::i32, 0,
2624 : /* 5270*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2625 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2626 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2627 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2628 : /* 5287*/ /*Scope*/ 68, /*->5356*/
2629 : /* 5288*/ OPC_CheckChild0Same, 2,
2630 : /* 5290*/ OPC_CheckChild1Integer, 24,
2631 : /* 5292*/ OPC_CheckChild1Type, MVT::i32,
2632 : /* 5294*/ OPC_MoveParent,
2633 : /* 5295*/ OPC_MoveChild1,
2634 : /* 5296*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2635 : /* 5299*/ OPC_CheckChild0Same, 1,
2636 : /* 5301*/ OPC_CheckChild1Integer, 24,
2637 : /* 5303*/ OPC_CheckChild1Type, MVT::i32,
2638 : /* 5305*/ OPC_MoveParent,
2639 : /* 5306*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2640 : /* 5308*/ OPC_MoveParent,
2641 : /* 5309*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2642 : /* 5311*/ OPC_CheckType, MVT::i32,
2643 : /* 5313*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2644 : /* 5315*/ OPC_EmitInteger, MVT::i32, 8,
2645 : /* 5318*/ OPC_EmitInteger, MVT::i32, 8,
2646 : /* 5321*/ OPC_EmitInteger, MVT::i32, 8,
2647 : /* 5324*/ OPC_EmitInteger, MVT::i1, 0,
2648 : /* 5327*/ OPC_EmitInteger, MVT::i32, 0,
2649 : /* 5330*/ OPC_EmitInteger, MVT::i32, 0,
2650 : /* 5333*/ OPC_EmitInteger, MVT::i32, 0,
2651 : /* 5336*/ OPC_EmitInteger, MVT::i32, 0,
2652 : /* 5339*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2653 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2654 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2655 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2656 : /* 5356*/ 0, /*End of Scope*/
2657 : /* 5357*/ /*Scope*/ 20|128,2/*276*/, /*->5635*/
2658 : /* 5359*/ OPC_CheckChild0Same, 2,
2659 : /* 5361*/ OPC_CheckChild1Integer, 16,
2660 : /* 5363*/ OPC_CheckChild1Type, MVT::i32,
2661 : /* 5365*/ OPC_MoveParent,
2662 : /* 5366*/ OPC_MoveChild1,
2663 : /* 5367*/ OPC_CheckValueType, MVT::i8,
2664 : /* 5369*/ OPC_MoveParent,
2665 : /* 5370*/ OPC_MoveParent,
2666 : /* 5371*/ OPC_MoveChild1,
2667 : /* 5372*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2668 : /* 5375*/ OPC_MoveChild0,
2669 : /* 5376*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2670 : /* 5379*/ OPC_CheckChild0Same, 1,
2671 : /* 5381*/ OPC_CheckChild1Integer, 16,
2672 : /* 5383*/ OPC_CheckChild1Type, MVT::i32,
2673 : /* 5385*/ OPC_MoveParent,
2674 : /* 5386*/ OPC_MoveChild1,
2675 : /* 5387*/ OPC_CheckValueType, MVT::i8,
2676 : /* 5389*/ OPC_MoveParent,
2677 : /* 5390*/ OPC_MoveParent,
2678 : /* 5391*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2679 : /* 5393*/ OPC_MoveParent,
2680 : /* 5394*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2681 : /* 5396*/ OPC_MoveParent,
2682 : /* 5397*/ OPC_MoveChild1,
2683 : /* 5398*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2684 : /* 5401*/ OPC_MoveChild0,
2685 : /* 5402*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2686 : /* 5405*/ OPC_Scope, 68, /*->5475*/ // 3 children in Scope
2687 : /* 5407*/ OPC_CheckChild0Same, 1,
2688 : /* 5409*/ OPC_CheckChild1Integer, 24,
2689 : /* 5411*/ OPC_CheckChild1Type, MVT::i32,
2690 : /* 5413*/ OPC_MoveParent,
2691 : /* 5414*/ OPC_MoveChild1,
2692 : /* 5415*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2693 : /* 5418*/ OPC_CheckChild0Same, 2,
2694 : /* 5420*/ OPC_CheckChild1Integer, 24,
2695 : /* 5422*/ OPC_CheckChild1Type, MVT::i32,
2696 : /* 5424*/ OPC_MoveParent,
2697 : /* 5425*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2698 : /* 5427*/ OPC_MoveParent,
2699 : /* 5428*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2700 : /* 5430*/ OPC_CheckType, MVT::i32,
2701 : /* 5432*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2702 : /* 5434*/ OPC_EmitInteger, MVT::i32, 8,
2703 : /* 5437*/ OPC_EmitInteger, MVT::i32, 8,
2704 : /* 5440*/ OPC_EmitInteger, MVT::i32, 8,
2705 : /* 5443*/ OPC_EmitInteger, MVT::i1, 0,
2706 : /* 5446*/ OPC_EmitInteger, MVT::i32, 0,
2707 : /* 5449*/ OPC_EmitInteger, MVT::i32, 0,
2708 : /* 5452*/ OPC_EmitInteger, MVT::i32, 0,
2709 : /* 5455*/ OPC_EmitInteger, MVT::i32, 0,
2710 : /* 5458*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2711 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2712 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2713 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2714 : /* 5475*/ /*Scope*/ 89, /*->5565*/
2715 : /* 5476*/ OPC_CheckChild0Same, 2,
2716 : /* 5478*/ OPC_CheckChild1Integer, 24,
2717 : /* 5480*/ OPC_CheckChild1Type, MVT::i32,
2718 : /* 5482*/ OPC_MoveParent,
2719 : /* 5483*/ OPC_MoveChild1,
2720 : /* 5484*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2721 : /* 5487*/ OPC_CheckChild0Same, 1,
2722 : /* 5489*/ OPC_CheckChild1Integer, 24,
2723 : /* 5491*/ OPC_CheckChild1Type, MVT::i32,
2724 : /* 5493*/ OPC_MoveParent,
2725 : /* 5494*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2726 : /* 5496*/ OPC_MoveParent,
2727 : /* 5497*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2728 : /* 5499*/ OPC_CheckType, MVT::i32,
2729 : /* 5501*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2730 : /* 5503*/ OPC_EmitInteger, MVT::i32, 8,
2731 : /* 5506*/ OPC_EmitInteger, MVT::i32, 8,
2732 : /* 5509*/ OPC_EmitInteger, MVT::i32, 8,
2733 : /* 5512*/ OPC_EmitInteger, MVT::i1, 0,
2734 : /* 5515*/ OPC_EmitInteger, MVT::i32, 0,
2735 : /* 5518*/ OPC_EmitInteger, MVT::i32, 0,
2736 : /* 5521*/ OPC_EmitInteger, MVT::i32, 0,
2737 : /* 5524*/ OPC_EmitInteger, MVT::i32, 0,
2738 : /* 5527*/ OPC_Scope, 17, /*->5546*/ // 2 children in Scope
2739 : /* 5529*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2740 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10,
2741 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2742 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2743 : /* 5546*/ /*Scope*/ 17, /*->5564*/
2744 : /* 5547*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2745 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2746 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2747 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2748 : /* 5564*/ 0, /*End of Scope*/
2749 : /* 5565*/ /*Scope*/ 68, /*->5634*/
2750 : /* 5566*/ OPC_CheckChild0Same, 1,
2751 : /* 5568*/ OPC_CheckChild1Integer, 24,
2752 : /* 5570*/ OPC_CheckChild1Type, MVT::i32,
2753 : /* 5572*/ OPC_MoveParent,
2754 : /* 5573*/ OPC_MoveChild1,
2755 : /* 5574*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2756 : /* 5577*/ OPC_CheckChild0Same, 2,
2757 : /* 5579*/ OPC_CheckChild1Integer, 24,
2758 : /* 5581*/ OPC_CheckChild1Type, MVT::i32,
2759 : /* 5583*/ OPC_MoveParent,
2760 : /* 5584*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2761 : /* 5586*/ OPC_MoveParent,
2762 : /* 5587*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2763 : /* 5589*/ OPC_CheckType, MVT::i32,
2764 : /* 5591*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2765 : /* 5593*/ OPC_EmitInteger, MVT::i32, 8,
2766 : /* 5596*/ OPC_EmitInteger, MVT::i32, 8,
2767 : /* 5599*/ OPC_EmitInteger, MVT::i32, 8,
2768 : /* 5602*/ OPC_EmitInteger, MVT::i1, 0,
2769 : /* 5605*/ OPC_EmitInteger, MVT::i32, 0,
2770 : /* 5608*/ OPC_EmitInteger, MVT::i32, 0,
2771 : /* 5611*/ OPC_EmitInteger, MVT::i32, 0,
2772 : /* 5614*/ OPC_EmitInteger, MVT::i32, 0,
2773 : /* 5617*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2774 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2775 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2776 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2777 : /* 5634*/ 0, /*End of Scope*/
2778 : /* 5635*/ /*Scope*/ 58|128,1/*186*/, /*->5823*/
2779 : /* 5637*/ OPC_CheckChild0Same, 1,
2780 : /* 5639*/ OPC_CheckChild1Integer, 16,
2781 : /* 5641*/ OPC_CheckChild1Type, MVT::i32,
2782 : /* 5643*/ OPC_MoveParent,
2783 : /* 5644*/ OPC_MoveChild1,
2784 : /* 5645*/ OPC_CheckValueType, MVT::i8,
2785 : /* 5647*/ OPC_MoveParent,
2786 : /* 5648*/ OPC_MoveParent,
2787 : /* 5649*/ OPC_MoveChild1,
2788 : /* 5650*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2789 : /* 5653*/ OPC_MoveChild0,
2790 : /* 5654*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2791 : /* 5657*/ OPC_CheckChild0Same, 2,
2792 : /* 5659*/ OPC_CheckChild1Integer, 16,
2793 : /* 5661*/ OPC_CheckChild1Type, MVT::i32,
2794 : /* 5663*/ OPC_MoveParent,
2795 : /* 5664*/ OPC_MoveChild1,
2796 : /* 5665*/ OPC_CheckValueType, MVT::i8,
2797 : /* 5667*/ OPC_MoveParent,
2798 : /* 5668*/ OPC_MoveParent,
2799 : /* 5669*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2800 : /* 5671*/ OPC_MoveParent,
2801 : /* 5672*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2802 : /* 5674*/ OPC_MoveParent,
2803 : /* 5675*/ OPC_MoveChild1,
2804 : /* 5676*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2805 : /* 5679*/ OPC_MoveChild0,
2806 : /* 5680*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2807 : /* 5683*/ OPC_Scope, 68, /*->5753*/ // 2 children in Scope
2808 : /* 5685*/ OPC_CheckChild0Same, 2,
2809 : /* 5687*/ OPC_CheckChild1Integer, 24,
2810 : /* 5689*/ OPC_CheckChild1Type, MVT::i32,
2811 : /* 5691*/ OPC_MoveParent,
2812 : /* 5692*/ OPC_MoveChild1,
2813 : /* 5693*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2814 : /* 5696*/ OPC_CheckChild0Same, 1,
2815 : /* 5698*/ OPC_CheckChild1Integer, 24,
2816 : /* 5700*/ OPC_CheckChild1Type, MVT::i32,
2817 : /* 5702*/ OPC_MoveParent,
2818 : /* 5703*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2819 : /* 5705*/ OPC_MoveParent,
2820 : /* 5706*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2821 : /* 5708*/ OPC_CheckType, MVT::i32,
2822 : /* 5710*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2823 : /* 5712*/ OPC_EmitInteger, MVT::i32, 8,
2824 : /* 5715*/ OPC_EmitInteger, MVT::i32, 8,
2825 : /* 5718*/ OPC_EmitInteger, MVT::i32, 8,
2826 : /* 5721*/ OPC_EmitInteger, MVT::i1, 0,
2827 : /* 5724*/ OPC_EmitInteger, MVT::i32, 0,
2828 : /* 5727*/ OPC_EmitInteger, MVT::i32, 0,
2829 : /* 5730*/ OPC_EmitInteger, MVT::i32, 0,
2830 : /* 5733*/ OPC_EmitInteger, MVT::i32, 0,
2831 : /* 5736*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2832 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2833 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2834 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2835 : /* 5753*/ /*Scope*/ 68, /*->5822*/
2836 : /* 5754*/ OPC_CheckChild0Same, 1,
2837 : /* 5756*/ OPC_CheckChild1Integer, 24,
2838 : /* 5758*/ OPC_CheckChild1Type, MVT::i32,
2839 : /* 5760*/ OPC_MoveParent,
2840 : /* 5761*/ OPC_MoveChild1,
2841 : /* 5762*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2842 : /* 5765*/ OPC_CheckChild0Same, 2,
2843 : /* 5767*/ OPC_CheckChild1Integer, 24,
2844 : /* 5769*/ OPC_CheckChild1Type, MVT::i32,
2845 : /* 5771*/ OPC_MoveParent,
2846 : /* 5772*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2847 : /* 5774*/ OPC_MoveParent,
2848 : /* 5775*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2849 : /* 5777*/ OPC_CheckType, MVT::i32,
2850 : /* 5779*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2851 : /* 5781*/ OPC_EmitInteger, MVT::i32, 8,
2852 : /* 5784*/ OPC_EmitInteger, MVT::i32, 8,
2853 : /* 5787*/ OPC_EmitInteger, MVT::i32, 8,
2854 : /* 5790*/ OPC_EmitInteger, MVT::i1, 0,
2855 : /* 5793*/ OPC_EmitInteger, MVT::i32, 0,
2856 : /* 5796*/ OPC_EmitInteger, MVT::i32, 0,
2857 : /* 5799*/ OPC_EmitInteger, MVT::i32, 0,
2858 : /* 5802*/ OPC_EmitInteger, MVT::i32, 0,
2859 : /* 5805*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2860 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2861 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2862 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2863 : /* 5822*/ 0, /*End of Scope*/
2864 : /* 5823*/ 0, /*End of Scope*/
2865 : /* 5824*/ /*Scope*/ 44|128,3/*428*/, /*->6254*/
2866 : /* 5826*/ OPC_CheckChild0Same, 1,
2867 : /* 5828*/ OPC_CheckChild1Integer, 8,
2868 : /* 5830*/ OPC_CheckChild1Type, MVT::i32,
2869 : /* 5832*/ OPC_MoveParent,
2870 : /* 5833*/ OPC_MoveChild1,
2871 : /* 5834*/ OPC_CheckValueType, MVT::i8,
2872 : /* 5836*/ OPC_MoveParent,
2873 : /* 5837*/ OPC_MoveParent,
2874 : /* 5838*/ OPC_MoveChild1,
2875 : /* 5839*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2876 : /* 5842*/ OPC_MoveChild0,
2877 : /* 5843*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2878 : /* 5846*/ OPC_CheckChild0Same, 2,
2879 : /* 5848*/ OPC_CheckChild1Integer, 8,
2880 : /* 5850*/ OPC_CheckChild1Type, MVT::i32,
2881 : /* 5852*/ OPC_MoveParent,
2882 : /* 5853*/ OPC_MoveChild1,
2883 : /* 5854*/ OPC_CheckValueType, MVT::i8,
2884 : /* 5856*/ OPC_MoveParent,
2885 : /* 5857*/ OPC_MoveParent,
2886 : /* 5858*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2887 : /* 5860*/ OPC_MoveParent,
2888 : /* 5861*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2889 : /* 5863*/ OPC_MoveParent,
2890 : /* 5864*/ OPC_MoveChild1,
2891 : /* 5865*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2892 : /* 5868*/ OPC_MoveChild0,
2893 : /* 5869*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2894 : /* 5872*/ OPC_MoveChild0,
2895 : /* 5873*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2896 : /* 5876*/ OPC_Scope, 58|128,1/*186*/, /*->6065*/ // 2 children in Scope
2897 : /* 5879*/ OPC_CheckChild0Same, 2,
2898 : /* 5881*/ OPC_CheckChild1Integer, 16,
2899 : /* 5883*/ OPC_CheckChild1Type, MVT::i32,
2900 : /* 5885*/ OPC_MoveParent,
2901 : /* 5886*/ OPC_MoveChild1,
2902 : /* 5887*/ OPC_CheckValueType, MVT::i8,
2903 : /* 5889*/ OPC_MoveParent,
2904 : /* 5890*/ OPC_MoveParent,
2905 : /* 5891*/ OPC_MoveChild1,
2906 : /* 5892*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2907 : /* 5895*/ OPC_MoveChild0,
2908 : /* 5896*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2909 : /* 5899*/ OPC_CheckChild0Same, 1,
2910 : /* 5901*/ OPC_CheckChild1Integer, 16,
2911 : /* 5903*/ OPC_CheckChild1Type, MVT::i32,
2912 : /* 5905*/ OPC_MoveParent,
2913 : /* 5906*/ OPC_MoveChild1,
2914 : /* 5907*/ OPC_CheckValueType, MVT::i8,
2915 : /* 5909*/ OPC_MoveParent,
2916 : /* 5910*/ OPC_MoveParent,
2917 : /* 5911*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2918 : /* 5913*/ OPC_MoveParent,
2919 : /* 5914*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2920 : /* 5916*/ OPC_MoveParent,
2921 : /* 5917*/ OPC_MoveChild1,
2922 : /* 5918*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
2923 : /* 5921*/ OPC_MoveChild0,
2924 : /* 5922*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2925 : /* 5925*/ OPC_Scope, 68, /*->5995*/ // 2 children in Scope
2926 : /* 5927*/ OPC_CheckChild0Same, 2,
2927 : /* 5929*/ OPC_CheckChild1Integer, 24,
2928 : /* 5931*/ OPC_CheckChild1Type, MVT::i32,
2929 : /* 5933*/ OPC_MoveParent,
2930 : /* 5934*/ OPC_MoveChild1,
2931 : /* 5935*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2932 : /* 5938*/ OPC_CheckChild0Same, 1,
2933 : /* 5940*/ OPC_CheckChild1Integer, 24,
2934 : /* 5942*/ OPC_CheckChild1Type, MVT::i32,
2935 : /* 5944*/ OPC_MoveParent,
2936 : /* 5945*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2937 : /* 5947*/ OPC_MoveParent,
2938 : /* 5948*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2939 : /* 5950*/ OPC_CheckType, MVT::i32,
2940 : /* 5952*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2941 : /* 5954*/ OPC_EmitInteger, MVT::i32, 8,
2942 : /* 5957*/ OPC_EmitInteger, MVT::i32, 8,
2943 : /* 5960*/ OPC_EmitInteger, MVT::i32, 8,
2944 : /* 5963*/ OPC_EmitInteger, MVT::i1, 0,
2945 : /* 5966*/ OPC_EmitInteger, MVT::i32, 0,
2946 : /* 5969*/ OPC_EmitInteger, MVT::i32, 0,
2947 : /* 5972*/ OPC_EmitInteger, MVT::i32, 0,
2948 : /* 5975*/ OPC_EmitInteger, MVT::i32, 0,
2949 : /* 5978*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2950 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2951 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2952 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2953 : /* 5995*/ /*Scope*/ 68, /*->6064*/
2954 : /* 5996*/ OPC_CheckChild0Same, 1,
2955 : /* 5998*/ OPC_CheckChild1Integer, 24,
2956 : /* 6000*/ OPC_CheckChild1Type, MVT::i32,
2957 : /* 6002*/ OPC_MoveParent,
2958 : /* 6003*/ OPC_MoveChild1,
2959 : /* 6004*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
2960 : /* 6007*/ OPC_CheckChild0Same, 2,
2961 : /* 6009*/ OPC_CheckChild1Integer, 24,
2962 : /* 6011*/ OPC_CheckChild1Type, MVT::i32,
2963 : /* 6013*/ OPC_MoveParent,
2964 : /* 6014*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
2965 : /* 6016*/ OPC_MoveParent,
2966 : /* 6017*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
2967 : /* 6019*/ OPC_CheckType, MVT::i32,
2968 : /* 6021*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2969 : /* 6023*/ OPC_EmitInteger, MVT::i32, 8,
2970 : /* 6026*/ OPC_EmitInteger, MVT::i32, 8,
2971 : /* 6029*/ OPC_EmitInteger, MVT::i32, 8,
2972 : /* 6032*/ OPC_EmitInteger, MVT::i1, 0,
2973 : /* 6035*/ OPC_EmitInteger, MVT::i32, 0,
2974 : /* 6038*/ OPC_EmitInteger, MVT::i32, 0,
2975 : /* 6041*/ OPC_EmitInteger, MVT::i32, 0,
2976 : /* 6044*/ OPC_EmitInteger, MVT::i32, 0,
2977 : /* 6047*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
2978 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
2979 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
2980 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2981 : /* 6064*/ 0, /*End of Scope*/
2982 : /* 6065*/ /*Scope*/ 58|128,1/*186*/, /*->6253*/
2983 : /* 6067*/ OPC_CheckChild0Same, 1,
2984 : /* 6069*/ OPC_CheckChild1Integer, 16,
2985 : /* 6071*/ OPC_CheckChild1Type, MVT::i32,
2986 : /* 6073*/ OPC_MoveParent,
2987 : /* 6074*/ OPC_MoveChild1,
2988 : /* 6075*/ OPC_CheckValueType, MVT::i8,
2989 : /* 6077*/ OPC_MoveParent,
2990 : /* 6078*/ OPC_MoveParent,
2991 : /* 6079*/ OPC_MoveChild1,
2992 : /* 6080*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2993 : /* 6083*/ OPC_MoveChild0,
2994 : /* 6084*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2995 : /* 6087*/ OPC_CheckChild0Same, 2,
2996 : /* 6089*/ OPC_CheckChild1Integer, 16,
2997 : /* 6091*/ OPC_CheckChild1Type, MVT::i32,
2998 : /* 6093*/ OPC_MoveParent,
2999 : /* 6094*/ OPC_MoveChild1,
3000 : /* 6095*/ OPC_CheckValueType, MVT::i8,
3001 : /* 6097*/ OPC_MoveParent,
3002 : /* 6098*/ OPC_MoveParent,
3003 : /* 6099*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3004 : /* 6101*/ OPC_MoveParent,
3005 : /* 6102*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3006 : /* 6104*/ OPC_MoveParent,
3007 : /* 6105*/ OPC_MoveChild1,
3008 : /* 6106*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3009 : /* 6109*/ OPC_MoveChild0,
3010 : /* 6110*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3011 : /* 6113*/ OPC_Scope, 68, /*->6183*/ // 2 children in Scope
3012 : /* 6115*/ OPC_CheckChild0Same, 2,
3013 : /* 6117*/ OPC_CheckChild1Integer, 24,
3014 : /* 6119*/ OPC_CheckChild1Type, MVT::i32,
3015 : /* 6121*/ OPC_MoveParent,
3016 : /* 6122*/ OPC_MoveChild1,
3017 : /* 6123*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3018 : /* 6126*/ OPC_CheckChild0Same, 1,
3019 : /* 6128*/ OPC_CheckChild1Integer, 24,
3020 : /* 6130*/ OPC_CheckChild1Type, MVT::i32,
3021 : /* 6132*/ OPC_MoveParent,
3022 : /* 6133*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3023 : /* 6135*/ OPC_MoveParent,
3024 : /* 6136*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3025 : /* 6138*/ OPC_CheckType, MVT::i32,
3026 : /* 6140*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3027 : /* 6142*/ OPC_EmitInteger, MVT::i32, 8,
3028 : /* 6145*/ OPC_EmitInteger, MVT::i32, 8,
3029 : /* 6148*/ OPC_EmitInteger, MVT::i32, 8,
3030 : /* 6151*/ OPC_EmitInteger, MVT::i1, 0,
3031 : /* 6154*/ OPC_EmitInteger, MVT::i32, 0,
3032 : /* 6157*/ OPC_EmitInteger, MVT::i32, 0,
3033 : /* 6160*/ OPC_EmitInteger, MVT::i32, 0,
3034 : /* 6163*/ OPC_EmitInteger, MVT::i32, 0,
3035 : /* 6166*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3036 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
3037 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3038 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3039 : /* 6183*/ /*Scope*/ 68, /*->6252*/
3040 : /* 6184*/ OPC_CheckChild0Same, 1,
3041 : /* 6186*/ OPC_CheckChild1Integer, 24,
3042 : /* 6188*/ OPC_CheckChild1Type, MVT::i32,
3043 : /* 6190*/ OPC_MoveParent,
3044 : /* 6191*/ OPC_MoveChild1,
3045 : /* 6192*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3046 : /* 6195*/ OPC_CheckChild0Same, 2,
3047 : /* 6197*/ OPC_CheckChild1Integer, 24,
3048 : /* 6199*/ OPC_CheckChild1Type, MVT::i32,
3049 : /* 6201*/ OPC_MoveParent,
3050 : /* 6202*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3051 : /* 6204*/ OPC_MoveParent,
3052 : /* 6205*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3053 : /* 6207*/ OPC_CheckType, MVT::i32,
3054 : /* 6209*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3055 : /* 6211*/ OPC_EmitInteger, MVT::i32, 8,
3056 : /* 6214*/ OPC_EmitInteger, MVT::i32, 8,
3057 : /* 6217*/ OPC_EmitInteger, MVT::i32, 8,
3058 : /* 6220*/ OPC_EmitInteger, MVT::i1, 0,
3059 : /* 6223*/ OPC_EmitInteger, MVT::i32, 0,
3060 : /* 6226*/ OPC_EmitInteger, MVT::i32, 0,
3061 : /* 6229*/ OPC_EmitInteger, MVT::i32, 0,
3062 : /* 6232*/ OPC_EmitInteger, MVT::i32, 0,
3063 : /* 6235*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3064 : MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10,
3065 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3066 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3067 : /* 6252*/ 0, /*End of Scope*/
3068 : /* 6253*/ 0, /*End of Scope*/
3069 : /* 6254*/ 0, /*End of Scope*/
3070 : /* 6255*/ /*Scope*/ 77|128,12/*1613*/, /*->7870*/
3071 : /* 6257*/ OPC_MoveChild0,
3072 : /* 6258*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3073 : /* 6261*/ OPC_MoveChild0,
3074 : /* 6262*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3075 : /* 6265*/ OPC_RecordChild0, // #0 = $src0
3076 : /* 6266*/ OPC_MoveChild1,
3077 : /* 6267*/ OPC_CheckValueType, MVT::i8,
3078 : /* 6269*/ OPC_MoveParent,
3079 : /* 6270*/ OPC_MoveParent,
3080 : /* 6271*/ OPC_MoveChild1,
3081 : /* 6272*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3082 : /* 6275*/ OPC_RecordChild0, // #1 = $src1
3083 : /* 6276*/ OPC_MoveChild1,
3084 : /* 6277*/ OPC_CheckValueType, MVT::i8,
3085 : /* 6279*/ OPC_MoveParent,
3086 : /* 6280*/ OPC_MoveParent,
3087 : /* 6281*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3088 : /* 6283*/ OPC_MoveParent,
3089 : /* 6284*/ OPC_RecordChild1, // #2 = $src2
3090 : /* 6285*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3091 : /* 6287*/ OPC_MoveParent,
3092 : /* 6288*/ OPC_MoveChild1,
3093 : /* 6289*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3094 : /* 6292*/ OPC_MoveChild0,
3095 : /* 6293*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3096 : /* 6296*/ OPC_MoveChild0,
3097 : /* 6297*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3098 : /* 6300*/ OPC_Scope, 44|128,3/*428*/, /*->6731*/ // 3 children in Scope
3099 : /* 6303*/ OPC_CheckChild0Same, 0,
3100 : /* 6305*/ OPC_CheckChild1Integer, 8,
3101 : /* 6307*/ OPC_CheckChild1Type, MVT::i32,
3102 : /* 6309*/ OPC_MoveParent,
3103 : /* 6310*/ OPC_MoveChild1,
3104 : /* 6311*/ OPC_CheckValueType, MVT::i8,
3105 : /* 6313*/ OPC_MoveParent,
3106 : /* 6314*/ OPC_MoveParent,
3107 : /* 6315*/ OPC_MoveChild1,
3108 : /* 6316*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3109 : /* 6319*/ OPC_MoveChild0,
3110 : /* 6320*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3111 : /* 6323*/ OPC_CheckChild0Same, 1,
3112 : /* 6325*/ OPC_CheckChild1Integer, 8,
3113 : /* 6327*/ OPC_CheckChild1Type, MVT::i32,
3114 : /* 6329*/ OPC_MoveParent,
3115 : /* 6330*/ OPC_MoveChild1,
3116 : /* 6331*/ OPC_CheckValueType, MVT::i8,
3117 : /* 6333*/ OPC_MoveParent,
3118 : /* 6334*/ OPC_MoveParent,
3119 : /* 6335*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3120 : /* 6337*/ OPC_MoveParent,
3121 : /* 6338*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3122 : /* 6340*/ OPC_MoveParent,
3123 : /* 6341*/ OPC_MoveChild1,
3124 : /* 6342*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3125 : /* 6345*/ OPC_MoveChild0,
3126 : /* 6346*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3127 : /* 6349*/ OPC_MoveChild0,
3128 : /* 6350*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3129 : /* 6353*/ OPC_Scope, 58|128,1/*186*/, /*->6542*/ // 2 children in Scope
3130 : /* 6356*/ OPC_CheckChild0Same, 0,
3131 : /* 6358*/ OPC_CheckChild1Integer, 16,
3132 : /* 6360*/ OPC_CheckChild1Type, MVT::i32,
3133 : /* 6362*/ OPC_MoveParent,
3134 : /* 6363*/ OPC_MoveChild1,
3135 : /* 6364*/ OPC_CheckValueType, MVT::i8,
3136 : /* 6366*/ OPC_MoveParent,
3137 : /* 6367*/ OPC_MoveParent,
3138 : /* 6368*/ OPC_MoveChild1,
3139 : /* 6369*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3140 : /* 6372*/ OPC_MoveChild0,
3141 : /* 6373*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3142 : /* 6376*/ OPC_CheckChild0Same, 1,
3143 : /* 6378*/ OPC_CheckChild1Integer, 16,
3144 : /* 6380*/ OPC_CheckChild1Type, MVT::i32,
3145 : /* 6382*/ OPC_MoveParent,
3146 : /* 6383*/ OPC_MoveChild1,
3147 : /* 6384*/ OPC_CheckValueType, MVT::i8,
3148 : /* 6386*/ OPC_MoveParent,
3149 : /* 6387*/ OPC_MoveParent,
3150 : /* 6388*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3151 : /* 6390*/ OPC_MoveParent,
3152 : /* 6391*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3153 : /* 6393*/ OPC_MoveParent,
3154 : /* 6394*/ OPC_MoveChild1,
3155 : /* 6395*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3156 : /* 6398*/ OPC_MoveChild0,
3157 : /* 6399*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3158 : /* 6402*/ OPC_Scope, 68, /*->6472*/ // 2 children in Scope
3159 : /* 6404*/ OPC_CheckChild0Same, 0,
3160 : /* 6406*/ OPC_CheckChild1Integer, 24,
3161 : /* 6408*/ OPC_CheckChild1Type, MVT::i32,
3162 : /* 6410*/ OPC_MoveParent,
3163 : /* 6411*/ OPC_MoveChild1,
3164 : /* 6412*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3165 : /* 6415*/ OPC_CheckChild0Same, 1,
3166 : /* 6417*/ OPC_CheckChild1Integer, 24,
3167 : /* 6419*/ OPC_CheckChild1Type, MVT::i32,
3168 : /* 6421*/ OPC_MoveParent,
3169 : /* 6422*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3170 : /* 6424*/ OPC_MoveParent,
3171 : /* 6425*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3172 : /* 6427*/ OPC_CheckType, MVT::i32,
3173 : /* 6429*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3174 : /* 6431*/ OPC_EmitInteger, MVT::i32, 8,
3175 : /* 6434*/ OPC_EmitInteger, MVT::i32, 8,
3176 : /* 6437*/ OPC_EmitInteger, MVT::i32, 8,
3177 : /* 6440*/ OPC_EmitInteger, MVT::i1, 0,
3178 : /* 6443*/ OPC_EmitInteger, MVT::i32, 0,
3179 : /* 6446*/ OPC_EmitInteger, MVT::i32, 0,
3180 : /* 6449*/ OPC_EmitInteger, MVT::i32, 0,
3181 : /* 6452*/ OPC_EmitInteger, MVT::i32, 0,
3182 : /* 6455*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3183 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3184 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3185 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3186 : /* 6472*/ /*Scope*/ 68, /*->6541*/
3187 : /* 6473*/ OPC_CheckChild0Same, 1,
3188 : /* 6475*/ OPC_CheckChild1Integer, 24,
3189 : /* 6477*/ OPC_CheckChild1Type, MVT::i32,
3190 : /* 6479*/ OPC_MoveParent,
3191 : /* 6480*/ OPC_MoveChild1,
3192 : /* 6481*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3193 : /* 6484*/ OPC_CheckChild0Same, 0,
3194 : /* 6486*/ OPC_CheckChild1Integer, 24,
3195 : /* 6488*/ OPC_CheckChild1Type, MVT::i32,
3196 : /* 6490*/ OPC_MoveParent,
3197 : /* 6491*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3198 : /* 6493*/ OPC_MoveParent,
3199 : /* 6494*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3200 : /* 6496*/ OPC_CheckType, MVT::i32,
3201 : /* 6498*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3202 : /* 6500*/ OPC_EmitInteger, MVT::i32, 8,
3203 : /* 6503*/ OPC_EmitInteger, MVT::i32, 8,
3204 : /* 6506*/ OPC_EmitInteger, MVT::i32, 8,
3205 : /* 6509*/ OPC_EmitInteger, MVT::i1, 0,
3206 : /* 6512*/ OPC_EmitInteger, MVT::i32, 0,
3207 : /* 6515*/ OPC_EmitInteger, MVT::i32, 0,
3208 : /* 6518*/ OPC_EmitInteger, MVT::i32, 0,
3209 : /* 6521*/ OPC_EmitInteger, MVT::i32, 0,
3210 : /* 6524*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3211 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3212 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3213 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3214 : /* 6541*/ 0, /*End of Scope*/
3215 : /* 6542*/ /*Scope*/ 58|128,1/*186*/, /*->6730*/
3216 : /* 6544*/ OPC_CheckChild0Same, 1,
3217 : /* 6546*/ OPC_CheckChild1Integer, 16,
3218 : /* 6548*/ OPC_CheckChild1Type, MVT::i32,
3219 : /* 6550*/ OPC_MoveParent,
3220 : /* 6551*/ OPC_MoveChild1,
3221 : /* 6552*/ OPC_CheckValueType, MVT::i8,
3222 : /* 6554*/ OPC_MoveParent,
3223 : /* 6555*/ OPC_MoveParent,
3224 : /* 6556*/ OPC_MoveChild1,
3225 : /* 6557*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3226 : /* 6560*/ OPC_MoveChild0,
3227 : /* 6561*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3228 : /* 6564*/ OPC_CheckChild0Same, 0,
3229 : /* 6566*/ OPC_CheckChild1Integer, 16,
3230 : /* 6568*/ OPC_CheckChild1Type, MVT::i32,
3231 : /* 6570*/ OPC_MoveParent,
3232 : /* 6571*/ OPC_MoveChild1,
3233 : /* 6572*/ OPC_CheckValueType, MVT::i8,
3234 : /* 6574*/ OPC_MoveParent,
3235 : /* 6575*/ OPC_MoveParent,
3236 : /* 6576*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3237 : /* 6578*/ OPC_MoveParent,
3238 : /* 6579*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3239 : /* 6581*/ OPC_MoveParent,
3240 : /* 6582*/ OPC_MoveChild1,
3241 : /* 6583*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3242 : /* 6586*/ OPC_MoveChild0,
3243 : /* 6587*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3244 : /* 6590*/ OPC_Scope, 68, /*->6660*/ // 2 children in Scope
3245 : /* 6592*/ OPC_CheckChild0Same, 0,
3246 : /* 6594*/ OPC_CheckChild1Integer, 24,
3247 : /* 6596*/ OPC_CheckChild1Type, MVT::i32,
3248 : /* 6598*/ OPC_MoveParent,
3249 : /* 6599*/ OPC_MoveChild1,
3250 : /* 6600*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3251 : /* 6603*/ OPC_CheckChild0Same, 1,
3252 : /* 6605*/ OPC_CheckChild1Integer, 24,
3253 : /* 6607*/ OPC_CheckChild1Type, MVT::i32,
3254 : /* 6609*/ OPC_MoveParent,
3255 : /* 6610*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3256 : /* 6612*/ OPC_MoveParent,
3257 : /* 6613*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3258 : /* 6615*/ OPC_CheckType, MVT::i32,
3259 : /* 6617*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3260 : /* 6619*/ OPC_EmitInteger, MVT::i32, 8,
3261 : /* 6622*/ OPC_EmitInteger, MVT::i32, 8,
3262 : /* 6625*/ OPC_EmitInteger, MVT::i32, 8,
3263 : /* 6628*/ OPC_EmitInteger, MVT::i1, 0,
3264 : /* 6631*/ OPC_EmitInteger, MVT::i32, 0,
3265 : /* 6634*/ OPC_EmitInteger, MVT::i32, 0,
3266 : /* 6637*/ OPC_EmitInteger, MVT::i32, 0,
3267 : /* 6640*/ OPC_EmitInteger, MVT::i32, 0,
3268 : /* 6643*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3269 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3270 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3271 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3272 : /* 6660*/ /*Scope*/ 68, /*->6729*/
3273 : /* 6661*/ OPC_CheckChild0Same, 1,
3274 : /* 6663*/ OPC_CheckChild1Integer, 24,
3275 : /* 6665*/ OPC_CheckChild1Type, MVT::i32,
3276 : /* 6667*/ OPC_MoveParent,
3277 : /* 6668*/ OPC_MoveChild1,
3278 : /* 6669*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3279 : /* 6672*/ OPC_CheckChild0Same, 0,
3280 : /* 6674*/ OPC_CheckChild1Integer, 24,
3281 : /* 6676*/ OPC_CheckChild1Type, MVT::i32,
3282 : /* 6678*/ OPC_MoveParent,
3283 : /* 6679*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3284 : /* 6681*/ OPC_MoveParent,
3285 : /* 6682*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3286 : /* 6684*/ OPC_CheckType, MVT::i32,
3287 : /* 6686*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3288 : /* 6688*/ OPC_EmitInteger, MVT::i32, 8,
3289 : /* 6691*/ OPC_EmitInteger, MVT::i32, 8,
3290 : /* 6694*/ OPC_EmitInteger, MVT::i32, 8,
3291 : /* 6697*/ OPC_EmitInteger, MVT::i1, 0,
3292 : /* 6700*/ OPC_EmitInteger, MVT::i32, 0,
3293 : /* 6703*/ OPC_EmitInteger, MVT::i32, 0,
3294 : /* 6706*/ OPC_EmitInteger, MVT::i32, 0,
3295 : /* 6709*/ OPC_EmitInteger, MVT::i32, 0,
3296 : /* 6712*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3297 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3298 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3299 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3300 : /* 6729*/ 0, /*End of Scope*/
3301 : /* 6730*/ 0, /*End of Scope*/
3302 : /* 6731*/ /*Scope*/ 66|128,5/*706*/, /*->7439*/
3303 : /* 6733*/ OPC_CheckChild0Same, 1,
3304 : /* 6735*/ OPC_CheckChild1Integer, 8,
3305 : /* 6737*/ OPC_CheckChild1Type, MVT::i32,
3306 : /* 6739*/ OPC_MoveParent,
3307 : /* 6740*/ OPC_MoveChild1,
3308 : /* 6741*/ OPC_CheckValueType, MVT::i8,
3309 : /* 6743*/ OPC_MoveParent,
3310 : /* 6744*/ OPC_MoveParent,
3311 : /* 6745*/ OPC_MoveChild1,
3312 : /* 6746*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3313 : /* 6749*/ OPC_MoveChild0,
3314 : /* 6750*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3315 : /* 6753*/ OPC_CheckChild0Same, 0,
3316 : /* 6755*/ OPC_CheckChild1Integer, 8,
3317 : /* 6757*/ OPC_CheckChild1Type, MVT::i32,
3318 : /* 6759*/ OPC_MoveParent,
3319 : /* 6760*/ OPC_MoveChild1,
3320 : /* 6761*/ OPC_CheckValueType, MVT::i8,
3321 : /* 6763*/ OPC_MoveParent,
3322 : /* 6764*/ OPC_MoveParent,
3323 : /* 6765*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3324 : /* 6767*/ OPC_MoveParent,
3325 : /* 6768*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3326 : /* 6770*/ OPC_MoveParent,
3327 : /* 6771*/ OPC_MoveChild1,
3328 : /* 6772*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3329 : /* 6775*/ OPC_MoveChild0,
3330 : /* 6776*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3331 : /* 6779*/ OPC_MoveChild0,
3332 : /* 6780*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3333 : /* 6783*/ OPC_Scope, 58|128,1/*186*/, /*->6972*/ // 3 children in Scope
3334 : /* 6786*/ OPC_CheckChild0Same, 0,
3335 : /* 6788*/ OPC_CheckChild1Integer, 16,
3336 : /* 6790*/ OPC_CheckChild1Type, MVT::i32,
3337 : /* 6792*/ OPC_MoveParent,
3338 : /* 6793*/ OPC_MoveChild1,
3339 : /* 6794*/ OPC_CheckValueType, MVT::i8,
3340 : /* 6796*/ OPC_MoveParent,
3341 : /* 6797*/ OPC_MoveParent,
3342 : /* 6798*/ OPC_MoveChild1,
3343 : /* 6799*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3344 : /* 6802*/ OPC_MoveChild0,
3345 : /* 6803*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3346 : /* 6806*/ OPC_CheckChild0Same, 1,
3347 : /* 6808*/ OPC_CheckChild1Integer, 16,
3348 : /* 6810*/ OPC_CheckChild1Type, MVT::i32,
3349 : /* 6812*/ OPC_MoveParent,
3350 : /* 6813*/ OPC_MoveChild1,
3351 : /* 6814*/ OPC_CheckValueType, MVT::i8,
3352 : /* 6816*/ OPC_MoveParent,
3353 : /* 6817*/ OPC_MoveParent,
3354 : /* 6818*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3355 : /* 6820*/ OPC_MoveParent,
3356 : /* 6821*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3357 : /* 6823*/ OPC_MoveParent,
3358 : /* 6824*/ OPC_MoveChild1,
3359 : /* 6825*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3360 : /* 6828*/ OPC_MoveChild0,
3361 : /* 6829*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3362 : /* 6832*/ OPC_Scope, 68, /*->6902*/ // 2 children in Scope
3363 : /* 6834*/ OPC_CheckChild0Same, 0,
3364 : /* 6836*/ OPC_CheckChild1Integer, 24,
3365 : /* 6838*/ OPC_CheckChild1Type, MVT::i32,
3366 : /* 6840*/ OPC_MoveParent,
3367 : /* 6841*/ OPC_MoveChild1,
3368 : /* 6842*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3369 : /* 6845*/ OPC_CheckChild0Same, 1,
3370 : /* 6847*/ OPC_CheckChild1Integer, 24,
3371 : /* 6849*/ OPC_CheckChild1Type, MVT::i32,
3372 : /* 6851*/ OPC_MoveParent,
3373 : /* 6852*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3374 : /* 6854*/ OPC_MoveParent,
3375 : /* 6855*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3376 : /* 6857*/ OPC_CheckType, MVT::i32,
3377 : /* 6859*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3378 : /* 6861*/ OPC_EmitInteger, MVT::i32, 8,
3379 : /* 6864*/ OPC_EmitInteger, MVT::i32, 8,
3380 : /* 6867*/ OPC_EmitInteger, MVT::i32, 8,
3381 : /* 6870*/ OPC_EmitInteger, MVT::i1, 0,
3382 : /* 6873*/ OPC_EmitInteger, MVT::i32, 0,
3383 : /* 6876*/ OPC_EmitInteger, MVT::i32, 0,
3384 : /* 6879*/ OPC_EmitInteger, MVT::i32, 0,
3385 : /* 6882*/ OPC_EmitInteger, MVT::i32, 0,
3386 : /* 6885*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3387 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3388 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3389 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3390 : /* 6902*/ /*Scope*/ 68, /*->6971*/
3391 : /* 6903*/ OPC_CheckChild0Same, 1,
3392 : /* 6905*/ OPC_CheckChild1Integer, 24,
3393 : /* 6907*/ OPC_CheckChild1Type, MVT::i32,
3394 : /* 6909*/ OPC_MoveParent,
3395 : /* 6910*/ OPC_MoveChild1,
3396 : /* 6911*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3397 : /* 6914*/ OPC_CheckChild0Same, 0,
3398 : /* 6916*/ OPC_CheckChild1Integer, 24,
3399 : /* 6918*/ OPC_CheckChild1Type, MVT::i32,
3400 : /* 6920*/ OPC_MoveParent,
3401 : /* 6921*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3402 : /* 6923*/ OPC_MoveParent,
3403 : /* 6924*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3404 : /* 6926*/ OPC_CheckType, MVT::i32,
3405 : /* 6928*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3406 : /* 6930*/ OPC_EmitInteger, MVT::i32, 8,
3407 : /* 6933*/ OPC_EmitInteger, MVT::i32, 8,
3408 : /* 6936*/ OPC_EmitInteger, MVT::i32, 8,
3409 : /* 6939*/ OPC_EmitInteger, MVT::i1, 0,
3410 : /* 6942*/ OPC_EmitInteger, MVT::i32, 0,
3411 : /* 6945*/ OPC_EmitInteger, MVT::i32, 0,
3412 : /* 6948*/ OPC_EmitInteger, MVT::i32, 0,
3413 : /* 6951*/ OPC_EmitInteger, MVT::i32, 0,
3414 : /* 6954*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3415 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3416 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3417 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3418 : /* 6971*/ 0, /*End of Scope*/
3419 : /* 6972*/ /*Scope*/ 20|128,2/*276*/, /*->7250*/
3420 : /* 6974*/ OPC_CheckChild0Same, 1,
3421 : /* 6976*/ OPC_CheckChild1Integer, 16,
3422 : /* 6978*/ OPC_CheckChild1Type, MVT::i32,
3423 : /* 6980*/ OPC_MoveParent,
3424 : /* 6981*/ OPC_MoveChild1,
3425 : /* 6982*/ OPC_CheckValueType, MVT::i8,
3426 : /* 6984*/ OPC_MoveParent,
3427 : /* 6985*/ OPC_MoveParent,
3428 : /* 6986*/ OPC_MoveChild1,
3429 : /* 6987*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3430 : /* 6990*/ OPC_MoveChild0,
3431 : /* 6991*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3432 : /* 6994*/ OPC_CheckChild0Same, 0,
3433 : /* 6996*/ OPC_CheckChild1Integer, 16,
3434 : /* 6998*/ OPC_CheckChild1Type, MVT::i32,
3435 : /* 7000*/ OPC_MoveParent,
3436 : /* 7001*/ OPC_MoveChild1,
3437 : /* 7002*/ OPC_CheckValueType, MVT::i8,
3438 : /* 7004*/ OPC_MoveParent,
3439 : /* 7005*/ OPC_MoveParent,
3440 : /* 7006*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3441 : /* 7008*/ OPC_MoveParent,
3442 : /* 7009*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3443 : /* 7011*/ OPC_MoveParent,
3444 : /* 7012*/ OPC_MoveChild1,
3445 : /* 7013*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3446 : /* 7016*/ OPC_MoveChild0,
3447 : /* 7017*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3448 : /* 7020*/ OPC_Scope, 68, /*->7090*/ // 3 children in Scope
3449 : /* 7022*/ OPC_CheckChild0Same, 0,
3450 : /* 7024*/ OPC_CheckChild1Integer, 24,
3451 : /* 7026*/ OPC_CheckChild1Type, MVT::i32,
3452 : /* 7028*/ OPC_MoveParent,
3453 : /* 7029*/ OPC_MoveChild1,
3454 : /* 7030*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3455 : /* 7033*/ OPC_CheckChild0Same, 1,
3456 : /* 7035*/ OPC_CheckChild1Integer, 24,
3457 : /* 7037*/ OPC_CheckChild1Type, MVT::i32,
3458 : /* 7039*/ OPC_MoveParent,
3459 : /* 7040*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3460 : /* 7042*/ OPC_MoveParent,
3461 : /* 7043*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3462 : /* 7045*/ OPC_CheckType, MVT::i32,
3463 : /* 7047*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3464 : /* 7049*/ OPC_EmitInteger, MVT::i32, 8,
3465 : /* 7052*/ OPC_EmitInteger, MVT::i32, 8,
3466 : /* 7055*/ OPC_EmitInteger, MVT::i32, 8,
3467 : /* 7058*/ OPC_EmitInteger, MVT::i1, 0,
3468 : /* 7061*/ OPC_EmitInteger, MVT::i32, 0,
3469 : /* 7064*/ OPC_EmitInteger, MVT::i32, 0,
3470 : /* 7067*/ OPC_EmitInteger, MVT::i32, 0,
3471 : /* 7070*/ OPC_EmitInteger, MVT::i32, 0,
3472 : /* 7073*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3473 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3474 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3475 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3476 : /* 7090*/ /*Scope*/ 89, /*->7180*/
3477 : /* 7091*/ OPC_CheckChild0Same, 1,
3478 : /* 7093*/ OPC_CheckChild1Integer, 24,
3479 : /* 7095*/ OPC_CheckChild1Type, MVT::i32,
3480 : /* 7097*/ OPC_MoveParent,
3481 : /* 7098*/ OPC_MoveChild1,
3482 : /* 7099*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3483 : /* 7102*/ OPC_CheckChild0Same, 0,
3484 : /* 7104*/ OPC_CheckChild1Integer, 24,
3485 : /* 7106*/ OPC_CheckChild1Type, MVT::i32,
3486 : /* 7108*/ OPC_MoveParent,
3487 : /* 7109*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3488 : /* 7111*/ OPC_MoveParent,
3489 : /* 7112*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3490 : /* 7114*/ OPC_CheckType, MVT::i32,
3491 : /* 7116*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3492 : /* 7118*/ OPC_EmitInteger, MVT::i32, 8,
3493 : /* 7121*/ OPC_EmitInteger, MVT::i32, 8,
3494 : /* 7124*/ OPC_EmitInteger, MVT::i32, 8,
3495 : /* 7127*/ OPC_EmitInteger, MVT::i1, 0,
3496 : /* 7130*/ OPC_EmitInteger, MVT::i32, 0,
3497 : /* 7133*/ OPC_EmitInteger, MVT::i32, 0,
3498 : /* 7136*/ OPC_EmitInteger, MVT::i32, 0,
3499 : /* 7139*/ OPC_EmitInteger, MVT::i32, 0,
3500 : /* 7142*/ OPC_Scope, 17, /*->7161*/ // 2 children in Scope
3501 : /* 7144*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3502 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3503 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3504 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3505 : /* 7161*/ /*Scope*/ 17, /*->7179*/
3506 : /* 7162*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3507 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3508 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3509 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3510 : /* 7179*/ 0, /*End of Scope*/
3511 : /* 7180*/ /*Scope*/ 68, /*->7249*/
3512 : /* 7181*/ OPC_CheckChild0Same, 0,
3513 : /* 7183*/ OPC_CheckChild1Integer, 24,
3514 : /* 7185*/ OPC_CheckChild1Type, MVT::i32,
3515 : /* 7187*/ OPC_MoveParent,
3516 : /* 7188*/ OPC_MoveChild1,
3517 : /* 7189*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3518 : /* 7192*/ OPC_CheckChild0Same, 1,
3519 : /* 7194*/ OPC_CheckChild1Integer, 24,
3520 : /* 7196*/ OPC_CheckChild1Type, MVT::i32,
3521 : /* 7198*/ OPC_MoveParent,
3522 : /* 7199*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3523 : /* 7201*/ OPC_MoveParent,
3524 : /* 7202*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3525 : /* 7204*/ OPC_CheckType, MVT::i32,
3526 : /* 7206*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3527 : /* 7208*/ OPC_EmitInteger, MVT::i32, 8,
3528 : /* 7211*/ OPC_EmitInteger, MVT::i32, 8,
3529 : /* 7214*/ OPC_EmitInteger, MVT::i32, 8,
3530 : /* 7217*/ OPC_EmitInteger, MVT::i1, 0,
3531 : /* 7220*/ OPC_EmitInteger, MVT::i32, 0,
3532 : /* 7223*/ OPC_EmitInteger, MVT::i32, 0,
3533 : /* 7226*/ OPC_EmitInteger, MVT::i32, 0,
3534 : /* 7229*/ OPC_EmitInteger, MVT::i32, 0,
3535 : /* 7232*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3536 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3537 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3538 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3539 : /* 7249*/ 0, /*End of Scope*/
3540 : /* 7250*/ /*Scope*/ 58|128,1/*186*/, /*->7438*/
3541 : /* 7252*/ OPC_CheckChild0Same, 0,
3542 : /* 7254*/ OPC_CheckChild1Integer, 16,
3543 : /* 7256*/ OPC_CheckChild1Type, MVT::i32,
3544 : /* 7258*/ OPC_MoveParent,
3545 : /* 7259*/ OPC_MoveChild1,
3546 : /* 7260*/ OPC_CheckValueType, MVT::i8,
3547 : /* 7262*/ OPC_MoveParent,
3548 : /* 7263*/ OPC_MoveParent,
3549 : /* 7264*/ OPC_MoveChild1,
3550 : /* 7265*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3551 : /* 7268*/ OPC_MoveChild0,
3552 : /* 7269*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3553 : /* 7272*/ OPC_CheckChild0Same, 1,
3554 : /* 7274*/ OPC_CheckChild1Integer, 16,
3555 : /* 7276*/ OPC_CheckChild1Type, MVT::i32,
3556 : /* 7278*/ OPC_MoveParent,
3557 : /* 7279*/ OPC_MoveChild1,
3558 : /* 7280*/ OPC_CheckValueType, MVT::i8,
3559 : /* 7282*/ OPC_MoveParent,
3560 : /* 7283*/ OPC_MoveParent,
3561 : /* 7284*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3562 : /* 7286*/ OPC_MoveParent,
3563 : /* 7287*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3564 : /* 7289*/ OPC_MoveParent,
3565 : /* 7290*/ OPC_MoveChild1,
3566 : /* 7291*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3567 : /* 7294*/ OPC_MoveChild0,
3568 : /* 7295*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3569 : /* 7298*/ OPC_Scope, 68, /*->7368*/ // 2 children in Scope
3570 : /* 7300*/ OPC_CheckChild0Same, 1,
3571 : /* 7302*/ OPC_CheckChild1Integer, 24,
3572 : /* 7304*/ OPC_CheckChild1Type, MVT::i32,
3573 : /* 7306*/ OPC_MoveParent,
3574 : /* 7307*/ OPC_MoveChild1,
3575 : /* 7308*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3576 : /* 7311*/ OPC_CheckChild0Same, 0,
3577 : /* 7313*/ OPC_CheckChild1Integer, 24,
3578 : /* 7315*/ OPC_CheckChild1Type, MVT::i32,
3579 : /* 7317*/ OPC_MoveParent,
3580 : /* 7318*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3581 : /* 7320*/ OPC_MoveParent,
3582 : /* 7321*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3583 : /* 7323*/ OPC_CheckType, MVT::i32,
3584 : /* 7325*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3585 : /* 7327*/ OPC_EmitInteger, MVT::i32, 8,
3586 : /* 7330*/ OPC_EmitInteger, MVT::i32, 8,
3587 : /* 7333*/ OPC_EmitInteger, MVT::i32, 8,
3588 : /* 7336*/ OPC_EmitInteger, MVT::i1, 0,
3589 : /* 7339*/ OPC_EmitInteger, MVT::i32, 0,
3590 : /* 7342*/ OPC_EmitInteger, MVT::i32, 0,
3591 : /* 7345*/ OPC_EmitInteger, MVT::i32, 0,
3592 : /* 7348*/ OPC_EmitInteger, MVT::i32, 0,
3593 : /* 7351*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3594 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3595 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3596 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3597 : /* 7368*/ /*Scope*/ 68, /*->7437*/
3598 : /* 7369*/ OPC_CheckChild0Same, 0,
3599 : /* 7371*/ OPC_CheckChild1Integer, 24,
3600 : /* 7373*/ OPC_CheckChild1Type, MVT::i32,
3601 : /* 7375*/ OPC_MoveParent,
3602 : /* 7376*/ OPC_MoveChild1,
3603 : /* 7377*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3604 : /* 7380*/ OPC_CheckChild0Same, 1,
3605 : /* 7382*/ OPC_CheckChild1Integer, 24,
3606 : /* 7384*/ OPC_CheckChild1Type, MVT::i32,
3607 : /* 7386*/ OPC_MoveParent,
3608 : /* 7387*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3609 : /* 7389*/ OPC_MoveParent,
3610 : /* 7390*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3611 : /* 7392*/ OPC_CheckType, MVT::i32,
3612 : /* 7394*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3613 : /* 7396*/ OPC_EmitInteger, MVT::i32, 8,
3614 : /* 7399*/ OPC_EmitInteger, MVT::i32, 8,
3615 : /* 7402*/ OPC_EmitInteger, MVT::i32, 8,
3616 : /* 7405*/ OPC_EmitInteger, MVT::i1, 0,
3617 : /* 7408*/ OPC_EmitInteger, MVT::i32, 0,
3618 : /* 7411*/ OPC_EmitInteger, MVT::i32, 0,
3619 : /* 7414*/ OPC_EmitInteger, MVT::i32, 0,
3620 : /* 7417*/ OPC_EmitInteger, MVT::i32, 0,
3621 : /* 7420*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3622 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3623 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3624 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3625 : /* 7437*/ 0, /*End of Scope*/
3626 : /* 7438*/ 0, /*End of Scope*/
3627 : /* 7439*/ /*Scope*/ 44|128,3/*428*/, /*->7869*/
3628 : /* 7441*/ OPC_CheckChild0Same, 0,
3629 : /* 7443*/ OPC_CheckChild1Integer, 8,
3630 : /* 7445*/ OPC_CheckChild1Type, MVT::i32,
3631 : /* 7447*/ OPC_MoveParent,
3632 : /* 7448*/ OPC_MoveChild1,
3633 : /* 7449*/ OPC_CheckValueType, MVT::i8,
3634 : /* 7451*/ OPC_MoveParent,
3635 : /* 7452*/ OPC_MoveParent,
3636 : /* 7453*/ OPC_MoveChild1,
3637 : /* 7454*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3638 : /* 7457*/ OPC_MoveChild0,
3639 : /* 7458*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3640 : /* 7461*/ OPC_CheckChild0Same, 1,
3641 : /* 7463*/ OPC_CheckChild1Integer, 8,
3642 : /* 7465*/ OPC_CheckChild1Type, MVT::i32,
3643 : /* 7467*/ OPC_MoveParent,
3644 : /* 7468*/ OPC_MoveChild1,
3645 : /* 7469*/ OPC_CheckValueType, MVT::i8,
3646 : /* 7471*/ OPC_MoveParent,
3647 : /* 7472*/ OPC_MoveParent,
3648 : /* 7473*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3649 : /* 7475*/ OPC_MoveParent,
3650 : /* 7476*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3651 : /* 7478*/ OPC_MoveParent,
3652 : /* 7479*/ OPC_MoveChild1,
3653 : /* 7480*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3654 : /* 7483*/ OPC_MoveChild0,
3655 : /* 7484*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3656 : /* 7487*/ OPC_MoveChild0,
3657 : /* 7488*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3658 : /* 7491*/ OPC_Scope, 58|128,1/*186*/, /*->7680*/ // 2 children in Scope
3659 : /* 7494*/ OPC_CheckChild0Same, 1,
3660 : /* 7496*/ OPC_CheckChild1Integer, 16,
3661 : /* 7498*/ OPC_CheckChild1Type, MVT::i32,
3662 : /* 7500*/ OPC_MoveParent,
3663 : /* 7501*/ OPC_MoveChild1,
3664 : /* 7502*/ OPC_CheckValueType, MVT::i8,
3665 : /* 7504*/ OPC_MoveParent,
3666 : /* 7505*/ OPC_MoveParent,
3667 : /* 7506*/ OPC_MoveChild1,
3668 : /* 7507*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3669 : /* 7510*/ OPC_MoveChild0,
3670 : /* 7511*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3671 : /* 7514*/ OPC_CheckChild0Same, 0,
3672 : /* 7516*/ OPC_CheckChild1Integer, 16,
3673 : /* 7518*/ OPC_CheckChild1Type, MVT::i32,
3674 : /* 7520*/ OPC_MoveParent,
3675 : /* 7521*/ OPC_MoveChild1,
3676 : /* 7522*/ OPC_CheckValueType, MVT::i8,
3677 : /* 7524*/ OPC_MoveParent,
3678 : /* 7525*/ OPC_MoveParent,
3679 : /* 7526*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3680 : /* 7528*/ OPC_MoveParent,
3681 : /* 7529*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3682 : /* 7531*/ OPC_MoveParent,
3683 : /* 7532*/ OPC_MoveChild1,
3684 : /* 7533*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3685 : /* 7536*/ OPC_MoveChild0,
3686 : /* 7537*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3687 : /* 7540*/ OPC_Scope, 68, /*->7610*/ // 2 children in Scope
3688 : /* 7542*/ OPC_CheckChild0Same, 1,
3689 : /* 7544*/ OPC_CheckChild1Integer, 24,
3690 : /* 7546*/ OPC_CheckChild1Type, MVT::i32,
3691 : /* 7548*/ OPC_MoveParent,
3692 : /* 7549*/ OPC_MoveChild1,
3693 : /* 7550*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3694 : /* 7553*/ OPC_CheckChild0Same, 0,
3695 : /* 7555*/ OPC_CheckChild1Integer, 24,
3696 : /* 7557*/ OPC_CheckChild1Type, MVT::i32,
3697 : /* 7559*/ OPC_MoveParent,
3698 : /* 7560*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3699 : /* 7562*/ OPC_MoveParent,
3700 : /* 7563*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3701 : /* 7565*/ OPC_CheckType, MVT::i32,
3702 : /* 7567*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3703 : /* 7569*/ OPC_EmitInteger, MVT::i32, 8,
3704 : /* 7572*/ OPC_EmitInteger, MVT::i32, 8,
3705 : /* 7575*/ OPC_EmitInteger, MVT::i32, 8,
3706 : /* 7578*/ OPC_EmitInteger, MVT::i1, 0,
3707 : /* 7581*/ OPC_EmitInteger, MVT::i32, 0,
3708 : /* 7584*/ OPC_EmitInteger, MVT::i32, 0,
3709 : /* 7587*/ OPC_EmitInteger, MVT::i32, 0,
3710 : /* 7590*/ OPC_EmitInteger, MVT::i32, 0,
3711 : /* 7593*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3712 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3713 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3714 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3715 : /* 7610*/ /*Scope*/ 68, /*->7679*/
3716 : /* 7611*/ OPC_CheckChild0Same, 0,
3717 : /* 7613*/ OPC_CheckChild1Integer, 24,
3718 : /* 7615*/ OPC_CheckChild1Type, MVT::i32,
3719 : /* 7617*/ OPC_MoveParent,
3720 : /* 7618*/ OPC_MoveChild1,
3721 : /* 7619*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3722 : /* 7622*/ OPC_CheckChild0Same, 1,
3723 : /* 7624*/ OPC_CheckChild1Integer, 24,
3724 : /* 7626*/ OPC_CheckChild1Type, MVT::i32,
3725 : /* 7628*/ OPC_MoveParent,
3726 : /* 7629*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3727 : /* 7631*/ OPC_MoveParent,
3728 : /* 7632*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3729 : /* 7634*/ OPC_CheckType, MVT::i32,
3730 : /* 7636*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3731 : /* 7638*/ OPC_EmitInteger, MVT::i32, 8,
3732 : /* 7641*/ OPC_EmitInteger, MVT::i32, 8,
3733 : /* 7644*/ OPC_EmitInteger, MVT::i32, 8,
3734 : /* 7647*/ OPC_EmitInteger, MVT::i1, 0,
3735 : /* 7650*/ OPC_EmitInteger, MVT::i32, 0,
3736 : /* 7653*/ OPC_EmitInteger, MVT::i32, 0,
3737 : /* 7656*/ OPC_EmitInteger, MVT::i32, 0,
3738 : /* 7659*/ OPC_EmitInteger, MVT::i32, 0,
3739 : /* 7662*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3740 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3741 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3742 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3743 : /* 7679*/ 0, /*End of Scope*/
3744 : /* 7680*/ /*Scope*/ 58|128,1/*186*/, /*->7868*/
3745 : /* 7682*/ OPC_CheckChild0Same, 0,
3746 : /* 7684*/ OPC_CheckChild1Integer, 16,
3747 : /* 7686*/ OPC_CheckChild1Type, MVT::i32,
3748 : /* 7688*/ OPC_MoveParent,
3749 : /* 7689*/ OPC_MoveChild1,
3750 : /* 7690*/ OPC_CheckValueType, MVT::i8,
3751 : /* 7692*/ OPC_MoveParent,
3752 : /* 7693*/ OPC_MoveParent,
3753 : /* 7694*/ OPC_MoveChild1,
3754 : /* 7695*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3755 : /* 7698*/ OPC_MoveChild0,
3756 : /* 7699*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3757 : /* 7702*/ OPC_CheckChild0Same, 1,
3758 : /* 7704*/ OPC_CheckChild1Integer, 16,
3759 : /* 7706*/ OPC_CheckChild1Type, MVT::i32,
3760 : /* 7708*/ OPC_MoveParent,
3761 : /* 7709*/ OPC_MoveChild1,
3762 : /* 7710*/ OPC_CheckValueType, MVT::i8,
3763 : /* 7712*/ OPC_MoveParent,
3764 : /* 7713*/ OPC_MoveParent,
3765 : /* 7714*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3766 : /* 7716*/ OPC_MoveParent,
3767 : /* 7717*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3768 : /* 7719*/ OPC_MoveParent,
3769 : /* 7720*/ OPC_MoveChild1,
3770 : /* 7721*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3771 : /* 7724*/ OPC_MoveChild0,
3772 : /* 7725*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3773 : /* 7728*/ OPC_Scope, 68, /*->7798*/ // 2 children in Scope
3774 : /* 7730*/ OPC_CheckChild0Same, 1,
3775 : /* 7732*/ OPC_CheckChild1Integer, 24,
3776 : /* 7734*/ OPC_CheckChild1Type, MVT::i32,
3777 : /* 7736*/ OPC_MoveParent,
3778 : /* 7737*/ OPC_MoveChild1,
3779 : /* 7738*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3780 : /* 7741*/ OPC_CheckChild0Same, 0,
3781 : /* 7743*/ OPC_CheckChild1Integer, 24,
3782 : /* 7745*/ OPC_CheckChild1Type, MVT::i32,
3783 : /* 7747*/ OPC_MoveParent,
3784 : /* 7748*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3785 : /* 7750*/ OPC_MoveParent,
3786 : /* 7751*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3787 : /* 7753*/ OPC_CheckType, MVT::i32,
3788 : /* 7755*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3789 : /* 7757*/ OPC_EmitInteger, MVT::i32, 8,
3790 : /* 7760*/ OPC_EmitInteger, MVT::i32, 8,
3791 : /* 7763*/ OPC_EmitInteger, MVT::i32, 8,
3792 : /* 7766*/ OPC_EmitInteger, MVT::i1, 0,
3793 : /* 7769*/ OPC_EmitInteger, MVT::i32, 0,
3794 : /* 7772*/ OPC_EmitInteger, MVT::i32, 0,
3795 : /* 7775*/ OPC_EmitInteger, MVT::i32, 0,
3796 : /* 7778*/ OPC_EmitInteger, MVT::i32, 0,
3797 : /* 7781*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3798 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3799 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3800 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3801 : /* 7798*/ /*Scope*/ 68, /*->7867*/
3802 : /* 7799*/ OPC_CheckChild0Same, 0,
3803 : /* 7801*/ OPC_CheckChild1Integer, 24,
3804 : /* 7803*/ OPC_CheckChild1Type, MVT::i32,
3805 : /* 7805*/ OPC_MoveParent,
3806 : /* 7806*/ OPC_MoveChild1,
3807 : /* 7807*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3808 : /* 7810*/ OPC_CheckChild0Same, 1,
3809 : /* 7812*/ OPC_CheckChild1Integer, 24,
3810 : /* 7814*/ OPC_CheckChild1Type, MVT::i32,
3811 : /* 7816*/ OPC_MoveParent,
3812 : /* 7817*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3813 : /* 7819*/ OPC_MoveParent,
3814 : /* 7820*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3815 : /* 7822*/ OPC_CheckType, MVT::i32,
3816 : /* 7824*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3817 : /* 7826*/ OPC_EmitInteger, MVT::i32, 8,
3818 : /* 7829*/ OPC_EmitInteger, MVT::i32, 8,
3819 : /* 7832*/ OPC_EmitInteger, MVT::i32, 8,
3820 : /* 7835*/ OPC_EmitInteger, MVT::i1, 0,
3821 : /* 7838*/ OPC_EmitInteger, MVT::i32, 0,
3822 : /* 7841*/ OPC_EmitInteger, MVT::i32, 0,
3823 : /* 7844*/ OPC_EmitInteger, MVT::i32, 0,
3824 : /* 7847*/ OPC_EmitInteger, MVT::i32, 0,
3825 : /* 7850*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3826 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
3827 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
3828 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3829 : /* 7867*/ 0, /*End of Scope*/
3830 : /* 7868*/ 0, /*End of Scope*/
3831 : /* 7869*/ 0, /*End of Scope*/
3832 : /* 7870*/ 0, /*End of Scope*/
3833 : /* 7871*/ /*SwitchOpcode*/ 53|128,25/*3253*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->11128
3834 : /* 7875*/ OPC_MoveChild0,
3835 : /* 7876*/ OPC_CheckAndImm, 127|128,1/*255*/,
3836 : /* 7879*/ OPC_MoveChild0,
3837 : /* 7880*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3838 : /* 7883*/ OPC_RecordChild0, // #0 = $src0
3839 : /* 7884*/ OPC_CheckChild1Integer, 8,
3840 : /* 7886*/ OPC_CheckChild1Type, MVT::i32,
3841 : /* 7888*/ OPC_MoveParent,
3842 : /* 7889*/ OPC_MoveParent,
3843 : /* 7890*/ OPC_MoveChild1,
3844 : /* 7891*/ OPC_CheckAndImm, 127|128,1/*255*/,
3845 : /* 7894*/ OPC_MoveChild0,
3846 : /* 7895*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3847 : /* 7898*/ OPC_RecordChild0, // #1 = $src1
3848 : /* 7899*/ OPC_CheckChild1Integer, 8,
3849 : /* 7901*/ OPC_CheckChild1Type, MVT::i32,
3850 : /* 7903*/ OPC_MoveParent,
3851 : /* 7904*/ OPC_MoveParent,
3852 : /* 7905*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3853 : /* 7907*/ OPC_MoveParent,
3854 : /* 7908*/ OPC_MoveChild1,
3855 : /* 7909*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
3856 : /* 7912*/ OPC_Scope, 33|128,6/*801*/, /*->8716*/ // 4 children in Scope
3857 : /* 7915*/ OPC_RecordChild0, // #2 = $src2
3858 : /* 7916*/ OPC_MoveChild1,
3859 : /* 7917*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
3860 : /* 7920*/ OPC_MoveChild0,
3861 : /* 7921*/ OPC_CheckAndImm, 127|128,1/*255*/,
3862 : /* 7924*/ OPC_Scope, 9|128,3/*393*/, /*->8320*/ // 2 children in Scope
3863 : /* 7927*/ OPC_CheckChild0Same, 0,
3864 : /* 7929*/ OPC_MoveParent,
3865 : /* 7930*/ OPC_MoveChild1,
3866 : /* 7931*/ OPC_CheckAndImm, 127|128,1/*255*/,
3867 : /* 7934*/ OPC_CheckChild0Same, 1,
3868 : /* 7936*/ OPC_MoveParent,
3869 : /* 7937*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3870 : /* 7939*/ OPC_MoveParent,
3871 : /* 7940*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3872 : /* 7942*/ OPC_MoveParent,
3873 : /* 7943*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3874 : /* 7945*/ OPC_MoveParent,
3875 : /* 7946*/ OPC_MoveChild1,
3876 : /* 7947*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
3877 : /* 7950*/ OPC_MoveChild0,
3878 : /* 7951*/ OPC_CheckAndImm, 127|128,1/*255*/,
3879 : /* 7954*/ OPC_MoveChild0,
3880 : /* 7955*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3881 : /* 7958*/ OPC_Scope, 50|128,1/*178*/, /*->8139*/ // 2 children in Scope
3882 : /* 7961*/ OPC_CheckChild0Same, 0,
3883 : /* 7963*/ OPC_CheckChild1Integer, 16,
3884 : /* 7965*/ OPC_CheckChild1Type, MVT::i32,
3885 : /* 7967*/ OPC_MoveParent,
3886 : /* 7968*/ OPC_MoveParent,
3887 : /* 7969*/ OPC_MoveChild1,
3888 : /* 7970*/ OPC_CheckAndImm, 127|128,1/*255*/,
3889 : /* 7973*/ OPC_MoveChild0,
3890 : /* 7974*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3891 : /* 7977*/ OPC_CheckChild0Same, 1,
3892 : /* 7979*/ OPC_CheckChild1Integer, 16,
3893 : /* 7981*/ OPC_CheckChild1Type, MVT::i32,
3894 : /* 7983*/ OPC_MoveParent,
3895 : /* 7984*/ OPC_MoveParent,
3896 : /* 7985*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3897 : /* 7987*/ OPC_MoveParent,
3898 : /* 7988*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3899 : /* 7990*/ OPC_MoveParent,
3900 : /* 7991*/ OPC_MoveChild1,
3901 : /* 7992*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
3902 : /* 7995*/ OPC_MoveChild0,
3903 : /* 7996*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3904 : /* 7999*/ OPC_Scope, 68, /*->8069*/ // 2 children in Scope
3905 : /* 8001*/ OPC_CheckChild0Same, 0,
3906 : /* 8003*/ OPC_CheckChild1Integer, 24,
3907 : /* 8005*/ OPC_CheckChild1Type, MVT::i32,
3908 : /* 8007*/ OPC_MoveParent,
3909 : /* 8008*/ OPC_MoveChild1,
3910 : /* 8009*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3911 : /* 8012*/ OPC_CheckChild0Same, 1,
3912 : /* 8014*/ OPC_CheckChild1Integer, 24,
3913 : /* 8016*/ OPC_CheckChild1Type, MVT::i32,
3914 : /* 8018*/ OPC_MoveParent,
3915 : /* 8019*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3916 : /* 8021*/ OPC_MoveParent,
3917 : /* 8022*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3918 : /* 8024*/ OPC_CheckType, MVT::i32,
3919 : /* 8026*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3920 : /* 8028*/ OPC_EmitInteger, MVT::i32, 8,
3921 : /* 8031*/ OPC_EmitInteger, MVT::i32, 8,
3922 : /* 8034*/ OPC_EmitInteger, MVT::i32, 8,
3923 : /* 8037*/ OPC_EmitInteger, MVT::i1, 0,
3924 : /* 8040*/ OPC_EmitInteger, MVT::i32, 0,
3925 : /* 8043*/ OPC_EmitInteger, MVT::i32, 0,
3926 : /* 8046*/ OPC_EmitInteger, MVT::i32, 0,
3927 : /* 8049*/ OPC_EmitInteger, MVT::i32, 0,
3928 : /* 8052*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
3929 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3930 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
3931 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3932 : /* 8069*/ /*Scope*/ 68, /*->8138*/
3933 : /* 8070*/ OPC_CheckChild0Same, 1,
3934 : /* 8072*/ OPC_CheckChild1Integer, 24,
3935 : /* 8074*/ OPC_CheckChild1Type, MVT::i32,
3936 : /* 8076*/ OPC_MoveParent,
3937 : /* 8077*/ OPC_MoveChild1,
3938 : /* 8078*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3939 : /* 8081*/ OPC_CheckChild0Same, 0,
3940 : /* 8083*/ OPC_CheckChild1Integer, 24,
3941 : /* 8085*/ OPC_CheckChild1Type, MVT::i32,
3942 : /* 8087*/ OPC_MoveParent,
3943 : /* 8088*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3944 : /* 8090*/ OPC_MoveParent,
3945 : /* 8091*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3946 : /* 8093*/ OPC_CheckType, MVT::i32,
3947 : /* 8095*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3948 : /* 8097*/ OPC_EmitInteger, MVT::i32, 8,
3949 : /* 8100*/ OPC_EmitInteger, MVT::i32, 8,
3950 : /* 8103*/ OPC_EmitInteger, MVT::i32, 8,
3951 : /* 8106*/ OPC_EmitInteger, MVT::i1, 0,
3952 : /* 8109*/ OPC_EmitInteger, MVT::i32, 0,
3953 : /* 8112*/ OPC_EmitInteger, MVT::i32, 0,
3954 : /* 8115*/ OPC_EmitInteger, MVT::i32, 0,
3955 : /* 8118*/ OPC_EmitInteger, MVT::i32, 0,
3956 : /* 8121*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
3957 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
3958 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
3959 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3960 : /* 8138*/ 0, /*End of Scope*/
3961 : /* 8139*/ /*Scope*/ 50|128,1/*178*/, /*->8319*/
3962 : /* 8141*/ OPC_CheckChild0Same, 1,
3963 : /* 8143*/ OPC_CheckChild1Integer, 16,
3964 : /* 8145*/ OPC_CheckChild1Type, MVT::i32,
3965 : /* 8147*/ OPC_MoveParent,
3966 : /* 8148*/ OPC_MoveParent,
3967 : /* 8149*/ OPC_MoveChild1,
3968 : /* 8150*/ OPC_CheckAndImm, 127|128,1/*255*/,
3969 : /* 8153*/ OPC_MoveChild0,
3970 : /* 8154*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3971 : /* 8157*/ OPC_CheckChild0Same, 0,
3972 : /* 8159*/ OPC_CheckChild1Integer, 16,
3973 : /* 8161*/ OPC_CheckChild1Type, MVT::i32,
3974 : /* 8163*/ OPC_MoveParent,
3975 : /* 8164*/ OPC_MoveParent,
3976 : /* 8165*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3977 : /* 8167*/ OPC_MoveParent,
3978 : /* 8168*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3979 : /* 8170*/ OPC_MoveParent,
3980 : /* 8171*/ OPC_MoveChild1,
3981 : /* 8172*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
3982 : /* 8175*/ OPC_MoveChild0,
3983 : /* 8176*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3984 : /* 8179*/ OPC_Scope, 68, /*->8249*/ // 2 children in Scope
3985 : /* 8181*/ OPC_CheckChild0Same, 0,
3986 : /* 8183*/ OPC_CheckChild1Integer, 24,
3987 : /* 8185*/ OPC_CheckChild1Type, MVT::i32,
3988 : /* 8187*/ OPC_MoveParent,
3989 : /* 8188*/ OPC_MoveChild1,
3990 : /* 8189*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3991 : /* 8192*/ OPC_CheckChild0Same, 1,
3992 : /* 8194*/ OPC_CheckChild1Integer, 24,
3993 : /* 8196*/ OPC_CheckChild1Type, MVT::i32,
3994 : /* 8198*/ OPC_MoveParent,
3995 : /* 8199*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3996 : /* 8201*/ OPC_MoveParent,
3997 : /* 8202*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
3998 : /* 8204*/ OPC_CheckType, MVT::i32,
3999 : /* 8206*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4000 : /* 8208*/ OPC_EmitInteger, MVT::i32, 8,
4001 : /* 8211*/ OPC_EmitInteger, MVT::i32, 8,
4002 : /* 8214*/ OPC_EmitInteger, MVT::i32, 8,
4003 : /* 8217*/ OPC_EmitInteger, MVT::i1, 0,
4004 : /* 8220*/ OPC_EmitInteger, MVT::i32, 0,
4005 : /* 8223*/ OPC_EmitInteger, MVT::i32, 0,
4006 : /* 8226*/ OPC_EmitInteger, MVT::i32, 0,
4007 : /* 8229*/ OPC_EmitInteger, MVT::i32, 0,
4008 : /* 8232*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4009 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4010 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4011 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4012 : /* 8249*/ /*Scope*/ 68, /*->8318*/
4013 : /* 8250*/ OPC_CheckChild0Same, 1,
4014 : /* 8252*/ OPC_CheckChild1Integer, 24,
4015 : /* 8254*/ OPC_CheckChild1Type, MVT::i32,
4016 : /* 8256*/ OPC_MoveParent,
4017 : /* 8257*/ OPC_MoveChild1,
4018 : /* 8258*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4019 : /* 8261*/ OPC_CheckChild0Same, 0,
4020 : /* 8263*/ OPC_CheckChild1Integer, 24,
4021 : /* 8265*/ OPC_CheckChild1Type, MVT::i32,
4022 : /* 8267*/ OPC_MoveParent,
4023 : /* 8268*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4024 : /* 8270*/ OPC_MoveParent,
4025 : /* 8271*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4026 : /* 8273*/ OPC_CheckType, MVT::i32,
4027 : /* 8275*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4028 : /* 8277*/ OPC_EmitInteger, MVT::i32, 8,
4029 : /* 8280*/ OPC_EmitInteger, MVT::i32, 8,
4030 : /* 8283*/ OPC_EmitInteger, MVT::i32, 8,
4031 : /* 8286*/ OPC_EmitInteger, MVT::i1, 0,
4032 : /* 8289*/ OPC_EmitInteger, MVT::i32, 0,
4033 : /* 8292*/ OPC_EmitInteger, MVT::i32, 0,
4034 : /* 8295*/ OPC_EmitInteger, MVT::i32, 0,
4035 : /* 8298*/ OPC_EmitInteger, MVT::i32, 0,
4036 : /* 8301*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4037 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4038 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4039 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4040 : /* 8318*/ 0, /*End of Scope*/
4041 : /* 8319*/ 0, /*End of Scope*/
4042 : /* 8320*/ /*Scope*/ 9|128,3/*393*/, /*->8715*/
4043 : /* 8322*/ OPC_CheckChild0Same, 1,
4044 : /* 8324*/ OPC_MoveParent,
4045 : /* 8325*/ OPC_MoveChild1,
4046 : /* 8326*/ OPC_CheckAndImm, 127|128,1/*255*/,
4047 : /* 8329*/ OPC_CheckChild0Same, 0,
4048 : /* 8331*/ OPC_MoveParent,
4049 : /* 8332*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4050 : /* 8334*/ OPC_MoveParent,
4051 : /* 8335*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4052 : /* 8337*/ OPC_MoveParent,
4053 : /* 8338*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4054 : /* 8340*/ OPC_MoveParent,
4055 : /* 8341*/ OPC_MoveChild1,
4056 : /* 8342*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4057 : /* 8345*/ OPC_MoveChild0,
4058 : /* 8346*/ OPC_CheckAndImm, 127|128,1/*255*/,
4059 : /* 8349*/ OPC_MoveChild0,
4060 : /* 8350*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4061 : /* 8353*/ OPC_Scope, 50|128,1/*178*/, /*->8534*/ // 2 children in Scope
4062 : /* 8356*/ OPC_CheckChild0Same, 0,
4063 : /* 8358*/ OPC_CheckChild1Integer, 16,
4064 : /* 8360*/ OPC_CheckChild1Type, MVT::i32,
4065 : /* 8362*/ OPC_MoveParent,
4066 : /* 8363*/ OPC_MoveParent,
4067 : /* 8364*/ OPC_MoveChild1,
4068 : /* 8365*/ OPC_CheckAndImm, 127|128,1/*255*/,
4069 : /* 8368*/ OPC_MoveChild0,
4070 : /* 8369*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4071 : /* 8372*/ OPC_CheckChild0Same, 1,
4072 : /* 8374*/ OPC_CheckChild1Integer, 16,
4073 : /* 8376*/ OPC_CheckChild1Type, MVT::i32,
4074 : /* 8378*/ OPC_MoveParent,
4075 : /* 8379*/ OPC_MoveParent,
4076 : /* 8380*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4077 : /* 8382*/ OPC_MoveParent,
4078 : /* 8383*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4079 : /* 8385*/ OPC_MoveParent,
4080 : /* 8386*/ OPC_MoveChild1,
4081 : /* 8387*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4082 : /* 8390*/ OPC_MoveChild0,
4083 : /* 8391*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4084 : /* 8394*/ OPC_Scope, 68, /*->8464*/ // 2 children in Scope
4085 : /* 8396*/ OPC_CheckChild0Same, 0,
4086 : /* 8398*/ OPC_CheckChild1Integer, 24,
4087 : /* 8400*/ OPC_CheckChild1Type, MVT::i32,
4088 : /* 8402*/ OPC_MoveParent,
4089 : /* 8403*/ OPC_MoveChild1,
4090 : /* 8404*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4091 : /* 8407*/ OPC_CheckChild0Same, 1,
4092 : /* 8409*/ OPC_CheckChild1Integer, 24,
4093 : /* 8411*/ OPC_CheckChild1Type, MVT::i32,
4094 : /* 8413*/ OPC_MoveParent,
4095 : /* 8414*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4096 : /* 8416*/ OPC_MoveParent,
4097 : /* 8417*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4098 : /* 8419*/ OPC_CheckType, MVT::i32,
4099 : /* 8421*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4100 : /* 8423*/ OPC_EmitInteger, MVT::i32, 8,
4101 : /* 8426*/ OPC_EmitInteger, MVT::i32, 8,
4102 : /* 8429*/ OPC_EmitInteger, MVT::i32, 8,
4103 : /* 8432*/ OPC_EmitInteger, MVT::i1, 0,
4104 : /* 8435*/ OPC_EmitInteger, MVT::i32, 0,
4105 : /* 8438*/ OPC_EmitInteger, MVT::i32, 0,
4106 : /* 8441*/ OPC_EmitInteger, MVT::i32, 0,
4107 : /* 8444*/ OPC_EmitInteger, MVT::i32, 0,
4108 : /* 8447*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4109 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4110 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4111 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4112 : /* 8464*/ /*Scope*/ 68, /*->8533*/
4113 : /* 8465*/ OPC_CheckChild0Same, 1,
4114 : /* 8467*/ OPC_CheckChild1Integer, 24,
4115 : /* 8469*/ OPC_CheckChild1Type, MVT::i32,
4116 : /* 8471*/ OPC_MoveParent,
4117 : /* 8472*/ OPC_MoveChild1,
4118 : /* 8473*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4119 : /* 8476*/ OPC_CheckChild0Same, 0,
4120 : /* 8478*/ OPC_CheckChild1Integer, 24,
4121 : /* 8480*/ OPC_CheckChild1Type, MVT::i32,
4122 : /* 8482*/ OPC_MoveParent,
4123 : /* 8483*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4124 : /* 8485*/ OPC_MoveParent,
4125 : /* 8486*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4126 : /* 8488*/ OPC_CheckType, MVT::i32,
4127 : /* 8490*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4128 : /* 8492*/ OPC_EmitInteger, MVT::i32, 8,
4129 : /* 8495*/ OPC_EmitInteger, MVT::i32, 8,
4130 : /* 8498*/ OPC_EmitInteger, MVT::i32, 8,
4131 : /* 8501*/ OPC_EmitInteger, MVT::i1, 0,
4132 : /* 8504*/ OPC_EmitInteger, MVT::i32, 0,
4133 : /* 8507*/ OPC_EmitInteger, MVT::i32, 0,
4134 : /* 8510*/ OPC_EmitInteger, MVT::i32, 0,
4135 : /* 8513*/ OPC_EmitInteger, MVT::i32, 0,
4136 : /* 8516*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4137 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4138 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4139 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4140 : /* 8533*/ 0, /*End of Scope*/
4141 : /* 8534*/ /*Scope*/ 50|128,1/*178*/, /*->8714*/
4142 : /* 8536*/ OPC_CheckChild0Same, 1,
4143 : /* 8538*/ OPC_CheckChild1Integer, 16,
4144 : /* 8540*/ OPC_CheckChild1Type, MVT::i32,
4145 : /* 8542*/ OPC_MoveParent,
4146 : /* 8543*/ OPC_MoveParent,
4147 : /* 8544*/ OPC_MoveChild1,
4148 : /* 8545*/ OPC_CheckAndImm, 127|128,1/*255*/,
4149 : /* 8548*/ OPC_MoveChild0,
4150 : /* 8549*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4151 : /* 8552*/ OPC_CheckChild0Same, 0,
4152 : /* 8554*/ OPC_CheckChild1Integer, 16,
4153 : /* 8556*/ OPC_CheckChild1Type, MVT::i32,
4154 : /* 8558*/ OPC_MoveParent,
4155 : /* 8559*/ OPC_MoveParent,
4156 : /* 8560*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4157 : /* 8562*/ OPC_MoveParent,
4158 : /* 8563*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4159 : /* 8565*/ OPC_MoveParent,
4160 : /* 8566*/ OPC_MoveChild1,
4161 : /* 8567*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4162 : /* 8570*/ OPC_MoveChild0,
4163 : /* 8571*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4164 : /* 8574*/ OPC_Scope, 68, /*->8644*/ // 2 children in Scope
4165 : /* 8576*/ OPC_CheckChild0Same, 0,
4166 : /* 8578*/ OPC_CheckChild1Integer, 24,
4167 : /* 8580*/ OPC_CheckChild1Type, MVT::i32,
4168 : /* 8582*/ OPC_MoveParent,
4169 : /* 8583*/ OPC_MoveChild1,
4170 : /* 8584*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4171 : /* 8587*/ OPC_CheckChild0Same, 1,
4172 : /* 8589*/ OPC_CheckChild1Integer, 24,
4173 : /* 8591*/ OPC_CheckChild1Type, MVT::i32,
4174 : /* 8593*/ OPC_MoveParent,
4175 : /* 8594*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4176 : /* 8596*/ OPC_MoveParent,
4177 : /* 8597*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4178 : /* 8599*/ OPC_CheckType, MVT::i32,
4179 : /* 8601*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4180 : /* 8603*/ OPC_EmitInteger, MVT::i32, 8,
4181 : /* 8606*/ OPC_EmitInteger, MVT::i32, 8,
4182 : /* 8609*/ OPC_EmitInteger, MVT::i32, 8,
4183 : /* 8612*/ OPC_EmitInteger, MVT::i1, 0,
4184 : /* 8615*/ OPC_EmitInteger, MVT::i32, 0,
4185 : /* 8618*/ OPC_EmitInteger, MVT::i32, 0,
4186 : /* 8621*/ OPC_EmitInteger, MVT::i32, 0,
4187 : /* 8624*/ OPC_EmitInteger, MVT::i32, 0,
4188 : /* 8627*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4189 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4190 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4191 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4192 : /* 8644*/ /*Scope*/ 68, /*->8713*/
4193 : /* 8645*/ OPC_CheckChild0Same, 1,
4194 : /* 8647*/ OPC_CheckChild1Integer, 24,
4195 : /* 8649*/ OPC_CheckChild1Type, MVT::i32,
4196 : /* 8651*/ OPC_MoveParent,
4197 : /* 8652*/ OPC_MoveChild1,
4198 : /* 8653*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4199 : /* 8656*/ OPC_CheckChild0Same, 0,
4200 : /* 8658*/ OPC_CheckChild1Integer, 24,
4201 : /* 8660*/ OPC_CheckChild1Type, MVT::i32,
4202 : /* 8662*/ OPC_MoveParent,
4203 : /* 8663*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4204 : /* 8665*/ OPC_MoveParent,
4205 : /* 8666*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4206 : /* 8668*/ OPC_CheckType, MVT::i32,
4207 : /* 8670*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4208 : /* 8672*/ OPC_EmitInteger, MVT::i32, 8,
4209 : /* 8675*/ OPC_EmitInteger, MVT::i32, 8,
4210 : /* 8678*/ OPC_EmitInteger, MVT::i32, 8,
4211 : /* 8681*/ OPC_EmitInteger, MVT::i1, 0,
4212 : /* 8684*/ OPC_EmitInteger, MVT::i32, 0,
4213 : /* 8687*/ OPC_EmitInteger, MVT::i32, 0,
4214 : /* 8690*/ OPC_EmitInteger, MVT::i32, 0,
4215 : /* 8693*/ OPC_EmitInteger, MVT::i32, 0,
4216 : /* 8696*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4217 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4218 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4219 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4220 : /* 8713*/ 0, /*End of Scope*/
4221 : /* 8714*/ 0, /*End of Scope*/
4222 : /* 8715*/ 0, /*End of Scope*/
4223 : /* 8716*/ /*Scope*/ 34|128,6/*802*/, /*->9520*/
4224 : /* 8718*/ OPC_MoveChild0,
4225 : /* 8719*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4226 : /* 8722*/ OPC_MoveChild0,
4227 : /* 8723*/ OPC_CheckAndImm, 127|128,1/*255*/,
4228 : /* 8726*/ OPC_Scope, 10|128,3/*394*/, /*->9123*/ // 2 children in Scope
4229 : /* 8729*/ OPC_CheckChild0Same, 0,
4230 : /* 8731*/ OPC_MoveParent,
4231 : /* 8732*/ OPC_MoveChild1,
4232 : /* 8733*/ OPC_CheckAndImm, 127|128,1/*255*/,
4233 : /* 8736*/ OPC_CheckChild0Same, 1,
4234 : /* 8738*/ OPC_MoveParent,
4235 : /* 8739*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4236 : /* 8741*/ OPC_MoveParent,
4237 : /* 8742*/ OPC_RecordChild1, // #2 = $src2
4238 : /* 8743*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4239 : /* 8745*/ OPC_MoveParent,
4240 : /* 8746*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4241 : /* 8748*/ OPC_MoveParent,
4242 : /* 8749*/ OPC_MoveChild1,
4243 : /* 8750*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4244 : /* 8753*/ OPC_MoveChild0,
4245 : /* 8754*/ OPC_CheckAndImm, 127|128,1/*255*/,
4246 : /* 8757*/ OPC_MoveChild0,
4247 : /* 8758*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4248 : /* 8761*/ OPC_Scope, 50|128,1/*178*/, /*->8942*/ // 2 children in Scope
4249 : /* 8764*/ OPC_CheckChild0Same, 0,
4250 : /* 8766*/ OPC_CheckChild1Integer, 16,
4251 : /* 8768*/ OPC_CheckChild1Type, MVT::i32,
4252 : /* 8770*/ OPC_MoveParent,
4253 : /* 8771*/ OPC_MoveParent,
4254 : /* 8772*/ OPC_MoveChild1,
4255 : /* 8773*/ OPC_CheckAndImm, 127|128,1/*255*/,
4256 : /* 8776*/ OPC_MoveChild0,
4257 : /* 8777*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4258 : /* 8780*/ OPC_CheckChild0Same, 1,
4259 : /* 8782*/ OPC_CheckChild1Integer, 16,
4260 : /* 8784*/ OPC_CheckChild1Type, MVT::i32,
4261 : /* 8786*/ OPC_MoveParent,
4262 : /* 8787*/ OPC_MoveParent,
4263 : /* 8788*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4264 : /* 8790*/ OPC_MoveParent,
4265 : /* 8791*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4266 : /* 8793*/ OPC_MoveParent,
4267 : /* 8794*/ OPC_MoveChild1,
4268 : /* 8795*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4269 : /* 8798*/ OPC_MoveChild0,
4270 : /* 8799*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4271 : /* 8802*/ OPC_Scope, 68, /*->8872*/ // 2 children in Scope
4272 : /* 8804*/ OPC_CheckChild0Same, 0,
4273 : /* 8806*/ OPC_CheckChild1Integer, 24,
4274 : /* 8808*/ OPC_CheckChild1Type, MVT::i32,
4275 : /* 8810*/ OPC_MoveParent,
4276 : /* 8811*/ OPC_MoveChild1,
4277 : /* 8812*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4278 : /* 8815*/ OPC_CheckChild0Same, 1,
4279 : /* 8817*/ OPC_CheckChild1Integer, 24,
4280 : /* 8819*/ OPC_CheckChild1Type, MVT::i32,
4281 : /* 8821*/ OPC_MoveParent,
4282 : /* 8822*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4283 : /* 8824*/ OPC_MoveParent,
4284 : /* 8825*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4285 : /* 8827*/ OPC_CheckType, MVT::i32,
4286 : /* 8829*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4287 : /* 8831*/ OPC_EmitInteger, MVT::i32, 8,
4288 : /* 8834*/ OPC_EmitInteger, MVT::i32, 8,
4289 : /* 8837*/ OPC_EmitInteger, MVT::i32, 8,
4290 : /* 8840*/ OPC_EmitInteger, MVT::i1, 0,
4291 : /* 8843*/ OPC_EmitInteger, MVT::i32, 0,
4292 : /* 8846*/ OPC_EmitInteger, MVT::i32, 0,
4293 : /* 8849*/ OPC_EmitInteger, MVT::i32, 0,
4294 : /* 8852*/ OPC_EmitInteger, MVT::i32, 0,
4295 : /* 8855*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4296 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4297 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4298 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4299 : /* 8872*/ /*Scope*/ 68, /*->8941*/
4300 : /* 8873*/ OPC_CheckChild0Same, 1,
4301 : /* 8875*/ OPC_CheckChild1Integer, 24,
4302 : /* 8877*/ OPC_CheckChild1Type, MVT::i32,
4303 : /* 8879*/ OPC_MoveParent,
4304 : /* 8880*/ OPC_MoveChild1,
4305 : /* 8881*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4306 : /* 8884*/ OPC_CheckChild0Same, 0,
4307 : /* 8886*/ OPC_CheckChild1Integer, 24,
4308 : /* 8888*/ OPC_CheckChild1Type, MVT::i32,
4309 : /* 8890*/ OPC_MoveParent,
4310 : /* 8891*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4311 : /* 8893*/ OPC_MoveParent,
4312 : /* 8894*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4313 : /* 8896*/ OPC_CheckType, MVT::i32,
4314 : /* 8898*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4315 : /* 8900*/ OPC_EmitInteger, MVT::i32, 8,
4316 : /* 8903*/ OPC_EmitInteger, MVT::i32, 8,
4317 : /* 8906*/ OPC_EmitInteger, MVT::i32, 8,
4318 : /* 8909*/ OPC_EmitInteger, MVT::i1, 0,
4319 : /* 8912*/ OPC_EmitInteger, MVT::i32, 0,
4320 : /* 8915*/ OPC_EmitInteger, MVT::i32, 0,
4321 : /* 8918*/ OPC_EmitInteger, MVT::i32, 0,
4322 : /* 8921*/ OPC_EmitInteger, MVT::i32, 0,
4323 : /* 8924*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4324 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4325 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4326 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4327 : /* 8941*/ 0, /*End of Scope*/
4328 : /* 8942*/ /*Scope*/ 50|128,1/*178*/, /*->9122*/
4329 : /* 8944*/ OPC_CheckChild0Same, 1,
4330 : /* 8946*/ OPC_CheckChild1Integer, 16,
4331 : /* 8948*/ OPC_CheckChild1Type, MVT::i32,
4332 : /* 8950*/ OPC_MoveParent,
4333 : /* 8951*/ OPC_MoveParent,
4334 : /* 8952*/ OPC_MoveChild1,
4335 : /* 8953*/ OPC_CheckAndImm, 127|128,1/*255*/,
4336 : /* 8956*/ OPC_MoveChild0,
4337 : /* 8957*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4338 : /* 8960*/ OPC_CheckChild0Same, 0,
4339 : /* 8962*/ OPC_CheckChild1Integer, 16,
4340 : /* 8964*/ OPC_CheckChild1Type, MVT::i32,
4341 : /* 8966*/ OPC_MoveParent,
4342 : /* 8967*/ OPC_MoveParent,
4343 : /* 8968*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4344 : /* 8970*/ OPC_MoveParent,
4345 : /* 8971*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4346 : /* 8973*/ OPC_MoveParent,
4347 : /* 8974*/ OPC_MoveChild1,
4348 : /* 8975*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4349 : /* 8978*/ OPC_MoveChild0,
4350 : /* 8979*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4351 : /* 8982*/ OPC_Scope, 68, /*->9052*/ // 2 children in Scope
4352 : /* 8984*/ OPC_CheckChild0Same, 0,
4353 : /* 8986*/ OPC_CheckChild1Integer, 24,
4354 : /* 8988*/ OPC_CheckChild1Type, MVT::i32,
4355 : /* 8990*/ OPC_MoveParent,
4356 : /* 8991*/ OPC_MoveChild1,
4357 : /* 8992*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4358 : /* 8995*/ OPC_CheckChild0Same, 1,
4359 : /* 8997*/ OPC_CheckChild1Integer, 24,
4360 : /* 8999*/ OPC_CheckChild1Type, MVT::i32,
4361 : /* 9001*/ OPC_MoveParent,
4362 : /* 9002*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4363 : /* 9004*/ OPC_MoveParent,
4364 : /* 9005*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4365 : /* 9007*/ OPC_CheckType, MVT::i32,
4366 : /* 9009*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4367 : /* 9011*/ OPC_EmitInteger, MVT::i32, 8,
4368 : /* 9014*/ OPC_EmitInteger, MVT::i32, 8,
4369 : /* 9017*/ OPC_EmitInteger, MVT::i32, 8,
4370 : /* 9020*/ OPC_EmitInteger, MVT::i1, 0,
4371 : /* 9023*/ OPC_EmitInteger, MVT::i32, 0,
4372 : /* 9026*/ OPC_EmitInteger, MVT::i32, 0,
4373 : /* 9029*/ OPC_EmitInteger, MVT::i32, 0,
4374 : /* 9032*/ OPC_EmitInteger, MVT::i32, 0,
4375 : /* 9035*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4376 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4377 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4378 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4379 : /* 9052*/ /*Scope*/ 68, /*->9121*/
4380 : /* 9053*/ OPC_CheckChild0Same, 1,
4381 : /* 9055*/ OPC_CheckChild1Integer, 24,
4382 : /* 9057*/ OPC_CheckChild1Type, MVT::i32,
4383 : /* 9059*/ OPC_MoveParent,
4384 : /* 9060*/ OPC_MoveChild1,
4385 : /* 9061*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4386 : /* 9064*/ OPC_CheckChild0Same, 0,
4387 : /* 9066*/ OPC_CheckChild1Integer, 24,
4388 : /* 9068*/ OPC_CheckChild1Type, MVT::i32,
4389 : /* 9070*/ OPC_MoveParent,
4390 : /* 9071*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4391 : /* 9073*/ OPC_MoveParent,
4392 : /* 9074*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4393 : /* 9076*/ OPC_CheckType, MVT::i32,
4394 : /* 9078*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4395 : /* 9080*/ OPC_EmitInteger, MVT::i32, 8,
4396 : /* 9083*/ OPC_EmitInteger, MVT::i32, 8,
4397 : /* 9086*/ OPC_EmitInteger, MVT::i32, 8,
4398 : /* 9089*/ OPC_EmitInteger, MVT::i1, 0,
4399 : /* 9092*/ OPC_EmitInteger, MVT::i32, 0,
4400 : /* 9095*/ OPC_EmitInteger, MVT::i32, 0,
4401 : /* 9098*/ OPC_EmitInteger, MVT::i32, 0,
4402 : /* 9101*/ OPC_EmitInteger, MVT::i32, 0,
4403 : /* 9104*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4404 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4405 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4406 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4407 : /* 9121*/ 0, /*End of Scope*/
4408 : /* 9122*/ 0, /*End of Scope*/
4409 : /* 9123*/ /*Scope*/ 10|128,3/*394*/, /*->9519*/
4410 : /* 9125*/ OPC_CheckChild0Same, 1,
4411 : /* 9127*/ OPC_MoveParent,
4412 : /* 9128*/ OPC_MoveChild1,
4413 : /* 9129*/ OPC_CheckAndImm, 127|128,1/*255*/,
4414 : /* 9132*/ OPC_CheckChild0Same, 0,
4415 : /* 9134*/ OPC_MoveParent,
4416 : /* 9135*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4417 : /* 9137*/ OPC_MoveParent,
4418 : /* 9138*/ OPC_RecordChild1, // #2 = $src2
4419 : /* 9139*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4420 : /* 9141*/ OPC_MoveParent,
4421 : /* 9142*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4422 : /* 9144*/ OPC_MoveParent,
4423 : /* 9145*/ OPC_MoveChild1,
4424 : /* 9146*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4425 : /* 9149*/ OPC_MoveChild0,
4426 : /* 9150*/ OPC_CheckAndImm, 127|128,1/*255*/,
4427 : /* 9153*/ OPC_MoveChild0,
4428 : /* 9154*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4429 : /* 9157*/ OPC_Scope, 50|128,1/*178*/, /*->9338*/ // 2 children in Scope
4430 : /* 9160*/ OPC_CheckChild0Same, 0,
4431 : /* 9162*/ OPC_CheckChild1Integer, 16,
4432 : /* 9164*/ OPC_CheckChild1Type, MVT::i32,
4433 : /* 9166*/ OPC_MoveParent,
4434 : /* 9167*/ OPC_MoveParent,
4435 : /* 9168*/ OPC_MoveChild1,
4436 : /* 9169*/ OPC_CheckAndImm, 127|128,1/*255*/,
4437 : /* 9172*/ OPC_MoveChild0,
4438 : /* 9173*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4439 : /* 9176*/ OPC_CheckChild0Same, 1,
4440 : /* 9178*/ OPC_CheckChild1Integer, 16,
4441 : /* 9180*/ OPC_CheckChild1Type, MVT::i32,
4442 : /* 9182*/ OPC_MoveParent,
4443 : /* 9183*/ OPC_MoveParent,
4444 : /* 9184*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4445 : /* 9186*/ OPC_MoveParent,
4446 : /* 9187*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4447 : /* 9189*/ OPC_MoveParent,
4448 : /* 9190*/ OPC_MoveChild1,
4449 : /* 9191*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4450 : /* 9194*/ OPC_MoveChild0,
4451 : /* 9195*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4452 : /* 9198*/ OPC_Scope, 68, /*->9268*/ // 2 children in Scope
4453 : /* 9200*/ OPC_CheckChild0Same, 0,
4454 : /* 9202*/ OPC_CheckChild1Integer, 24,
4455 : /* 9204*/ OPC_CheckChild1Type, MVT::i32,
4456 : /* 9206*/ OPC_MoveParent,
4457 : /* 9207*/ OPC_MoveChild1,
4458 : /* 9208*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4459 : /* 9211*/ OPC_CheckChild0Same, 1,
4460 : /* 9213*/ OPC_CheckChild1Integer, 24,
4461 : /* 9215*/ OPC_CheckChild1Type, MVT::i32,
4462 : /* 9217*/ OPC_MoveParent,
4463 : /* 9218*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4464 : /* 9220*/ OPC_MoveParent,
4465 : /* 9221*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4466 : /* 9223*/ OPC_CheckType, MVT::i32,
4467 : /* 9225*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4468 : /* 9227*/ OPC_EmitInteger, MVT::i32, 8,
4469 : /* 9230*/ OPC_EmitInteger, MVT::i32, 8,
4470 : /* 9233*/ OPC_EmitInteger, MVT::i32, 8,
4471 : /* 9236*/ OPC_EmitInteger, MVT::i1, 0,
4472 : /* 9239*/ OPC_EmitInteger, MVT::i32, 0,
4473 : /* 9242*/ OPC_EmitInteger, MVT::i32, 0,
4474 : /* 9245*/ OPC_EmitInteger, MVT::i32, 0,
4475 : /* 9248*/ OPC_EmitInteger, MVT::i32, 0,
4476 : /* 9251*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4477 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4478 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4479 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4480 : /* 9268*/ /*Scope*/ 68, /*->9337*/
4481 : /* 9269*/ OPC_CheckChild0Same, 1,
4482 : /* 9271*/ OPC_CheckChild1Integer, 24,
4483 : /* 9273*/ OPC_CheckChild1Type, MVT::i32,
4484 : /* 9275*/ OPC_MoveParent,
4485 : /* 9276*/ OPC_MoveChild1,
4486 : /* 9277*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4487 : /* 9280*/ OPC_CheckChild0Same, 0,
4488 : /* 9282*/ OPC_CheckChild1Integer, 24,
4489 : /* 9284*/ OPC_CheckChild1Type, MVT::i32,
4490 : /* 9286*/ OPC_MoveParent,
4491 : /* 9287*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4492 : /* 9289*/ OPC_MoveParent,
4493 : /* 9290*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4494 : /* 9292*/ OPC_CheckType, MVT::i32,
4495 : /* 9294*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4496 : /* 9296*/ OPC_EmitInteger, MVT::i32, 8,
4497 : /* 9299*/ OPC_EmitInteger, MVT::i32, 8,
4498 : /* 9302*/ OPC_EmitInteger, MVT::i32, 8,
4499 : /* 9305*/ OPC_EmitInteger, MVT::i1, 0,
4500 : /* 9308*/ OPC_EmitInteger, MVT::i32, 0,
4501 : /* 9311*/ OPC_EmitInteger, MVT::i32, 0,
4502 : /* 9314*/ OPC_EmitInteger, MVT::i32, 0,
4503 : /* 9317*/ OPC_EmitInteger, MVT::i32, 0,
4504 : /* 9320*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4505 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4506 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4507 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4508 : /* 9337*/ 0, /*End of Scope*/
4509 : /* 9338*/ /*Scope*/ 50|128,1/*178*/, /*->9518*/
4510 : /* 9340*/ OPC_CheckChild0Same, 1,
4511 : /* 9342*/ OPC_CheckChild1Integer, 16,
4512 : /* 9344*/ OPC_CheckChild1Type, MVT::i32,
4513 : /* 9346*/ OPC_MoveParent,
4514 : /* 9347*/ OPC_MoveParent,
4515 : /* 9348*/ OPC_MoveChild1,
4516 : /* 9349*/ OPC_CheckAndImm, 127|128,1/*255*/,
4517 : /* 9352*/ OPC_MoveChild0,
4518 : /* 9353*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4519 : /* 9356*/ OPC_CheckChild0Same, 0,
4520 : /* 9358*/ OPC_CheckChild1Integer, 16,
4521 : /* 9360*/ OPC_CheckChild1Type, MVT::i32,
4522 : /* 9362*/ OPC_MoveParent,
4523 : /* 9363*/ OPC_MoveParent,
4524 : /* 9364*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4525 : /* 9366*/ OPC_MoveParent,
4526 : /* 9367*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4527 : /* 9369*/ OPC_MoveParent,
4528 : /* 9370*/ OPC_MoveChild1,
4529 : /* 9371*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4530 : /* 9374*/ OPC_MoveChild0,
4531 : /* 9375*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4532 : /* 9378*/ OPC_Scope, 68, /*->9448*/ // 2 children in Scope
4533 : /* 9380*/ OPC_CheckChild0Same, 0,
4534 : /* 9382*/ OPC_CheckChild1Integer, 24,
4535 : /* 9384*/ OPC_CheckChild1Type, MVT::i32,
4536 : /* 9386*/ OPC_MoveParent,
4537 : /* 9387*/ OPC_MoveChild1,
4538 : /* 9388*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4539 : /* 9391*/ OPC_CheckChild0Same, 1,
4540 : /* 9393*/ OPC_CheckChild1Integer, 24,
4541 : /* 9395*/ OPC_CheckChild1Type, MVT::i32,
4542 : /* 9397*/ OPC_MoveParent,
4543 : /* 9398*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4544 : /* 9400*/ OPC_MoveParent,
4545 : /* 9401*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4546 : /* 9403*/ OPC_CheckType, MVT::i32,
4547 : /* 9405*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4548 : /* 9407*/ OPC_EmitInteger, MVT::i32, 8,
4549 : /* 9410*/ OPC_EmitInteger, MVT::i32, 8,
4550 : /* 9413*/ OPC_EmitInteger, MVT::i32, 8,
4551 : /* 9416*/ OPC_EmitInteger, MVT::i1, 0,
4552 : /* 9419*/ OPC_EmitInteger, MVT::i32, 0,
4553 : /* 9422*/ OPC_EmitInteger, MVT::i32, 0,
4554 : /* 9425*/ OPC_EmitInteger, MVT::i32, 0,
4555 : /* 9428*/ OPC_EmitInteger, MVT::i32, 0,
4556 : /* 9431*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4557 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4558 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4559 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4560 : /* 9448*/ /*Scope*/ 68, /*->9517*/
4561 : /* 9449*/ OPC_CheckChild0Same, 1,
4562 : /* 9451*/ OPC_CheckChild1Integer, 24,
4563 : /* 9453*/ OPC_CheckChild1Type, MVT::i32,
4564 : /* 9455*/ OPC_MoveParent,
4565 : /* 9456*/ OPC_MoveChild1,
4566 : /* 9457*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4567 : /* 9460*/ OPC_CheckChild0Same, 0,
4568 : /* 9462*/ OPC_CheckChild1Integer, 24,
4569 : /* 9464*/ OPC_CheckChild1Type, MVT::i32,
4570 : /* 9466*/ OPC_MoveParent,
4571 : /* 9467*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4572 : /* 9469*/ OPC_MoveParent,
4573 : /* 9470*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4574 : /* 9472*/ OPC_CheckType, MVT::i32,
4575 : /* 9474*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4576 : /* 9476*/ OPC_EmitInteger, MVT::i32, 8,
4577 : /* 9479*/ OPC_EmitInteger, MVT::i32, 8,
4578 : /* 9482*/ OPC_EmitInteger, MVT::i32, 8,
4579 : /* 9485*/ OPC_EmitInteger, MVT::i1, 0,
4580 : /* 9488*/ OPC_EmitInteger, MVT::i32, 0,
4581 : /* 9491*/ OPC_EmitInteger, MVT::i32, 0,
4582 : /* 9494*/ OPC_EmitInteger, MVT::i32, 0,
4583 : /* 9497*/ OPC_EmitInteger, MVT::i32, 0,
4584 : /* 9500*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4585 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
4586 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4587 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4588 : /* 9517*/ 0, /*End of Scope*/
4589 : /* 9518*/ 0, /*End of Scope*/
4590 : /* 9519*/ 0, /*End of Scope*/
4591 : /* 9520*/ /*Scope*/ 33|128,6/*801*/, /*->10323*/
4592 : /* 9522*/ OPC_RecordChild0, // #2 = $src2
4593 : /* 9523*/ OPC_MoveChild1,
4594 : /* 9524*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4595 : /* 9527*/ OPC_MoveChild0,
4596 : /* 9528*/ OPC_CheckAndImm, 127|128,1/*255*/,
4597 : /* 9531*/ OPC_Scope, 9|128,3/*393*/, /*->9927*/ // 2 children in Scope
4598 : /* 9534*/ OPC_CheckChild0Same, 1,
4599 : /* 9536*/ OPC_MoveParent,
4600 : /* 9537*/ OPC_MoveChild1,
4601 : /* 9538*/ OPC_CheckAndImm, 127|128,1/*255*/,
4602 : /* 9541*/ OPC_CheckChild0Same, 0,
4603 : /* 9543*/ OPC_MoveParent,
4604 : /* 9544*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4605 : /* 9546*/ OPC_MoveParent,
4606 : /* 9547*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4607 : /* 9549*/ OPC_MoveParent,
4608 : /* 9550*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4609 : /* 9552*/ OPC_MoveParent,
4610 : /* 9553*/ OPC_MoveChild1,
4611 : /* 9554*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4612 : /* 9557*/ OPC_MoveChild0,
4613 : /* 9558*/ OPC_CheckAndImm, 127|128,1/*255*/,
4614 : /* 9561*/ OPC_MoveChild0,
4615 : /* 9562*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4616 : /* 9565*/ OPC_Scope, 50|128,1/*178*/, /*->9746*/ // 2 children in Scope
4617 : /* 9568*/ OPC_CheckChild0Same, 1,
4618 : /* 9570*/ OPC_CheckChild1Integer, 16,
4619 : /* 9572*/ OPC_CheckChild1Type, MVT::i32,
4620 : /* 9574*/ OPC_MoveParent,
4621 : /* 9575*/ OPC_MoveParent,
4622 : /* 9576*/ OPC_MoveChild1,
4623 : /* 9577*/ OPC_CheckAndImm, 127|128,1/*255*/,
4624 : /* 9580*/ OPC_MoveChild0,
4625 : /* 9581*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4626 : /* 9584*/ OPC_CheckChild0Same, 0,
4627 : /* 9586*/ OPC_CheckChild1Integer, 16,
4628 : /* 9588*/ OPC_CheckChild1Type, MVT::i32,
4629 : /* 9590*/ OPC_MoveParent,
4630 : /* 9591*/ OPC_MoveParent,
4631 : /* 9592*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4632 : /* 9594*/ OPC_MoveParent,
4633 : /* 9595*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4634 : /* 9597*/ OPC_MoveParent,
4635 : /* 9598*/ OPC_MoveChild1,
4636 : /* 9599*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4637 : /* 9602*/ OPC_MoveChild0,
4638 : /* 9603*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4639 : /* 9606*/ OPC_Scope, 68, /*->9676*/ // 2 children in Scope
4640 : /* 9608*/ OPC_CheckChild0Same, 1,
4641 : /* 9610*/ OPC_CheckChild1Integer, 24,
4642 : /* 9612*/ OPC_CheckChild1Type, MVT::i32,
4643 : /* 9614*/ OPC_MoveParent,
4644 : /* 9615*/ OPC_MoveChild1,
4645 : /* 9616*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4646 : /* 9619*/ OPC_CheckChild0Same, 0,
4647 : /* 9621*/ OPC_CheckChild1Integer, 24,
4648 : /* 9623*/ OPC_CheckChild1Type, MVT::i32,
4649 : /* 9625*/ OPC_MoveParent,
4650 : /* 9626*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4651 : /* 9628*/ OPC_MoveParent,
4652 : /* 9629*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4653 : /* 9631*/ OPC_CheckType, MVT::i32,
4654 : /* 9633*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4655 : /* 9635*/ OPC_EmitInteger, MVT::i32, 8,
4656 : /* 9638*/ OPC_EmitInteger, MVT::i32, 8,
4657 : /* 9641*/ OPC_EmitInteger, MVT::i32, 8,
4658 : /* 9644*/ OPC_EmitInteger, MVT::i1, 0,
4659 : /* 9647*/ OPC_EmitInteger, MVT::i32, 0,
4660 : /* 9650*/ OPC_EmitInteger, MVT::i32, 0,
4661 : /* 9653*/ OPC_EmitInteger, MVT::i32, 0,
4662 : /* 9656*/ OPC_EmitInteger, MVT::i32, 0,
4663 : /* 9659*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4664 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4665 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4666 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4667 : /* 9676*/ /*Scope*/ 68, /*->9745*/
4668 : /* 9677*/ OPC_CheckChild0Same, 0,
4669 : /* 9679*/ OPC_CheckChild1Integer, 24,
4670 : /* 9681*/ OPC_CheckChild1Type, MVT::i32,
4671 : /* 9683*/ OPC_MoveParent,
4672 : /* 9684*/ OPC_MoveChild1,
4673 : /* 9685*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4674 : /* 9688*/ OPC_CheckChild0Same, 1,
4675 : /* 9690*/ OPC_CheckChild1Integer, 24,
4676 : /* 9692*/ OPC_CheckChild1Type, MVT::i32,
4677 : /* 9694*/ OPC_MoveParent,
4678 : /* 9695*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4679 : /* 9697*/ OPC_MoveParent,
4680 : /* 9698*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4681 : /* 9700*/ OPC_CheckType, MVT::i32,
4682 : /* 9702*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4683 : /* 9704*/ OPC_EmitInteger, MVT::i32, 8,
4684 : /* 9707*/ OPC_EmitInteger, MVT::i32, 8,
4685 : /* 9710*/ OPC_EmitInteger, MVT::i32, 8,
4686 : /* 9713*/ OPC_EmitInteger, MVT::i1, 0,
4687 : /* 9716*/ OPC_EmitInteger, MVT::i32, 0,
4688 : /* 9719*/ OPC_EmitInteger, MVT::i32, 0,
4689 : /* 9722*/ OPC_EmitInteger, MVT::i32, 0,
4690 : /* 9725*/ OPC_EmitInteger, MVT::i32, 0,
4691 : /* 9728*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4692 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4693 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4694 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4695 : /* 9745*/ 0, /*End of Scope*/
4696 : /* 9746*/ /*Scope*/ 50|128,1/*178*/, /*->9926*/
4697 : /* 9748*/ OPC_CheckChild0Same, 0,
4698 : /* 9750*/ OPC_CheckChild1Integer, 16,
4699 : /* 9752*/ OPC_CheckChild1Type, MVT::i32,
4700 : /* 9754*/ OPC_MoveParent,
4701 : /* 9755*/ OPC_MoveParent,
4702 : /* 9756*/ OPC_MoveChild1,
4703 : /* 9757*/ OPC_CheckAndImm, 127|128,1/*255*/,
4704 : /* 9760*/ OPC_MoveChild0,
4705 : /* 9761*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4706 : /* 9764*/ OPC_CheckChild0Same, 1,
4707 : /* 9766*/ OPC_CheckChild1Integer, 16,
4708 : /* 9768*/ OPC_CheckChild1Type, MVT::i32,
4709 : /* 9770*/ OPC_MoveParent,
4710 : /* 9771*/ OPC_MoveParent,
4711 : /* 9772*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4712 : /* 9774*/ OPC_MoveParent,
4713 : /* 9775*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4714 : /* 9777*/ OPC_MoveParent,
4715 : /* 9778*/ OPC_MoveChild1,
4716 : /* 9779*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4717 : /* 9782*/ OPC_MoveChild0,
4718 : /* 9783*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4719 : /* 9786*/ OPC_Scope, 68, /*->9856*/ // 2 children in Scope
4720 : /* 9788*/ OPC_CheckChild0Same, 1,
4721 : /* 9790*/ OPC_CheckChild1Integer, 24,
4722 : /* 9792*/ OPC_CheckChild1Type, MVT::i32,
4723 : /* 9794*/ OPC_MoveParent,
4724 : /* 9795*/ OPC_MoveChild1,
4725 : /* 9796*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4726 : /* 9799*/ OPC_CheckChild0Same, 0,
4727 : /* 9801*/ OPC_CheckChild1Integer, 24,
4728 : /* 9803*/ OPC_CheckChild1Type, MVT::i32,
4729 : /* 9805*/ OPC_MoveParent,
4730 : /* 9806*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4731 : /* 9808*/ OPC_MoveParent,
4732 : /* 9809*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4733 : /* 9811*/ OPC_CheckType, MVT::i32,
4734 : /* 9813*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4735 : /* 9815*/ OPC_EmitInteger, MVT::i32, 8,
4736 : /* 9818*/ OPC_EmitInteger, MVT::i32, 8,
4737 : /* 9821*/ OPC_EmitInteger, MVT::i32, 8,
4738 : /* 9824*/ OPC_EmitInteger, MVT::i1, 0,
4739 : /* 9827*/ OPC_EmitInteger, MVT::i32, 0,
4740 : /* 9830*/ OPC_EmitInteger, MVT::i32, 0,
4741 : /* 9833*/ OPC_EmitInteger, MVT::i32, 0,
4742 : /* 9836*/ OPC_EmitInteger, MVT::i32, 0,
4743 : /* 9839*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4744 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4745 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4746 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4747 : /* 9856*/ /*Scope*/ 68, /*->9925*/
4748 : /* 9857*/ OPC_CheckChild0Same, 0,
4749 : /* 9859*/ OPC_CheckChild1Integer, 24,
4750 : /* 9861*/ OPC_CheckChild1Type, MVT::i32,
4751 : /* 9863*/ OPC_MoveParent,
4752 : /* 9864*/ OPC_MoveChild1,
4753 : /* 9865*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4754 : /* 9868*/ OPC_CheckChild0Same, 1,
4755 : /* 9870*/ OPC_CheckChild1Integer, 24,
4756 : /* 9872*/ OPC_CheckChild1Type, MVT::i32,
4757 : /* 9874*/ OPC_MoveParent,
4758 : /* 9875*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4759 : /* 9877*/ OPC_MoveParent,
4760 : /* 9878*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4761 : /* 9880*/ OPC_CheckType, MVT::i32,
4762 : /* 9882*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4763 : /* 9884*/ OPC_EmitInteger, MVT::i32, 8,
4764 : /* 9887*/ OPC_EmitInteger, MVT::i32, 8,
4765 : /* 9890*/ OPC_EmitInteger, MVT::i32, 8,
4766 : /* 9893*/ OPC_EmitInteger, MVT::i1, 0,
4767 : /* 9896*/ OPC_EmitInteger, MVT::i32, 0,
4768 : /* 9899*/ OPC_EmitInteger, MVT::i32, 0,
4769 : /* 9902*/ OPC_EmitInteger, MVT::i32, 0,
4770 : /* 9905*/ OPC_EmitInteger, MVT::i32, 0,
4771 : /* 9908*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4772 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4773 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4774 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4775 : /* 9925*/ 0, /*End of Scope*/
4776 : /* 9926*/ 0, /*End of Scope*/
4777 : /* 9927*/ /*Scope*/ 9|128,3/*393*/, /*->10322*/
4778 : /* 9929*/ OPC_CheckChild0Same, 0,
4779 : /* 9931*/ OPC_MoveParent,
4780 : /* 9932*/ OPC_MoveChild1,
4781 : /* 9933*/ OPC_CheckAndImm, 127|128,1/*255*/,
4782 : /* 9936*/ OPC_CheckChild0Same, 1,
4783 : /* 9938*/ OPC_MoveParent,
4784 : /* 9939*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4785 : /* 9941*/ OPC_MoveParent,
4786 : /* 9942*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4787 : /* 9944*/ OPC_MoveParent,
4788 : /* 9945*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4789 : /* 9947*/ OPC_MoveParent,
4790 : /* 9948*/ OPC_MoveChild1,
4791 : /* 9949*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4792 : /* 9952*/ OPC_MoveChild0,
4793 : /* 9953*/ OPC_CheckAndImm, 127|128,1/*255*/,
4794 : /* 9956*/ OPC_MoveChild0,
4795 : /* 9957*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4796 : /* 9960*/ OPC_Scope, 50|128,1/*178*/, /*->10141*/ // 2 children in Scope
4797 : /* 9963*/ OPC_CheckChild0Same, 1,
4798 : /* 9965*/ OPC_CheckChild1Integer, 16,
4799 : /* 9967*/ OPC_CheckChild1Type, MVT::i32,
4800 : /* 9969*/ OPC_MoveParent,
4801 : /* 9970*/ OPC_MoveParent,
4802 : /* 9971*/ OPC_MoveChild1,
4803 : /* 9972*/ OPC_CheckAndImm, 127|128,1/*255*/,
4804 : /* 9975*/ OPC_MoveChild0,
4805 : /* 9976*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4806 : /* 9979*/ OPC_CheckChild0Same, 0,
4807 : /* 9981*/ OPC_CheckChild1Integer, 16,
4808 : /* 9983*/ OPC_CheckChild1Type, MVT::i32,
4809 : /* 9985*/ OPC_MoveParent,
4810 : /* 9986*/ OPC_MoveParent,
4811 : /* 9987*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4812 : /* 9989*/ OPC_MoveParent,
4813 : /* 9990*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4814 : /* 9992*/ OPC_MoveParent,
4815 : /* 9993*/ OPC_MoveChild1,
4816 : /* 9994*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4817 : /* 9997*/ OPC_MoveChild0,
4818 : /* 9998*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4819 : /* 10001*/ OPC_Scope, 68, /*->10071*/ // 2 children in Scope
4820 : /* 10003*/ OPC_CheckChild0Same, 1,
4821 : /* 10005*/ OPC_CheckChild1Integer, 24,
4822 : /* 10007*/ OPC_CheckChild1Type, MVT::i32,
4823 : /* 10009*/ OPC_MoveParent,
4824 : /* 10010*/ OPC_MoveChild1,
4825 : /* 10011*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4826 : /* 10014*/ OPC_CheckChild0Same, 0,
4827 : /* 10016*/ OPC_CheckChild1Integer, 24,
4828 : /* 10018*/ OPC_CheckChild1Type, MVT::i32,
4829 : /* 10020*/ OPC_MoveParent,
4830 : /* 10021*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4831 : /* 10023*/ OPC_MoveParent,
4832 : /* 10024*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4833 : /* 10026*/ OPC_CheckType, MVT::i32,
4834 : /* 10028*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4835 : /* 10030*/ OPC_EmitInteger, MVT::i32, 8,
4836 : /* 10033*/ OPC_EmitInteger, MVT::i32, 8,
4837 : /* 10036*/ OPC_EmitInteger, MVT::i32, 8,
4838 : /* 10039*/ OPC_EmitInteger, MVT::i1, 0,
4839 : /* 10042*/ OPC_EmitInteger, MVT::i32, 0,
4840 : /* 10045*/ OPC_EmitInteger, MVT::i32, 0,
4841 : /* 10048*/ OPC_EmitInteger, MVT::i32, 0,
4842 : /* 10051*/ OPC_EmitInteger, MVT::i32, 0,
4843 : /* 10054*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4844 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4845 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4846 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4847 : /* 10071*/ /*Scope*/ 68, /*->10140*/
4848 : /* 10072*/ OPC_CheckChild0Same, 0,
4849 : /* 10074*/ OPC_CheckChild1Integer, 24,
4850 : /* 10076*/ OPC_CheckChild1Type, MVT::i32,
4851 : /* 10078*/ OPC_MoveParent,
4852 : /* 10079*/ OPC_MoveChild1,
4853 : /* 10080*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4854 : /* 10083*/ OPC_CheckChild0Same, 1,
4855 : /* 10085*/ OPC_CheckChild1Integer, 24,
4856 : /* 10087*/ OPC_CheckChild1Type, MVT::i32,
4857 : /* 10089*/ OPC_MoveParent,
4858 : /* 10090*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4859 : /* 10092*/ OPC_MoveParent,
4860 : /* 10093*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4861 : /* 10095*/ OPC_CheckType, MVT::i32,
4862 : /* 10097*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4863 : /* 10099*/ OPC_EmitInteger, MVT::i32, 8,
4864 : /* 10102*/ OPC_EmitInteger, MVT::i32, 8,
4865 : /* 10105*/ OPC_EmitInteger, MVT::i32, 8,
4866 : /* 10108*/ OPC_EmitInteger, MVT::i1, 0,
4867 : /* 10111*/ OPC_EmitInteger, MVT::i32, 0,
4868 : /* 10114*/ OPC_EmitInteger, MVT::i32, 0,
4869 : /* 10117*/ OPC_EmitInteger, MVT::i32, 0,
4870 : /* 10120*/ OPC_EmitInteger, MVT::i32, 0,
4871 : /* 10123*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4872 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4873 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4874 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4875 : /* 10140*/ 0, /*End of Scope*/
4876 : /* 10141*/ /*Scope*/ 50|128,1/*178*/, /*->10321*/
4877 : /* 10143*/ OPC_CheckChild0Same, 0,
4878 : /* 10145*/ OPC_CheckChild1Integer, 16,
4879 : /* 10147*/ OPC_CheckChild1Type, MVT::i32,
4880 : /* 10149*/ OPC_MoveParent,
4881 : /* 10150*/ OPC_MoveParent,
4882 : /* 10151*/ OPC_MoveChild1,
4883 : /* 10152*/ OPC_CheckAndImm, 127|128,1/*255*/,
4884 : /* 10155*/ OPC_MoveChild0,
4885 : /* 10156*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4886 : /* 10159*/ OPC_CheckChild0Same, 1,
4887 : /* 10161*/ OPC_CheckChild1Integer, 16,
4888 : /* 10163*/ OPC_CheckChild1Type, MVT::i32,
4889 : /* 10165*/ OPC_MoveParent,
4890 : /* 10166*/ OPC_MoveParent,
4891 : /* 10167*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4892 : /* 10169*/ OPC_MoveParent,
4893 : /* 10170*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4894 : /* 10172*/ OPC_MoveParent,
4895 : /* 10173*/ OPC_MoveChild1,
4896 : /* 10174*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4897 : /* 10177*/ OPC_MoveChild0,
4898 : /* 10178*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4899 : /* 10181*/ OPC_Scope, 68, /*->10251*/ // 2 children in Scope
4900 : /* 10183*/ OPC_CheckChild0Same, 1,
4901 : /* 10185*/ OPC_CheckChild1Integer, 24,
4902 : /* 10187*/ OPC_CheckChild1Type, MVT::i32,
4903 : /* 10189*/ OPC_MoveParent,
4904 : /* 10190*/ OPC_MoveChild1,
4905 : /* 10191*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4906 : /* 10194*/ OPC_CheckChild0Same, 0,
4907 : /* 10196*/ OPC_CheckChild1Integer, 24,
4908 : /* 10198*/ OPC_CheckChild1Type, MVT::i32,
4909 : /* 10200*/ OPC_MoveParent,
4910 : /* 10201*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4911 : /* 10203*/ OPC_MoveParent,
4912 : /* 10204*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4913 : /* 10206*/ OPC_CheckType, MVT::i32,
4914 : /* 10208*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4915 : /* 10210*/ OPC_EmitInteger, MVT::i32, 8,
4916 : /* 10213*/ OPC_EmitInteger, MVT::i32, 8,
4917 : /* 10216*/ OPC_EmitInteger, MVT::i32, 8,
4918 : /* 10219*/ OPC_EmitInteger, MVT::i1, 0,
4919 : /* 10222*/ OPC_EmitInteger, MVT::i32, 0,
4920 : /* 10225*/ OPC_EmitInteger, MVT::i32, 0,
4921 : /* 10228*/ OPC_EmitInteger, MVT::i32, 0,
4922 : /* 10231*/ OPC_EmitInteger, MVT::i32, 0,
4923 : /* 10234*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4924 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4925 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4926 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4927 : /* 10251*/ /*Scope*/ 68, /*->10320*/
4928 : /* 10252*/ OPC_CheckChild0Same, 0,
4929 : /* 10254*/ OPC_CheckChild1Integer, 24,
4930 : /* 10256*/ OPC_CheckChild1Type, MVT::i32,
4931 : /* 10258*/ OPC_MoveParent,
4932 : /* 10259*/ OPC_MoveChild1,
4933 : /* 10260*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4934 : /* 10263*/ OPC_CheckChild0Same, 1,
4935 : /* 10265*/ OPC_CheckChild1Integer, 24,
4936 : /* 10267*/ OPC_CheckChild1Type, MVT::i32,
4937 : /* 10269*/ OPC_MoveParent,
4938 : /* 10270*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4939 : /* 10272*/ OPC_MoveParent,
4940 : /* 10273*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4941 : /* 10275*/ OPC_CheckType, MVT::i32,
4942 : /* 10277*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4943 : /* 10279*/ OPC_EmitInteger, MVT::i32, 8,
4944 : /* 10282*/ OPC_EmitInteger, MVT::i32, 8,
4945 : /* 10285*/ OPC_EmitInteger, MVT::i32, 8,
4946 : /* 10288*/ OPC_EmitInteger, MVT::i1, 0,
4947 : /* 10291*/ OPC_EmitInteger, MVT::i32, 0,
4948 : /* 10294*/ OPC_EmitInteger, MVT::i32, 0,
4949 : /* 10297*/ OPC_EmitInteger, MVT::i32, 0,
4950 : /* 10300*/ OPC_EmitInteger, MVT::i32, 0,
4951 : /* 10303*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
4952 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
4953 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
4954 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4955 : /* 10320*/ 0, /*End of Scope*/
4956 : /* 10321*/ 0, /*End of Scope*/
4957 : /* 10322*/ 0, /*End of Scope*/
4958 : /* 10323*/ /*Scope*/ 34|128,6/*802*/, /*->11127*/
4959 : /* 10325*/ OPC_MoveChild0,
4960 : /* 10326*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4961 : /* 10329*/ OPC_MoveChild0,
4962 : /* 10330*/ OPC_CheckAndImm, 127|128,1/*255*/,
4963 : /* 10333*/ OPC_Scope, 10|128,3/*394*/, /*->10730*/ // 2 children in Scope
4964 : /* 10336*/ OPC_CheckChild0Same, 1,
4965 : /* 10338*/ OPC_MoveParent,
4966 : /* 10339*/ OPC_MoveChild1,
4967 : /* 10340*/ OPC_CheckAndImm, 127|128,1/*255*/,
4968 : /* 10343*/ OPC_CheckChild0Same, 0,
4969 : /* 10345*/ OPC_MoveParent,
4970 : /* 10346*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4971 : /* 10348*/ OPC_MoveParent,
4972 : /* 10349*/ OPC_RecordChild1, // #2 = $src2
4973 : /* 10350*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4974 : /* 10352*/ OPC_MoveParent,
4975 : /* 10353*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
4976 : /* 10355*/ OPC_MoveParent,
4977 : /* 10356*/ OPC_MoveChild1,
4978 : /* 10357*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
4979 : /* 10360*/ OPC_MoveChild0,
4980 : /* 10361*/ OPC_CheckAndImm, 127|128,1/*255*/,
4981 : /* 10364*/ OPC_MoveChild0,
4982 : /* 10365*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4983 : /* 10368*/ OPC_Scope, 50|128,1/*178*/, /*->10549*/ // 2 children in Scope
4984 : /* 10371*/ OPC_CheckChild0Same, 1,
4985 : /* 10373*/ OPC_CheckChild1Integer, 16,
4986 : /* 10375*/ OPC_CheckChild1Type, MVT::i32,
4987 : /* 10377*/ OPC_MoveParent,
4988 : /* 10378*/ OPC_MoveParent,
4989 : /* 10379*/ OPC_MoveChild1,
4990 : /* 10380*/ OPC_CheckAndImm, 127|128,1/*255*/,
4991 : /* 10383*/ OPC_MoveChild0,
4992 : /* 10384*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4993 : /* 10387*/ OPC_CheckChild0Same, 0,
4994 : /* 10389*/ OPC_CheckChild1Integer, 16,
4995 : /* 10391*/ OPC_CheckChild1Type, MVT::i32,
4996 : /* 10393*/ OPC_MoveParent,
4997 : /* 10394*/ OPC_MoveParent,
4998 : /* 10395*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
4999 : /* 10397*/ OPC_MoveParent,
5000 : /* 10398*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5001 : /* 10400*/ OPC_MoveParent,
5002 : /* 10401*/ OPC_MoveChild1,
5003 : /* 10402*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
5004 : /* 10405*/ OPC_MoveChild0,
5005 : /* 10406*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5006 : /* 10409*/ OPC_Scope, 68, /*->10479*/ // 2 children in Scope
5007 : /* 10411*/ OPC_CheckChild0Same, 1,
5008 : /* 10413*/ OPC_CheckChild1Integer, 24,
5009 : /* 10415*/ OPC_CheckChild1Type, MVT::i32,
5010 : /* 10417*/ OPC_MoveParent,
5011 : /* 10418*/ OPC_MoveChild1,
5012 : /* 10419*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5013 : /* 10422*/ OPC_CheckChild0Same, 0,
5014 : /* 10424*/ OPC_CheckChild1Integer, 24,
5015 : /* 10426*/ OPC_CheckChild1Type, MVT::i32,
5016 : /* 10428*/ OPC_MoveParent,
5017 : /* 10429*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5018 : /* 10431*/ OPC_MoveParent,
5019 : /* 10432*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5020 : /* 10434*/ OPC_CheckType, MVT::i32,
5021 : /* 10436*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5022 : /* 10438*/ OPC_EmitInteger, MVT::i32, 8,
5023 : /* 10441*/ OPC_EmitInteger, MVT::i32, 8,
5024 : /* 10444*/ OPC_EmitInteger, MVT::i32, 8,
5025 : /* 10447*/ OPC_EmitInteger, MVT::i1, 0,
5026 : /* 10450*/ OPC_EmitInteger, MVT::i32, 0,
5027 : /* 10453*/ OPC_EmitInteger, MVT::i32, 0,
5028 : /* 10456*/ OPC_EmitInteger, MVT::i32, 0,
5029 : /* 10459*/ OPC_EmitInteger, MVT::i32, 0,
5030 : /* 10462*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5031 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5032 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5033 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5034 : /* 10479*/ /*Scope*/ 68, /*->10548*/
5035 : /* 10480*/ OPC_CheckChild0Same, 0,
5036 : /* 10482*/ OPC_CheckChild1Integer, 24,
5037 : /* 10484*/ OPC_CheckChild1Type, MVT::i32,
5038 : /* 10486*/ OPC_MoveParent,
5039 : /* 10487*/ OPC_MoveChild1,
5040 : /* 10488*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5041 : /* 10491*/ OPC_CheckChild0Same, 1,
5042 : /* 10493*/ OPC_CheckChild1Integer, 24,
5043 : /* 10495*/ OPC_CheckChild1Type, MVT::i32,
5044 : /* 10497*/ OPC_MoveParent,
5045 : /* 10498*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5046 : /* 10500*/ OPC_MoveParent,
5047 : /* 10501*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5048 : /* 10503*/ OPC_CheckType, MVT::i32,
5049 : /* 10505*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5050 : /* 10507*/ OPC_EmitInteger, MVT::i32, 8,
5051 : /* 10510*/ OPC_EmitInteger, MVT::i32, 8,
5052 : /* 10513*/ OPC_EmitInteger, MVT::i32, 8,
5053 : /* 10516*/ OPC_EmitInteger, MVT::i1, 0,
5054 : /* 10519*/ OPC_EmitInteger, MVT::i32, 0,
5055 : /* 10522*/ OPC_EmitInteger, MVT::i32, 0,
5056 : /* 10525*/ OPC_EmitInteger, MVT::i32, 0,
5057 : /* 10528*/ OPC_EmitInteger, MVT::i32, 0,
5058 : /* 10531*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5059 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5060 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5061 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5062 : /* 10548*/ 0, /*End of Scope*/
5063 : /* 10549*/ /*Scope*/ 50|128,1/*178*/, /*->10729*/
5064 : /* 10551*/ OPC_CheckChild0Same, 0,
5065 : /* 10553*/ OPC_CheckChild1Integer, 16,
5066 : /* 10555*/ OPC_CheckChild1Type, MVT::i32,
5067 : /* 10557*/ OPC_MoveParent,
5068 : /* 10558*/ OPC_MoveParent,
5069 : /* 10559*/ OPC_MoveChild1,
5070 : /* 10560*/ OPC_CheckAndImm, 127|128,1/*255*/,
5071 : /* 10563*/ OPC_MoveChild0,
5072 : /* 10564*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5073 : /* 10567*/ OPC_CheckChild0Same, 1,
5074 : /* 10569*/ OPC_CheckChild1Integer, 16,
5075 : /* 10571*/ OPC_CheckChild1Type, MVT::i32,
5076 : /* 10573*/ OPC_MoveParent,
5077 : /* 10574*/ OPC_MoveParent,
5078 : /* 10575*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5079 : /* 10577*/ OPC_MoveParent,
5080 : /* 10578*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5081 : /* 10580*/ OPC_MoveParent,
5082 : /* 10581*/ OPC_MoveChild1,
5083 : /* 10582*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
5084 : /* 10585*/ OPC_MoveChild0,
5085 : /* 10586*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5086 : /* 10589*/ OPC_Scope, 68, /*->10659*/ // 2 children in Scope
5087 : /* 10591*/ OPC_CheckChild0Same, 1,
5088 : /* 10593*/ OPC_CheckChild1Integer, 24,
5089 : /* 10595*/ OPC_CheckChild1Type, MVT::i32,
5090 : /* 10597*/ OPC_MoveParent,
5091 : /* 10598*/ OPC_MoveChild1,
5092 : /* 10599*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5093 : /* 10602*/ OPC_CheckChild0Same, 0,
5094 : /* 10604*/ OPC_CheckChild1Integer, 24,
5095 : /* 10606*/ OPC_CheckChild1Type, MVT::i32,
5096 : /* 10608*/ OPC_MoveParent,
5097 : /* 10609*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5098 : /* 10611*/ OPC_MoveParent,
5099 : /* 10612*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5100 : /* 10614*/ OPC_CheckType, MVT::i32,
5101 : /* 10616*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5102 : /* 10618*/ OPC_EmitInteger, MVT::i32, 8,
5103 : /* 10621*/ OPC_EmitInteger, MVT::i32, 8,
5104 : /* 10624*/ OPC_EmitInteger, MVT::i32, 8,
5105 : /* 10627*/ OPC_EmitInteger, MVT::i1, 0,
5106 : /* 10630*/ OPC_EmitInteger, MVT::i32, 0,
5107 : /* 10633*/ OPC_EmitInteger, MVT::i32, 0,
5108 : /* 10636*/ OPC_EmitInteger, MVT::i32, 0,
5109 : /* 10639*/ OPC_EmitInteger, MVT::i32, 0,
5110 : /* 10642*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5111 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5112 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5113 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5114 : /* 10659*/ /*Scope*/ 68, /*->10728*/
5115 : /* 10660*/ OPC_CheckChild0Same, 0,
5116 : /* 10662*/ OPC_CheckChild1Integer, 24,
5117 : /* 10664*/ OPC_CheckChild1Type, MVT::i32,
5118 : /* 10666*/ OPC_MoveParent,
5119 : /* 10667*/ OPC_MoveChild1,
5120 : /* 10668*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5121 : /* 10671*/ OPC_CheckChild0Same, 1,
5122 : /* 10673*/ OPC_CheckChild1Integer, 24,
5123 : /* 10675*/ OPC_CheckChild1Type, MVT::i32,
5124 : /* 10677*/ OPC_MoveParent,
5125 : /* 10678*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5126 : /* 10680*/ OPC_MoveParent,
5127 : /* 10681*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5128 : /* 10683*/ OPC_CheckType, MVT::i32,
5129 : /* 10685*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5130 : /* 10687*/ OPC_EmitInteger, MVT::i32, 8,
5131 : /* 10690*/ OPC_EmitInteger, MVT::i32, 8,
5132 : /* 10693*/ OPC_EmitInteger, MVT::i32, 8,
5133 : /* 10696*/ OPC_EmitInteger, MVT::i1, 0,
5134 : /* 10699*/ OPC_EmitInteger, MVT::i32, 0,
5135 : /* 10702*/ OPC_EmitInteger, MVT::i32, 0,
5136 : /* 10705*/ OPC_EmitInteger, MVT::i32, 0,
5137 : /* 10708*/ OPC_EmitInteger, MVT::i32, 0,
5138 : /* 10711*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5139 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5140 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5141 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5142 : /* 10728*/ 0, /*End of Scope*/
5143 : /* 10729*/ 0, /*End of Scope*/
5144 : /* 10730*/ /*Scope*/ 10|128,3/*394*/, /*->11126*/
5145 : /* 10732*/ OPC_CheckChild0Same, 0,
5146 : /* 10734*/ OPC_MoveParent,
5147 : /* 10735*/ OPC_MoveChild1,
5148 : /* 10736*/ OPC_CheckAndImm, 127|128,1/*255*/,
5149 : /* 10739*/ OPC_CheckChild0Same, 1,
5150 : /* 10741*/ OPC_MoveParent,
5151 : /* 10742*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5152 : /* 10744*/ OPC_MoveParent,
5153 : /* 10745*/ OPC_RecordChild1, // #2 = $src2
5154 : /* 10746*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5155 : /* 10748*/ OPC_MoveParent,
5156 : /* 10749*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5157 : /* 10751*/ OPC_MoveParent,
5158 : /* 10752*/ OPC_MoveChild1,
5159 : /* 10753*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
5160 : /* 10756*/ OPC_MoveChild0,
5161 : /* 10757*/ OPC_CheckAndImm, 127|128,1/*255*/,
5162 : /* 10760*/ OPC_MoveChild0,
5163 : /* 10761*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5164 : /* 10764*/ OPC_Scope, 50|128,1/*178*/, /*->10945*/ // 2 children in Scope
5165 : /* 10767*/ OPC_CheckChild0Same, 1,
5166 : /* 10769*/ OPC_CheckChild1Integer, 16,
5167 : /* 10771*/ OPC_CheckChild1Type, MVT::i32,
5168 : /* 10773*/ OPC_MoveParent,
5169 : /* 10774*/ OPC_MoveParent,
5170 : /* 10775*/ OPC_MoveChild1,
5171 : /* 10776*/ OPC_CheckAndImm, 127|128,1/*255*/,
5172 : /* 10779*/ OPC_MoveChild0,
5173 : /* 10780*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5174 : /* 10783*/ OPC_CheckChild0Same, 0,
5175 : /* 10785*/ OPC_CheckChild1Integer, 16,
5176 : /* 10787*/ OPC_CheckChild1Type, MVT::i32,
5177 : /* 10789*/ OPC_MoveParent,
5178 : /* 10790*/ OPC_MoveParent,
5179 : /* 10791*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5180 : /* 10793*/ OPC_MoveParent,
5181 : /* 10794*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5182 : /* 10796*/ OPC_MoveParent,
5183 : /* 10797*/ OPC_MoveChild1,
5184 : /* 10798*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
5185 : /* 10801*/ OPC_MoveChild0,
5186 : /* 10802*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5187 : /* 10805*/ OPC_Scope, 68, /*->10875*/ // 2 children in Scope
5188 : /* 10807*/ OPC_CheckChild0Same, 1,
5189 : /* 10809*/ OPC_CheckChild1Integer, 24,
5190 : /* 10811*/ OPC_CheckChild1Type, MVT::i32,
5191 : /* 10813*/ OPC_MoveParent,
5192 : /* 10814*/ OPC_MoveChild1,
5193 : /* 10815*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5194 : /* 10818*/ OPC_CheckChild0Same, 0,
5195 : /* 10820*/ OPC_CheckChild1Integer, 24,
5196 : /* 10822*/ OPC_CheckChild1Type, MVT::i32,
5197 : /* 10824*/ OPC_MoveParent,
5198 : /* 10825*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5199 : /* 10827*/ OPC_MoveParent,
5200 : /* 10828*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5201 : /* 10830*/ OPC_CheckType, MVT::i32,
5202 : /* 10832*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5203 : /* 10834*/ OPC_EmitInteger, MVT::i32, 8,
5204 : /* 10837*/ OPC_EmitInteger, MVT::i32, 8,
5205 : /* 10840*/ OPC_EmitInteger, MVT::i32, 8,
5206 : /* 10843*/ OPC_EmitInteger, MVT::i1, 0,
5207 : /* 10846*/ OPC_EmitInteger, MVT::i32, 0,
5208 : /* 10849*/ OPC_EmitInteger, MVT::i32, 0,
5209 : /* 10852*/ OPC_EmitInteger, MVT::i32, 0,
5210 : /* 10855*/ OPC_EmitInteger, MVT::i32, 0,
5211 : /* 10858*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5212 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5213 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5214 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5215 : /* 10875*/ /*Scope*/ 68, /*->10944*/
5216 : /* 10876*/ OPC_CheckChild0Same, 0,
5217 : /* 10878*/ OPC_CheckChild1Integer, 24,
5218 : /* 10880*/ OPC_CheckChild1Type, MVT::i32,
5219 : /* 10882*/ OPC_MoveParent,
5220 : /* 10883*/ OPC_MoveChild1,
5221 : /* 10884*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5222 : /* 10887*/ OPC_CheckChild0Same, 1,
5223 : /* 10889*/ OPC_CheckChild1Integer, 24,
5224 : /* 10891*/ OPC_CheckChild1Type, MVT::i32,
5225 : /* 10893*/ OPC_MoveParent,
5226 : /* 10894*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5227 : /* 10896*/ OPC_MoveParent,
5228 : /* 10897*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5229 : /* 10899*/ OPC_CheckType, MVT::i32,
5230 : /* 10901*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5231 : /* 10903*/ OPC_EmitInteger, MVT::i32, 8,
5232 : /* 10906*/ OPC_EmitInteger, MVT::i32, 8,
5233 : /* 10909*/ OPC_EmitInteger, MVT::i32, 8,
5234 : /* 10912*/ OPC_EmitInteger, MVT::i1, 0,
5235 : /* 10915*/ OPC_EmitInteger, MVT::i32, 0,
5236 : /* 10918*/ OPC_EmitInteger, MVT::i32, 0,
5237 : /* 10921*/ OPC_EmitInteger, MVT::i32, 0,
5238 : /* 10924*/ OPC_EmitInteger, MVT::i32, 0,
5239 : /* 10927*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5240 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5241 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5242 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5243 : /* 10944*/ 0, /*End of Scope*/
5244 : /* 10945*/ /*Scope*/ 50|128,1/*178*/, /*->11125*/
5245 : /* 10947*/ OPC_CheckChild0Same, 0,
5246 : /* 10949*/ OPC_CheckChild1Integer, 16,
5247 : /* 10951*/ OPC_CheckChild1Type, MVT::i32,
5248 : /* 10953*/ OPC_MoveParent,
5249 : /* 10954*/ OPC_MoveParent,
5250 : /* 10955*/ OPC_MoveChild1,
5251 : /* 10956*/ OPC_CheckAndImm, 127|128,1/*255*/,
5252 : /* 10959*/ OPC_MoveChild0,
5253 : /* 10960*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5254 : /* 10963*/ OPC_CheckChild0Same, 1,
5255 : /* 10965*/ OPC_CheckChild1Integer, 16,
5256 : /* 10967*/ OPC_CheckChild1Type, MVT::i32,
5257 : /* 10969*/ OPC_MoveParent,
5258 : /* 10970*/ OPC_MoveParent,
5259 : /* 10971*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5260 : /* 10973*/ OPC_MoveParent,
5261 : /* 10974*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5262 : /* 10976*/ OPC_MoveParent,
5263 : /* 10977*/ OPC_MoveChild1,
5264 : /* 10978*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
5265 : /* 10981*/ OPC_MoveChild0,
5266 : /* 10982*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5267 : /* 10985*/ OPC_Scope, 68, /*->11055*/ // 2 children in Scope
5268 : /* 10987*/ OPC_CheckChild0Same, 1,
5269 : /* 10989*/ OPC_CheckChild1Integer, 24,
5270 : /* 10991*/ OPC_CheckChild1Type, MVT::i32,
5271 : /* 10993*/ OPC_MoveParent,
5272 : /* 10994*/ OPC_MoveChild1,
5273 : /* 10995*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5274 : /* 10998*/ OPC_CheckChild0Same, 0,
5275 : /* 11000*/ OPC_CheckChild1Integer, 24,
5276 : /* 11002*/ OPC_CheckChild1Type, MVT::i32,
5277 : /* 11004*/ OPC_MoveParent,
5278 : /* 11005*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5279 : /* 11007*/ OPC_MoveParent,
5280 : /* 11008*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5281 : /* 11010*/ OPC_CheckType, MVT::i32,
5282 : /* 11012*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5283 : /* 11014*/ OPC_EmitInteger, MVT::i32, 8,
5284 : /* 11017*/ OPC_EmitInteger, MVT::i32, 8,
5285 : /* 11020*/ OPC_EmitInteger, MVT::i32, 8,
5286 : /* 11023*/ OPC_EmitInteger, MVT::i1, 0,
5287 : /* 11026*/ OPC_EmitInteger, MVT::i32, 0,
5288 : /* 11029*/ OPC_EmitInteger, MVT::i32, 0,
5289 : /* 11032*/ OPC_EmitInteger, MVT::i32, 0,
5290 : /* 11035*/ OPC_EmitInteger, MVT::i32, 0,
5291 : /* 11038*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5292 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5293 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5294 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5295 : /* 11055*/ /*Scope*/ 68, /*->11124*/
5296 : /* 11056*/ OPC_CheckChild0Same, 0,
5297 : /* 11058*/ OPC_CheckChild1Integer, 24,
5298 : /* 11060*/ OPC_CheckChild1Type, MVT::i32,
5299 : /* 11062*/ OPC_MoveParent,
5300 : /* 11063*/ OPC_MoveChild1,
5301 : /* 11064*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5302 : /* 11067*/ OPC_CheckChild0Same, 1,
5303 : /* 11069*/ OPC_CheckChild1Integer, 24,
5304 : /* 11071*/ OPC_CheckChild1Type, MVT::i32,
5305 : /* 11073*/ OPC_MoveParent,
5306 : /* 11074*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
5307 : /* 11076*/ OPC_MoveParent,
5308 : /* 11077*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5309 : /* 11079*/ OPC_CheckType, MVT::i32,
5310 : /* 11081*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5311 : /* 11083*/ OPC_EmitInteger, MVT::i32, 8,
5312 : /* 11086*/ OPC_EmitInteger, MVT::i32, 8,
5313 : /* 11089*/ OPC_EmitInteger, MVT::i32, 8,
5314 : /* 11092*/ OPC_EmitInteger, MVT::i1, 0,
5315 : /* 11095*/ OPC_EmitInteger, MVT::i32, 0,
5316 : /* 11098*/ OPC_EmitInteger, MVT::i32, 0,
5317 : /* 11101*/ OPC_EmitInteger, MVT::i32, 0,
5318 : /* 11104*/ OPC_EmitInteger, MVT::i32, 0,
5319 : /* 11107*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
5320 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
5321 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
5322 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5323 : /* 11124*/ 0, /*End of Scope*/
5324 : /* 11125*/ 0, /*End of Scope*/
5325 : /* 11126*/ 0, /*End of Scope*/
5326 : /* 11127*/ 0, /*End of Scope*/
5327 : /* 11128*/ /*SwitchOpcode*/ 125|128,26/*3453*/, TARGET_VAL(AMDGPUISD::MUL_I24),// ->14585
5328 : /* 11132*/ OPC_MoveChild0,
5329 : /* 11133*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5330 : /* 11136*/ OPC_MoveChild0,
5331 : /* 11137*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5332 : /* 11140*/ OPC_RecordChild0, // #0 = $src0
5333 : /* 11141*/ OPC_CheckChild1Integer, 8,
5334 : /* 11143*/ OPC_CheckChild1Type, MVT::i32,
5335 : /* 11145*/ OPC_MoveParent,
5336 : /* 11146*/ OPC_MoveChild1,
5337 : /* 11147*/ OPC_CheckValueType, MVT::i8,
5338 : /* 11149*/ OPC_MoveParent,
5339 : /* 11150*/ OPC_MoveParent,
5340 : /* 11151*/ OPC_MoveChild1,
5341 : /* 11152*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5342 : /* 11155*/ OPC_MoveChild0,
5343 : /* 11156*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5344 : /* 11159*/ OPC_RecordChild0, // #1 = $src1
5345 : /* 11160*/ OPC_CheckChild1Integer, 8,
5346 : /* 11162*/ OPC_CheckChild1Type, MVT::i32,
5347 : /* 11164*/ OPC_MoveParent,
5348 : /* 11165*/ OPC_MoveChild1,
5349 : /* 11166*/ OPC_CheckValueType, MVT::i8,
5350 : /* 11168*/ OPC_MoveParent,
5351 : /* 11169*/ OPC_MoveParent,
5352 : /* 11170*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5353 : /* 11172*/ OPC_MoveParent,
5354 : /* 11173*/ OPC_MoveChild1,
5355 : /* 11174*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
5356 : /* 11177*/ OPC_Scope, 81|128,6/*849*/, /*->12029*/ // 4 children in Scope
5357 : /* 11180*/ OPC_RecordChild0, // #2 = $src2
5358 : /* 11181*/ OPC_MoveChild1,
5359 : /* 11182*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5360 : /* 11185*/ OPC_MoveChild0,
5361 : /* 11186*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5362 : /* 11189*/ OPC_Scope, 33|128,3/*417*/, /*->11609*/ // 2 children in Scope
5363 : /* 11192*/ OPC_CheckChild0Same, 0,
5364 : /* 11194*/ OPC_MoveChild1,
5365 : /* 11195*/ OPC_CheckValueType, MVT::i8,
5366 : /* 11197*/ OPC_MoveParent,
5367 : /* 11198*/ OPC_MoveParent,
5368 : /* 11199*/ OPC_MoveChild1,
5369 : /* 11200*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5370 : /* 11203*/ OPC_CheckChild0Same, 1,
5371 : /* 11205*/ OPC_MoveChild1,
5372 : /* 11206*/ OPC_CheckValueType, MVT::i8,
5373 : /* 11208*/ OPC_MoveParent,
5374 : /* 11209*/ OPC_MoveParent,
5375 : /* 11210*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5376 : /* 11212*/ OPC_MoveParent,
5377 : /* 11213*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5378 : /* 11215*/ OPC_MoveParent,
5379 : /* 11216*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5380 : /* 11218*/ OPC_MoveParent,
5381 : /* 11219*/ OPC_MoveChild1,
5382 : /* 11220*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5383 : /* 11223*/ OPC_MoveChild0,
5384 : /* 11224*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5385 : /* 11227*/ OPC_MoveChild0,
5386 : /* 11228*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5387 : /* 11231*/ OPC_Scope, 58|128,1/*186*/, /*->11420*/ // 2 children in Scope
5388 : /* 11234*/ OPC_CheckChild0Same, 0,
5389 : /* 11236*/ OPC_CheckChild1Integer, 16,
5390 : /* 11238*/ OPC_CheckChild1Type, MVT::i32,
5391 : /* 11240*/ OPC_MoveParent,
5392 : /* 11241*/ OPC_MoveChild1,
5393 : /* 11242*/ OPC_CheckValueType, MVT::i8,
5394 : /* 11244*/ OPC_MoveParent,
5395 : /* 11245*/ OPC_MoveParent,
5396 : /* 11246*/ OPC_MoveChild1,
5397 : /* 11247*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5398 : /* 11250*/ OPC_MoveChild0,
5399 : /* 11251*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5400 : /* 11254*/ OPC_CheckChild0Same, 1,
5401 : /* 11256*/ OPC_CheckChild1Integer, 16,
5402 : /* 11258*/ OPC_CheckChild1Type, MVT::i32,
5403 : /* 11260*/ OPC_MoveParent,
5404 : /* 11261*/ OPC_MoveChild1,
5405 : /* 11262*/ OPC_CheckValueType, MVT::i8,
5406 : /* 11264*/ OPC_MoveParent,
5407 : /* 11265*/ OPC_MoveParent,
5408 : /* 11266*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5409 : /* 11268*/ OPC_MoveParent,
5410 : /* 11269*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5411 : /* 11271*/ OPC_MoveParent,
5412 : /* 11272*/ OPC_MoveChild1,
5413 : /* 11273*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5414 : /* 11276*/ OPC_MoveChild0,
5415 : /* 11277*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5416 : /* 11280*/ OPC_Scope, 68, /*->11350*/ // 2 children in Scope
5417 : /* 11282*/ OPC_CheckChild0Same, 0,
5418 : /* 11284*/ OPC_CheckChild1Integer, 24,
5419 : /* 11286*/ OPC_CheckChild1Type, MVT::i32,
5420 : /* 11288*/ OPC_MoveParent,
5421 : /* 11289*/ OPC_MoveChild1,
5422 : /* 11290*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5423 : /* 11293*/ OPC_CheckChild0Same, 1,
5424 : /* 11295*/ OPC_CheckChild1Integer, 24,
5425 : /* 11297*/ OPC_CheckChild1Type, MVT::i32,
5426 : /* 11299*/ OPC_MoveParent,
5427 : /* 11300*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5428 : /* 11302*/ OPC_MoveParent,
5429 : /* 11303*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5430 : /* 11305*/ OPC_CheckType, MVT::i32,
5431 : /* 11307*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5432 : /* 11309*/ OPC_EmitInteger, MVT::i32, 8,
5433 : /* 11312*/ OPC_EmitInteger, MVT::i32, 8,
5434 : /* 11315*/ OPC_EmitInteger, MVT::i32, 8,
5435 : /* 11318*/ OPC_EmitInteger, MVT::i1, 0,
5436 : /* 11321*/ OPC_EmitInteger, MVT::i32, 0,
5437 : /* 11324*/ OPC_EmitInteger, MVT::i32, 0,
5438 : /* 11327*/ OPC_EmitInteger, MVT::i32, 0,
5439 : /* 11330*/ OPC_EmitInteger, MVT::i32, 0,
5440 : /* 11333*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5441 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5442 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5443 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5444 : /* 11350*/ /*Scope*/ 68, /*->11419*/
5445 : /* 11351*/ OPC_CheckChild0Same, 1,
5446 : /* 11353*/ OPC_CheckChild1Integer, 24,
5447 : /* 11355*/ OPC_CheckChild1Type, MVT::i32,
5448 : /* 11357*/ OPC_MoveParent,
5449 : /* 11358*/ OPC_MoveChild1,
5450 : /* 11359*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5451 : /* 11362*/ OPC_CheckChild0Same, 0,
5452 : /* 11364*/ OPC_CheckChild1Integer, 24,
5453 : /* 11366*/ OPC_CheckChild1Type, MVT::i32,
5454 : /* 11368*/ OPC_MoveParent,
5455 : /* 11369*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5456 : /* 11371*/ OPC_MoveParent,
5457 : /* 11372*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5458 : /* 11374*/ OPC_CheckType, MVT::i32,
5459 : /* 11376*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5460 : /* 11378*/ OPC_EmitInteger, MVT::i32, 8,
5461 : /* 11381*/ OPC_EmitInteger, MVT::i32, 8,
5462 : /* 11384*/ OPC_EmitInteger, MVT::i32, 8,
5463 : /* 11387*/ OPC_EmitInteger, MVT::i1, 0,
5464 : /* 11390*/ OPC_EmitInteger, MVT::i32, 0,
5465 : /* 11393*/ OPC_EmitInteger, MVT::i32, 0,
5466 : /* 11396*/ OPC_EmitInteger, MVT::i32, 0,
5467 : /* 11399*/ OPC_EmitInteger, MVT::i32, 0,
5468 : /* 11402*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5469 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5470 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5471 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5472 : /* 11419*/ 0, /*End of Scope*/
5473 : /* 11420*/ /*Scope*/ 58|128,1/*186*/, /*->11608*/
5474 : /* 11422*/ OPC_CheckChild0Same, 1,
5475 : /* 11424*/ OPC_CheckChild1Integer, 16,
5476 : /* 11426*/ OPC_CheckChild1Type, MVT::i32,
5477 : /* 11428*/ OPC_MoveParent,
5478 : /* 11429*/ OPC_MoveChild1,
5479 : /* 11430*/ OPC_CheckValueType, MVT::i8,
5480 : /* 11432*/ OPC_MoveParent,
5481 : /* 11433*/ OPC_MoveParent,
5482 : /* 11434*/ OPC_MoveChild1,
5483 : /* 11435*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5484 : /* 11438*/ OPC_MoveChild0,
5485 : /* 11439*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5486 : /* 11442*/ OPC_CheckChild0Same, 0,
5487 : /* 11444*/ OPC_CheckChild1Integer, 16,
5488 : /* 11446*/ OPC_CheckChild1Type, MVT::i32,
5489 : /* 11448*/ OPC_MoveParent,
5490 : /* 11449*/ OPC_MoveChild1,
5491 : /* 11450*/ OPC_CheckValueType, MVT::i8,
5492 : /* 11452*/ OPC_MoveParent,
5493 : /* 11453*/ OPC_MoveParent,
5494 : /* 11454*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5495 : /* 11456*/ OPC_MoveParent,
5496 : /* 11457*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5497 : /* 11459*/ OPC_MoveParent,
5498 : /* 11460*/ OPC_MoveChild1,
5499 : /* 11461*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5500 : /* 11464*/ OPC_MoveChild0,
5501 : /* 11465*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5502 : /* 11468*/ OPC_Scope, 68, /*->11538*/ // 2 children in Scope
5503 : /* 11470*/ OPC_CheckChild0Same, 0,
5504 : /* 11472*/ OPC_CheckChild1Integer, 24,
5505 : /* 11474*/ OPC_CheckChild1Type, MVT::i32,
5506 : /* 11476*/ OPC_MoveParent,
5507 : /* 11477*/ OPC_MoveChild1,
5508 : /* 11478*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5509 : /* 11481*/ OPC_CheckChild0Same, 1,
5510 : /* 11483*/ OPC_CheckChild1Integer, 24,
5511 : /* 11485*/ OPC_CheckChild1Type, MVT::i32,
5512 : /* 11487*/ OPC_MoveParent,
5513 : /* 11488*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5514 : /* 11490*/ OPC_MoveParent,
5515 : /* 11491*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5516 : /* 11493*/ OPC_CheckType, MVT::i32,
5517 : /* 11495*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5518 : /* 11497*/ OPC_EmitInteger, MVT::i32, 8,
5519 : /* 11500*/ OPC_EmitInteger, MVT::i32, 8,
5520 : /* 11503*/ OPC_EmitInteger, MVT::i32, 8,
5521 : /* 11506*/ OPC_EmitInteger, MVT::i1, 0,
5522 : /* 11509*/ OPC_EmitInteger, MVT::i32, 0,
5523 : /* 11512*/ OPC_EmitInteger, MVT::i32, 0,
5524 : /* 11515*/ OPC_EmitInteger, MVT::i32, 0,
5525 : /* 11518*/ OPC_EmitInteger, MVT::i32, 0,
5526 : /* 11521*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5527 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5528 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5529 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5530 : /* 11538*/ /*Scope*/ 68, /*->11607*/
5531 : /* 11539*/ OPC_CheckChild0Same, 1,
5532 : /* 11541*/ OPC_CheckChild1Integer, 24,
5533 : /* 11543*/ OPC_CheckChild1Type, MVT::i32,
5534 : /* 11545*/ OPC_MoveParent,
5535 : /* 11546*/ OPC_MoveChild1,
5536 : /* 11547*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5537 : /* 11550*/ OPC_CheckChild0Same, 0,
5538 : /* 11552*/ OPC_CheckChild1Integer, 24,
5539 : /* 11554*/ OPC_CheckChild1Type, MVT::i32,
5540 : /* 11556*/ OPC_MoveParent,
5541 : /* 11557*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5542 : /* 11559*/ OPC_MoveParent,
5543 : /* 11560*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5544 : /* 11562*/ OPC_CheckType, MVT::i32,
5545 : /* 11564*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5546 : /* 11566*/ OPC_EmitInteger, MVT::i32, 8,
5547 : /* 11569*/ OPC_EmitInteger, MVT::i32, 8,
5548 : /* 11572*/ OPC_EmitInteger, MVT::i32, 8,
5549 : /* 11575*/ OPC_EmitInteger, MVT::i1, 0,
5550 : /* 11578*/ OPC_EmitInteger, MVT::i32, 0,
5551 : /* 11581*/ OPC_EmitInteger, MVT::i32, 0,
5552 : /* 11584*/ OPC_EmitInteger, MVT::i32, 0,
5553 : /* 11587*/ OPC_EmitInteger, MVT::i32, 0,
5554 : /* 11590*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5555 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5556 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5557 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5558 : /* 11607*/ 0, /*End of Scope*/
5559 : /* 11608*/ 0, /*End of Scope*/
5560 : /* 11609*/ /*Scope*/ 33|128,3/*417*/, /*->12028*/
5561 : /* 11611*/ OPC_CheckChild0Same, 1,
5562 : /* 11613*/ OPC_MoveChild1,
5563 : /* 11614*/ OPC_CheckValueType, MVT::i8,
5564 : /* 11616*/ OPC_MoveParent,
5565 : /* 11617*/ OPC_MoveParent,
5566 : /* 11618*/ OPC_MoveChild1,
5567 : /* 11619*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5568 : /* 11622*/ OPC_CheckChild0Same, 0,
5569 : /* 11624*/ OPC_MoveChild1,
5570 : /* 11625*/ OPC_CheckValueType, MVT::i8,
5571 : /* 11627*/ OPC_MoveParent,
5572 : /* 11628*/ OPC_MoveParent,
5573 : /* 11629*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5574 : /* 11631*/ OPC_MoveParent,
5575 : /* 11632*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5576 : /* 11634*/ OPC_MoveParent,
5577 : /* 11635*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5578 : /* 11637*/ OPC_MoveParent,
5579 : /* 11638*/ OPC_MoveChild1,
5580 : /* 11639*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5581 : /* 11642*/ OPC_MoveChild0,
5582 : /* 11643*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5583 : /* 11646*/ OPC_MoveChild0,
5584 : /* 11647*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5585 : /* 11650*/ OPC_Scope, 58|128,1/*186*/, /*->11839*/ // 2 children in Scope
5586 : /* 11653*/ OPC_CheckChild0Same, 0,
5587 : /* 11655*/ OPC_CheckChild1Integer, 16,
5588 : /* 11657*/ OPC_CheckChild1Type, MVT::i32,
5589 : /* 11659*/ OPC_MoveParent,
5590 : /* 11660*/ OPC_MoveChild1,
5591 : /* 11661*/ OPC_CheckValueType, MVT::i8,
5592 : /* 11663*/ OPC_MoveParent,
5593 : /* 11664*/ OPC_MoveParent,
5594 : /* 11665*/ OPC_MoveChild1,
5595 : /* 11666*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5596 : /* 11669*/ OPC_MoveChild0,
5597 : /* 11670*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5598 : /* 11673*/ OPC_CheckChild0Same, 1,
5599 : /* 11675*/ OPC_CheckChild1Integer, 16,
5600 : /* 11677*/ OPC_CheckChild1Type, MVT::i32,
5601 : /* 11679*/ OPC_MoveParent,
5602 : /* 11680*/ OPC_MoveChild1,
5603 : /* 11681*/ OPC_CheckValueType, MVT::i8,
5604 : /* 11683*/ OPC_MoveParent,
5605 : /* 11684*/ OPC_MoveParent,
5606 : /* 11685*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5607 : /* 11687*/ OPC_MoveParent,
5608 : /* 11688*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5609 : /* 11690*/ OPC_MoveParent,
5610 : /* 11691*/ OPC_MoveChild1,
5611 : /* 11692*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5612 : /* 11695*/ OPC_MoveChild0,
5613 : /* 11696*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5614 : /* 11699*/ OPC_Scope, 68, /*->11769*/ // 2 children in Scope
5615 : /* 11701*/ OPC_CheckChild0Same, 0,
5616 : /* 11703*/ OPC_CheckChild1Integer, 24,
5617 : /* 11705*/ OPC_CheckChild1Type, MVT::i32,
5618 : /* 11707*/ OPC_MoveParent,
5619 : /* 11708*/ OPC_MoveChild1,
5620 : /* 11709*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5621 : /* 11712*/ OPC_CheckChild0Same, 1,
5622 : /* 11714*/ OPC_CheckChild1Integer, 24,
5623 : /* 11716*/ OPC_CheckChild1Type, MVT::i32,
5624 : /* 11718*/ OPC_MoveParent,
5625 : /* 11719*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5626 : /* 11721*/ OPC_MoveParent,
5627 : /* 11722*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5628 : /* 11724*/ OPC_CheckType, MVT::i32,
5629 : /* 11726*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5630 : /* 11728*/ OPC_EmitInteger, MVT::i32, 8,
5631 : /* 11731*/ OPC_EmitInteger, MVT::i32, 8,
5632 : /* 11734*/ OPC_EmitInteger, MVT::i32, 8,
5633 : /* 11737*/ OPC_EmitInteger, MVT::i1, 0,
5634 : /* 11740*/ OPC_EmitInteger, MVT::i32, 0,
5635 : /* 11743*/ OPC_EmitInteger, MVT::i32, 0,
5636 : /* 11746*/ OPC_EmitInteger, MVT::i32, 0,
5637 : /* 11749*/ OPC_EmitInteger, MVT::i32, 0,
5638 : /* 11752*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5639 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5640 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5641 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5642 : /* 11769*/ /*Scope*/ 68, /*->11838*/
5643 : /* 11770*/ OPC_CheckChild0Same, 1,
5644 : /* 11772*/ OPC_CheckChild1Integer, 24,
5645 : /* 11774*/ OPC_CheckChild1Type, MVT::i32,
5646 : /* 11776*/ OPC_MoveParent,
5647 : /* 11777*/ OPC_MoveChild1,
5648 : /* 11778*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5649 : /* 11781*/ OPC_CheckChild0Same, 0,
5650 : /* 11783*/ OPC_CheckChild1Integer, 24,
5651 : /* 11785*/ OPC_CheckChild1Type, MVT::i32,
5652 : /* 11787*/ OPC_MoveParent,
5653 : /* 11788*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5654 : /* 11790*/ OPC_MoveParent,
5655 : /* 11791*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5656 : /* 11793*/ OPC_CheckType, MVT::i32,
5657 : /* 11795*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5658 : /* 11797*/ OPC_EmitInteger, MVT::i32, 8,
5659 : /* 11800*/ OPC_EmitInteger, MVT::i32, 8,
5660 : /* 11803*/ OPC_EmitInteger, MVT::i32, 8,
5661 : /* 11806*/ OPC_EmitInteger, MVT::i1, 0,
5662 : /* 11809*/ OPC_EmitInteger, MVT::i32, 0,
5663 : /* 11812*/ OPC_EmitInteger, MVT::i32, 0,
5664 : /* 11815*/ OPC_EmitInteger, MVT::i32, 0,
5665 : /* 11818*/ OPC_EmitInteger, MVT::i32, 0,
5666 : /* 11821*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5667 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5668 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5669 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5670 : /* 11838*/ 0, /*End of Scope*/
5671 : /* 11839*/ /*Scope*/ 58|128,1/*186*/, /*->12027*/
5672 : /* 11841*/ OPC_CheckChild0Same, 1,
5673 : /* 11843*/ OPC_CheckChild1Integer, 16,
5674 : /* 11845*/ OPC_CheckChild1Type, MVT::i32,
5675 : /* 11847*/ OPC_MoveParent,
5676 : /* 11848*/ OPC_MoveChild1,
5677 : /* 11849*/ OPC_CheckValueType, MVT::i8,
5678 : /* 11851*/ OPC_MoveParent,
5679 : /* 11852*/ OPC_MoveParent,
5680 : /* 11853*/ OPC_MoveChild1,
5681 : /* 11854*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5682 : /* 11857*/ OPC_MoveChild0,
5683 : /* 11858*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5684 : /* 11861*/ OPC_CheckChild0Same, 0,
5685 : /* 11863*/ OPC_CheckChild1Integer, 16,
5686 : /* 11865*/ OPC_CheckChild1Type, MVT::i32,
5687 : /* 11867*/ OPC_MoveParent,
5688 : /* 11868*/ OPC_MoveChild1,
5689 : /* 11869*/ OPC_CheckValueType, MVT::i8,
5690 : /* 11871*/ OPC_MoveParent,
5691 : /* 11872*/ OPC_MoveParent,
5692 : /* 11873*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5693 : /* 11875*/ OPC_MoveParent,
5694 : /* 11876*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5695 : /* 11878*/ OPC_MoveParent,
5696 : /* 11879*/ OPC_MoveChild1,
5697 : /* 11880*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5698 : /* 11883*/ OPC_MoveChild0,
5699 : /* 11884*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5700 : /* 11887*/ OPC_Scope, 68, /*->11957*/ // 2 children in Scope
5701 : /* 11889*/ OPC_CheckChild0Same, 0,
5702 : /* 11891*/ OPC_CheckChild1Integer, 24,
5703 : /* 11893*/ OPC_CheckChild1Type, MVT::i32,
5704 : /* 11895*/ OPC_MoveParent,
5705 : /* 11896*/ OPC_MoveChild1,
5706 : /* 11897*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5707 : /* 11900*/ OPC_CheckChild0Same, 1,
5708 : /* 11902*/ OPC_CheckChild1Integer, 24,
5709 : /* 11904*/ OPC_CheckChild1Type, MVT::i32,
5710 : /* 11906*/ OPC_MoveParent,
5711 : /* 11907*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5712 : /* 11909*/ OPC_MoveParent,
5713 : /* 11910*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5714 : /* 11912*/ OPC_CheckType, MVT::i32,
5715 : /* 11914*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5716 : /* 11916*/ OPC_EmitInteger, MVT::i32, 8,
5717 : /* 11919*/ OPC_EmitInteger, MVT::i32, 8,
5718 : /* 11922*/ OPC_EmitInteger, MVT::i32, 8,
5719 : /* 11925*/ OPC_EmitInteger, MVT::i1, 0,
5720 : /* 11928*/ OPC_EmitInteger, MVT::i32, 0,
5721 : /* 11931*/ OPC_EmitInteger, MVT::i32, 0,
5722 : /* 11934*/ OPC_EmitInteger, MVT::i32, 0,
5723 : /* 11937*/ OPC_EmitInteger, MVT::i32, 0,
5724 : /* 11940*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5725 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5726 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5727 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5728 : /* 11957*/ /*Scope*/ 68, /*->12026*/
5729 : /* 11958*/ OPC_CheckChild0Same, 1,
5730 : /* 11960*/ OPC_CheckChild1Integer, 24,
5731 : /* 11962*/ OPC_CheckChild1Type, MVT::i32,
5732 : /* 11964*/ OPC_MoveParent,
5733 : /* 11965*/ OPC_MoveChild1,
5734 : /* 11966*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5735 : /* 11969*/ OPC_CheckChild0Same, 0,
5736 : /* 11971*/ OPC_CheckChild1Integer, 24,
5737 : /* 11973*/ OPC_CheckChild1Type, MVT::i32,
5738 : /* 11975*/ OPC_MoveParent,
5739 : /* 11976*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5740 : /* 11978*/ OPC_MoveParent,
5741 : /* 11979*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5742 : /* 11981*/ OPC_CheckType, MVT::i32,
5743 : /* 11983*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5744 : /* 11985*/ OPC_EmitInteger, MVT::i32, 8,
5745 : /* 11988*/ OPC_EmitInteger, MVT::i32, 8,
5746 : /* 11991*/ OPC_EmitInteger, MVT::i32, 8,
5747 : /* 11994*/ OPC_EmitInteger, MVT::i1, 0,
5748 : /* 11997*/ OPC_EmitInteger, MVT::i32, 0,
5749 : /* 12000*/ OPC_EmitInteger, MVT::i32, 0,
5750 : /* 12003*/ OPC_EmitInteger, MVT::i32, 0,
5751 : /* 12006*/ OPC_EmitInteger, MVT::i32, 0,
5752 : /* 12009*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5753 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5754 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5755 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5756 : /* 12026*/ 0, /*End of Scope*/
5757 : /* 12027*/ 0, /*End of Scope*/
5758 : /* 12028*/ 0, /*End of Scope*/
5759 : /* 12029*/ /*Scope*/ 82|128,6/*850*/, /*->12881*/
5760 : /* 12031*/ OPC_MoveChild0,
5761 : /* 12032*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5762 : /* 12035*/ OPC_MoveChild0,
5763 : /* 12036*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5764 : /* 12039*/ OPC_Scope, 34|128,3/*418*/, /*->12460*/ // 2 children in Scope
5765 : /* 12042*/ OPC_CheckChild0Same, 0,
5766 : /* 12044*/ OPC_MoveChild1,
5767 : /* 12045*/ OPC_CheckValueType, MVT::i8,
5768 : /* 12047*/ OPC_MoveParent,
5769 : /* 12048*/ OPC_MoveParent,
5770 : /* 12049*/ OPC_MoveChild1,
5771 : /* 12050*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5772 : /* 12053*/ OPC_CheckChild0Same, 1,
5773 : /* 12055*/ OPC_MoveChild1,
5774 : /* 12056*/ OPC_CheckValueType, MVT::i8,
5775 : /* 12058*/ OPC_MoveParent,
5776 : /* 12059*/ OPC_MoveParent,
5777 : /* 12060*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5778 : /* 12062*/ OPC_MoveParent,
5779 : /* 12063*/ OPC_RecordChild1, // #2 = $src2
5780 : /* 12064*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5781 : /* 12066*/ OPC_MoveParent,
5782 : /* 12067*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5783 : /* 12069*/ OPC_MoveParent,
5784 : /* 12070*/ OPC_MoveChild1,
5785 : /* 12071*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5786 : /* 12074*/ OPC_MoveChild0,
5787 : /* 12075*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5788 : /* 12078*/ OPC_MoveChild0,
5789 : /* 12079*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5790 : /* 12082*/ OPC_Scope, 58|128,1/*186*/, /*->12271*/ // 2 children in Scope
5791 : /* 12085*/ OPC_CheckChild0Same, 0,
5792 : /* 12087*/ OPC_CheckChild1Integer, 16,
5793 : /* 12089*/ OPC_CheckChild1Type, MVT::i32,
5794 : /* 12091*/ OPC_MoveParent,
5795 : /* 12092*/ OPC_MoveChild1,
5796 : /* 12093*/ OPC_CheckValueType, MVT::i8,
5797 : /* 12095*/ OPC_MoveParent,
5798 : /* 12096*/ OPC_MoveParent,
5799 : /* 12097*/ OPC_MoveChild1,
5800 : /* 12098*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5801 : /* 12101*/ OPC_MoveChild0,
5802 : /* 12102*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5803 : /* 12105*/ OPC_CheckChild0Same, 1,
5804 : /* 12107*/ OPC_CheckChild1Integer, 16,
5805 : /* 12109*/ OPC_CheckChild1Type, MVT::i32,
5806 : /* 12111*/ OPC_MoveParent,
5807 : /* 12112*/ OPC_MoveChild1,
5808 : /* 12113*/ OPC_CheckValueType, MVT::i8,
5809 : /* 12115*/ OPC_MoveParent,
5810 : /* 12116*/ OPC_MoveParent,
5811 : /* 12117*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5812 : /* 12119*/ OPC_MoveParent,
5813 : /* 12120*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5814 : /* 12122*/ OPC_MoveParent,
5815 : /* 12123*/ OPC_MoveChild1,
5816 : /* 12124*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5817 : /* 12127*/ OPC_MoveChild0,
5818 : /* 12128*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5819 : /* 12131*/ OPC_Scope, 68, /*->12201*/ // 2 children in Scope
5820 : /* 12133*/ OPC_CheckChild0Same, 0,
5821 : /* 12135*/ OPC_CheckChild1Integer, 24,
5822 : /* 12137*/ OPC_CheckChild1Type, MVT::i32,
5823 : /* 12139*/ OPC_MoveParent,
5824 : /* 12140*/ OPC_MoveChild1,
5825 : /* 12141*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5826 : /* 12144*/ OPC_CheckChild0Same, 1,
5827 : /* 12146*/ OPC_CheckChild1Integer, 24,
5828 : /* 12148*/ OPC_CheckChild1Type, MVT::i32,
5829 : /* 12150*/ OPC_MoveParent,
5830 : /* 12151*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5831 : /* 12153*/ OPC_MoveParent,
5832 : /* 12154*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5833 : /* 12156*/ OPC_CheckType, MVT::i32,
5834 : /* 12158*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5835 : /* 12160*/ OPC_EmitInteger, MVT::i32, 8,
5836 : /* 12163*/ OPC_EmitInteger, MVT::i32, 8,
5837 : /* 12166*/ OPC_EmitInteger, MVT::i32, 8,
5838 : /* 12169*/ OPC_EmitInteger, MVT::i1, 0,
5839 : /* 12172*/ OPC_EmitInteger, MVT::i32, 0,
5840 : /* 12175*/ OPC_EmitInteger, MVT::i32, 0,
5841 : /* 12178*/ OPC_EmitInteger, MVT::i32, 0,
5842 : /* 12181*/ OPC_EmitInteger, MVT::i32, 0,
5843 : /* 12184*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5844 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5845 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5846 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5847 : /* 12201*/ /*Scope*/ 68, /*->12270*/
5848 : /* 12202*/ OPC_CheckChild0Same, 1,
5849 : /* 12204*/ OPC_CheckChild1Integer, 24,
5850 : /* 12206*/ OPC_CheckChild1Type, MVT::i32,
5851 : /* 12208*/ OPC_MoveParent,
5852 : /* 12209*/ OPC_MoveChild1,
5853 : /* 12210*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5854 : /* 12213*/ OPC_CheckChild0Same, 0,
5855 : /* 12215*/ OPC_CheckChild1Integer, 24,
5856 : /* 12217*/ OPC_CheckChild1Type, MVT::i32,
5857 : /* 12219*/ OPC_MoveParent,
5858 : /* 12220*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5859 : /* 12222*/ OPC_MoveParent,
5860 : /* 12223*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5861 : /* 12225*/ OPC_CheckType, MVT::i32,
5862 : /* 12227*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5863 : /* 12229*/ OPC_EmitInteger, MVT::i32, 8,
5864 : /* 12232*/ OPC_EmitInteger, MVT::i32, 8,
5865 : /* 12235*/ OPC_EmitInteger, MVT::i32, 8,
5866 : /* 12238*/ OPC_EmitInteger, MVT::i1, 0,
5867 : /* 12241*/ OPC_EmitInteger, MVT::i32, 0,
5868 : /* 12244*/ OPC_EmitInteger, MVT::i32, 0,
5869 : /* 12247*/ OPC_EmitInteger, MVT::i32, 0,
5870 : /* 12250*/ OPC_EmitInteger, MVT::i32, 0,
5871 : /* 12253*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5872 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5873 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5874 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5875 : /* 12270*/ 0, /*End of Scope*/
5876 : /* 12271*/ /*Scope*/ 58|128,1/*186*/, /*->12459*/
5877 : /* 12273*/ OPC_CheckChild0Same, 1,
5878 : /* 12275*/ OPC_CheckChild1Integer, 16,
5879 : /* 12277*/ OPC_CheckChild1Type, MVT::i32,
5880 : /* 12279*/ OPC_MoveParent,
5881 : /* 12280*/ OPC_MoveChild1,
5882 : /* 12281*/ OPC_CheckValueType, MVT::i8,
5883 : /* 12283*/ OPC_MoveParent,
5884 : /* 12284*/ OPC_MoveParent,
5885 : /* 12285*/ OPC_MoveChild1,
5886 : /* 12286*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5887 : /* 12289*/ OPC_MoveChild0,
5888 : /* 12290*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5889 : /* 12293*/ OPC_CheckChild0Same, 0,
5890 : /* 12295*/ OPC_CheckChild1Integer, 16,
5891 : /* 12297*/ OPC_CheckChild1Type, MVT::i32,
5892 : /* 12299*/ OPC_MoveParent,
5893 : /* 12300*/ OPC_MoveChild1,
5894 : /* 12301*/ OPC_CheckValueType, MVT::i8,
5895 : /* 12303*/ OPC_MoveParent,
5896 : /* 12304*/ OPC_MoveParent,
5897 : /* 12305*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5898 : /* 12307*/ OPC_MoveParent,
5899 : /* 12308*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5900 : /* 12310*/ OPC_MoveParent,
5901 : /* 12311*/ OPC_MoveChild1,
5902 : /* 12312*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5903 : /* 12315*/ OPC_MoveChild0,
5904 : /* 12316*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5905 : /* 12319*/ OPC_Scope, 68, /*->12389*/ // 2 children in Scope
5906 : /* 12321*/ OPC_CheckChild0Same, 0,
5907 : /* 12323*/ OPC_CheckChild1Integer, 24,
5908 : /* 12325*/ OPC_CheckChild1Type, MVT::i32,
5909 : /* 12327*/ OPC_MoveParent,
5910 : /* 12328*/ OPC_MoveChild1,
5911 : /* 12329*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5912 : /* 12332*/ OPC_CheckChild0Same, 1,
5913 : /* 12334*/ OPC_CheckChild1Integer, 24,
5914 : /* 12336*/ OPC_CheckChild1Type, MVT::i32,
5915 : /* 12338*/ OPC_MoveParent,
5916 : /* 12339*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5917 : /* 12341*/ OPC_MoveParent,
5918 : /* 12342*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5919 : /* 12344*/ OPC_CheckType, MVT::i32,
5920 : /* 12346*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5921 : /* 12348*/ OPC_EmitInteger, MVT::i32, 8,
5922 : /* 12351*/ OPC_EmitInteger, MVT::i32, 8,
5923 : /* 12354*/ OPC_EmitInteger, MVT::i32, 8,
5924 : /* 12357*/ OPC_EmitInteger, MVT::i1, 0,
5925 : /* 12360*/ OPC_EmitInteger, MVT::i32, 0,
5926 : /* 12363*/ OPC_EmitInteger, MVT::i32, 0,
5927 : /* 12366*/ OPC_EmitInteger, MVT::i32, 0,
5928 : /* 12369*/ OPC_EmitInteger, MVT::i32, 0,
5929 : /* 12372*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5930 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5931 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5932 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5933 : /* 12389*/ /*Scope*/ 68, /*->12458*/
5934 : /* 12390*/ OPC_CheckChild0Same, 1,
5935 : /* 12392*/ OPC_CheckChild1Integer, 24,
5936 : /* 12394*/ OPC_CheckChild1Type, MVT::i32,
5937 : /* 12396*/ OPC_MoveParent,
5938 : /* 12397*/ OPC_MoveChild1,
5939 : /* 12398*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
5940 : /* 12401*/ OPC_CheckChild0Same, 0,
5941 : /* 12403*/ OPC_CheckChild1Integer, 24,
5942 : /* 12405*/ OPC_CheckChild1Type, MVT::i32,
5943 : /* 12407*/ OPC_MoveParent,
5944 : /* 12408*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5945 : /* 12410*/ OPC_MoveParent,
5946 : /* 12411*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5947 : /* 12413*/ OPC_CheckType, MVT::i32,
5948 : /* 12415*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
5949 : /* 12417*/ OPC_EmitInteger, MVT::i32, 8,
5950 : /* 12420*/ OPC_EmitInteger, MVT::i32, 8,
5951 : /* 12423*/ OPC_EmitInteger, MVT::i32, 8,
5952 : /* 12426*/ OPC_EmitInteger, MVT::i1, 0,
5953 : /* 12429*/ OPC_EmitInteger, MVT::i32, 0,
5954 : /* 12432*/ OPC_EmitInteger, MVT::i32, 0,
5955 : /* 12435*/ OPC_EmitInteger, MVT::i32, 0,
5956 : /* 12438*/ OPC_EmitInteger, MVT::i32, 0,
5957 : /* 12441*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
5958 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
5959 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
5960 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
5961 : /* 12458*/ 0, /*End of Scope*/
5962 : /* 12459*/ 0, /*End of Scope*/
5963 : /* 12460*/ /*Scope*/ 34|128,3/*418*/, /*->12880*/
5964 : /* 12462*/ OPC_CheckChild0Same, 1,
5965 : /* 12464*/ OPC_MoveChild1,
5966 : /* 12465*/ OPC_CheckValueType, MVT::i8,
5967 : /* 12467*/ OPC_MoveParent,
5968 : /* 12468*/ OPC_MoveParent,
5969 : /* 12469*/ OPC_MoveChild1,
5970 : /* 12470*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5971 : /* 12473*/ OPC_CheckChild0Same, 0,
5972 : /* 12475*/ OPC_MoveChild1,
5973 : /* 12476*/ OPC_CheckValueType, MVT::i8,
5974 : /* 12478*/ OPC_MoveParent,
5975 : /* 12479*/ OPC_MoveParent,
5976 : /* 12480*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
5977 : /* 12482*/ OPC_MoveParent,
5978 : /* 12483*/ OPC_RecordChild1, // #2 = $src2
5979 : /* 12484*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5980 : /* 12486*/ OPC_MoveParent,
5981 : /* 12487*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
5982 : /* 12489*/ OPC_MoveParent,
5983 : /* 12490*/ OPC_MoveChild1,
5984 : /* 12491*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
5985 : /* 12494*/ OPC_MoveChild0,
5986 : /* 12495*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
5987 : /* 12498*/ OPC_MoveChild0,
5988 : /* 12499*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
5989 : /* 12502*/ OPC_Scope, 58|128,1/*186*/, /*->12691*/ // 2 children in Scope
5990 : /* 12505*/ OPC_CheckChild0Same, 0,
5991 : /* 12507*/ OPC_CheckChild1Integer, 16,
5992 : /* 12509*/ OPC_CheckChild1Type, MVT::i32,
5993 : /* 12511*/ OPC_MoveParent,
5994 : /* 12512*/ OPC_MoveChild1,
5995 : /* 12513*/ OPC_CheckValueType, MVT::i8,
5996 : /* 12515*/ OPC_MoveParent,
5997 : /* 12516*/ OPC_MoveParent,
5998 : /* 12517*/ OPC_MoveChild1,
5999 : /* 12518*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6000 : /* 12521*/ OPC_MoveChild0,
6001 : /* 12522*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6002 : /* 12525*/ OPC_CheckChild0Same, 1,
6003 : /* 12527*/ OPC_CheckChild1Integer, 16,
6004 : /* 12529*/ OPC_CheckChild1Type, MVT::i32,
6005 : /* 12531*/ OPC_MoveParent,
6006 : /* 12532*/ OPC_MoveChild1,
6007 : /* 12533*/ OPC_CheckValueType, MVT::i8,
6008 : /* 12535*/ OPC_MoveParent,
6009 : /* 12536*/ OPC_MoveParent,
6010 : /* 12537*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6011 : /* 12539*/ OPC_MoveParent,
6012 : /* 12540*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6013 : /* 12542*/ OPC_MoveParent,
6014 : /* 12543*/ OPC_MoveChild1,
6015 : /* 12544*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6016 : /* 12547*/ OPC_MoveChild0,
6017 : /* 12548*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6018 : /* 12551*/ OPC_Scope, 68, /*->12621*/ // 2 children in Scope
6019 : /* 12553*/ OPC_CheckChild0Same, 0,
6020 : /* 12555*/ OPC_CheckChild1Integer, 24,
6021 : /* 12557*/ OPC_CheckChild1Type, MVT::i32,
6022 : /* 12559*/ OPC_MoveParent,
6023 : /* 12560*/ OPC_MoveChild1,
6024 : /* 12561*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6025 : /* 12564*/ OPC_CheckChild0Same, 1,
6026 : /* 12566*/ OPC_CheckChild1Integer, 24,
6027 : /* 12568*/ OPC_CheckChild1Type, MVT::i32,
6028 : /* 12570*/ OPC_MoveParent,
6029 : /* 12571*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6030 : /* 12573*/ OPC_MoveParent,
6031 : /* 12574*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6032 : /* 12576*/ OPC_CheckType, MVT::i32,
6033 : /* 12578*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6034 : /* 12580*/ OPC_EmitInteger, MVT::i32, 8,
6035 : /* 12583*/ OPC_EmitInteger, MVT::i32, 8,
6036 : /* 12586*/ OPC_EmitInteger, MVT::i32, 8,
6037 : /* 12589*/ OPC_EmitInteger, MVT::i1, 0,
6038 : /* 12592*/ OPC_EmitInteger, MVT::i32, 0,
6039 : /* 12595*/ OPC_EmitInteger, MVT::i32, 0,
6040 : /* 12598*/ OPC_EmitInteger, MVT::i32, 0,
6041 : /* 12601*/ OPC_EmitInteger, MVT::i32, 0,
6042 : /* 12604*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6043 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
6044 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6045 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6046 : /* 12621*/ /*Scope*/ 68, /*->12690*/
6047 : /* 12622*/ OPC_CheckChild0Same, 1,
6048 : /* 12624*/ OPC_CheckChild1Integer, 24,
6049 : /* 12626*/ OPC_CheckChild1Type, MVT::i32,
6050 : /* 12628*/ OPC_MoveParent,
6051 : /* 12629*/ OPC_MoveChild1,
6052 : /* 12630*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6053 : /* 12633*/ OPC_CheckChild0Same, 0,
6054 : /* 12635*/ OPC_CheckChild1Integer, 24,
6055 : /* 12637*/ OPC_CheckChild1Type, MVT::i32,
6056 : /* 12639*/ OPC_MoveParent,
6057 : /* 12640*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6058 : /* 12642*/ OPC_MoveParent,
6059 : /* 12643*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6060 : /* 12645*/ OPC_CheckType, MVT::i32,
6061 : /* 12647*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6062 : /* 12649*/ OPC_EmitInteger, MVT::i32, 8,
6063 : /* 12652*/ OPC_EmitInteger, MVT::i32, 8,
6064 : /* 12655*/ OPC_EmitInteger, MVT::i32, 8,
6065 : /* 12658*/ OPC_EmitInteger, MVT::i1, 0,
6066 : /* 12661*/ OPC_EmitInteger, MVT::i32, 0,
6067 : /* 12664*/ OPC_EmitInteger, MVT::i32, 0,
6068 : /* 12667*/ OPC_EmitInteger, MVT::i32, 0,
6069 : /* 12670*/ OPC_EmitInteger, MVT::i32, 0,
6070 : /* 12673*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6071 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
6072 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6073 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6074 : /* 12690*/ 0, /*End of Scope*/
6075 : /* 12691*/ /*Scope*/ 58|128,1/*186*/, /*->12879*/
6076 : /* 12693*/ OPC_CheckChild0Same, 1,
6077 : /* 12695*/ OPC_CheckChild1Integer, 16,
6078 : /* 12697*/ OPC_CheckChild1Type, MVT::i32,
6079 : /* 12699*/ OPC_MoveParent,
6080 : /* 12700*/ OPC_MoveChild1,
6081 : /* 12701*/ OPC_CheckValueType, MVT::i8,
6082 : /* 12703*/ OPC_MoveParent,
6083 : /* 12704*/ OPC_MoveParent,
6084 : /* 12705*/ OPC_MoveChild1,
6085 : /* 12706*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6086 : /* 12709*/ OPC_MoveChild0,
6087 : /* 12710*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6088 : /* 12713*/ OPC_CheckChild0Same, 0,
6089 : /* 12715*/ OPC_CheckChild1Integer, 16,
6090 : /* 12717*/ OPC_CheckChild1Type, MVT::i32,
6091 : /* 12719*/ OPC_MoveParent,
6092 : /* 12720*/ OPC_MoveChild1,
6093 : /* 12721*/ OPC_CheckValueType, MVT::i8,
6094 : /* 12723*/ OPC_MoveParent,
6095 : /* 12724*/ OPC_MoveParent,
6096 : /* 12725*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6097 : /* 12727*/ OPC_MoveParent,
6098 : /* 12728*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6099 : /* 12730*/ OPC_MoveParent,
6100 : /* 12731*/ OPC_MoveChild1,
6101 : /* 12732*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6102 : /* 12735*/ OPC_MoveChild0,
6103 : /* 12736*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6104 : /* 12739*/ OPC_Scope, 68, /*->12809*/ // 2 children in Scope
6105 : /* 12741*/ OPC_CheckChild0Same, 0,
6106 : /* 12743*/ OPC_CheckChild1Integer, 24,
6107 : /* 12745*/ OPC_CheckChild1Type, MVT::i32,
6108 : /* 12747*/ OPC_MoveParent,
6109 : /* 12748*/ OPC_MoveChild1,
6110 : /* 12749*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6111 : /* 12752*/ OPC_CheckChild0Same, 1,
6112 : /* 12754*/ OPC_CheckChild1Integer, 24,
6113 : /* 12756*/ OPC_CheckChild1Type, MVT::i32,
6114 : /* 12758*/ OPC_MoveParent,
6115 : /* 12759*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6116 : /* 12761*/ OPC_MoveParent,
6117 : /* 12762*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6118 : /* 12764*/ OPC_CheckType, MVT::i32,
6119 : /* 12766*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6120 : /* 12768*/ OPC_EmitInteger, MVT::i32, 8,
6121 : /* 12771*/ OPC_EmitInteger, MVT::i32, 8,
6122 : /* 12774*/ OPC_EmitInteger, MVT::i32, 8,
6123 : /* 12777*/ OPC_EmitInteger, MVT::i1, 0,
6124 : /* 12780*/ OPC_EmitInteger, MVT::i32, 0,
6125 : /* 12783*/ OPC_EmitInteger, MVT::i32, 0,
6126 : /* 12786*/ OPC_EmitInteger, MVT::i32, 0,
6127 : /* 12789*/ OPC_EmitInteger, MVT::i32, 0,
6128 : /* 12792*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6129 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
6130 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6131 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6132 : /* 12809*/ /*Scope*/ 68, /*->12878*/
6133 : /* 12810*/ OPC_CheckChild0Same, 1,
6134 : /* 12812*/ OPC_CheckChild1Integer, 24,
6135 : /* 12814*/ OPC_CheckChild1Type, MVT::i32,
6136 : /* 12816*/ OPC_MoveParent,
6137 : /* 12817*/ OPC_MoveChild1,
6138 : /* 12818*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6139 : /* 12821*/ OPC_CheckChild0Same, 0,
6140 : /* 12823*/ OPC_CheckChild1Integer, 24,
6141 : /* 12825*/ OPC_CheckChild1Type, MVT::i32,
6142 : /* 12827*/ OPC_MoveParent,
6143 : /* 12828*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6144 : /* 12830*/ OPC_MoveParent,
6145 : /* 12831*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6146 : /* 12833*/ OPC_CheckType, MVT::i32,
6147 : /* 12835*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6148 : /* 12837*/ OPC_EmitInteger, MVT::i32, 8,
6149 : /* 12840*/ OPC_EmitInteger, MVT::i32, 8,
6150 : /* 12843*/ OPC_EmitInteger, MVT::i32, 8,
6151 : /* 12846*/ OPC_EmitInteger, MVT::i1, 0,
6152 : /* 12849*/ OPC_EmitInteger, MVT::i32, 0,
6153 : /* 12852*/ OPC_EmitInteger, MVT::i32, 0,
6154 : /* 12855*/ OPC_EmitInteger, MVT::i32, 0,
6155 : /* 12858*/ OPC_EmitInteger, MVT::i32, 0,
6156 : /* 12861*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6157 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
6158 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6159 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6160 : /* 12878*/ 0, /*End of Scope*/
6161 : /* 12879*/ 0, /*End of Scope*/
6162 : /* 12880*/ 0, /*End of Scope*/
6163 : /* 12881*/ /*Scope*/ 81|128,6/*849*/, /*->13732*/
6164 : /* 12883*/ OPC_RecordChild0, // #2 = $src2
6165 : /* 12884*/ OPC_MoveChild1,
6166 : /* 12885*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6167 : /* 12888*/ OPC_MoveChild0,
6168 : /* 12889*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6169 : /* 12892*/ OPC_Scope, 33|128,3/*417*/, /*->13312*/ // 2 children in Scope
6170 : /* 12895*/ OPC_CheckChild0Same, 1,
6171 : /* 12897*/ OPC_MoveChild1,
6172 : /* 12898*/ OPC_CheckValueType, MVT::i8,
6173 : /* 12900*/ OPC_MoveParent,
6174 : /* 12901*/ OPC_MoveParent,
6175 : /* 12902*/ OPC_MoveChild1,
6176 : /* 12903*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6177 : /* 12906*/ OPC_CheckChild0Same, 0,
6178 : /* 12908*/ OPC_MoveChild1,
6179 : /* 12909*/ OPC_CheckValueType, MVT::i8,
6180 : /* 12911*/ OPC_MoveParent,
6181 : /* 12912*/ OPC_MoveParent,
6182 : /* 12913*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6183 : /* 12915*/ OPC_MoveParent,
6184 : /* 12916*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6185 : /* 12918*/ OPC_MoveParent,
6186 : /* 12919*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6187 : /* 12921*/ OPC_MoveParent,
6188 : /* 12922*/ OPC_MoveChild1,
6189 : /* 12923*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6190 : /* 12926*/ OPC_MoveChild0,
6191 : /* 12927*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6192 : /* 12930*/ OPC_MoveChild0,
6193 : /* 12931*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6194 : /* 12934*/ OPC_Scope, 58|128,1/*186*/, /*->13123*/ // 2 children in Scope
6195 : /* 12937*/ OPC_CheckChild0Same, 1,
6196 : /* 12939*/ OPC_CheckChild1Integer, 16,
6197 : /* 12941*/ OPC_CheckChild1Type, MVT::i32,
6198 : /* 12943*/ OPC_MoveParent,
6199 : /* 12944*/ OPC_MoveChild1,
6200 : /* 12945*/ OPC_CheckValueType, MVT::i8,
6201 : /* 12947*/ OPC_MoveParent,
6202 : /* 12948*/ OPC_MoveParent,
6203 : /* 12949*/ OPC_MoveChild1,
6204 : /* 12950*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6205 : /* 12953*/ OPC_MoveChild0,
6206 : /* 12954*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6207 : /* 12957*/ OPC_CheckChild0Same, 0,
6208 : /* 12959*/ OPC_CheckChild1Integer, 16,
6209 : /* 12961*/ OPC_CheckChild1Type, MVT::i32,
6210 : /* 12963*/ OPC_MoveParent,
6211 : /* 12964*/ OPC_MoveChild1,
6212 : /* 12965*/ OPC_CheckValueType, MVT::i8,
6213 : /* 12967*/ OPC_MoveParent,
6214 : /* 12968*/ OPC_MoveParent,
6215 : /* 12969*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6216 : /* 12971*/ OPC_MoveParent,
6217 : /* 12972*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6218 : /* 12974*/ OPC_MoveParent,
6219 : /* 12975*/ OPC_MoveChild1,
6220 : /* 12976*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6221 : /* 12979*/ OPC_MoveChild0,
6222 : /* 12980*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6223 : /* 12983*/ OPC_Scope, 68, /*->13053*/ // 2 children in Scope
6224 : /* 12985*/ OPC_CheckChild0Same, 1,
6225 : /* 12987*/ OPC_CheckChild1Integer, 24,
6226 : /* 12989*/ OPC_CheckChild1Type, MVT::i32,
6227 : /* 12991*/ OPC_MoveParent,
6228 : /* 12992*/ OPC_MoveChild1,
6229 : /* 12993*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6230 : /* 12996*/ OPC_CheckChild0Same, 0,
6231 : /* 12998*/ OPC_CheckChild1Integer, 24,
6232 : /* 13000*/ OPC_CheckChild1Type, MVT::i32,
6233 : /* 13002*/ OPC_MoveParent,
6234 : /* 13003*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6235 : /* 13005*/ OPC_MoveParent,
6236 : /* 13006*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6237 : /* 13008*/ OPC_CheckType, MVT::i32,
6238 : /* 13010*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6239 : /* 13012*/ OPC_EmitInteger, MVT::i32, 8,
6240 : /* 13015*/ OPC_EmitInteger, MVT::i32, 8,
6241 : /* 13018*/ OPC_EmitInteger, MVT::i32, 8,
6242 : /* 13021*/ OPC_EmitInteger, MVT::i1, 0,
6243 : /* 13024*/ OPC_EmitInteger, MVT::i32, 0,
6244 : /* 13027*/ OPC_EmitInteger, MVT::i32, 0,
6245 : /* 13030*/ OPC_EmitInteger, MVT::i32, 0,
6246 : /* 13033*/ OPC_EmitInteger, MVT::i32, 0,
6247 : /* 13036*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6248 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6249 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6250 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6251 : /* 13053*/ /*Scope*/ 68, /*->13122*/
6252 : /* 13054*/ OPC_CheckChild0Same, 0,
6253 : /* 13056*/ OPC_CheckChild1Integer, 24,
6254 : /* 13058*/ OPC_CheckChild1Type, MVT::i32,
6255 : /* 13060*/ OPC_MoveParent,
6256 : /* 13061*/ OPC_MoveChild1,
6257 : /* 13062*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6258 : /* 13065*/ OPC_CheckChild0Same, 1,
6259 : /* 13067*/ OPC_CheckChild1Integer, 24,
6260 : /* 13069*/ OPC_CheckChild1Type, MVT::i32,
6261 : /* 13071*/ OPC_MoveParent,
6262 : /* 13072*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6263 : /* 13074*/ OPC_MoveParent,
6264 : /* 13075*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6265 : /* 13077*/ OPC_CheckType, MVT::i32,
6266 : /* 13079*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6267 : /* 13081*/ OPC_EmitInteger, MVT::i32, 8,
6268 : /* 13084*/ OPC_EmitInteger, MVT::i32, 8,
6269 : /* 13087*/ OPC_EmitInteger, MVT::i32, 8,
6270 : /* 13090*/ OPC_EmitInteger, MVT::i1, 0,
6271 : /* 13093*/ OPC_EmitInteger, MVT::i32, 0,
6272 : /* 13096*/ OPC_EmitInteger, MVT::i32, 0,
6273 : /* 13099*/ OPC_EmitInteger, MVT::i32, 0,
6274 : /* 13102*/ OPC_EmitInteger, MVT::i32, 0,
6275 : /* 13105*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6276 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6277 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6278 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6279 : /* 13122*/ 0, /*End of Scope*/
6280 : /* 13123*/ /*Scope*/ 58|128,1/*186*/, /*->13311*/
6281 : /* 13125*/ OPC_CheckChild0Same, 0,
6282 : /* 13127*/ OPC_CheckChild1Integer, 16,
6283 : /* 13129*/ OPC_CheckChild1Type, MVT::i32,
6284 : /* 13131*/ OPC_MoveParent,
6285 : /* 13132*/ OPC_MoveChild1,
6286 : /* 13133*/ OPC_CheckValueType, MVT::i8,
6287 : /* 13135*/ OPC_MoveParent,
6288 : /* 13136*/ OPC_MoveParent,
6289 : /* 13137*/ OPC_MoveChild1,
6290 : /* 13138*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6291 : /* 13141*/ OPC_MoveChild0,
6292 : /* 13142*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6293 : /* 13145*/ OPC_CheckChild0Same, 1,
6294 : /* 13147*/ OPC_CheckChild1Integer, 16,
6295 : /* 13149*/ OPC_CheckChild1Type, MVT::i32,
6296 : /* 13151*/ OPC_MoveParent,
6297 : /* 13152*/ OPC_MoveChild1,
6298 : /* 13153*/ OPC_CheckValueType, MVT::i8,
6299 : /* 13155*/ OPC_MoveParent,
6300 : /* 13156*/ OPC_MoveParent,
6301 : /* 13157*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6302 : /* 13159*/ OPC_MoveParent,
6303 : /* 13160*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6304 : /* 13162*/ OPC_MoveParent,
6305 : /* 13163*/ OPC_MoveChild1,
6306 : /* 13164*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6307 : /* 13167*/ OPC_MoveChild0,
6308 : /* 13168*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6309 : /* 13171*/ OPC_Scope, 68, /*->13241*/ // 2 children in Scope
6310 : /* 13173*/ OPC_CheckChild0Same, 1,
6311 : /* 13175*/ OPC_CheckChild1Integer, 24,
6312 : /* 13177*/ OPC_CheckChild1Type, MVT::i32,
6313 : /* 13179*/ OPC_MoveParent,
6314 : /* 13180*/ OPC_MoveChild1,
6315 : /* 13181*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6316 : /* 13184*/ OPC_CheckChild0Same, 0,
6317 : /* 13186*/ OPC_CheckChild1Integer, 24,
6318 : /* 13188*/ OPC_CheckChild1Type, MVT::i32,
6319 : /* 13190*/ OPC_MoveParent,
6320 : /* 13191*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6321 : /* 13193*/ OPC_MoveParent,
6322 : /* 13194*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6323 : /* 13196*/ OPC_CheckType, MVT::i32,
6324 : /* 13198*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6325 : /* 13200*/ OPC_EmitInteger, MVT::i32, 8,
6326 : /* 13203*/ OPC_EmitInteger, MVT::i32, 8,
6327 : /* 13206*/ OPC_EmitInteger, MVT::i32, 8,
6328 : /* 13209*/ OPC_EmitInteger, MVT::i1, 0,
6329 : /* 13212*/ OPC_EmitInteger, MVT::i32, 0,
6330 : /* 13215*/ OPC_EmitInteger, MVT::i32, 0,
6331 : /* 13218*/ OPC_EmitInteger, MVT::i32, 0,
6332 : /* 13221*/ OPC_EmitInteger, MVT::i32, 0,
6333 : /* 13224*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6334 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6335 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6336 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6337 : /* 13241*/ /*Scope*/ 68, /*->13310*/
6338 : /* 13242*/ OPC_CheckChild0Same, 0,
6339 : /* 13244*/ OPC_CheckChild1Integer, 24,
6340 : /* 13246*/ OPC_CheckChild1Type, MVT::i32,
6341 : /* 13248*/ OPC_MoveParent,
6342 : /* 13249*/ OPC_MoveChild1,
6343 : /* 13250*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6344 : /* 13253*/ OPC_CheckChild0Same, 1,
6345 : /* 13255*/ OPC_CheckChild1Integer, 24,
6346 : /* 13257*/ OPC_CheckChild1Type, MVT::i32,
6347 : /* 13259*/ OPC_MoveParent,
6348 : /* 13260*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6349 : /* 13262*/ OPC_MoveParent,
6350 : /* 13263*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6351 : /* 13265*/ OPC_CheckType, MVT::i32,
6352 : /* 13267*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6353 : /* 13269*/ OPC_EmitInteger, MVT::i32, 8,
6354 : /* 13272*/ OPC_EmitInteger, MVT::i32, 8,
6355 : /* 13275*/ OPC_EmitInteger, MVT::i32, 8,
6356 : /* 13278*/ OPC_EmitInteger, MVT::i1, 0,
6357 : /* 13281*/ OPC_EmitInteger, MVT::i32, 0,
6358 : /* 13284*/ OPC_EmitInteger, MVT::i32, 0,
6359 : /* 13287*/ OPC_EmitInteger, MVT::i32, 0,
6360 : /* 13290*/ OPC_EmitInteger, MVT::i32, 0,
6361 : /* 13293*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6362 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6363 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6364 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6365 : /* 13310*/ 0, /*End of Scope*/
6366 : /* 13311*/ 0, /*End of Scope*/
6367 : /* 13312*/ /*Scope*/ 33|128,3/*417*/, /*->13731*/
6368 : /* 13314*/ OPC_CheckChild0Same, 0,
6369 : /* 13316*/ OPC_MoveChild1,
6370 : /* 13317*/ OPC_CheckValueType, MVT::i8,
6371 : /* 13319*/ OPC_MoveParent,
6372 : /* 13320*/ OPC_MoveParent,
6373 : /* 13321*/ OPC_MoveChild1,
6374 : /* 13322*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6375 : /* 13325*/ OPC_CheckChild0Same, 1,
6376 : /* 13327*/ OPC_MoveChild1,
6377 : /* 13328*/ OPC_CheckValueType, MVT::i8,
6378 : /* 13330*/ OPC_MoveParent,
6379 : /* 13331*/ OPC_MoveParent,
6380 : /* 13332*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6381 : /* 13334*/ OPC_MoveParent,
6382 : /* 13335*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6383 : /* 13337*/ OPC_MoveParent,
6384 : /* 13338*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6385 : /* 13340*/ OPC_MoveParent,
6386 : /* 13341*/ OPC_MoveChild1,
6387 : /* 13342*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6388 : /* 13345*/ OPC_MoveChild0,
6389 : /* 13346*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6390 : /* 13349*/ OPC_MoveChild0,
6391 : /* 13350*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6392 : /* 13353*/ OPC_Scope, 58|128,1/*186*/, /*->13542*/ // 2 children in Scope
6393 : /* 13356*/ OPC_CheckChild0Same, 1,
6394 : /* 13358*/ OPC_CheckChild1Integer, 16,
6395 : /* 13360*/ OPC_CheckChild1Type, MVT::i32,
6396 : /* 13362*/ OPC_MoveParent,
6397 : /* 13363*/ OPC_MoveChild1,
6398 : /* 13364*/ OPC_CheckValueType, MVT::i8,
6399 : /* 13366*/ OPC_MoveParent,
6400 : /* 13367*/ OPC_MoveParent,
6401 : /* 13368*/ OPC_MoveChild1,
6402 : /* 13369*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6403 : /* 13372*/ OPC_MoveChild0,
6404 : /* 13373*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6405 : /* 13376*/ OPC_CheckChild0Same, 0,
6406 : /* 13378*/ OPC_CheckChild1Integer, 16,
6407 : /* 13380*/ OPC_CheckChild1Type, MVT::i32,
6408 : /* 13382*/ OPC_MoveParent,
6409 : /* 13383*/ OPC_MoveChild1,
6410 : /* 13384*/ OPC_CheckValueType, MVT::i8,
6411 : /* 13386*/ OPC_MoveParent,
6412 : /* 13387*/ OPC_MoveParent,
6413 : /* 13388*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6414 : /* 13390*/ OPC_MoveParent,
6415 : /* 13391*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6416 : /* 13393*/ OPC_MoveParent,
6417 : /* 13394*/ OPC_MoveChild1,
6418 : /* 13395*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6419 : /* 13398*/ OPC_MoveChild0,
6420 : /* 13399*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6421 : /* 13402*/ OPC_Scope, 68, /*->13472*/ // 2 children in Scope
6422 : /* 13404*/ OPC_CheckChild0Same, 1,
6423 : /* 13406*/ OPC_CheckChild1Integer, 24,
6424 : /* 13408*/ OPC_CheckChild1Type, MVT::i32,
6425 : /* 13410*/ OPC_MoveParent,
6426 : /* 13411*/ OPC_MoveChild1,
6427 : /* 13412*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6428 : /* 13415*/ OPC_CheckChild0Same, 0,
6429 : /* 13417*/ OPC_CheckChild1Integer, 24,
6430 : /* 13419*/ OPC_CheckChild1Type, MVT::i32,
6431 : /* 13421*/ OPC_MoveParent,
6432 : /* 13422*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6433 : /* 13424*/ OPC_MoveParent,
6434 : /* 13425*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6435 : /* 13427*/ OPC_CheckType, MVT::i32,
6436 : /* 13429*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6437 : /* 13431*/ OPC_EmitInteger, MVT::i32, 8,
6438 : /* 13434*/ OPC_EmitInteger, MVT::i32, 8,
6439 : /* 13437*/ OPC_EmitInteger, MVT::i32, 8,
6440 : /* 13440*/ OPC_EmitInteger, MVT::i1, 0,
6441 : /* 13443*/ OPC_EmitInteger, MVT::i32, 0,
6442 : /* 13446*/ OPC_EmitInteger, MVT::i32, 0,
6443 : /* 13449*/ OPC_EmitInteger, MVT::i32, 0,
6444 : /* 13452*/ OPC_EmitInteger, MVT::i32, 0,
6445 : /* 13455*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6446 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6447 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6448 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6449 : /* 13472*/ /*Scope*/ 68, /*->13541*/
6450 : /* 13473*/ OPC_CheckChild0Same, 0,
6451 : /* 13475*/ OPC_CheckChild1Integer, 24,
6452 : /* 13477*/ OPC_CheckChild1Type, MVT::i32,
6453 : /* 13479*/ OPC_MoveParent,
6454 : /* 13480*/ OPC_MoveChild1,
6455 : /* 13481*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6456 : /* 13484*/ OPC_CheckChild0Same, 1,
6457 : /* 13486*/ OPC_CheckChild1Integer, 24,
6458 : /* 13488*/ OPC_CheckChild1Type, MVT::i32,
6459 : /* 13490*/ OPC_MoveParent,
6460 : /* 13491*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6461 : /* 13493*/ OPC_MoveParent,
6462 : /* 13494*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6463 : /* 13496*/ OPC_CheckType, MVT::i32,
6464 : /* 13498*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6465 : /* 13500*/ OPC_EmitInteger, MVT::i32, 8,
6466 : /* 13503*/ OPC_EmitInteger, MVT::i32, 8,
6467 : /* 13506*/ OPC_EmitInteger, MVT::i32, 8,
6468 : /* 13509*/ OPC_EmitInteger, MVT::i1, 0,
6469 : /* 13512*/ OPC_EmitInteger, MVT::i32, 0,
6470 : /* 13515*/ OPC_EmitInteger, MVT::i32, 0,
6471 : /* 13518*/ OPC_EmitInteger, MVT::i32, 0,
6472 : /* 13521*/ OPC_EmitInteger, MVT::i32, 0,
6473 : /* 13524*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6474 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6475 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6476 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6477 : /* 13541*/ 0, /*End of Scope*/
6478 : /* 13542*/ /*Scope*/ 58|128,1/*186*/, /*->13730*/
6479 : /* 13544*/ OPC_CheckChild0Same, 0,
6480 : /* 13546*/ OPC_CheckChild1Integer, 16,
6481 : /* 13548*/ OPC_CheckChild1Type, MVT::i32,
6482 : /* 13550*/ OPC_MoveParent,
6483 : /* 13551*/ OPC_MoveChild1,
6484 : /* 13552*/ OPC_CheckValueType, MVT::i8,
6485 : /* 13554*/ OPC_MoveParent,
6486 : /* 13555*/ OPC_MoveParent,
6487 : /* 13556*/ OPC_MoveChild1,
6488 : /* 13557*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6489 : /* 13560*/ OPC_MoveChild0,
6490 : /* 13561*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6491 : /* 13564*/ OPC_CheckChild0Same, 1,
6492 : /* 13566*/ OPC_CheckChild1Integer, 16,
6493 : /* 13568*/ OPC_CheckChild1Type, MVT::i32,
6494 : /* 13570*/ OPC_MoveParent,
6495 : /* 13571*/ OPC_MoveChild1,
6496 : /* 13572*/ OPC_CheckValueType, MVT::i8,
6497 : /* 13574*/ OPC_MoveParent,
6498 : /* 13575*/ OPC_MoveParent,
6499 : /* 13576*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6500 : /* 13578*/ OPC_MoveParent,
6501 : /* 13579*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6502 : /* 13581*/ OPC_MoveParent,
6503 : /* 13582*/ OPC_MoveChild1,
6504 : /* 13583*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6505 : /* 13586*/ OPC_MoveChild0,
6506 : /* 13587*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6507 : /* 13590*/ OPC_Scope, 68, /*->13660*/ // 2 children in Scope
6508 : /* 13592*/ OPC_CheckChild0Same, 1,
6509 : /* 13594*/ OPC_CheckChild1Integer, 24,
6510 : /* 13596*/ OPC_CheckChild1Type, MVT::i32,
6511 : /* 13598*/ OPC_MoveParent,
6512 : /* 13599*/ OPC_MoveChild1,
6513 : /* 13600*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6514 : /* 13603*/ OPC_CheckChild0Same, 0,
6515 : /* 13605*/ OPC_CheckChild1Integer, 24,
6516 : /* 13607*/ OPC_CheckChild1Type, MVT::i32,
6517 : /* 13609*/ OPC_MoveParent,
6518 : /* 13610*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6519 : /* 13612*/ OPC_MoveParent,
6520 : /* 13613*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6521 : /* 13615*/ OPC_CheckType, MVT::i32,
6522 : /* 13617*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6523 : /* 13619*/ OPC_EmitInteger, MVT::i32, 8,
6524 : /* 13622*/ OPC_EmitInteger, MVT::i32, 8,
6525 : /* 13625*/ OPC_EmitInteger, MVT::i32, 8,
6526 : /* 13628*/ OPC_EmitInteger, MVT::i1, 0,
6527 : /* 13631*/ OPC_EmitInteger, MVT::i32, 0,
6528 : /* 13634*/ OPC_EmitInteger, MVT::i32, 0,
6529 : /* 13637*/ OPC_EmitInteger, MVT::i32, 0,
6530 : /* 13640*/ OPC_EmitInteger, MVT::i32, 0,
6531 : /* 13643*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6532 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6533 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6534 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6535 : /* 13660*/ /*Scope*/ 68, /*->13729*/
6536 : /* 13661*/ OPC_CheckChild0Same, 0,
6537 : /* 13663*/ OPC_CheckChild1Integer, 24,
6538 : /* 13665*/ OPC_CheckChild1Type, MVT::i32,
6539 : /* 13667*/ OPC_MoveParent,
6540 : /* 13668*/ OPC_MoveChild1,
6541 : /* 13669*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6542 : /* 13672*/ OPC_CheckChild0Same, 1,
6543 : /* 13674*/ OPC_CheckChild1Integer, 24,
6544 : /* 13676*/ OPC_CheckChild1Type, MVT::i32,
6545 : /* 13678*/ OPC_MoveParent,
6546 : /* 13679*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6547 : /* 13681*/ OPC_MoveParent,
6548 : /* 13682*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6549 : /* 13684*/ OPC_CheckType, MVT::i32,
6550 : /* 13686*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6551 : /* 13688*/ OPC_EmitInteger, MVT::i32, 8,
6552 : /* 13691*/ OPC_EmitInteger, MVT::i32, 8,
6553 : /* 13694*/ OPC_EmitInteger, MVT::i32, 8,
6554 : /* 13697*/ OPC_EmitInteger, MVT::i1, 0,
6555 : /* 13700*/ OPC_EmitInteger, MVT::i32, 0,
6556 : /* 13703*/ OPC_EmitInteger, MVT::i32, 0,
6557 : /* 13706*/ OPC_EmitInteger, MVT::i32, 0,
6558 : /* 13709*/ OPC_EmitInteger, MVT::i32, 0,
6559 : /* 13712*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6560 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6561 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6562 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6563 : /* 13729*/ 0, /*End of Scope*/
6564 : /* 13730*/ 0, /*End of Scope*/
6565 : /* 13731*/ 0, /*End of Scope*/
6566 : /* 13732*/ /*Scope*/ 82|128,6/*850*/, /*->14584*/
6567 : /* 13734*/ OPC_MoveChild0,
6568 : /* 13735*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6569 : /* 13738*/ OPC_MoveChild0,
6570 : /* 13739*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6571 : /* 13742*/ OPC_Scope, 34|128,3/*418*/, /*->14163*/ // 2 children in Scope
6572 : /* 13745*/ OPC_CheckChild0Same, 1,
6573 : /* 13747*/ OPC_MoveChild1,
6574 : /* 13748*/ OPC_CheckValueType, MVT::i8,
6575 : /* 13750*/ OPC_MoveParent,
6576 : /* 13751*/ OPC_MoveParent,
6577 : /* 13752*/ OPC_MoveChild1,
6578 : /* 13753*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6579 : /* 13756*/ OPC_CheckChild0Same, 0,
6580 : /* 13758*/ OPC_MoveChild1,
6581 : /* 13759*/ OPC_CheckValueType, MVT::i8,
6582 : /* 13761*/ OPC_MoveParent,
6583 : /* 13762*/ OPC_MoveParent,
6584 : /* 13763*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6585 : /* 13765*/ OPC_MoveParent,
6586 : /* 13766*/ OPC_RecordChild1, // #2 = $src2
6587 : /* 13767*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6588 : /* 13769*/ OPC_MoveParent,
6589 : /* 13770*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6590 : /* 13772*/ OPC_MoveParent,
6591 : /* 13773*/ OPC_MoveChild1,
6592 : /* 13774*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6593 : /* 13777*/ OPC_MoveChild0,
6594 : /* 13778*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6595 : /* 13781*/ OPC_MoveChild0,
6596 : /* 13782*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6597 : /* 13785*/ OPC_Scope, 58|128,1/*186*/, /*->13974*/ // 2 children in Scope
6598 : /* 13788*/ OPC_CheckChild0Same, 1,
6599 : /* 13790*/ OPC_CheckChild1Integer, 16,
6600 : /* 13792*/ OPC_CheckChild1Type, MVT::i32,
6601 : /* 13794*/ OPC_MoveParent,
6602 : /* 13795*/ OPC_MoveChild1,
6603 : /* 13796*/ OPC_CheckValueType, MVT::i8,
6604 : /* 13798*/ OPC_MoveParent,
6605 : /* 13799*/ OPC_MoveParent,
6606 : /* 13800*/ OPC_MoveChild1,
6607 : /* 13801*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6608 : /* 13804*/ OPC_MoveChild0,
6609 : /* 13805*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6610 : /* 13808*/ OPC_CheckChild0Same, 0,
6611 : /* 13810*/ OPC_CheckChild1Integer, 16,
6612 : /* 13812*/ OPC_CheckChild1Type, MVT::i32,
6613 : /* 13814*/ OPC_MoveParent,
6614 : /* 13815*/ OPC_MoveChild1,
6615 : /* 13816*/ OPC_CheckValueType, MVT::i8,
6616 : /* 13818*/ OPC_MoveParent,
6617 : /* 13819*/ OPC_MoveParent,
6618 : /* 13820*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6619 : /* 13822*/ OPC_MoveParent,
6620 : /* 13823*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6621 : /* 13825*/ OPC_MoveParent,
6622 : /* 13826*/ OPC_MoveChild1,
6623 : /* 13827*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6624 : /* 13830*/ OPC_MoveChild0,
6625 : /* 13831*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6626 : /* 13834*/ OPC_Scope, 68, /*->13904*/ // 2 children in Scope
6627 : /* 13836*/ OPC_CheckChild0Same, 1,
6628 : /* 13838*/ OPC_CheckChild1Integer, 24,
6629 : /* 13840*/ OPC_CheckChild1Type, MVT::i32,
6630 : /* 13842*/ OPC_MoveParent,
6631 : /* 13843*/ OPC_MoveChild1,
6632 : /* 13844*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6633 : /* 13847*/ OPC_CheckChild0Same, 0,
6634 : /* 13849*/ OPC_CheckChild1Integer, 24,
6635 : /* 13851*/ OPC_CheckChild1Type, MVT::i32,
6636 : /* 13853*/ OPC_MoveParent,
6637 : /* 13854*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6638 : /* 13856*/ OPC_MoveParent,
6639 : /* 13857*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6640 : /* 13859*/ OPC_CheckType, MVT::i32,
6641 : /* 13861*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6642 : /* 13863*/ OPC_EmitInteger, MVT::i32, 8,
6643 : /* 13866*/ OPC_EmitInteger, MVT::i32, 8,
6644 : /* 13869*/ OPC_EmitInteger, MVT::i32, 8,
6645 : /* 13872*/ OPC_EmitInteger, MVT::i1, 0,
6646 : /* 13875*/ OPC_EmitInteger, MVT::i32, 0,
6647 : /* 13878*/ OPC_EmitInteger, MVT::i32, 0,
6648 : /* 13881*/ OPC_EmitInteger, MVT::i32, 0,
6649 : /* 13884*/ OPC_EmitInteger, MVT::i32, 0,
6650 : /* 13887*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6651 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6652 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6653 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6654 : /* 13904*/ /*Scope*/ 68, /*->13973*/
6655 : /* 13905*/ OPC_CheckChild0Same, 0,
6656 : /* 13907*/ OPC_CheckChild1Integer, 24,
6657 : /* 13909*/ OPC_CheckChild1Type, MVT::i32,
6658 : /* 13911*/ OPC_MoveParent,
6659 : /* 13912*/ OPC_MoveChild1,
6660 : /* 13913*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6661 : /* 13916*/ OPC_CheckChild0Same, 1,
6662 : /* 13918*/ OPC_CheckChild1Integer, 24,
6663 : /* 13920*/ OPC_CheckChild1Type, MVT::i32,
6664 : /* 13922*/ OPC_MoveParent,
6665 : /* 13923*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6666 : /* 13925*/ OPC_MoveParent,
6667 : /* 13926*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6668 : /* 13928*/ OPC_CheckType, MVT::i32,
6669 : /* 13930*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6670 : /* 13932*/ OPC_EmitInteger, MVT::i32, 8,
6671 : /* 13935*/ OPC_EmitInteger, MVT::i32, 8,
6672 : /* 13938*/ OPC_EmitInteger, MVT::i32, 8,
6673 : /* 13941*/ OPC_EmitInteger, MVT::i1, 0,
6674 : /* 13944*/ OPC_EmitInteger, MVT::i32, 0,
6675 : /* 13947*/ OPC_EmitInteger, MVT::i32, 0,
6676 : /* 13950*/ OPC_EmitInteger, MVT::i32, 0,
6677 : /* 13953*/ OPC_EmitInteger, MVT::i32, 0,
6678 : /* 13956*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6679 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6680 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6681 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6682 : /* 13973*/ 0, /*End of Scope*/
6683 : /* 13974*/ /*Scope*/ 58|128,1/*186*/, /*->14162*/
6684 : /* 13976*/ OPC_CheckChild0Same, 0,
6685 : /* 13978*/ OPC_CheckChild1Integer, 16,
6686 : /* 13980*/ OPC_CheckChild1Type, MVT::i32,
6687 : /* 13982*/ OPC_MoveParent,
6688 : /* 13983*/ OPC_MoveChild1,
6689 : /* 13984*/ OPC_CheckValueType, MVT::i8,
6690 : /* 13986*/ OPC_MoveParent,
6691 : /* 13987*/ OPC_MoveParent,
6692 : /* 13988*/ OPC_MoveChild1,
6693 : /* 13989*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6694 : /* 13992*/ OPC_MoveChild0,
6695 : /* 13993*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6696 : /* 13996*/ OPC_CheckChild0Same, 1,
6697 : /* 13998*/ OPC_CheckChild1Integer, 16,
6698 : /* 14000*/ OPC_CheckChild1Type, MVT::i32,
6699 : /* 14002*/ OPC_MoveParent,
6700 : /* 14003*/ OPC_MoveChild1,
6701 : /* 14004*/ OPC_CheckValueType, MVT::i8,
6702 : /* 14006*/ OPC_MoveParent,
6703 : /* 14007*/ OPC_MoveParent,
6704 : /* 14008*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6705 : /* 14010*/ OPC_MoveParent,
6706 : /* 14011*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6707 : /* 14013*/ OPC_MoveParent,
6708 : /* 14014*/ OPC_MoveChild1,
6709 : /* 14015*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6710 : /* 14018*/ OPC_MoveChild0,
6711 : /* 14019*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6712 : /* 14022*/ OPC_Scope, 68, /*->14092*/ // 2 children in Scope
6713 : /* 14024*/ OPC_CheckChild0Same, 1,
6714 : /* 14026*/ OPC_CheckChild1Integer, 24,
6715 : /* 14028*/ OPC_CheckChild1Type, MVT::i32,
6716 : /* 14030*/ OPC_MoveParent,
6717 : /* 14031*/ OPC_MoveChild1,
6718 : /* 14032*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6719 : /* 14035*/ OPC_CheckChild0Same, 0,
6720 : /* 14037*/ OPC_CheckChild1Integer, 24,
6721 : /* 14039*/ OPC_CheckChild1Type, MVT::i32,
6722 : /* 14041*/ OPC_MoveParent,
6723 : /* 14042*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6724 : /* 14044*/ OPC_MoveParent,
6725 : /* 14045*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6726 : /* 14047*/ OPC_CheckType, MVT::i32,
6727 : /* 14049*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6728 : /* 14051*/ OPC_EmitInteger, MVT::i32, 8,
6729 : /* 14054*/ OPC_EmitInteger, MVT::i32, 8,
6730 : /* 14057*/ OPC_EmitInteger, MVT::i32, 8,
6731 : /* 14060*/ OPC_EmitInteger, MVT::i1, 0,
6732 : /* 14063*/ OPC_EmitInteger, MVT::i32, 0,
6733 : /* 14066*/ OPC_EmitInteger, MVT::i32, 0,
6734 : /* 14069*/ OPC_EmitInteger, MVT::i32, 0,
6735 : /* 14072*/ OPC_EmitInteger, MVT::i32, 0,
6736 : /* 14075*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6737 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6738 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6739 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6740 : /* 14092*/ /*Scope*/ 68, /*->14161*/
6741 : /* 14093*/ OPC_CheckChild0Same, 0,
6742 : /* 14095*/ OPC_CheckChild1Integer, 24,
6743 : /* 14097*/ OPC_CheckChild1Type, MVT::i32,
6744 : /* 14099*/ OPC_MoveParent,
6745 : /* 14100*/ OPC_MoveChild1,
6746 : /* 14101*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6747 : /* 14104*/ OPC_CheckChild0Same, 1,
6748 : /* 14106*/ OPC_CheckChild1Integer, 24,
6749 : /* 14108*/ OPC_CheckChild1Type, MVT::i32,
6750 : /* 14110*/ OPC_MoveParent,
6751 : /* 14111*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6752 : /* 14113*/ OPC_MoveParent,
6753 : /* 14114*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6754 : /* 14116*/ OPC_CheckType, MVT::i32,
6755 : /* 14118*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6756 : /* 14120*/ OPC_EmitInteger, MVT::i32, 8,
6757 : /* 14123*/ OPC_EmitInteger, MVT::i32, 8,
6758 : /* 14126*/ OPC_EmitInteger, MVT::i32, 8,
6759 : /* 14129*/ OPC_EmitInteger, MVT::i1, 0,
6760 : /* 14132*/ OPC_EmitInteger, MVT::i32, 0,
6761 : /* 14135*/ OPC_EmitInteger, MVT::i32, 0,
6762 : /* 14138*/ OPC_EmitInteger, MVT::i32, 0,
6763 : /* 14141*/ OPC_EmitInteger, MVT::i32, 0,
6764 : /* 14144*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6765 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6766 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6767 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6768 : /* 14161*/ 0, /*End of Scope*/
6769 : /* 14162*/ 0, /*End of Scope*/
6770 : /* 14163*/ /*Scope*/ 34|128,3/*418*/, /*->14583*/
6771 : /* 14165*/ OPC_CheckChild0Same, 0,
6772 : /* 14167*/ OPC_MoveChild1,
6773 : /* 14168*/ OPC_CheckValueType, MVT::i8,
6774 : /* 14170*/ OPC_MoveParent,
6775 : /* 14171*/ OPC_MoveParent,
6776 : /* 14172*/ OPC_MoveChild1,
6777 : /* 14173*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6778 : /* 14176*/ OPC_CheckChild0Same, 1,
6779 : /* 14178*/ OPC_MoveChild1,
6780 : /* 14179*/ OPC_CheckValueType, MVT::i8,
6781 : /* 14181*/ OPC_MoveParent,
6782 : /* 14182*/ OPC_MoveParent,
6783 : /* 14183*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6784 : /* 14185*/ OPC_MoveParent,
6785 : /* 14186*/ OPC_RecordChild1, // #2 = $src2
6786 : /* 14187*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6787 : /* 14189*/ OPC_MoveParent,
6788 : /* 14190*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6789 : /* 14192*/ OPC_MoveParent,
6790 : /* 14193*/ OPC_MoveChild1,
6791 : /* 14194*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6792 : /* 14197*/ OPC_MoveChild0,
6793 : /* 14198*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6794 : /* 14201*/ OPC_MoveChild0,
6795 : /* 14202*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6796 : /* 14205*/ OPC_Scope, 58|128,1/*186*/, /*->14394*/ // 2 children in Scope
6797 : /* 14208*/ OPC_CheckChild0Same, 1,
6798 : /* 14210*/ OPC_CheckChild1Integer, 16,
6799 : /* 14212*/ OPC_CheckChild1Type, MVT::i32,
6800 : /* 14214*/ OPC_MoveParent,
6801 : /* 14215*/ OPC_MoveChild1,
6802 : /* 14216*/ OPC_CheckValueType, MVT::i8,
6803 : /* 14218*/ OPC_MoveParent,
6804 : /* 14219*/ OPC_MoveParent,
6805 : /* 14220*/ OPC_MoveChild1,
6806 : /* 14221*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6807 : /* 14224*/ OPC_MoveChild0,
6808 : /* 14225*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6809 : /* 14228*/ OPC_CheckChild0Same, 0,
6810 : /* 14230*/ OPC_CheckChild1Integer, 16,
6811 : /* 14232*/ OPC_CheckChild1Type, MVT::i32,
6812 : /* 14234*/ OPC_MoveParent,
6813 : /* 14235*/ OPC_MoveChild1,
6814 : /* 14236*/ OPC_CheckValueType, MVT::i8,
6815 : /* 14238*/ OPC_MoveParent,
6816 : /* 14239*/ OPC_MoveParent,
6817 : /* 14240*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6818 : /* 14242*/ OPC_MoveParent,
6819 : /* 14243*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6820 : /* 14245*/ OPC_MoveParent,
6821 : /* 14246*/ OPC_MoveChild1,
6822 : /* 14247*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6823 : /* 14250*/ OPC_MoveChild0,
6824 : /* 14251*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6825 : /* 14254*/ OPC_Scope, 68, /*->14324*/ // 2 children in Scope
6826 : /* 14256*/ OPC_CheckChild0Same, 1,
6827 : /* 14258*/ OPC_CheckChild1Integer, 24,
6828 : /* 14260*/ OPC_CheckChild1Type, MVT::i32,
6829 : /* 14262*/ OPC_MoveParent,
6830 : /* 14263*/ OPC_MoveChild1,
6831 : /* 14264*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6832 : /* 14267*/ OPC_CheckChild0Same, 0,
6833 : /* 14269*/ OPC_CheckChild1Integer, 24,
6834 : /* 14271*/ OPC_CheckChild1Type, MVT::i32,
6835 : /* 14273*/ OPC_MoveParent,
6836 : /* 14274*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6837 : /* 14276*/ OPC_MoveParent,
6838 : /* 14277*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6839 : /* 14279*/ OPC_CheckType, MVT::i32,
6840 : /* 14281*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6841 : /* 14283*/ OPC_EmitInteger, MVT::i32, 8,
6842 : /* 14286*/ OPC_EmitInteger, MVT::i32, 8,
6843 : /* 14289*/ OPC_EmitInteger, MVT::i32, 8,
6844 : /* 14292*/ OPC_EmitInteger, MVT::i1, 0,
6845 : /* 14295*/ OPC_EmitInteger, MVT::i32, 0,
6846 : /* 14298*/ OPC_EmitInteger, MVT::i32, 0,
6847 : /* 14301*/ OPC_EmitInteger, MVT::i32, 0,
6848 : /* 14304*/ OPC_EmitInteger, MVT::i32, 0,
6849 : /* 14307*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6850 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6851 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6852 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6853 : /* 14324*/ /*Scope*/ 68, /*->14393*/
6854 : /* 14325*/ OPC_CheckChild0Same, 0,
6855 : /* 14327*/ OPC_CheckChild1Integer, 24,
6856 : /* 14329*/ OPC_CheckChild1Type, MVT::i32,
6857 : /* 14331*/ OPC_MoveParent,
6858 : /* 14332*/ OPC_MoveChild1,
6859 : /* 14333*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6860 : /* 14336*/ OPC_CheckChild0Same, 1,
6861 : /* 14338*/ OPC_CheckChild1Integer, 24,
6862 : /* 14340*/ OPC_CheckChild1Type, MVT::i32,
6863 : /* 14342*/ OPC_MoveParent,
6864 : /* 14343*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6865 : /* 14345*/ OPC_MoveParent,
6866 : /* 14346*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6867 : /* 14348*/ OPC_CheckType, MVT::i32,
6868 : /* 14350*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6869 : /* 14352*/ OPC_EmitInteger, MVT::i32, 8,
6870 : /* 14355*/ OPC_EmitInteger, MVT::i32, 8,
6871 : /* 14358*/ OPC_EmitInteger, MVT::i32, 8,
6872 : /* 14361*/ OPC_EmitInteger, MVT::i1, 0,
6873 : /* 14364*/ OPC_EmitInteger, MVT::i32, 0,
6874 : /* 14367*/ OPC_EmitInteger, MVT::i32, 0,
6875 : /* 14370*/ OPC_EmitInteger, MVT::i32, 0,
6876 : /* 14373*/ OPC_EmitInteger, MVT::i32, 0,
6877 : /* 14376*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6878 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6879 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6880 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6881 : /* 14393*/ 0, /*End of Scope*/
6882 : /* 14394*/ /*Scope*/ 58|128,1/*186*/, /*->14582*/
6883 : /* 14396*/ OPC_CheckChild0Same, 0,
6884 : /* 14398*/ OPC_CheckChild1Integer, 16,
6885 : /* 14400*/ OPC_CheckChild1Type, MVT::i32,
6886 : /* 14402*/ OPC_MoveParent,
6887 : /* 14403*/ OPC_MoveChild1,
6888 : /* 14404*/ OPC_CheckValueType, MVT::i8,
6889 : /* 14406*/ OPC_MoveParent,
6890 : /* 14407*/ OPC_MoveParent,
6891 : /* 14408*/ OPC_MoveChild1,
6892 : /* 14409*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
6893 : /* 14412*/ OPC_MoveChild0,
6894 : /* 14413*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6895 : /* 14416*/ OPC_CheckChild0Same, 1,
6896 : /* 14418*/ OPC_CheckChild1Integer, 16,
6897 : /* 14420*/ OPC_CheckChild1Type, MVT::i32,
6898 : /* 14422*/ OPC_MoveParent,
6899 : /* 14423*/ OPC_MoveChild1,
6900 : /* 14424*/ OPC_CheckValueType, MVT::i8,
6901 : /* 14426*/ OPC_MoveParent,
6902 : /* 14427*/ OPC_MoveParent,
6903 : /* 14428*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6904 : /* 14430*/ OPC_MoveParent,
6905 : /* 14431*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6906 : /* 14433*/ OPC_MoveParent,
6907 : /* 14434*/ OPC_MoveChild1,
6908 : /* 14435*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
6909 : /* 14438*/ OPC_MoveChild0,
6910 : /* 14439*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6911 : /* 14442*/ OPC_Scope, 68, /*->14512*/ // 2 children in Scope
6912 : /* 14444*/ OPC_CheckChild0Same, 1,
6913 : /* 14446*/ OPC_CheckChild1Integer, 24,
6914 : /* 14448*/ OPC_CheckChild1Type, MVT::i32,
6915 : /* 14450*/ OPC_MoveParent,
6916 : /* 14451*/ OPC_MoveChild1,
6917 : /* 14452*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6918 : /* 14455*/ OPC_CheckChild0Same, 0,
6919 : /* 14457*/ OPC_CheckChild1Integer, 24,
6920 : /* 14459*/ OPC_CheckChild1Type, MVT::i32,
6921 : /* 14461*/ OPC_MoveParent,
6922 : /* 14462*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6923 : /* 14464*/ OPC_MoveParent,
6924 : /* 14465*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6925 : /* 14467*/ OPC_CheckType, MVT::i32,
6926 : /* 14469*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6927 : /* 14471*/ OPC_EmitInteger, MVT::i32, 8,
6928 : /* 14474*/ OPC_EmitInteger, MVT::i32, 8,
6929 : /* 14477*/ OPC_EmitInteger, MVT::i32, 8,
6930 : /* 14480*/ OPC_EmitInteger, MVT::i1, 0,
6931 : /* 14483*/ OPC_EmitInteger, MVT::i32, 0,
6932 : /* 14486*/ OPC_EmitInteger, MVT::i32, 0,
6933 : /* 14489*/ OPC_EmitInteger, MVT::i32, 0,
6934 : /* 14492*/ OPC_EmitInteger, MVT::i32, 0,
6935 : /* 14495*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6936 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6937 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6938 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6939 : /* 14512*/ /*Scope*/ 68, /*->14581*/
6940 : /* 14513*/ OPC_CheckChild0Same, 0,
6941 : /* 14515*/ OPC_CheckChild1Integer, 24,
6942 : /* 14517*/ OPC_CheckChild1Type, MVT::i32,
6943 : /* 14519*/ OPC_MoveParent,
6944 : /* 14520*/ OPC_MoveChild1,
6945 : /* 14521*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
6946 : /* 14524*/ OPC_CheckChild0Same, 1,
6947 : /* 14526*/ OPC_CheckChild1Integer, 24,
6948 : /* 14528*/ OPC_CheckChild1Type, MVT::i32,
6949 : /* 14530*/ OPC_MoveParent,
6950 : /* 14531*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
6951 : /* 14533*/ OPC_MoveParent,
6952 : /* 14534*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
6953 : /* 14536*/ OPC_CheckType, MVT::i32,
6954 : /* 14538*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
6955 : /* 14540*/ OPC_EmitInteger, MVT::i32, 8,
6956 : /* 14543*/ OPC_EmitInteger, MVT::i32, 8,
6957 : /* 14546*/ OPC_EmitInteger, MVT::i32, 8,
6958 : /* 14549*/ OPC_EmitInteger, MVT::i1, 0,
6959 : /* 14552*/ OPC_EmitInteger, MVT::i32, 0,
6960 : /* 14555*/ OPC_EmitInteger, MVT::i32, 0,
6961 : /* 14558*/ OPC_EmitInteger, MVT::i32, 0,
6962 : /* 14561*/ OPC_EmitInteger, MVT::i32, 0,
6963 : /* 14564*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
6964 : MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10,
6965 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), i8:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 98
6966 : // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
6967 : /* 14581*/ 0, /*End of Scope*/
6968 : /* 14582*/ 0, /*End of Scope*/
6969 : /* 14583*/ 0, /*End of Scope*/
6970 : /* 14584*/ 0, /*End of Scope*/
6971 : /* 14585*/ 0, // EndSwitchOpcode
6972 : /* 14586*/ /*SwitchOpcode*/ 107|128,50/*6507*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->21097
6973 : /* 14590*/ OPC_MoveChild0,
6974 : /* 14591*/ OPC_Scope, 118|128,48/*6262*/, /*->20856*/ // 2 children in Scope
6975 : /* 14594*/ OPC_CheckAndImm, 127|128,1/*255*/,
6976 : /* 14597*/ OPC_MoveChild0,
6977 : /* 14598*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6978 : /* 14601*/ OPC_RecordChild0, // #0 = $src0
6979 : /* 14602*/ OPC_CheckChild1Integer, 16,
6980 : /* 14604*/ OPC_CheckChild1Type, MVT::i32,
6981 : /* 14606*/ OPC_MoveParent,
6982 : /* 14607*/ OPC_MoveParent,
6983 : /* 14608*/ OPC_MoveChild1,
6984 : /* 14609*/ OPC_CheckAndImm, 127|128,1/*255*/,
6985 : /* 14612*/ OPC_MoveChild0,
6986 : /* 14613*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
6987 : /* 14616*/ OPC_RecordChild0, // #1 = $src1
6988 : /* 14617*/ OPC_CheckChild1Integer, 16,
6989 : /* 14619*/ OPC_CheckChild1Type, MVT::i32,
6990 : /* 14621*/ OPC_MoveParent,
6991 : /* 14622*/ OPC_MoveParent,
6992 : /* 14623*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
6993 : /* 14625*/ OPC_MoveParent,
6994 : /* 14626*/ OPC_MoveChild1,
6995 : /* 14627*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
6996 : /* 14630*/ OPC_MoveChild0,
6997 : /* 14631*/ OPC_SwitchOpcode /*2 cases */, 40|128,25/*3240*/, TARGET_VAL(ISD::ADD),// ->17876
6998 : /* 14636*/ OPC_Scope, 39|128,6/*807*/, /*->15446*/ // 4 children in Scope
6999 : /* 14639*/ OPC_RecordChild0, // #2 = $src2
7000 : /* 14640*/ OPC_MoveChild1,
7001 : /* 14641*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7002 : /* 14644*/ OPC_MoveChild0,
7003 : /* 14645*/ OPC_CheckAndImm, 127|128,1/*255*/,
7004 : /* 14648*/ OPC_Scope, 12|128,3/*396*/, /*->15047*/ // 2 children in Scope
7005 : /* 14651*/ OPC_CheckChild0Same, 0,
7006 : /* 14653*/ OPC_MoveParent,
7007 : /* 14654*/ OPC_MoveChild1,
7008 : /* 14655*/ OPC_CheckAndImm, 127|128,1/*255*/,
7009 : /* 14658*/ OPC_CheckChild0Same, 1,
7010 : /* 14660*/ OPC_MoveParent,
7011 : /* 14661*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7012 : /* 14663*/ OPC_MoveParent,
7013 : /* 14664*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7014 : /* 14666*/ OPC_MoveParent,
7015 : /* 14667*/ OPC_MoveChild1,
7016 : /* 14668*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7017 : /* 14671*/ OPC_MoveChild0,
7018 : /* 14672*/ OPC_CheckAndImm, 127|128,1/*255*/,
7019 : /* 14675*/ OPC_MoveChild0,
7020 : /* 14676*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7021 : /* 14679*/ OPC_Scope, 53|128,1/*181*/, /*->14863*/ // 2 children in Scope
7022 : /* 14682*/ OPC_CheckChild0Same, 0,
7023 : /* 14684*/ OPC_CheckChild1Integer, 8,
7024 : /* 14686*/ OPC_CheckChild1Type, MVT::i32,
7025 : /* 14688*/ OPC_MoveParent,
7026 : /* 14689*/ OPC_MoveParent,
7027 : /* 14690*/ OPC_MoveChild1,
7028 : /* 14691*/ OPC_CheckAndImm, 127|128,1/*255*/,
7029 : /* 14694*/ OPC_MoveChild0,
7030 : /* 14695*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7031 : /* 14698*/ OPC_CheckChild0Same, 1,
7032 : /* 14700*/ OPC_CheckChild1Integer, 8,
7033 : /* 14702*/ OPC_CheckChild1Type, MVT::i32,
7034 : /* 14704*/ OPC_MoveParent,
7035 : /* 14705*/ OPC_MoveParent,
7036 : /* 14706*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7037 : /* 14708*/ OPC_MoveParent,
7038 : /* 14709*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7039 : /* 14711*/ OPC_MoveParent,
7040 : /* 14712*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7041 : /* 14714*/ OPC_MoveParent,
7042 : /* 14715*/ OPC_MoveChild1,
7043 : /* 14716*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7044 : /* 14719*/ OPC_MoveChild0,
7045 : /* 14720*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7046 : /* 14723*/ OPC_Scope, 68, /*->14793*/ // 2 children in Scope
7047 : /* 14725*/ OPC_CheckChild0Same, 0,
7048 : /* 14727*/ OPC_CheckChild1Integer, 24,
7049 : /* 14729*/ OPC_CheckChild1Type, MVT::i32,
7050 : /* 14731*/ OPC_MoveParent,
7051 : /* 14732*/ OPC_MoveChild1,
7052 : /* 14733*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7053 : /* 14736*/ OPC_CheckChild0Same, 1,
7054 : /* 14738*/ OPC_CheckChild1Integer, 24,
7055 : /* 14740*/ OPC_CheckChild1Type, MVT::i32,
7056 : /* 14742*/ OPC_MoveParent,
7057 : /* 14743*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7058 : /* 14745*/ OPC_MoveParent,
7059 : /* 14746*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7060 : /* 14748*/ OPC_CheckType, MVT::i32,
7061 : /* 14750*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7062 : /* 14752*/ OPC_EmitInteger, MVT::i32, 8,
7063 : /* 14755*/ OPC_EmitInteger, MVT::i32, 8,
7064 : /* 14758*/ OPC_EmitInteger, MVT::i32, 8,
7065 : /* 14761*/ OPC_EmitInteger, MVT::i1, 0,
7066 : /* 14764*/ OPC_EmitInteger, MVT::i32, 0,
7067 : /* 14767*/ OPC_EmitInteger, MVT::i32, 0,
7068 : /* 14770*/ OPC_EmitInteger, MVT::i32, 0,
7069 : /* 14773*/ OPC_EmitInteger, MVT::i32, 0,
7070 : /* 14776*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7071 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7072 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7073 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7074 : /* 14793*/ /*Scope*/ 68, /*->14862*/
7075 : /* 14794*/ OPC_CheckChild0Same, 1,
7076 : /* 14796*/ OPC_CheckChild1Integer, 24,
7077 : /* 14798*/ OPC_CheckChild1Type, MVT::i32,
7078 : /* 14800*/ OPC_MoveParent,
7079 : /* 14801*/ OPC_MoveChild1,
7080 : /* 14802*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7081 : /* 14805*/ OPC_CheckChild0Same, 0,
7082 : /* 14807*/ OPC_CheckChild1Integer, 24,
7083 : /* 14809*/ OPC_CheckChild1Type, MVT::i32,
7084 : /* 14811*/ OPC_MoveParent,
7085 : /* 14812*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7086 : /* 14814*/ OPC_MoveParent,
7087 : /* 14815*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7088 : /* 14817*/ OPC_CheckType, MVT::i32,
7089 : /* 14819*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7090 : /* 14821*/ OPC_EmitInteger, MVT::i32, 8,
7091 : /* 14824*/ OPC_EmitInteger, MVT::i32, 8,
7092 : /* 14827*/ OPC_EmitInteger, MVT::i32, 8,
7093 : /* 14830*/ OPC_EmitInteger, MVT::i1, 0,
7094 : /* 14833*/ OPC_EmitInteger, MVT::i32, 0,
7095 : /* 14836*/ OPC_EmitInteger, MVT::i32, 0,
7096 : /* 14839*/ OPC_EmitInteger, MVT::i32, 0,
7097 : /* 14842*/ OPC_EmitInteger, MVT::i32, 0,
7098 : /* 14845*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7099 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7100 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7101 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7102 : /* 14862*/ 0, /*End of Scope*/
7103 : /* 14863*/ /*Scope*/ 53|128,1/*181*/, /*->15046*/
7104 : /* 14865*/ OPC_CheckChild0Same, 1,
7105 : /* 14867*/ OPC_CheckChild1Integer, 8,
7106 : /* 14869*/ OPC_CheckChild1Type, MVT::i32,
7107 : /* 14871*/ OPC_MoveParent,
7108 : /* 14872*/ OPC_MoveParent,
7109 : /* 14873*/ OPC_MoveChild1,
7110 : /* 14874*/ OPC_CheckAndImm, 127|128,1/*255*/,
7111 : /* 14877*/ OPC_MoveChild0,
7112 : /* 14878*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7113 : /* 14881*/ OPC_CheckChild0Same, 0,
7114 : /* 14883*/ OPC_CheckChild1Integer, 8,
7115 : /* 14885*/ OPC_CheckChild1Type, MVT::i32,
7116 : /* 14887*/ OPC_MoveParent,
7117 : /* 14888*/ OPC_MoveParent,
7118 : /* 14889*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7119 : /* 14891*/ OPC_MoveParent,
7120 : /* 14892*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7121 : /* 14894*/ OPC_MoveParent,
7122 : /* 14895*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7123 : /* 14897*/ OPC_MoveParent,
7124 : /* 14898*/ OPC_MoveChild1,
7125 : /* 14899*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7126 : /* 14902*/ OPC_MoveChild0,
7127 : /* 14903*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7128 : /* 14906*/ OPC_Scope, 68, /*->14976*/ // 2 children in Scope
7129 : /* 14908*/ OPC_CheckChild0Same, 0,
7130 : /* 14910*/ OPC_CheckChild1Integer, 24,
7131 : /* 14912*/ OPC_CheckChild1Type, MVT::i32,
7132 : /* 14914*/ OPC_MoveParent,
7133 : /* 14915*/ OPC_MoveChild1,
7134 : /* 14916*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7135 : /* 14919*/ OPC_CheckChild0Same, 1,
7136 : /* 14921*/ OPC_CheckChild1Integer, 24,
7137 : /* 14923*/ OPC_CheckChild1Type, MVT::i32,
7138 : /* 14925*/ OPC_MoveParent,
7139 : /* 14926*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7140 : /* 14928*/ OPC_MoveParent,
7141 : /* 14929*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7142 : /* 14931*/ OPC_CheckType, MVT::i32,
7143 : /* 14933*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7144 : /* 14935*/ OPC_EmitInteger, MVT::i32, 8,
7145 : /* 14938*/ OPC_EmitInteger, MVT::i32, 8,
7146 : /* 14941*/ OPC_EmitInteger, MVT::i32, 8,
7147 : /* 14944*/ OPC_EmitInteger, MVT::i1, 0,
7148 : /* 14947*/ OPC_EmitInteger, MVT::i32, 0,
7149 : /* 14950*/ OPC_EmitInteger, MVT::i32, 0,
7150 : /* 14953*/ OPC_EmitInteger, MVT::i32, 0,
7151 : /* 14956*/ OPC_EmitInteger, MVT::i32, 0,
7152 : /* 14959*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7153 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7154 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7155 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7156 : /* 14976*/ /*Scope*/ 68, /*->15045*/
7157 : /* 14977*/ OPC_CheckChild0Same, 1,
7158 : /* 14979*/ OPC_CheckChild1Integer, 24,
7159 : /* 14981*/ OPC_CheckChild1Type, MVT::i32,
7160 : /* 14983*/ OPC_MoveParent,
7161 : /* 14984*/ OPC_MoveChild1,
7162 : /* 14985*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7163 : /* 14988*/ OPC_CheckChild0Same, 0,
7164 : /* 14990*/ OPC_CheckChild1Integer, 24,
7165 : /* 14992*/ OPC_CheckChild1Type, MVT::i32,
7166 : /* 14994*/ OPC_MoveParent,
7167 : /* 14995*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7168 : /* 14997*/ OPC_MoveParent,
7169 : /* 14998*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7170 : /* 15000*/ OPC_CheckType, MVT::i32,
7171 : /* 15002*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7172 : /* 15004*/ OPC_EmitInteger, MVT::i32, 8,
7173 : /* 15007*/ OPC_EmitInteger, MVT::i32, 8,
7174 : /* 15010*/ OPC_EmitInteger, MVT::i32, 8,
7175 : /* 15013*/ OPC_EmitInteger, MVT::i1, 0,
7176 : /* 15016*/ OPC_EmitInteger, MVT::i32, 0,
7177 : /* 15019*/ OPC_EmitInteger, MVT::i32, 0,
7178 : /* 15022*/ OPC_EmitInteger, MVT::i32, 0,
7179 : /* 15025*/ OPC_EmitInteger, MVT::i32, 0,
7180 : /* 15028*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7181 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7182 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7183 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7184 : /* 15045*/ 0, /*End of Scope*/
7185 : /* 15046*/ 0, /*End of Scope*/
7186 : /* 15047*/ /*Scope*/ 12|128,3/*396*/, /*->15445*/
7187 : /* 15049*/ OPC_CheckChild0Same, 1,
7188 : /* 15051*/ OPC_MoveParent,
7189 : /* 15052*/ OPC_MoveChild1,
7190 : /* 15053*/ OPC_CheckAndImm, 127|128,1/*255*/,
7191 : /* 15056*/ OPC_CheckChild0Same, 0,
7192 : /* 15058*/ OPC_MoveParent,
7193 : /* 15059*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7194 : /* 15061*/ OPC_MoveParent,
7195 : /* 15062*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7196 : /* 15064*/ OPC_MoveParent,
7197 : /* 15065*/ OPC_MoveChild1,
7198 : /* 15066*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7199 : /* 15069*/ OPC_MoveChild0,
7200 : /* 15070*/ OPC_CheckAndImm, 127|128,1/*255*/,
7201 : /* 15073*/ OPC_MoveChild0,
7202 : /* 15074*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7203 : /* 15077*/ OPC_Scope, 53|128,1/*181*/, /*->15261*/ // 2 children in Scope
7204 : /* 15080*/ OPC_CheckChild0Same, 0,
7205 : /* 15082*/ OPC_CheckChild1Integer, 8,
7206 : /* 15084*/ OPC_CheckChild1Type, MVT::i32,
7207 : /* 15086*/ OPC_MoveParent,
7208 : /* 15087*/ OPC_MoveParent,
7209 : /* 15088*/ OPC_MoveChild1,
7210 : /* 15089*/ OPC_CheckAndImm, 127|128,1/*255*/,
7211 : /* 15092*/ OPC_MoveChild0,
7212 : /* 15093*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7213 : /* 15096*/ OPC_CheckChild0Same, 1,
7214 : /* 15098*/ OPC_CheckChild1Integer, 8,
7215 : /* 15100*/ OPC_CheckChild1Type, MVT::i32,
7216 : /* 15102*/ OPC_MoveParent,
7217 : /* 15103*/ OPC_MoveParent,
7218 : /* 15104*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7219 : /* 15106*/ OPC_MoveParent,
7220 : /* 15107*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7221 : /* 15109*/ OPC_MoveParent,
7222 : /* 15110*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7223 : /* 15112*/ OPC_MoveParent,
7224 : /* 15113*/ OPC_MoveChild1,
7225 : /* 15114*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7226 : /* 15117*/ OPC_MoveChild0,
7227 : /* 15118*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7228 : /* 15121*/ OPC_Scope, 68, /*->15191*/ // 2 children in Scope
7229 : /* 15123*/ OPC_CheckChild0Same, 0,
7230 : /* 15125*/ OPC_CheckChild1Integer, 24,
7231 : /* 15127*/ OPC_CheckChild1Type, MVT::i32,
7232 : /* 15129*/ OPC_MoveParent,
7233 : /* 15130*/ OPC_MoveChild1,
7234 : /* 15131*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7235 : /* 15134*/ OPC_CheckChild0Same, 1,
7236 : /* 15136*/ OPC_CheckChild1Integer, 24,
7237 : /* 15138*/ OPC_CheckChild1Type, MVT::i32,
7238 : /* 15140*/ OPC_MoveParent,
7239 : /* 15141*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7240 : /* 15143*/ OPC_MoveParent,
7241 : /* 15144*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7242 : /* 15146*/ OPC_CheckType, MVT::i32,
7243 : /* 15148*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7244 : /* 15150*/ OPC_EmitInteger, MVT::i32, 8,
7245 : /* 15153*/ OPC_EmitInteger, MVT::i32, 8,
7246 : /* 15156*/ OPC_EmitInteger, MVT::i32, 8,
7247 : /* 15159*/ OPC_EmitInteger, MVT::i1, 0,
7248 : /* 15162*/ OPC_EmitInteger, MVT::i32, 0,
7249 : /* 15165*/ OPC_EmitInteger, MVT::i32, 0,
7250 : /* 15168*/ OPC_EmitInteger, MVT::i32, 0,
7251 : /* 15171*/ OPC_EmitInteger, MVT::i32, 0,
7252 : /* 15174*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7253 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7254 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7255 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7256 : /* 15191*/ /*Scope*/ 68, /*->15260*/
7257 : /* 15192*/ OPC_CheckChild0Same, 1,
7258 : /* 15194*/ OPC_CheckChild1Integer, 24,
7259 : /* 15196*/ OPC_CheckChild1Type, MVT::i32,
7260 : /* 15198*/ OPC_MoveParent,
7261 : /* 15199*/ OPC_MoveChild1,
7262 : /* 15200*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7263 : /* 15203*/ OPC_CheckChild0Same, 0,
7264 : /* 15205*/ OPC_CheckChild1Integer, 24,
7265 : /* 15207*/ OPC_CheckChild1Type, MVT::i32,
7266 : /* 15209*/ OPC_MoveParent,
7267 : /* 15210*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7268 : /* 15212*/ OPC_MoveParent,
7269 : /* 15213*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7270 : /* 15215*/ OPC_CheckType, MVT::i32,
7271 : /* 15217*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7272 : /* 15219*/ OPC_EmitInteger, MVT::i32, 8,
7273 : /* 15222*/ OPC_EmitInteger, MVT::i32, 8,
7274 : /* 15225*/ OPC_EmitInteger, MVT::i32, 8,
7275 : /* 15228*/ OPC_EmitInteger, MVT::i1, 0,
7276 : /* 15231*/ OPC_EmitInteger, MVT::i32, 0,
7277 : /* 15234*/ OPC_EmitInteger, MVT::i32, 0,
7278 : /* 15237*/ OPC_EmitInteger, MVT::i32, 0,
7279 : /* 15240*/ OPC_EmitInteger, MVT::i32, 0,
7280 : /* 15243*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7281 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7282 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7283 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7284 : /* 15260*/ 0, /*End of Scope*/
7285 : /* 15261*/ /*Scope*/ 53|128,1/*181*/, /*->15444*/
7286 : /* 15263*/ OPC_CheckChild0Same, 1,
7287 : /* 15265*/ OPC_CheckChild1Integer, 8,
7288 : /* 15267*/ OPC_CheckChild1Type, MVT::i32,
7289 : /* 15269*/ OPC_MoveParent,
7290 : /* 15270*/ OPC_MoveParent,
7291 : /* 15271*/ OPC_MoveChild1,
7292 : /* 15272*/ OPC_CheckAndImm, 127|128,1/*255*/,
7293 : /* 15275*/ OPC_MoveChild0,
7294 : /* 15276*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7295 : /* 15279*/ OPC_CheckChild0Same, 0,
7296 : /* 15281*/ OPC_CheckChild1Integer, 8,
7297 : /* 15283*/ OPC_CheckChild1Type, MVT::i32,
7298 : /* 15285*/ OPC_MoveParent,
7299 : /* 15286*/ OPC_MoveParent,
7300 : /* 15287*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7301 : /* 15289*/ OPC_MoveParent,
7302 : /* 15290*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7303 : /* 15292*/ OPC_MoveParent,
7304 : /* 15293*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7305 : /* 15295*/ OPC_MoveParent,
7306 : /* 15296*/ OPC_MoveChild1,
7307 : /* 15297*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7308 : /* 15300*/ OPC_MoveChild0,
7309 : /* 15301*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7310 : /* 15304*/ OPC_Scope, 68, /*->15374*/ // 2 children in Scope
7311 : /* 15306*/ OPC_CheckChild0Same, 0,
7312 : /* 15308*/ OPC_CheckChild1Integer, 24,
7313 : /* 15310*/ OPC_CheckChild1Type, MVT::i32,
7314 : /* 15312*/ OPC_MoveParent,
7315 : /* 15313*/ OPC_MoveChild1,
7316 : /* 15314*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7317 : /* 15317*/ OPC_CheckChild0Same, 1,
7318 : /* 15319*/ OPC_CheckChild1Integer, 24,
7319 : /* 15321*/ OPC_CheckChild1Type, MVT::i32,
7320 : /* 15323*/ OPC_MoveParent,
7321 : /* 15324*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7322 : /* 15326*/ OPC_MoveParent,
7323 : /* 15327*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7324 : /* 15329*/ OPC_CheckType, MVT::i32,
7325 : /* 15331*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7326 : /* 15333*/ OPC_EmitInteger, MVT::i32, 8,
7327 : /* 15336*/ OPC_EmitInteger, MVT::i32, 8,
7328 : /* 15339*/ OPC_EmitInteger, MVT::i32, 8,
7329 : /* 15342*/ OPC_EmitInteger, MVT::i1, 0,
7330 : /* 15345*/ OPC_EmitInteger, MVT::i32, 0,
7331 : /* 15348*/ OPC_EmitInteger, MVT::i32, 0,
7332 : /* 15351*/ OPC_EmitInteger, MVT::i32, 0,
7333 : /* 15354*/ OPC_EmitInteger, MVT::i32, 0,
7334 : /* 15357*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7335 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7336 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7337 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7338 : /* 15374*/ /*Scope*/ 68, /*->15443*/
7339 : /* 15375*/ OPC_CheckChild0Same, 1,
7340 : /* 15377*/ OPC_CheckChild1Integer, 24,
7341 : /* 15379*/ OPC_CheckChild1Type, MVT::i32,
7342 : /* 15381*/ OPC_MoveParent,
7343 : /* 15382*/ OPC_MoveChild1,
7344 : /* 15383*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7345 : /* 15386*/ OPC_CheckChild0Same, 0,
7346 : /* 15388*/ OPC_CheckChild1Integer, 24,
7347 : /* 15390*/ OPC_CheckChild1Type, MVT::i32,
7348 : /* 15392*/ OPC_MoveParent,
7349 : /* 15393*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7350 : /* 15395*/ OPC_MoveParent,
7351 : /* 15396*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7352 : /* 15398*/ OPC_CheckType, MVT::i32,
7353 : /* 15400*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7354 : /* 15402*/ OPC_EmitInteger, MVT::i32, 8,
7355 : /* 15405*/ OPC_EmitInteger, MVT::i32, 8,
7356 : /* 15408*/ OPC_EmitInteger, MVT::i32, 8,
7357 : /* 15411*/ OPC_EmitInteger, MVT::i1, 0,
7358 : /* 15414*/ OPC_EmitInteger, MVT::i32, 0,
7359 : /* 15417*/ OPC_EmitInteger, MVT::i32, 0,
7360 : /* 15420*/ OPC_EmitInteger, MVT::i32, 0,
7361 : /* 15423*/ OPC_EmitInteger, MVT::i32, 0,
7362 : /* 15426*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7363 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7364 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7365 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7366 : /* 15443*/ 0, /*End of Scope*/
7367 : /* 15444*/ 0, /*End of Scope*/
7368 : /* 15445*/ 0, /*End of Scope*/
7369 : /* 15446*/ /*Scope*/ 40|128,6/*808*/, /*->16256*/
7370 : /* 15448*/ OPC_MoveChild0,
7371 : /* 15449*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7372 : /* 15452*/ OPC_MoveChild0,
7373 : /* 15453*/ OPC_CheckAndImm, 127|128,1/*255*/,
7374 : /* 15456*/ OPC_Scope, 13|128,3/*397*/, /*->15856*/ // 2 children in Scope
7375 : /* 15459*/ OPC_CheckChild0Same, 0,
7376 : /* 15461*/ OPC_MoveParent,
7377 : /* 15462*/ OPC_MoveChild1,
7378 : /* 15463*/ OPC_CheckAndImm, 127|128,1/*255*/,
7379 : /* 15466*/ OPC_CheckChild0Same, 1,
7380 : /* 15468*/ OPC_MoveParent,
7381 : /* 15469*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7382 : /* 15471*/ OPC_MoveParent,
7383 : /* 15472*/ OPC_RecordChild1, // #2 = $src2
7384 : /* 15473*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7385 : /* 15475*/ OPC_MoveParent,
7386 : /* 15476*/ OPC_MoveChild1,
7387 : /* 15477*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7388 : /* 15480*/ OPC_MoveChild0,
7389 : /* 15481*/ OPC_CheckAndImm, 127|128,1/*255*/,
7390 : /* 15484*/ OPC_MoveChild0,
7391 : /* 15485*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7392 : /* 15488*/ OPC_Scope, 53|128,1/*181*/, /*->15672*/ // 2 children in Scope
7393 : /* 15491*/ OPC_CheckChild0Same, 0,
7394 : /* 15493*/ OPC_CheckChild1Integer, 8,
7395 : /* 15495*/ OPC_CheckChild1Type, MVT::i32,
7396 : /* 15497*/ OPC_MoveParent,
7397 : /* 15498*/ OPC_MoveParent,
7398 : /* 15499*/ OPC_MoveChild1,
7399 : /* 15500*/ OPC_CheckAndImm, 127|128,1/*255*/,
7400 : /* 15503*/ OPC_MoveChild0,
7401 : /* 15504*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7402 : /* 15507*/ OPC_CheckChild0Same, 1,
7403 : /* 15509*/ OPC_CheckChild1Integer, 8,
7404 : /* 15511*/ OPC_CheckChild1Type, MVT::i32,
7405 : /* 15513*/ OPC_MoveParent,
7406 : /* 15514*/ OPC_MoveParent,
7407 : /* 15515*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7408 : /* 15517*/ OPC_MoveParent,
7409 : /* 15518*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7410 : /* 15520*/ OPC_MoveParent,
7411 : /* 15521*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7412 : /* 15523*/ OPC_MoveParent,
7413 : /* 15524*/ OPC_MoveChild1,
7414 : /* 15525*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7415 : /* 15528*/ OPC_MoveChild0,
7416 : /* 15529*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7417 : /* 15532*/ OPC_Scope, 68, /*->15602*/ // 2 children in Scope
7418 : /* 15534*/ OPC_CheckChild0Same, 0,
7419 : /* 15536*/ OPC_CheckChild1Integer, 24,
7420 : /* 15538*/ OPC_CheckChild1Type, MVT::i32,
7421 : /* 15540*/ OPC_MoveParent,
7422 : /* 15541*/ OPC_MoveChild1,
7423 : /* 15542*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7424 : /* 15545*/ OPC_CheckChild0Same, 1,
7425 : /* 15547*/ OPC_CheckChild1Integer, 24,
7426 : /* 15549*/ OPC_CheckChild1Type, MVT::i32,
7427 : /* 15551*/ OPC_MoveParent,
7428 : /* 15552*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7429 : /* 15554*/ OPC_MoveParent,
7430 : /* 15555*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7431 : /* 15557*/ OPC_CheckType, MVT::i32,
7432 : /* 15559*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7433 : /* 15561*/ OPC_EmitInteger, MVT::i32, 8,
7434 : /* 15564*/ OPC_EmitInteger, MVT::i32, 8,
7435 : /* 15567*/ OPC_EmitInteger, MVT::i32, 8,
7436 : /* 15570*/ OPC_EmitInteger, MVT::i1, 0,
7437 : /* 15573*/ OPC_EmitInteger, MVT::i32, 0,
7438 : /* 15576*/ OPC_EmitInteger, MVT::i32, 0,
7439 : /* 15579*/ OPC_EmitInteger, MVT::i32, 0,
7440 : /* 15582*/ OPC_EmitInteger, MVT::i32, 0,
7441 : /* 15585*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7442 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7443 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7444 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7445 : /* 15602*/ /*Scope*/ 68, /*->15671*/
7446 : /* 15603*/ OPC_CheckChild0Same, 1,
7447 : /* 15605*/ OPC_CheckChild1Integer, 24,
7448 : /* 15607*/ OPC_CheckChild1Type, MVT::i32,
7449 : /* 15609*/ OPC_MoveParent,
7450 : /* 15610*/ OPC_MoveChild1,
7451 : /* 15611*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7452 : /* 15614*/ OPC_CheckChild0Same, 0,
7453 : /* 15616*/ OPC_CheckChild1Integer, 24,
7454 : /* 15618*/ OPC_CheckChild1Type, MVT::i32,
7455 : /* 15620*/ OPC_MoveParent,
7456 : /* 15621*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7457 : /* 15623*/ OPC_MoveParent,
7458 : /* 15624*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7459 : /* 15626*/ OPC_CheckType, MVT::i32,
7460 : /* 15628*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7461 : /* 15630*/ OPC_EmitInteger, MVT::i32, 8,
7462 : /* 15633*/ OPC_EmitInteger, MVT::i32, 8,
7463 : /* 15636*/ OPC_EmitInteger, MVT::i32, 8,
7464 : /* 15639*/ OPC_EmitInteger, MVT::i1, 0,
7465 : /* 15642*/ OPC_EmitInteger, MVT::i32, 0,
7466 : /* 15645*/ OPC_EmitInteger, MVT::i32, 0,
7467 : /* 15648*/ OPC_EmitInteger, MVT::i32, 0,
7468 : /* 15651*/ OPC_EmitInteger, MVT::i32, 0,
7469 : /* 15654*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7470 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7471 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7472 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7473 : /* 15671*/ 0, /*End of Scope*/
7474 : /* 15672*/ /*Scope*/ 53|128,1/*181*/, /*->15855*/
7475 : /* 15674*/ OPC_CheckChild0Same, 1,
7476 : /* 15676*/ OPC_CheckChild1Integer, 8,
7477 : /* 15678*/ OPC_CheckChild1Type, MVT::i32,
7478 : /* 15680*/ OPC_MoveParent,
7479 : /* 15681*/ OPC_MoveParent,
7480 : /* 15682*/ OPC_MoveChild1,
7481 : /* 15683*/ OPC_CheckAndImm, 127|128,1/*255*/,
7482 : /* 15686*/ OPC_MoveChild0,
7483 : /* 15687*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7484 : /* 15690*/ OPC_CheckChild0Same, 0,
7485 : /* 15692*/ OPC_CheckChild1Integer, 8,
7486 : /* 15694*/ OPC_CheckChild1Type, MVT::i32,
7487 : /* 15696*/ OPC_MoveParent,
7488 : /* 15697*/ OPC_MoveParent,
7489 : /* 15698*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7490 : /* 15700*/ OPC_MoveParent,
7491 : /* 15701*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7492 : /* 15703*/ OPC_MoveParent,
7493 : /* 15704*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7494 : /* 15706*/ OPC_MoveParent,
7495 : /* 15707*/ OPC_MoveChild1,
7496 : /* 15708*/ OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
7497 : /* 15711*/ OPC_MoveChild0,
7498 : /* 15712*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7499 : /* 15715*/ OPC_Scope, 68, /*->15785*/ // 2 children in Scope
7500 : /* 15717*/ OPC_CheckChild0Same, 0,
7501 : /* 15719*/ OPC_CheckChild1Integer, 24,
7502 : /* 15721*/ OPC_CheckChild1Type, MVT::i32,
7503 : /* 15723*/ OPC_MoveParent,
7504 : /* 15724*/ OPC_MoveChild1,
7505 : /* 15725*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7506 : /* 15728*/ OPC_CheckChild0Same, 1,
7507 : /* 15730*/ OPC_CheckChild1Integer, 24,
7508 : /* 15732*/ OPC_CheckChild1Type, MVT::i32,
7509 : /* 15734*/ OPC_MoveParent,
7510 : /* 15735*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7511 : /* 15737*/ OPC_MoveParent,
7512 : /* 15738*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7513 : /* 15740*/ OPC_CheckType, MVT::i32,
7514 : /* 15742*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7515 : /* 15744*/ OPC_EmitInteger, MVT::i32, 8,
7516 : /* 15747*/ OPC_EmitInteger, MVT::i32, 8,
7517 : /* 15750*/ OPC_EmitInteger, MVT::i32, 8,
7518 : /* 15753*/ OPC_EmitInteger, MVT::i1, 0,
7519 : /* 15756*/ OPC_EmitInteger, MVT::i32, 0,
7520 : /* 15759*/ OPC_EmitInteger, MVT::i32, 0,
7521 : /* 15762*/ OPC_EmitInteger, MVT::i32, 0,
7522 : /* 15765*/ OPC_EmitInteger, MVT::i32, 0,
7523 : /* 15768*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7524 : MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10,
7525 : // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
7526 : // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
7527 : /* 15785*/ /*Scope*/ 68, /*->15854*/
7528 : /* 15786*/ OPC_CheckChild0Same, 1,
7529 : /* 15788*/ OPC_CheckChild1Integer, 24,
7530 : /* 15790*/ OPC_CheckChild1Type, MVT::i32,
7531 : /* 15792*/ OPC_MoveParent,
7532 : /* 15793*/ OPC_MoveChild1,
7533 : /* 15794*/ OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
7534 : /* 15797*/ OPC_CheckChild0Same, 0,
7535 : /* 15799*/ OPC_CheckChild1Integer, 24,
7536 : /* 15801*/ OPC_CheckChild1Type, MVT::i32,
7537 : /* 15803*/ OPC_MoveParent,
7538 : /* 15804*/ OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
7539 : /* 15806*/ OPC_MoveParent,
7540 : /* 15807*/ OPC_CheckPredicate, 0, // Predicate_add_oneuse
7541 : /* 15809*/ OPC_CheckType, MVT::i32,
7542 : /* 15811*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
7543 : /* 15813*/ OPC_EmitInteger, MVT::i32, 8,
7544 : /* 15816*/ OPC_EmitInteger, MVT::i32, 8,
7545 : /* 15819*/ OPC_EmitInteger, MVT::i32, 8,
7546 : /* 15822*/ OPC_EmitInteger, MVT::i1, 0,
7547 : /* 15825*/ OPC_EmitInteger, MVT::i32, 0,
7548 : /* 15828*/ OPC_EmitInteger, MVT::i32, 0,
7549 : /* 15831*/ OPC_EmitInteger, MVT::i32, 0,
7550 : /* 15834*/ OPC_EmitInteger, MVT::i32, 0,
7551 : /* 15837*/ OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
7552 : |