Coverage Report

Created: 2018-12-11 00:00

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-build/lib/Target/AMDGPU/AMDGPUGenDAGISel.inc
Line
Count
Source (jump to first uncovered line)
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
548k
{
53
548k
  // Some target values are emitted as 2 bytes, TARGET_VAL handles
54
548k
  // this.
55
4.07G
  #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
56
548k
  static const unsigned char MatcherTable[] = {
57
548k
/*     0*/  OPC_SwitchOpcode /*198 cases */, 104|128,82|128,3/*59752*/, TARGET_VAL(ISD::ADD),// ->59758
58
548k
/*     6*/    OPC_Scope, 97|128,74|128,3/*58721*/, /*->58731*/ // 10 children in Scope
59
548k
/*    10*/      OPC_MoveChild0,
60
548k
/*    11*/      OPC_SwitchOpcode /*4 cases */, 34|128,105|128,1/*29858*/, TARGET_VAL(ISD::ADD),// ->29875
61
548k
/*    17*/        OPC_Scope, 22|128,99|128,1/*29078*/, /*->29099*/ // 4 children in Scope
62
548k
/*    21*/          OPC_MoveChild0,
63
548k
/*    22*/          OPC_SwitchOpcode /*3 cases */, 69|128,124/*15941*/, TARGET_VAL(ISD::ADD),// ->15968
64
548k
/*    27*/            OPC_MoveChild0,
65
548k
/*    28*/            OPC_SwitchOpcode /*3 cases */, 4|128,72/*9220*/, TARGET_VAL(ISD::ADD),// ->9253
66
548k
/*    33*/              OPC_Scope, 116|128,22/*2932*/, /*->2968*/ // 5 children in Scope
67
548k
/*    36*/                OPC_MoveChild0,
68
548k
/*    37*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
69
548k
/*    40*/                OPC_MoveChild0,
70
548k
/*    41*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
71
548k
/*    44*/                OPC_MoveChild0,
72
548k
/*    45*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
73
548k
/*    48*/                OPC_MoveChild0,
74
548k
/*    49*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
75
548k
/*    52*/                OPC_Scope, 31|128,6/*799*/, /*->854*/ // 4 children in Scope
76
548k
/*    55*/                  OPC_RecordChild0, // #0 = $src2
77
548k
/*    56*/                  OPC_MoveChild1,
78
548k
/*    57*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
79
548k
/*    60*/                  OPC_MoveChild0,
80
548k
/*    61*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
81
548k
/*    64*/                  OPC_MoveChild0,
82
548k
/*    65*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
83
548k
/*    68*/                  OPC_RecordChild0, // #1 = $src0
84
548k
/*    69*/                  OPC_CheckChild1Integer, 28, 
85
548k
/*    71*/                  OPC_CheckChild1Type, MVT::i32,
86
548k
/*    73*/                  OPC_MoveParent,
87
548k
/*    74*/                  OPC_CheckChild1Integer, 28, 
88
548k
/*    76*/                  OPC_CheckChild1Type, MVT::i32,
89
548k
/*    78*/                  OPC_MoveParent,
90
548k
/*    79*/                  OPC_MoveChild1,
91
548k
/*    80*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
92
548k
/*    83*/                  OPC_MoveChild0,
93
548k
/*    84*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
94
548k
/*    87*/                  OPC_RecordChild0, // #2 = $src1
95
548k
/*    88*/                  OPC_CheckChild1Integer, 28, 
96
548k
/*    90*/                  OPC_CheckChild1Type, MVT::i32,
97
548k
/*    92*/                  OPC_MoveParent,
98
548k
/*    93*/                  OPC_CheckChild1Integer, 28, 
99
548k
/*    95*/                  OPC_CheckChild1Type, MVT::i32,
100
548k
/*    97*/                  OPC_MoveParent,
101
548k
/*    98*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
102
548k
/*   100*/                  OPC_MoveParent,
103
548k
/*   101*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
104
548k
/*   103*/                  OPC_MoveParent,
105
548k
/*   104*/                  OPC_MoveChild1,
106
548k
/*   105*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
107
548k
/*   108*/                  OPC_MoveChild0,
108
548k
/*   109*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
109
548k
/*   112*/                  OPC_Scope, 112|128,2/*368*/, /*->483*/ // 2 children in Scope
110
548k
/*   115*/                    OPC_MoveChild0,
111
548k
/*   116*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
112
548k
/*   119*/                    OPC_CheckChild0Same, 1,
113
548k
/*   121*/                    OPC_CheckChild1Integer, 24, 
114
548k
/*   123*/                    OPC_CheckChild1Type, MVT::i32,
115
548k
/*   125*/                    OPC_MoveParent,
116
548k
/*   126*/                    OPC_CheckChild1Integer, 28, 
117
548k
/*   128*/                    OPC_CheckChild1Type, MVT::i32,
118
548k
/*   130*/                    OPC_MoveParent,
119
548k
/*   131*/                    OPC_MoveChild1,
120
548k
/*   132*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
121
548k
/*   135*/                    OPC_MoveChild0,
122
548k
/*   136*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
123
548k
/*   139*/                    OPC_CheckChild0Same, 2,
124
548k
/*   141*/                    OPC_CheckChild1Integer, 24, 
125
548k
/*   143*/                    OPC_CheckChild1Type, MVT::i32,
126
548k
/*   145*/                    OPC_MoveParent,
127
548k
/*   146*/                    OPC_CheckChild1Integer, 28, 
128
548k
/*   148*/                    OPC_CheckChild1Type, MVT::i32,
129
548k
/*   150*/                    OPC_MoveParent,
130
548k
/*   151*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
131
548k
/*   153*/                    OPC_MoveParent,
132
548k
/*   154*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
133
548k
/*   156*/                    OPC_MoveParent,
134
548k
/*   157*/                    OPC_MoveChild1,
135
548k
/*   158*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
136
548k
/*   161*/                    OPC_MoveChild0,
137
548k
/*   162*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
138
548k
/*   165*/                    OPC_MoveChild0,
139
548k
/*   166*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
140
548k
/*   169*/                    OPC_CheckChild0Same, 1,
141
548k
/*   171*/                    OPC_CheckChild1Integer, 20, 
142
548k
/*   173*/                    OPC_CheckChild1Type, MVT::i32,
143
548k
/*   175*/                    OPC_MoveParent,
144
548k
/*   176*/                    OPC_CheckChild1Integer, 28, 
145
548k
/*   178*/                    OPC_CheckChild1Type, MVT::i32,
146
548k
/*   180*/                    OPC_MoveParent,
147
548k
/*   181*/                    OPC_MoveChild1,
148
548k
/*   182*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
149
548k
/*   185*/                    OPC_MoveChild0,
150
548k
/*   186*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
151
548k
/*   189*/                    OPC_CheckChild0Same, 2,
152
548k
/*   191*/                    OPC_CheckChild1Integer, 20, 
153
548k
/*   193*/                    OPC_CheckChild1Type, MVT::i32,
154
548k
/*   195*/                    OPC_MoveParent,
155
548k
/*   196*/                    OPC_CheckChild1Integer, 28, 
156
548k
/*   198*/                    OPC_CheckChild1Type, MVT::i32,
157
548k
/*   200*/                    OPC_MoveParent,
158
548k
/*   201*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
159
548k
/*   203*/                    OPC_MoveParent,
160
548k
/*   204*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
161
548k
/*   206*/                    OPC_MoveParent,
162
548k
/*   207*/                    OPC_MoveChild1,
163
548k
/*   208*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
164
548k
/*   211*/                    OPC_MoveChild0,
165
548k
/*   212*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
166
548k
/*   215*/                    OPC_MoveChild0,
167
548k
/*   216*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
168
548k
/*   219*/                    OPC_CheckChild0Same, 1,
169
548k
/*   221*/                    OPC_CheckChild1Integer, 16, 
170
548k
/*   223*/                    OPC_CheckChild1Type, MVT::i32,
171
548k
/*   225*/                    OPC_MoveParent,
172
548k
/*   226*/                    OPC_CheckChild1Integer, 28, 
173
548k
/*   228*/                    OPC_CheckChild1Type, MVT::i32,
174
548k
/*   230*/                    OPC_MoveParent,
175
548k
/*   231*/                    OPC_MoveChild1,
176
548k
/*   232*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
177
548k
/*   235*/                    OPC_MoveChild0,
178
548k
/*   236*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
179
548k
/*   239*/                    OPC_CheckChild0Same, 2,
180
548k
/*   241*/                    OPC_CheckChild1Integer, 16, 
181
548k
/*   243*/                    OPC_CheckChild1Type, MVT::i32,
182
548k
/*   245*/                    OPC_MoveParent,
183
548k
/*   246*/                    OPC_CheckChild1Integer, 28, 
184
548k
/*   248*/                    OPC_CheckChild1Type, MVT::i32,
185
548k
/*   250*/                    OPC_MoveParent,
186
548k
/*   251*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
187
548k
/*   253*/                    OPC_MoveParent,
188
548k
/*   254*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
189
548k
/*   256*/                    OPC_MoveParent,
190
548k
/*   257*/                    OPC_MoveChild1,
191
548k
/*   258*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
192
548k
/*   261*/                    OPC_MoveChild0,
193
548k
/*   262*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
194
548k
/*   265*/                    OPC_MoveChild0,
195
548k
/*   266*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
196
548k
/*   269*/                    OPC_CheckChild0Same, 1,
197
548k
/*   271*/                    OPC_CheckChild1Integer, 12, 
198
548k
/*   273*/                    OPC_CheckChild1Type, MVT::i32,
199
548k
/*   275*/                    OPC_MoveParent,
200
548k
/*   276*/                    OPC_CheckChild1Integer, 28, 
201
548k
/*   278*/                    OPC_CheckChild1Type, MVT::i32,
202
548k
/*   280*/                    OPC_MoveParent,
203
548k
/*   281*/                    OPC_MoveChild1,
204
548k
/*   282*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
205
548k
/*   285*/                    OPC_MoveChild0,
206
548k
/*   286*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
207
548k
/*   289*/                    OPC_CheckChild0Same, 2,
208
548k
/*   291*/                    OPC_CheckChild1Integer, 12, 
209
548k
/*   293*/                    OPC_CheckChild1Type, MVT::i32,
210
548k
/*   295*/                    OPC_MoveParent,
211
548k
/*   296*/                    OPC_CheckChild1Integer, 28, 
212
548k
/*   298*/                    OPC_CheckChild1Type, MVT::i32,
213
548k
/*   300*/                    OPC_MoveParent,
214
548k
/*   301*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
215
548k
/*   303*/                    OPC_MoveParent,
216
548k
/*   304*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
217
548k
/*   306*/                    OPC_MoveParent,
218
548k
/*   307*/                    OPC_MoveChild1,
219
548k
/*   308*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
220
548k
/*   311*/                    OPC_MoveChild0,
221
548k
/*   312*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
222
548k
/*   315*/                    OPC_MoveChild0,
223
548k
/*   316*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
224
548k
/*   319*/                    OPC_CheckChild0Same, 1,
225
548k
/*   321*/                    OPC_CheckChild1Integer, 8, 
226
548k
/*   323*/                    OPC_CheckChild1Type, MVT::i32,
227
548k
/*   325*/                    OPC_MoveParent,
228
548k
/*   326*/                    OPC_CheckChild1Integer, 28, 
229
548k
/*   328*/                    OPC_CheckChild1Type, MVT::i32,
230
548k
/*   330*/                    OPC_MoveParent,
231
548k
/*   331*/                    OPC_MoveChild1,
232
548k
/*   332*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
233
548k
/*   335*/                    OPC_MoveChild0,
234
548k
/*   336*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
235
548k
/*   339*/                    OPC_CheckChild0Same, 2,
236
548k
/*   341*/                    OPC_CheckChild1Integer, 8, 
237
548k
/*   343*/                    OPC_CheckChild1Type, MVT::i32,
238
548k
/*   345*/                    OPC_MoveParent,
239
548k
/*   346*/                    OPC_CheckChild1Integer, 28, 
240
548k
/*   348*/                    OPC_CheckChild1Type, MVT::i32,
241
548k
/*   350*/                    OPC_MoveParent,
242
548k
/*   351*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
243
548k
/*   353*/                    OPC_MoveParent,
244
548k
/*   354*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
245
548k
/*   356*/                    OPC_MoveParent,
246
548k
/*   357*/                    OPC_MoveChild1,
247
548k
/*   358*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
248
548k
/*   361*/                    OPC_MoveChild0,
249
548k
/*   362*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
250
548k
/*   365*/                    OPC_MoveChild0,
251
548k
/*   366*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
252
548k
/*   369*/                    OPC_CheckChild0Same, 1,
253
548k
/*   371*/                    OPC_CheckChild1Integer, 4, 
254
548k
/*   373*/                    OPC_CheckChild1Type, MVT::i32,
255
548k
/*   375*/                    OPC_MoveParent,
256
548k
/*   376*/                    OPC_CheckChild1Integer, 28, 
257
548k
/*   378*/                    OPC_CheckChild1Type, MVT::i32,
258
548k
/*   380*/                    OPC_MoveParent,
259
548k
/*   381*/                    OPC_MoveChild1,
260
548k
/*   382*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
261
548k
/*   385*/                    OPC_MoveChild0,
262
548k
/*   386*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
263
548k
/*   389*/                    OPC_CheckChild0Same, 2,
264
548k
/*   391*/                    OPC_CheckChild1Integer, 4, 
265
548k
/*   393*/                    OPC_CheckChild1Type, MVT::i32,
266
548k
/*   395*/                    OPC_MoveParent,
267
548k
/*   396*/                    OPC_CheckChild1Integer, 28, 
268
548k
/*   398*/                    OPC_CheckChild1Type, MVT::i32,
269
548k
/*   400*/                    OPC_MoveParent,
270
548k
/*   401*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
271
548k
/*   403*/                    OPC_MoveParent,
272
548k
/*   404*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
273
548k
/*   406*/                    OPC_MoveParent,
274
548k
/*   407*/                    OPC_MoveChild1,
275
548k
/*   408*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
276
548k
/*   411*/                    OPC_MoveChild0,
277
548k
/*   412*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
278
548k
/*   415*/                    OPC_CheckChild0Same, 1,
279
548k
/*   417*/                    OPC_CheckChild1Integer, 28, 
280
548k
/*   419*/                    OPC_CheckChild1Type, MVT::i32,
281
548k
/*   421*/                    OPC_MoveParent,
282
548k
/*   422*/                    OPC_MoveChild1,
283
548k
/*   423*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
284
548k
/*   426*/                    OPC_CheckChild0Same, 2,
285
548k
/*   428*/                    OPC_CheckChild1Integer, 28, 
286
548k
/*   430*/                    OPC_CheckChild1Type, MVT::i32,
287
548k
/*   432*/                    OPC_MoveParent,
288
548k
/*   433*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
289
548k
/*   435*/                    OPC_MoveParent,
290
548k
/*   436*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
291
548k
/*   438*/                    OPC_CheckType, MVT::i32,
292
548k
/*   440*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
293
548k
/*   442*/                    OPC_EmitInteger, MVT::i32, 8, 
294
548k
/*   445*/                    OPC_EmitInteger, MVT::i32, 8, 
295
548k
/*   448*/                    OPC_EmitInteger, MVT::i32, 8, 
296
548k
/*   451*/                    OPC_EmitInteger, MVT::i1, 0, 
297
548k
/*   454*/                    OPC_EmitInteger, MVT::i32, 0, 
298
548k
/*   457*/                    OPC_EmitInteger, MVT::i32, 0, 
299
548k
/*   460*/                    OPC_EmitInteger, MVT::i32, 0, 
300
548k
/*   463*/                    OPC_EmitInteger, MVT::i32, 0, 
301
548k
/*   466*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
302
548k
                                  MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
303
548k
                              // 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
304
548k
                              // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
305
548k
/*   483*/                  /*Scope*/ 112|128,2/*368*/, /*->853*/
306
548k
/*   485*/                    OPC_CheckChild0Same, 1,
307
548k
/*   487*/                    OPC_CheckChild1Integer, 28, 
308
548k
/*   489*/                    OPC_CheckChild1Type, MVT::i32,
309
548k
/*   491*/                    OPC_MoveParent,
310
548k
/*   492*/                    OPC_MoveChild1,
311
548k
/*   493*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
312
548k
/*   496*/                    OPC_CheckChild0Same, 2,
313
548k
/*   498*/                    OPC_CheckChild1Integer, 28, 
314
548k
/*   500*/                    OPC_CheckChild1Type, MVT::i32,
315
548k
/*   502*/                    OPC_MoveParent,
316
548k
/*   503*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
317
548k
/*   505*/                    OPC_MoveParent,
318
548k
/*   506*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
319
548k
/*   508*/                    OPC_MoveParent,
320
548k
/*   509*/                    OPC_MoveChild1,
321
548k
/*   510*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
322
548k
/*   513*/                    OPC_MoveChild0,
323
548k
/*   514*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
324
548k
/*   517*/                    OPC_MoveChild0,
325
548k
/*   518*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
326
548k
/*   521*/                    OPC_CheckChild0Same, 1,
327
548k
/*   523*/                    OPC_CheckChild1Integer, 24, 
328
548k
/*   525*/                    OPC_CheckChild1Type, MVT::i32,
329
548k
/*   527*/                    OPC_MoveParent,
330
548k
/*   528*/                    OPC_CheckChild1Integer, 28, 
331
548k
/*   530*/                    OPC_CheckChild1Type, MVT::i32,
332
548k
/*   532*/                    OPC_MoveParent,
333
548k
/*   533*/                    OPC_MoveChild1,
334
548k
/*   534*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
335
548k
/*   537*/                    OPC_MoveChild0,
336
548k
/*   538*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
337
548k
/*   541*/                    OPC_CheckChild0Same, 2,
338
548k
/*   543*/                    OPC_CheckChild1Integer, 24, 
339
548k
/*   545*/                    OPC_CheckChild1Type, MVT::i32,
340
548k
/*   547*/                    OPC_MoveParent,
341
548k
/*   548*/                    OPC_CheckChild1Integer, 28, 
342
548k
/*   550*/                    OPC_CheckChild1Type, MVT::i32,
343
548k
/*   552*/                    OPC_MoveParent,
344
548k
/*   553*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
345
548k
/*   555*/                    OPC_MoveParent,
346
548k
/*   556*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
347
548k
/*   558*/                    OPC_MoveParent,
348
548k
/*   559*/                    OPC_MoveChild1,
349
548k
/*   560*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
350
548k
/*   563*/                    OPC_MoveChild0,
351
548k
/*   564*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
352
548k
/*   567*/                    OPC_MoveChild0,
353
548k
/*   568*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
354
548k
/*   571*/                    OPC_CheckChild0Same, 1,
355
548k
/*   573*/                    OPC_CheckChild1Integer, 20, 
356
548k
/*   575*/                    OPC_CheckChild1Type, MVT::i32,
357
548k
/*   577*/                    OPC_MoveParent,
358
548k
/*   578*/                    OPC_CheckChild1Integer, 28, 
359
548k
/*   580*/                    OPC_CheckChild1Type, MVT::i32,
360
548k
/*   582*/                    OPC_MoveParent,
361
548k
/*   583*/                    OPC_MoveChild1,
362
548k
/*   584*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
363
548k
/*   587*/                    OPC_MoveChild0,
364
548k
/*   588*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
365
548k
/*   591*/                    OPC_CheckChild0Same, 2,
366
548k
/*   593*/                    OPC_CheckChild1Integer, 20, 
367
548k
/*   595*/                    OPC_CheckChild1Type, MVT::i32,
368
548k
/*   597*/                    OPC_MoveParent,
369
548k
/*   598*/                    OPC_CheckChild1Integer, 28, 
370
548k
/*   600*/                    OPC_CheckChild1Type, MVT::i32,
371
548k
/*   602*/                    OPC_MoveParent,
372
548k
/*   603*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
373
548k
/*   605*/                    OPC_MoveParent,
374
548k
/*   606*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
375
548k
/*   608*/                    OPC_MoveParent,
376
548k
/*   609*/                    OPC_MoveChild1,
377
548k
/*   610*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
378
548k
/*   613*/                    OPC_MoveChild0,
379
548k
/*   614*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
380
548k
/*   617*/                    OPC_MoveChild0,
381
548k
/*   618*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
382
548k
/*   621*/                    OPC_CheckChild0Same, 1,
383
548k
/*   623*/                    OPC_CheckChild1Integer, 16, 
384
548k
/*   625*/                    OPC_CheckChild1Type, MVT::i32,
385
548k
/*   627*/                    OPC_MoveParent,
386
548k
/*   628*/                    OPC_CheckChild1Integer, 28, 
387
548k
/*   630*/                    OPC_CheckChild1Type, MVT::i32,
388
548k
/*   632*/                    OPC_MoveParent,
389
548k
/*   633*/                    OPC_MoveChild1,
390
548k
/*   634*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
391
548k
/*   637*/                    OPC_MoveChild0,
392
548k
/*   638*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
393
548k
/*   641*/                    OPC_CheckChild0Same, 2,
394
548k
/*   643*/                    OPC_CheckChild1Integer, 16, 
395
548k
/*   645*/                    OPC_CheckChild1Type, MVT::i32,
396
548k
/*   647*/                    OPC_MoveParent,
397
548k
/*   648*/                    OPC_CheckChild1Integer, 28, 
398
548k
/*   650*/                    OPC_CheckChild1Type, MVT::i32,
399
548k
/*   652*/                    OPC_MoveParent,
400
548k
/*   653*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
401
548k
/*   655*/                    OPC_MoveParent,
402
548k
/*   656*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
403
548k
/*   658*/                    OPC_MoveParent,
404
548k
/*   659*/                    OPC_MoveChild1,
405
548k
/*   660*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
406
548k
/*   663*/                    OPC_MoveChild0,
407
548k
/*   664*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
408
548k
/*   667*/                    OPC_MoveChild0,
409
548k
/*   668*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
410
548k
/*   671*/                    OPC_CheckChild0Same, 1,
411
548k
/*   673*/                    OPC_CheckChild1Integer, 12, 
412
548k
/*   675*/                    OPC_CheckChild1Type, MVT::i32,
413
548k
/*   677*/                    OPC_MoveParent,
414
548k
/*   678*/                    OPC_CheckChild1Integer, 28, 
415
548k
/*   680*/                    OPC_CheckChild1Type, MVT::i32,
416
548k
/*   682*/                    OPC_MoveParent,
417
548k
/*   683*/                    OPC_MoveChild1,
418
548k
/*   684*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
419
548k
/*   687*/                    OPC_MoveChild0,
420
548k
/*   688*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
421
548k
/*   691*/                    OPC_CheckChild0Same, 2,
422
548k
/*   693*/                    OPC_CheckChild1Integer, 12, 
423
548k
/*   695*/                    OPC_CheckChild1Type, MVT::i32,
424
548k
/*   697*/                    OPC_MoveParent,
425
548k
/*   698*/                    OPC_CheckChild1Integer, 28, 
426
548k
/*   700*/                    OPC_CheckChild1Type, MVT::i32,
427
548k
/*   702*/                    OPC_MoveParent,
428
548k
/*   703*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
429
548k
/*   705*/                    OPC_MoveParent,
430
548k
/*   706*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
431
548k
/*   708*/                    OPC_MoveParent,
432
548k
/*   709*/                    OPC_MoveChild1,
433
548k
/*   710*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
434
548k
/*   713*/                    OPC_MoveChild0,
435
548k
/*   714*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
436
548k
/*   717*/                    OPC_MoveChild0,
437
548k
/*   718*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
438
548k
/*   721*/                    OPC_CheckChild0Same, 1,
439
548k
/*   723*/                    OPC_CheckChild1Integer, 8, 
440
548k
/*   725*/                    OPC_CheckChild1Type, MVT::i32,
441
548k
/*   727*/                    OPC_MoveParent,
442
548k
/*   728*/                    OPC_CheckChild1Integer, 28, 
443
548k
/*   730*/                    OPC_CheckChild1Type, MVT::i32,
444
548k
/*   732*/                    OPC_MoveParent,
445
548k
/*   733*/                    OPC_MoveChild1,
446
548k
/*   734*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
447
548k
/*   737*/                    OPC_MoveChild0,
448
548k
/*   738*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
449
548k
/*   741*/                    OPC_CheckChild0Same, 2,
450
548k
/*   743*/                    OPC_CheckChild1Integer, 8, 
451
548k
/*   745*/                    OPC_CheckChild1Type, MVT::i32,
452
548k
/*   747*/                    OPC_MoveParent,
453
548k
/*   748*/                    OPC_CheckChild1Integer, 28, 
454
548k
/*   750*/                    OPC_CheckChild1Type, MVT::i32,
455
548k
/*   752*/                    OPC_MoveParent,
456
548k
/*   753*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
457
548k
/*   755*/                    OPC_MoveParent,
458
548k
/*   756*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
459
548k
/*   758*/                    OPC_MoveParent,
460
548k
/*   759*/                    OPC_MoveChild1,
461
548k
/*   760*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
462
548k
/*   763*/                    OPC_MoveChild0,
463
548k
/*   764*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
464
548k
/*   767*/                    OPC_MoveChild0,
465
548k
/*   768*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
466
548k
/*   771*/                    OPC_CheckChild0Same, 1,
467
548k
/*   773*/                    OPC_CheckChild1Integer, 4, 
468
548k
/*   775*/                    OPC_CheckChild1Type, MVT::i32,
469
548k
/*   777*/                    OPC_MoveParent,
470
548k
/*   778*/                    OPC_CheckChild1Integer, 28, 
471
548k
/*   780*/                    OPC_CheckChild1Type, MVT::i32,
472
548k
/*   782*/                    OPC_MoveParent,
473
548k
/*   783*/                    OPC_MoveChild1,
474
548k
/*   784*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
475
548k
/*   787*/                    OPC_MoveChild0,
476
548k
/*   788*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
477
548k
/*   791*/                    OPC_CheckChild0Same, 2,
478
548k
/*   793*/                    OPC_CheckChild1Integer, 4, 
479
548k
/*   795*/                    OPC_CheckChild1Type, MVT::i32,
480
548k
/*   797*/                    OPC_MoveParent,
481
548k
/*   798*/                    OPC_CheckChild1Integer, 28, 
482
548k
/*   800*/                    OPC_CheckChild1Type, MVT::i32,
483
548k
/*   802*/                    OPC_MoveParent,
484
548k
/*   803*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
485
548k
/*   805*/                    OPC_MoveParent,
486
548k
/*   806*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
487
548k
/*   808*/                    OPC_CheckType, MVT::i32,
488
548k
/*   810*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
489
548k
/*   812*/                    OPC_EmitInteger, MVT::i32, 8, 
490
548k
/*   815*/                    OPC_EmitInteger, MVT::i32, 8, 
491
548k
/*   818*/                    OPC_EmitInteger, MVT::i32, 8, 
492
548k
/*   821*/                    OPC_EmitInteger, MVT::i1, 0, 
493
548k
/*   824*/                    OPC_EmitInteger, MVT::i32, 0, 
494
548k
/*   827*/                    OPC_EmitInteger, MVT::i32, 0, 
495
548k
/*   830*/                    OPC_EmitInteger, MVT::i32, 0, 
496
548k
/*   833*/                    OPC_EmitInteger, MVT::i32, 0, 
497
548k
/*   836*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
498
548k
                                  MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
499
548k
                              // 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] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_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>> - Complexity = 304
500
548k
                              // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
501
548k
/*   853*/                  0, /*End of Scope*/
502
548k
/*   854*/                /*Scope*/ 31|128,6/*799*/, /*->1655*/
503
548k
/*   856*/                  OPC_MoveChild0,
504
548k
/*   857*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
505
548k
/*   860*/                  OPC_MoveChild0,
506
548k
/*   861*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
507
548k
/*   864*/                  OPC_MoveChild0,
508
548k
/*   865*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
509
548k
/*   868*/                  OPC_RecordChild0, // #0 = $src0
510
548k
/*   869*/                  OPC_CheckChild1Integer, 28, 
511
548k
/*   871*/                  OPC_CheckChild1Type, MVT::i32,
512
548k
/*   873*/                  OPC_MoveParent,
513
548k
/*   874*/                  OPC_CheckChild1Integer, 28, 
514
548k
/*   876*/                  OPC_CheckChild1Type, MVT::i32,
515
548k
/*   878*/                  OPC_MoveParent,
516
548k
/*   879*/                  OPC_MoveChild1,
517
548k
/*   880*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
518
548k
/*   883*/                  OPC_MoveChild0,
519
548k
/*   884*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
520
548k
/*   887*/                  OPC_RecordChild0, // #1 = $src1
521
548k
/*   888*/                  OPC_CheckChild1Integer, 28, 
522
548k
/*   890*/                  OPC_CheckChild1Type, MVT::i32,
523
548k
/*   892*/                  OPC_MoveParent,
524
548k
/*   893*/                  OPC_CheckChild1Integer, 28, 
525
548k
/*   895*/                  OPC_CheckChild1Type, MVT::i32,
526
548k
/*   897*/                  OPC_MoveParent,
527
548k
/*   898*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
528
548k
/*   900*/                  OPC_MoveParent,
529
548k
/*   901*/                  OPC_RecordChild1, // #2 = $src2
530
548k
/*   902*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
531
548k
/*   904*/                  OPC_MoveParent,
532
548k
/*   905*/                  OPC_MoveChild1,
533
548k
/*   906*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
534
548k
/*   909*/                  OPC_MoveChild0,
535
548k
/*   910*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
536
548k
/*   913*/                  OPC_Scope, 112|128,2/*368*/, /*->1284*/ // 2 children in Scope
537
548k
/*   916*/                    OPC_MoveChild0,
538
548k
/*   917*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
539
548k
/*   920*/                    OPC_CheckChild0Same, 0,
540
548k
/*   922*/                    OPC_CheckChild1Integer, 24, 
541
548k
/*   924*/                    OPC_CheckChild1Type, MVT::i32,
542
548k
/*   926*/                    OPC_MoveParent,
543
548k
/*   927*/                    OPC_CheckChild1Integer, 28, 
544
548k
/*   929*/                    OPC_CheckChild1Type, MVT::i32,
545
548k
/*   931*/                    OPC_MoveParent,
546
548k
/*   932*/                    OPC_MoveChild1,
547
548k
/*   933*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
548
548k
/*   936*/                    OPC_MoveChild0,
549
548k
/*   937*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
550
548k
/*   940*/                    OPC_CheckChild0Same, 1,
551
548k
/*   942*/                    OPC_CheckChild1Integer, 24, 
552
548k
/*   944*/                    OPC_CheckChild1Type, MVT::i32,
553
548k
/*   946*/                    OPC_MoveParent,
554
548k
/*   947*/                    OPC_CheckChild1Integer, 28, 
555
548k
/*   949*/                    OPC_CheckChild1Type, MVT::i32,
556
548k
/*   951*/                    OPC_MoveParent,
557
548k
/*   952*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
558
548k
/*   954*/                    OPC_MoveParent,
559
548k
/*   955*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
560
548k
/*   957*/                    OPC_MoveParent,
561
548k
/*   958*/                    OPC_MoveChild1,
562
548k
/*   959*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
563
548k
/*   962*/                    OPC_MoveChild0,
564
548k
/*   963*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
565
548k
/*   966*/                    OPC_MoveChild0,
566
548k
/*   967*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
567
548k
/*   970*/                    OPC_CheckChild0Same, 0,
568
548k
/*   972*/                    OPC_CheckChild1Integer, 20, 
569
548k
/*   974*/                    OPC_CheckChild1Type, MVT::i32,
570
548k
/*   976*/                    OPC_MoveParent,
571
548k
/*   977*/                    OPC_CheckChild1Integer, 28, 
572
548k
/*   979*/                    OPC_CheckChild1Type, MVT::i32,
573
548k
/*   981*/                    OPC_MoveParent,
574
548k
/*   982*/                    OPC_MoveChild1,
575
548k
/*   983*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
576
548k
/*   986*/                    OPC_MoveChild0,
577
548k
/*   987*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
578
548k
/*   990*/                    OPC_CheckChild0Same, 1,
579
548k
/*   992*/                    OPC_CheckChild1Integer, 20, 
580
548k
/*   994*/                    OPC_CheckChild1Type, MVT::i32,
581
548k
/*   996*/                    OPC_MoveParent,
582
548k
/*   997*/                    OPC_CheckChild1Integer, 28, 
583
548k
/*   999*/                    OPC_CheckChild1Type, MVT::i32,
584
548k
/*  1001*/                    OPC_MoveParent,
585
548k
/*  1002*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
586
548k
/*  1004*/                    OPC_MoveParent,
587
548k
/*  1005*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
588
548k
/*  1007*/                    OPC_MoveParent,
589
548k
/*  1008*/                    OPC_MoveChild1,
590
548k
/*  1009*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
591
548k
/*  1012*/                    OPC_MoveChild0,
592
548k
/*  1013*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
593
548k
/*  1016*/                    OPC_MoveChild0,
594
548k
/*  1017*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
595
548k
/*  1020*/                    OPC_CheckChild0Same, 0,
596
548k
/*  1022*/                    OPC_CheckChild1Integer, 16, 
597
548k
/*  1024*/                    OPC_CheckChild1Type, MVT::i32,
598
548k
/*  1026*/                    OPC_MoveParent,
599
548k
/*  1027*/                    OPC_CheckChild1Integer, 28, 
600
548k
/*  1029*/                    OPC_CheckChild1Type, MVT::i32,
601
548k
/*  1031*/                    OPC_MoveParent,
602
548k
/*  1032*/                    OPC_MoveChild1,
603
548k
/*  1033*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
604
548k
/*  1036*/                    OPC_MoveChild0,
605
548k
/*  1037*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
606
548k
/*  1040*/                    OPC_CheckChild0Same, 1,
607
548k
/*  1042*/                    OPC_CheckChild1Integer, 16, 
608
548k
/*  1044*/                    OPC_CheckChild1Type, MVT::i32,
609
548k
/*  1046*/                    OPC_MoveParent,
610
548k
/*  1047*/                    OPC_CheckChild1Integer, 28, 
611
548k
/*  1049*/                    OPC_CheckChild1Type, MVT::i32,
612
548k
/*  1051*/                    OPC_MoveParent,
613
548k
/*  1052*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
614
548k
/*  1054*/                    OPC_MoveParent,
615
548k
/*  1055*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
616
548k
/*  1057*/                    OPC_MoveParent,
617
548k
/*  1058*/                    OPC_MoveChild1,
618
548k
/*  1059*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
619
548k
/*  1062*/                    OPC_MoveChild0,
620
548k
/*  1063*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
621
548k
/*  1066*/                    OPC_MoveChild0,
622
548k
/*  1067*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
623
548k
/*  1070*/                    OPC_CheckChild0Same, 0,
624
548k
/*  1072*/                    OPC_CheckChild1Integer, 12, 
625
548k
/*  1074*/                    OPC_CheckChild1Type, MVT::i32,
626
548k
/*  1076*/                    OPC_MoveParent,
627
548k
/*  1077*/                    OPC_CheckChild1Integer, 28, 
628
548k
/*  1079*/                    OPC_CheckChild1Type, MVT::i32,
629
548k
/*  1081*/                    OPC_MoveParent,
630
548k
/*  1082*/                    OPC_MoveChild1,
631
548k
/*  1083*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
632
548k
/*  1086*/                    OPC_MoveChild0,
633
548k
/*  1087*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
634
548k
/*  1090*/                    OPC_CheckChild0Same, 1,
635
548k
/*  1092*/                    OPC_CheckChild1Integer, 12, 
636
548k
/*  1094*/                    OPC_CheckChild1Type, MVT::i32,
637
548k
/*  1096*/                    OPC_MoveParent,
638
548k
/*  1097*/                    OPC_CheckChild1Integer, 28, 
639
548k
/*  1099*/                    OPC_CheckChild1Type, MVT::i32,
640
548k
/*  1101*/                    OPC_MoveParent,
641
548k
/*  1102*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
642
548k
/*  1104*/                    OPC_MoveParent,
643
548k
/*  1105*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
644
548k
/*  1107*/                    OPC_MoveParent,
645
548k
/*  1108*/                    OPC_MoveChild1,
646
548k
/*  1109*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
647
548k
/*  1112*/                    OPC_MoveChild0,
648
548k
/*  1113*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
649
548k
/*  1116*/                    OPC_MoveChild0,
650
548k
/*  1117*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
651
548k
/*  1120*/                    OPC_CheckChild0Same, 0,
652
548k
/*  1122*/                    OPC_CheckChild1Integer, 8, 
653
548k
/*  1124*/                    OPC_CheckChild1Type, MVT::i32,
654
548k
/*  1126*/                    OPC_MoveParent,
655
548k
/*  1127*/                    OPC_CheckChild1Integer, 28, 
656
548k
/*  1129*/                    OPC_CheckChild1Type, MVT::i32,
657
548k
/*  1131*/                    OPC_MoveParent,
658
548k
/*  1132*/                    OPC_MoveChild1,
659
548k
/*  1133*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
660
548k
/*  1136*/                    OPC_MoveChild0,
661
548k
/*  1137*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
662
548k
/*  1140*/                    OPC_CheckChild0Same, 1,
663
548k
/*  1142*/                    OPC_CheckChild1Integer, 8, 
664
548k
/*  1144*/                    OPC_CheckChild1Type, MVT::i32,
665
548k
/*  1146*/                    OPC_MoveParent,
666
548k
/*  1147*/                    OPC_CheckChild1Integer, 28, 
667
548k
/*  1149*/                    OPC_CheckChild1Type, MVT::i32,
668
548k
/*  1151*/                    OPC_MoveParent,
669
548k
/*  1152*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
670
548k
/*  1154*/                    OPC_MoveParent,
671
548k
/*  1155*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
672
548k
/*  1157*/                    OPC_MoveParent,
673
548k
/*  1158*/                    OPC_MoveChild1,
674
548k
/*  1159*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
675
548k
/*  1162*/                    OPC_MoveChild0,
676
548k
/*  1163*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
677
548k
/*  1166*/                    OPC_MoveChild0,
678
548k
/*  1167*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
679
548k
/*  1170*/                    OPC_CheckChild0Same, 0,
680
548k
/*  1172*/                    OPC_CheckChild1Integer, 4, 
681
548k
/*  1174*/                    OPC_CheckChild1Type, MVT::i32,
682
548k
/*  1176*/                    OPC_MoveParent,
683
548k
/*  1177*/                    OPC_CheckChild1Integer, 28, 
684
548k
/*  1179*/                    OPC_CheckChild1Type, MVT::i32,
685
548k
/*  1181*/                    OPC_MoveParent,
686
548k
/*  1182*/                    OPC_MoveChild1,
687
548k
/*  1183*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
688
548k
/*  1186*/                    OPC_MoveChild0,
689
548k
/*  1187*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
690
548k
/*  1190*/                    OPC_CheckChild0Same, 1,
691
548k
/*  1192*/                    OPC_CheckChild1Integer, 4, 
692
548k
/*  1194*/                    OPC_CheckChild1Type, MVT::i32,
693
548k
/*  1196*/                    OPC_MoveParent,
694
548k
/*  1197*/                    OPC_CheckChild1Integer, 28, 
695
548k
/*  1199*/                    OPC_CheckChild1Type, MVT::i32,
696
548k
/*  1201*/                    OPC_MoveParent,
697
548k
/*  1202*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
698
548k
/*  1204*/                    OPC_MoveParent,
699
548k
/*  1205*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
700
548k
/*  1207*/                    OPC_MoveParent,
701
548k
/*  1208*/                    OPC_MoveChild1,
702
548k
/*  1209*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
703
548k
/*  1212*/                    OPC_MoveChild0,
704
548k
/*  1213*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
705
548k
/*  1216*/                    OPC_CheckChild0Same, 0,
706
548k
/*  1218*/                    OPC_CheckChild1Integer, 28, 
707
548k
/*  1220*/                    OPC_CheckChild1Type, MVT::i32,
708
548k
/*  1222*/                    OPC_MoveParent,
709
548k
/*  1223*/                    OPC_MoveChild1,
710
548k
/*  1224*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
711
548k
/*  1227*/                    OPC_CheckChild0Same, 1,
712
548k
/*  1229*/                    OPC_CheckChild1Integer, 28, 
713
548k
/*  1231*/                    OPC_CheckChild1Type, MVT::i32,
714
548k
/*  1233*/                    OPC_MoveParent,
715
548k
/*  1234*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
716
548k
/*  1236*/                    OPC_MoveParent,
717
548k
/*  1237*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
718
548k
/*  1239*/                    OPC_CheckType, MVT::i32,
719
548k
/*  1241*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
720
548k
/*  1243*/                    OPC_EmitInteger, MVT::i32, 8, 
721
548k
/*  1246*/                    OPC_EmitInteger, MVT::i32, 8, 
722
548k
/*  1249*/                    OPC_EmitInteger, MVT::i32, 8, 
723
548k
/*  1252*/                    OPC_EmitInteger, MVT::i1, 0, 
724
548k
/*  1255*/                    OPC_EmitInteger, MVT::i32, 0, 
725
548k
/*  1258*/                    OPC_EmitInteger, MVT::i32, 0, 
726
548k
/*  1261*/                    OPC_EmitInteger, MVT::i32, 0, 
727
548k
/*  1264*/                    OPC_EmitInteger, MVT::i32, 0, 
728
548k
/*  1267*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
729
548k
                                  MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
730
548k
                              // 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
731
548k
                              // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
732
548k
/*  1284*/                  /*Scope*/ 112|128,2/*368*/, /*->1654*/
733
548k
/*  1286*/                    OPC_CheckChild0Same, 0,
734
548k
/*  1288*/                    OPC_CheckChild1Integer, 28, 
735
548k
/*  1290*/                    OPC_CheckChild1Type, MVT::i32,
736
548k
/*  1292*/                    OPC_MoveParent,
737
548k
/*  1293*/                    OPC_MoveChild1,
738
548k
/*  1294*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
739
548k
/*  1297*/                    OPC_CheckChild0Same, 1,
740
548k
/*  1299*/                    OPC_CheckChild1Integer, 28, 
741
548k
/*  1301*/                    OPC_CheckChild1Type, MVT::i32,
742
548k
/*  1303*/                    OPC_MoveParent,
743
548k
/*  1304*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
744
548k
/*  1306*/                    OPC_MoveParent,
745
548k
/*  1307*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
746
548k
/*  1309*/                    OPC_MoveParent,
747
548k
/*  1310*/                    OPC_MoveChild1,
748
548k
/*  1311*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
749
548k
/*  1314*/                    OPC_MoveChild0,
750
548k
/*  1315*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
751
548k
/*  1318*/                    OPC_MoveChild0,
752
548k
/*  1319*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
753
548k
/*  1322*/                    OPC_CheckChild0Same, 0,
754
548k
/*  1324*/                    OPC_CheckChild1Integer, 24, 
755
548k
/*  1326*/                    OPC_CheckChild1Type, MVT::i32,
756
548k
/*  1328*/                    OPC_MoveParent,
757
548k
/*  1329*/                    OPC_CheckChild1Integer, 28, 
758
548k
/*  1331*/                    OPC_CheckChild1Type, MVT::i32,
759
548k
/*  1333*/                    OPC_MoveParent,
760
548k
/*  1334*/                    OPC_MoveChild1,
761
548k
/*  1335*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
762
548k
/*  1338*/                    OPC_MoveChild0,
763
548k
/*  1339*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
764
548k
/*  1342*/                    OPC_CheckChild0Same, 1,
765
548k
/*  1344*/                    OPC_CheckChild1Integer, 24, 
766
548k
/*  1346*/                    OPC_CheckChild1Type, MVT::i32,
767
548k
/*  1348*/                    OPC_MoveParent,
768
548k
/*  1349*/                    OPC_CheckChild1Integer, 28, 
769
548k
/*  1351*/                    OPC_CheckChild1Type, MVT::i32,
770
548k
/*  1353*/                    OPC_MoveParent,
771
548k
/*  1354*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
772
548k
/*  1356*/                    OPC_MoveParent,
773
548k
/*  1357*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
774
548k
/*  1359*/                    OPC_MoveParent,
775
548k
/*  1360*/                    OPC_MoveChild1,
776
548k
/*  1361*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
777
548k
/*  1364*/                    OPC_MoveChild0,
778
548k
/*  1365*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
779
548k
/*  1368*/                    OPC_MoveChild0,
780
548k
/*  1369*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
781
548k
/*  1372*/                    OPC_CheckChild0Same, 0,
782
548k
/*  1374*/                    OPC_CheckChild1Integer, 20, 
783
548k
/*  1376*/                    OPC_CheckChild1Type, MVT::i32,
784
548k
/*  1378*/                    OPC_MoveParent,
785
548k
/*  1379*/                    OPC_CheckChild1Integer, 28, 
786
548k
/*  1381*/                    OPC_CheckChild1Type, MVT::i32,
787
548k
/*  1383*/                    OPC_MoveParent,
788
548k
/*  1384*/                    OPC_MoveChild1,
789
548k
/*  1385*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
790
548k
/*  1388*/                    OPC_MoveChild0,
791
548k
/*  1389*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
792
548k
/*  1392*/                    OPC_CheckChild0Same, 1,
793
548k
/*  1394*/                    OPC_CheckChild1Integer, 20, 
794
548k
/*  1396*/                    OPC_CheckChild1Type, MVT::i32,
795
548k
/*  1398*/                    OPC_MoveParent,
796
548k
/*  1399*/                    OPC_CheckChild1Integer, 28, 
797
548k
/*  1401*/                    OPC_CheckChild1Type, MVT::i32,
798
548k
/*  1403*/                    OPC_MoveParent,
799
548k
/*  1404*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
800
548k
/*  1406*/                    OPC_MoveParent,
801
548k
/*  1407*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
802
548k
/*  1409*/                    OPC_MoveParent,
803
548k
/*  1410*/                    OPC_MoveChild1,
804
548k
/*  1411*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
805
548k
/*  1414*/                    OPC_MoveChild0,
806
548k
/*  1415*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
807
548k
/*  1418*/                    OPC_MoveChild0,
808
548k
/*  1419*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
809
548k
/*  1422*/                    OPC_CheckChild0Same, 0,
810
548k
/*  1424*/                    OPC_CheckChild1Integer, 16, 
811
548k
/*  1426*/                    OPC_CheckChild1Type, MVT::i32,
812
548k
/*  1428*/                    OPC_MoveParent,
813
548k
/*  1429*/                    OPC_CheckChild1Integer, 28, 
814
548k
/*  1431*/                    OPC_CheckChild1Type, MVT::i32,
815
548k
/*  1433*/                    OPC_MoveParent,
816
548k
/*  1434*/                    OPC_MoveChild1,
817
548k
/*  1435*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
818
548k
/*  1438*/                    OPC_MoveChild0,
819
548k
/*  1439*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
820
548k
/*  1442*/                    OPC_CheckChild0Same, 1,
821
548k
/*  1444*/                    OPC_CheckChild1Integer, 16, 
822
548k
/*  1446*/                    OPC_CheckChild1Type, MVT::i32,
823
548k
/*  1448*/                    OPC_MoveParent,
824
548k
/*  1449*/                    OPC_CheckChild1Integer, 28, 
825
548k
/*  1451*/                    OPC_CheckChild1Type, MVT::i32,
826
548k
/*  1453*/                    OPC_MoveParent,
827
548k
/*  1454*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
828
548k
/*  1456*/                    OPC_MoveParent,
829
548k
/*  1457*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
830
548k
/*  1459*/                    OPC_MoveParent,
831
548k
/*  1460*/                    OPC_MoveChild1,
832
548k
/*  1461*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
833
548k
/*  1464*/                    OPC_MoveChild0,
834
548k
/*  1465*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
835
548k
/*  1468*/                    OPC_MoveChild0,
836
548k
/*  1469*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
837
548k
/*  1472*/                    OPC_CheckChild0Same, 0,
838
548k
/*  1474*/                    OPC_CheckChild1Integer, 12, 
839
548k
/*  1476*/                    OPC_CheckChild1Type, MVT::i32,
840
548k
/*  1478*/                    OPC_MoveParent,
841
548k
/*  1479*/                    OPC_CheckChild1Integer, 28, 
842
548k
/*  1481*/                    OPC_CheckChild1Type, MVT::i32,
843
548k
/*  1483*/                    OPC_MoveParent,
844
548k
/*  1484*/                    OPC_MoveChild1,
845
548k
/*  1485*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
846
548k
/*  1488*/                    OPC_MoveChild0,
847
548k
/*  1489*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
848
548k
/*  1492*/                    OPC_CheckChild0Same, 1,
849
548k
/*  1494*/                    OPC_CheckChild1Integer, 12, 
850
548k
/*  1496*/                    OPC_CheckChild1Type, MVT::i32,
851
548k
/*  1498*/                    OPC_MoveParent,
852
548k
/*  1499*/                    OPC_CheckChild1Integer, 28, 
853
548k
/*  1501*/                    OPC_CheckChild1Type, MVT::i32,
854
548k
/*  1503*/                    OPC_MoveParent,
855
548k
/*  1504*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
856
548k
/*  1506*/                    OPC_MoveParent,
857
548k
/*  1507*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
858
548k
/*  1509*/                    OPC_MoveParent,
859
548k
/*  1510*/                    OPC_MoveChild1,
860
548k
/*  1511*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
861
548k
/*  1514*/                    OPC_MoveChild0,
862
548k
/*  1515*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
863
548k
/*  1518*/                    OPC_MoveChild0,
864
548k
/*  1519*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
865
548k
/*  1522*/                    OPC_CheckChild0Same, 0,
866
548k
/*  1524*/                    OPC_CheckChild1Integer, 8, 
867
548k
/*  1526*/                    OPC_CheckChild1Type, MVT::i32,
868
548k
/*  1528*/                    OPC_MoveParent,
869
548k
/*  1529*/                    OPC_CheckChild1Integer, 28, 
870
548k
/*  1531*/                    OPC_CheckChild1Type, MVT::i32,
871
548k
/*  1533*/                    OPC_MoveParent,
872
548k
/*  1534*/                    OPC_MoveChild1,
873
548k
/*  1535*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
874
548k
/*  1538*/                    OPC_MoveChild0,
875
548k
/*  1539*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
876
548k
/*  1542*/                    OPC_CheckChild0Same, 1,
877
548k
/*  1544*/                    OPC_CheckChild1Integer, 8, 
878
548k
/*  1546*/                    OPC_CheckChild1Type, MVT::i32,
879
548k
/*  1548*/                    OPC_MoveParent,
880
548k
/*  1549*/                    OPC_CheckChild1Integer, 28, 
881
548k
/*  1551*/                    OPC_CheckChild1Type, MVT::i32,
882
548k
/*  1553*/                    OPC_MoveParent,
883
548k
/*  1554*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
884
548k
/*  1556*/                    OPC_MoveParent,
885
548k
/*  1557*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
886
548k
/*  1559*/                    OPC_MoveParent,
887
548k
/*  1560*/                    OPC_MoveChild1,
888
548k
/*  1561*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
889
548k
/*  1564*/                    OPC_MoveChild0,
890
548k
/*  1565*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
891
548k
/*  1568*/                    OPC_MoveChild0,
892
548k
/*  1569*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
893
548k
/*  1572*/                    OPC_CheckChild0Same, 0,
894
548k
/*  1574*/                    OPC_CheckChild1Integer, 4, 
895
548k
/*  1576*/                    OPC_CheckChild1Type, MVT::i32,
896
548k
/*  1578*/                    OPC_MoveParent,
897
548k
/*  1579*/                    OPC_CheckChild1Integer, 28, 
898
548k
/*  1581*/                    OPC_CheckChild1Type, MVT::i32,
899
548k
/*  1583*/                    OPC_MoveParent,
900
548k
/*  1584*/                    OPC_MoveChild1,
901
548k
/*  1585*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
902
548k
/*  1588*/                    OPC_MoveChild0,
903
548k
/*  1589*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
904
548k
/*  1592*/                    OPC_CheckChild0Same, 1,
905
548k
/*  1594*/                    OPC_CheckChild1Integer, 4, 
906
548k
/*  1596*/                    OPC_CheckChild1Type, MVT::i32,
907
548k
/*  1598*/                    OPC_MoveParent,
908
548k
/*  1599*/                    OPC_CheckChild1Integer, 28, 
909
548k
/*  1601*/                    OPC_CheckChild1Type, MVT::i32,
910
548k
/*  1603*/                    OPC_MoveParent,
911
548k
/*  1604*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_i24_oneuse
912
548k
/*  1606*/                    OPC_MoveParent,
913
548k
/*  1607*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
914
548k
/*  1609*/                    OPC_CheckType, MVT::i32,
915
548k
/*  1611*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
916
548k
/*  1613*/                    OPC_EmitInteger, MVT::i32, 8, 
917
548k
/*  1616*/                    OPC_EmitInteger, MVT::i32, 8, 
918
548k
/*  1619*/                    OPC_EmitInteger, MVT::i32, 8, 
919
548k
/*  1622*/                    OPC_EmitInteger, MVT::i1, 0, 
920
548k
/*  1625*/                    OPC_EmitInteger, MVT::i32, 0, 
921
548k
/*  1628*/                    OPC_EmitInteger, MVT::i32, 0, 
922
548k
/*  1631*/                    OPC_EmitInteger, MVT::i32, 0, 
923
548k
/*  1634*/                    OPC_EmitInteger, MVT::i32, 0, 
924
548k
/*  1637*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_I32_I4), 0,
925
548k
                                  MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
926
548k
                              // 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] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_i24_oneuse>>)<<P:Predicate_NonACAdd_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>> - Complexity = 304
927
548k
                              // Dst: (V_DOT8_I32_I4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
928
548k
/*  1654*/                  0, /*End of Scope*/
929
548k
/*  1655*/                /*Scope*/ 14|128,5/*654*/, /*->2311*/
930
548k
/*  1657*/                  OPC_RecordChild0, // #0 = $src2
931
548k
/*  1658*/                  OPC_MoveChild1,
932
548k
/*  1659*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
933
548k
/*  1662*/                  OPC_MoveChild0,
934
548k
/*  1663*/                  OPC_CheckAndImm, 15, 
935
548k
/*  1665*/                  OPC_RecordChild0, // #1 = $src0
936
548k
/*  1666*/                  OPC_MoveParent,
937
548k
/*  1667*/                  OPC_MoveChild1,
938
548k
/*  1668*/                  OPC_CheckAndImm, 15, 
939
548k
/*  1670*/                  OPC_RecordChild0, // #2 = $src1
940
548k
/*  1671*/                  OPC_MoveParent,
941
548k
/*  1672*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
942
548k
/*  1674*/                  OPC_MoveParent,
943
548k
/*  1675*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
944
548k
/*  1677*/                  OPC_MoveParent,
945
548k
/*  1678*/                  OPC_MoveChild1,
946
548k
/*  1679*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
947
548k
/*  1682*/                  OPC_MoveChild0,
948
548k
/*  1683*/                  OPC_Scope, 55|128,2/*311*/, /*->1997*/ // 2 children in Scope
949
548k
/*  1686*/                    OPC_CheckAndImm, 15, 
950
548k
/*  1688*/                    OPC_MoveChild0,
951
548k
/*  1689*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
952
548k
/*  1692*/                    OPC_CheckChild0Same, 1,
953
548k
/*  1694*/                    OPC_CheckChild1Integer, 4, 
954
548k
/*  1696*/                    OPC_CheckChild1Type, MVT::i32,
955
548k
/*  1698*/                    OPC_MoveParent,
956
548k
/*  1699*/                    OPC_MoveParent,
957
548k
/*  1700*/                    OPC_MoveChild1,
958
548k
/*  1701*/                    OPC_CheckAndImm, 15, 
959
548k
/*  1703*/                    OPC_MoveChild0,
960
548k
/*  1704*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
961
548k
/*  1707*/                    OPC_CheckChild0Same, 2,
962
548k
/*  1709*/                    OPC_CheckChild1Integer, 4, 
963
548k
/*  1711*/                    OPC_CheckChild1Type, MVT::i32,
964
548k
/*  1713*/                    OPC_MoveParent,
965
548k
/*  1714*/                    OPC_MoveParent,
966
548k
/*  1715*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
967
548k
/*  1717*/                    OPC_MoveParent,
968
548k
/*  1718*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
969
548k
/*  1720*/                    OPC_MoveParent,
970
548k
/*  1721*/                    OPC_MoveChild1,
971
548k
/*  1722*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
972
548k
/*  1725*/                    OPC_MoveChild0,
973
548k
/*  1726*/                    OPC_CheckAndImm, 15, 
974
548k
/*  1728*/                    OPC_MoveChild0,
975
548k
/*  1729*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
976
548k
/*  1732*/                    OPC_CheckChild0Same, 1,
977
548k
/*  1734*/                    OPC_CheckChild1Integer, 8, 
978
548k
/*  1736*/                    OPC_CheckChild1Type, MVT::i32,
979
548k
/*  1738*/                    OPC_MoveParent,
980
548k
/*  1739*/                    OPC_MoveParent,
981
548k
/*  1740*/                    OPC_MoveChild1,
982
548k
/*  1741*/                    OPC_CheckAndImm, 15, 
983
548k
/*  1743*/                    OPC_MoveChild0,
984
548k
/*  1744*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
985
548k
/*  1747*/                    OPC_CheckChild0Same, 2,
986
548k
/*  1749*/                    OPC_CheckChild1Integer, 8, 
987
548k
/*  1751*/                    OPC_CheckChild1Type, MVT::i32,
988
548k
/*  1753*/                    OPC_MoveParent,
989
548k
/*  1754*/                    OPC_MoveParent,
990
548k
/*  1755*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
991
548k
/*  1757*/                    OPC_MoveParent,
992
548k
/*  1758*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
993
548k
/*  1760*/                    OPC_MoveParent,
994
548k
/*  1761*/                    OPC_MoveChild1,
995
548k
/*  1762*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
996
548k
/*  1765*/                    OPC_MoveChild0,
997
548k
/*  1766*/                    OPC_CheckAndImm, 15, 
998
548k
/*  1768*/                    OPC_MoveChild0,
999
548k
/*  1769*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1000
548k
/*  1772*/                    OPC_CheckChild0Same, 1,
1001
548k
/*  1774*/                    OPC_CheckChild1Integer, 12, 
1002
548k
/*  1776*/                    OPC_CheckChild1Type, MVT::i32,
1003
548k
/*  1778*/                    OPC_MoveParent,
1004
548k
/*  1779*/                    OPC_MoveParent,
1005
548k
/*  1780*/                    OPC_MoveChild1,
1006
548k
/*  1781*/                    OPC_CheckAndImm, 15, 
1007
548k
/*  1783*/                    OPC_MoveChild0,
1008
548k
/*  1784*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1009
548k
/*  1787*/                    OPC_CheckChild0Same, 2,
1010
548k
/*  1789*/                    OPC_CheckChild1Integer, 12, 
1011
548k
/*  1791*/                    OPC_CheckChild1Type, MVT::i32,
1012
548k
/*  1793*/                    OPC_MoveParent,
1013
548k
/*  1794*/                    OPC_MoveParent,
1014
548k
/*  1795*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1015
548k
/*  1797*/                    OPC_MoveParent,
1016
548k
/*  1798*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1017
548k
/*  1800*/                    OPC_MoveParent,
1018
548k
/*  1801*/                    OPC_MoveChild1,
1019
548k
/*  1802*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1020
548k
/*  1805*/                    OPC_MoveChild0,
1021
548k
/*  1806*/                    OPC_CheckAndImm, 15, 
1022
548k
/*  1808*/                    OPC_MoveChild0,
1023
548k
/*  1809*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1024
548k
/*  1812*/                    OPC_CheckChild0Same, 1,
1025
548k
/*  1814*/                    OPC_CheckChild1Integer, 16, 
1026
548k
/*  1816*/                    OPC_CheckChild1Type, MVT::i32,
1027
548k
/*  1818*/                    OPC_MoveParent,
1028
548k
/*  1819*/                    OPC_MoveParent,
1029
548k
/*  1820*/                    OPC_MoveChild1,
1030
548k
/*  1821*/                    OPC_CheckAndImm, 15, 
1031
548k
/*  1823*/                    OPC_MoveChild0,
1032
548k
/*  1824*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1033
548k
/*  1827*/                    OPC_CheckChild0Same, 2,
1034
548k
/*  1829*/                    OPC_CheckChild1Integer, 16, 
1035
548k
/*  1831*/                    OPC_CheckChild1Type, MVT::i32,
1036
548k
/*  1833*/                    OPC_MoveParent,
1037
548k
/*  1834*/                    OPC_MoveParent,
1038
548k
/*  1835*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1039
548k
/*  1837*/                    OPC_MoveParent,
1040
548k
/*  1838*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1041
548k
/*  1840*/                    OPC_MoveParent,
1042
548k
/*  1841*/                    OPC_MoveChild1,
1043
548k
/*  1842*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1044
548k
/*  1845*/                    OPC_MoveChild0,
1045
548k
/*  1846*/                    OPC_CheckAndImm, 15, 
1046
548k
/*  1848*/                    OPC_MoveChild0,
1047
548k
/*  1849*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1048
548k
/*  1852*/                    OPC_CheckChild0Same, 1,
1049
548k
/*  1854*/                    OPC_CheckChild1Integer, 20, 
1050
548k
/*  1856*/                    OPC_CheckChild1Type, MVT::i32,
1051
548k
/*  1858*/                    OPC_MoveParent,
1052
548k
/*  1859*/                    OPC_MoveParent,
1053
548k
/*  1860*/                    OPC_MoveChild1,
1054
548k
/*  1861*/                    OPC_CheckAndImm, 15, 
1055
548k
/*  1863*/                    OPC_MoveChild0,
1056
548k
/*  1864*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1057
548k
/*  1867*/                    OPC_CheckChild0Same, 2,
1058
548k
/*  1869*/                    OPC_CheckChild1Integer, 20, 
1059
548k
/*  1871*/                    OPC_CheckChild1Type, MVT::i32,
1060
548k
/*  1873*/                    OPC_MoveParent,
1061
548k
/*  1874*/                    OPC_MoveParent,
1062
548k
/*  1875*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1063
548k
/*  1877*/                    OPC_MoveParent,
1064
548k
/*  1878*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1065
548k
/*  1880*/                    OPC_MoveParent,
1066
548k
/*  1881*/                    OPC_MoveChild1,
1067
548k
/*  1882*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1068
548k
/*  1885*/                    OPC_MoveChild0,
1069
548k
/*  1886*/                    OPC_CheckAndImm, 15, 
1070
548k
/*  1888*/                    OPC_MoveChild0,
1071
548k
/*  1889*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1072
548k
/*  1892*/                    OPC_CheckChild0Same, 1,
1073
548k
/*  1894*/                    OPC_CheckChild1Integer, 24, 
1074
548k
/*  1896*/                    OPC_CheckChild1Type, MVT::i32,
1075
548k
/*  1898*/                    OPC_MoveParent,
1076
548k
/*  1899*/                    OPC_MoveParent,
1077
548k
/*  1900*/                    OPC_MoveChild1,
1078
548k
/*  1901*/                    OPC_CheckAndImm, 15, 
1079
548k
/*  1903*/                    OPC_MoveChild0,
1080
548k
/*  1904*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1081
548k
/*  1907*/                    OPC_CheckChild0Same, 2,
1082
548k
/*  1909*/                    OPC_CheckChild1Integer, 24, 
1083
548k
/*  1911*/                    OPC_CheckChild1Type, MVT::i32,
1084
548k
/*  1913*/                    OPC_MoveParent,
1085
548k
/*  1914*/                    OPC_MoveParent,
1086
548k
/*  1915*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1087
548k
/*  1917*/                    OPC_MoveParent,
1088
548k
/*  1918*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1089
548k
/*  1920*/                    OPC_MoveParent,
1090
548k
/*  1921*/                    OPC_MoveChild1,
1091
548k
/*  1922*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1092
548k
/*  1925*/                    OPC_MoveChild0,
1093
548k
/*  1926*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1094
548k
/*  1929*/                    OPC_CheckChild0Same, 1,
1095
548k
/*  1931*/                    OPC_CheckChild1Integer, 28, 
1096
548k
/*  1933*/                    OPC_CheckChild1Type, MVT::i32,
1097
548k
/*  1935*/                    OPC_MoveParent,
1098
548k
/*  1936*/                    OPC_MoveChild1,
1099
548k
/*  1937*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1100
548k
/*  1940*/                    OPC_CheckChild0Same, 2,
1101
548k
/*  1942*/                    OPC_CheckChild1Integer, 28, 
1102
548k
/*  1944*/                    OPC_CheckChild1Type, MVT::i32,
1103
548k
/*  1946*/                    OPC_MoveParent,
1104
548k
/*  1947*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1105
548k
/*  1949*/                    OPC_MoveParent,
1106
548k
/*  1950*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1107
548k
/*  1952*/                    OPC_CheckType, MVT::i32,
1108
548k
/*  1954*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1109
548k
/*  1956*/                    OPC_EmitInteger, MVT::i32, 8, 
1110
548k
/*  1959*/                    OPC_EmitInteger, MVT::i32, 8, 
1111
548k
/*  1962*/                    OPC_EmitInteger, MVT::i32, 8, 
1112
548k
/*  1965*/                    OPC_EmitInteger, MVT::i1, 0, 
1113
548k
/*  1968*/                    OPC_EmitInteger, MVT::i32, 0, 
1114
548k
/*  1971*/                    OPC_EmitInteger, MVT::i32, 0, 
1115
548k
/*  1974*/                    OPC_EmitInteger, MVT::i32, 0, 
1116
548k
/*  1977*/                    OPC_EmitInteger, MVT::i32, 0, 
1117
548k
/*  1980*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
1118
548k
                                  MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1119
548k
                              // 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
1120
548k
                              // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1121
548k
/*  1997*/                  /*Scope*/ 55|128,2/*311*/, /*->2310*/
1122
548k
/*  1999*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1123
548k
/*  2002*/                    OPC_CheckChild0Same, 1,
1124
548k
/*  2004*/                    OPC_CheckChild1Integer, 28, 
1125
548k
/*  2006*/                    OPC_CheckChild1Type, MVT::i32,
1126
548k
/*  2008*/                    OPC_MoveParent,
1127
548k
/*  2009*/                    OPC_MoveChild1,
1128
548k
/*  2010*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1129
548k
/*  2013*/                    OPC_CheckChild0Same, 2,
1130
548k
/*  2015*/                    OPC_CheckChild1Integer, 28, 
1131
548k
/*  2017*/                    OPC_CheckChild1Type, MVT::i32,
1132
548k
/*  2019*/                    OPC_MoveParent,
1133
548k
/*  2020*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1134
548k
/*  2022*/                    OPC_MoveParent,
1135
548k
/*  2023*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1136
548k
/*  2025*/                    OPC_MoveParent,
1137
548k
/*  2026*/                    OPC_MoveChild1,
1138
548k
/*  2027*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1139
548k
/*  2030*/                    OPC_MoveChild0,
1140
548k
/*  2031*/                    OPC_CheckAndImm, 15, 
1141
548k
/*  2033*/                    OPC_MoveChild0,
1142
548k
/*  2034*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1143
548k
/*  2037*/                    OPC_CheckChild0Same, 1,
1144
548k
/*  2039*/                    OPC_CheckChild1Integer, 4, 
1145
548k
/*  2041*/                    OPC_CheckChild1Type, MVT::i32,
1146
548k
/*  2043*/                    OPC_MoveParent,
1147
548k
/*  2044*/                    OPC_MoveParent,
1148
548k
/*  2045*/                    OPC_MoveChild1,
1149
548k
/*  2046*/                    OPC_CheckAndImm, 15, 
1150
548k
/*  2048*/                    OPC_MoveChild0,
1151
548k
/*  2049*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1152
548k
/*  2052*/                    OPC_CheckChild0Same, 2,
1153
548k
/*  2054*/                    OPC_CheckChild1Integer, 4, 
1154
548k
/*  2056*/                    OPC_CheckChild1Type, MVT::i32,
1155
548k
/*  2058*/                    OPC_MoveParent,
1156
548k
/*  2059*/                    OPC_MoveParent,
1157
548k
/*  2060*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1158
548k
/*  2062*/                    OPC_MoveParent,
1159
548k
/*  2063*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1160
548k
/*  2065*/                    OPC_MoveParent,
1161
548k
/*  2066*/                    OPC_MoveChild1,
1162
548k
/*  2067*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1163
548k
/*  2070*/                    OPC_MoveChild0,
1164
548k
/*  2071*/                    OPC_CheckAndImm, 15, 
1165
548k
/*  2073*/                    OPC_MoveChild0,
1166
548k
/*  2074*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1167
548k
/*  2077*/                    OPC_CheckChild0Same, 1,
1168
548k
/*  2079*/                    OPC_CheckChild1Integer, 8, 
1169
548k
/*  2081*/                    OPC_CheckChild1Type, MVT::i32,
1170
548k
/*  2083*/                    OPC_MoveParent,
1171
548k
/*  2084*/                    OPC_MoveParent,
1172
548k
/*  2085*/                    OPC_MoveChild1,
1173
548k
/*  2086*/                    OPC_CheckAndImm, 15, 
1174
548k
/*  2088*/                    OPC_MoveChild0,
1175
548k
/*  2089*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1176
548k
/*  2092*/                    OPC_CheckChild0Same, 2,
1177
548k
/*  2094*/                    OPC_CheckChild1Integer, 8, 
1178
548k
/*  2096*/                    OPC_CheckChild1Type, MVT::i32,
1179
548k
/*  2098*/                    OPC_MoveParent,
1180
548k
/*  2099*/                    OPC_MoveParent,
1181
548k
/*  2100*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1182
548k
/*  2102*/                    OPC_MoveParent,
1183
548k
/*  2103*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1184
548k
/*  2105*/                    OPC_MoveParent,
1185
548k
/*  2106*/                    OPC_MoveChild1,
1186
548k
/*  2107*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1187
548k
/*  2110*/                    OPC_MoveChild0,
1188
548k
/*  2111*/                    OPC_CheckAndImm, 15, 
1189
548k
/*  2113*/                    OPC_MoveChild0,
1190
548k
/*  2114*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1191
548k
/*  2117*/                    OPC_CheckChild0Same, 1,
1192
548k
/*  2119*/                    OPC_CheckChild1Integer, 12, 
1193
548k
/*  2121*/                    OPC_CheckChild1Type, MVT::i32,
1194
548k
/*  2123*/                    OPC_MoveParent,
1195
548k
/*  2124*/                    OPC_MoveParent,
1196
548k
/*  2125*/                    OPC_MoveChild1,
1197
548k
/*  2126*/                    OPC_CheckAndImm, 15, 
1198
548k
/*  2128*/                    OPC_MoveChild0,
1199
548k
/*  2129*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1200
548k
/*  2132*/                    OPC_CheckChild0Same, 2,
1201
548k
/*  2134*/                    OPC_CheckChild1Integer, 12, 
1202
548k
/*  2136*/                    OPC_CheckChild1Type, MVT::i32,
1203
548k
/*  2138*/                    OPC_MoveParent,
1204
548k
/*  2139*/                    OPC_MoveParent,
1205
548k
/*  2140*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1206
548k
/*  2142*/                    OPC_MoveParent,
1207
548k
/*  2143*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1208
548k
/*  2145*/                    OPC_MoveParent,
1209
548k
/*  2146*/                    OPC_MoveChild1,
1210
548k
/*  2147*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1211
548k
/*  2150*/                    OPC_MoveChild0,
1212
548k
/*  2151*/                    OPC_CheckAndImm, 15, 
1213
548k
/*  2153*/                    OPC_MoveChild0,
1214
548k
/*  2154*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1215
548k
/*  2157*/                    OPC_CheckChild0Same, 1,
1216
548k
/*  2159*/                    OPC_CheckChild1Integer, 16, 
1217
548k
/*  2161*/                    OPC_CheckChild1Type, MVT::i32,
1218
548k
/*  2163*/                    OPC_MoveParent,
1219
548k
/*  2164*/                    OPC_MoveParent,
1220
548k
/*  2165*/                    OPC_MoveChild1,
1221
548k
/*  2166*/                    OPC_CheckAndImm, 15, 
1222
548k
/*  2168*/                    OPC_MoveChild0,
1223
548k
/*  2169*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1224
548k
/*  2172*/                    OPC_CheckChild0Same, 2,
1225
548k
/*  2174*/                    OPC_CheckChild1Integer, 16, 
1226
548k
/*  2176*/                    OPC_CheckChild1Type, MVT::i32,
1227
548k
/*  2178*/                    OPC_MoveParent,
1228
548k
/*  2179*/                    OPC_MoveParent,
1229
548k
/*  2180*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1230
548k
/*  2182*/                    OPC_MoveParent,
1231
548k
/*  2183*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1232
548k
/*  2185*/                    OPC_MoveParent,
1233
548k
/*  2186*/                    OPC_MoveChild1,
1234
548k
/*  2187*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1235
548k
/*  2190*/                    OPC_MoveChild0,
1236
548k
/*  2191*/                    OPC_CheckAndImm, 15, 
1237
548k
/*  2193*/                    OPC_MoveChild0,
1238
548k
/*  2194*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1239
548k
/*  2197*/                    OPC_CheckChild0Same, 1,
1240
548k
/*  2199*/                    OPC_CheckChild1Integer, 20, 
1241
548k
/*  2201*/                    OPC_CheckChild1Type, MVT::i32,
1242
548k
/*  2203*/                    OPC_MoveParent,
1243
548k
/*  2204*/                    OPC_MoveParent,
1244
548k
/*  2205*/                    OPC_MoveChild1,
1245
548k
/*  2206*/                    OPC_CheckAndImm, 15, 
1246
548k
/*  2208*/                    OPC_MoveChild0,
1247
548k
/*  2209*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1248
548k
/*  2212*/                    OPC_CheckChild0Same, 2,
1249
548k
/*  2214*/                    OPC_CheckChild1Integer, 20, 
1250
548k
/*  2216*/                    OPC_CheckChild1Type, MVT::i32,
1251
548k
/*  2218*/                    OPC_MoveParent,
1252
548k
/*  2219*/                    OPC_MoveParent,
1253
548k
/*  2220*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1254
548k
/*  2222*/                    OPC_MoveParent,
1255
548k
/*  2223*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1256
548k
/*  2225*/                    OPC_MoveParent,
1257
548k
/*  2226*/                    OPC_MoveChild1,
1258
548k
/*  2227*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1259
548k
/*  2230*/                    OPC_MoveChild0,
1260
548k
/*  2231*/                    OPC_CheckAndImm, 15, 
1261
548k
/*  2233*/                    OPC_MoveChild0,
1262
548k
/*  2234*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1263
548k
/*  2237*/                    OPC_CheckChild0Same, 1,
1264
548k
/*  2239*/                    OPC_CheckChild1Integer, 24, 
1265
548k
/*  2241*/                    OPC_CheckChild1Type, MVT::i32,
1266
548k
/*  2243*/                    OPC_MoveParent,
1267
548k
/*  2244*/                    OPC_MoveParent,
1268
548k
/*  2245*/                    OPC_MoveChild1,
1269
548k
/*  2246*/                    OPC_CheckAndImm, 15, 
1270
548k
/*  2248*/                    OPC_MoveChild0,
1271
548k
/*  2249*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1272
548k
/*  2252*/                    OPC_CheckChild0Same, 2,
1273
548k
/*  2254*/                    OPC_CheckChild1Integer, 24, 
1274
548k
/*  2256*/                    OPC_CheckChild1Type, MVT::i32,
1275
548k
/*  2258*/                    OPC_MoveParent,
1276
548k
/*  2259*/                    OPC_MoveParent,
1277
548k
/*  2260*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1278
548k
/*  2262*/                    OPC_MoveParent,
1279
548k
/*  2263*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1280
548k
/*  2265*/                    OPC_CheckType, MVT::i32,
1281
548k
/*  2267*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1282
548k
/*  2269*/                    OPC_EmitInteger, MVT::i32, 8, 
1283
548k
/*  2272*/                    OPC_EmitInteger, MVT::i32, 8, 
1284
548k
/*  2275*/                    OPC_EmitInteger, MVT::i32, 8, 
1285
548k
/*  2278*/                    OPC_EmitInteger, MVT::i1, 0, 
1286
548k
/*  2281*/                    OPC_EmitInteger, MVT::i32, 0, 
1287
548k
/*  2284*/                    OPC_EmitInteger, MVT::i32, 0, 
1288
548k
/*  2287*/                    OPC_EmitInteger, MVT::i32, 0, 
1289
548k
/*  2290*/                    OPC_EmitInteger, MVT::i32, 0, 
1290
548k
/*  2293*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
1291
548k
                                  MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1292
548k
                              // 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] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_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>> - Complexity = 288
1293
548k
                              // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1294
548k
/*  2310*/                  0, /*End of Scope*/
1295
548k
/*  2311*/                /*Scope*/ 14|128,5/*654*/, /*->2967*/
1296
548k
/*  2313*/                  OPC_MoveChild0,
1297
548k
/*  2314*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1298
548k
/*  2317*/                  OPC_MoveChild0,
1299
548k
/*  2318*/                  OPC_CheckAndImm, 15, 
1300
548k
/*  2320*/                  OPC_RecordChild0, // #0 = $src0
1301
548k
/*  2321*/                  OPC_MoveParent,
1302
548k
/*  2322*/                  OPC_MoveChild1,
1303
548k
/*  2323*/                  OPC_CheckAndImm, 15, 
1304
548k
/*  2325*/                  OPC_RecordChild0, // #1 = $src1
1305
548k
/*  2326*/                  OPC_MoveParent,
1306
548k
/*  2327*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1307
548k
/*  2329*/                  OPC_MoveParent,
1308
548k
/*  2330*/                  OPC_RecordChild1, // #2 = $src2
1309
548k
/*  2331*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
1310
548k
/*  2333*/                  OPC_MoveParent,
1311
548k
/*  2334*/                  OPC_MoveChild1,
1312
548k
/*  2335*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1313
548k
/*  2338*/                  OPC_MoveChild0,
1314
548k
/*  2339*/                  OPC_Scope, 55|128,2/*311*/, /*->2653*/ // 2 children in Scope
1315
548k
/*  2342*/                    OPC_CheckAndImm, 15, 
1316
548k
/*  2344*/                    OPC_MoveChild0,
1317
548k
/*  2345*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1318
548k
/*  2348*/                    OPC_CheckChild0Same, 0,
1319
548k
/*  2350*/                    OPC_CheckChild1Integer, 4, 
1320
548k
/*  2352*/                    OPC_CheckChild1Type, MVT::i32,
1321
548k
/*  2354*/                    OPC_MoveParent,
1322
548k
/*  2355*/                    OPC_MoveParent,
1323
548k
/*  2356*/                    OPC_MoveChild1,
1324
548k
/*  2357*/                    OPC_CheckAndImm, 15, 
1325
548k
/*  2359*/                    OPC_MoveChild0,
1326
548k
/*  2360*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1327
548k
/*  2363*/                    OPC_CheckChild0Same, 1,
1328
548k
/*  2365*/                    OPC_CheckChild1Integer, 4, 
1329
548k
/*  2367*/                    OPC_CheckChild1Type, MVT::i32,
1330
548k
/*  2369*/                    OPC_MoveParent,
1331
548k
/*  2370*/                    OPC_MoveParent,
1332
548k
/*  2371*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1333
548k
/*  2373*/                    OPC_MoveParent,
1334
548k
/*  2374*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1335
548k
/*  2376*/                    OPC_MoveParent,
1336
548k
/*  2377*/                    OPC_MoveChild1,
1337
548k
/*  2378*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1338
548k
/*  2381*/                    OPC_MoveChild0,
1339
548k
/*  2382*/                    OPC_CheckAndImm, 15, 
1340
548k
/*  2384*/                    OPC_MoveChild0,
1341
548k
/*  2385*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1342
548k
/*  2388*/                    OPC_CheckChild0Same, 0,
1343
548k
/*  2390*/                    OPC_CheckChild1Integer, 8, 
1344
548k
/*  2392*/                    OPC_CheckChild1Type, MVT::i32,
1345
548k
/*  2394*/                    OPC_MoveParent,
1346
548k
/*  2395*/                    OPC_MoveParent,
1347
548k
/*  2396*/                    OPC_MoveChild1,
1348
548k
/*  2397*/                    OPC_CheckAndImm, 15, 
1349
548k
/*  2399*/                    OPC_MoveChild0,
1350
548k
/*  2400*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1351
548k
/*  2403*/                    OPC_CheckChild0Same, 1,
1352
548k
/*  2405*/                    OPC_CheckChild1Integer, 8, 
1353
548k
/*  2407*/                    OPC_CheckChild1Type, MVT::i32,
1354
548k
/*  2409*/                    OPC_MoveParent,
1355
548k
/*  2410*/                    OPC_MoveParent,
1356
548k
/*  2411*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1357
548k
/*  2413*/                    OPC_MoveParent,
1358
548k
/*  2414*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1359
548k
/*  2416*/                    OPC_MoveParent,
1360
548k
/*  2417*/                    OPC_MoveChild1,
1361
548k
/*  2418*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1362
548k
/*  2421*/                    OPC_MoveChild0,
1363
548k
/*  2422*/                    OPC_CheckAndImm, 15, 
1364
548k
/*  2424*/                    OPC_MoveChild0,
1365
548k
/*  2425*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1366
548k
/*  2428*/                    OPC_CheckChild0Same, 0,
1367
548k
/*  2430*/                    OPC_CheckChild1Integer, 12, 
1368
548k
/*  2432*/                    OPC_CheckChild1Type, MVT::i32,
1369
548k
/*  2434*/                    OPC_MoveParent,
1370
548k
/*  2435*/                    OPC_MoveParent,
1371
548k
/*  2436*/                    OPC_MoveChild1,
1372
548k
/*  2437*/                    OPC_CheckAndImm, 15, 
1373
548k
/*  2439*/                    OPC_MoveChild0,
1374
548k
/*  2440*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1375
548k
/*  2443*/                    OPC_CheckChild0Same, 1,
1376
548k
/*  2445*/                    OPC_CheckChild1Integer, 12, 
1377
548k
/*  2447*/                    OPC_CheckChild1Type, MVT::i32,
1378
548k
/*  2449*/                    OPC_MoveParent,
1379
548k
/*  2450*/                    OPC_MoveParent,
1380
548k
/*  2451*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1381
548k
/*  2453*/                    OPC_MoveParent,
1382
548k
/*  2454*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1383
548k
/*  2456*/                    OPC_MoveParent,
1384
548k
/*  2457*/                    OPC_MoveChild1,
1385
548k
/*  2458*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1386
548k
/*  2461*/                    OPC_MoveChild0,
1387
548k
/*  2462*/                    OPC_CheckAndImm, 15, 
1388
548k
/*  2464*/                    OPC_MoveChild0,
1389
548k
/*  2465*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1390
548k
/*  2468*/                    OPC_CheckChild0Same, 0,
1391
548k
/*  2470*/                    OPC_CheckChild1Integer, 16, 
1392
548k
/*  2472*/                    OPC_CheckChild1Type, MVT::i32,
1393
548k
/*  2474*/                    OPC_MoveParent,
1394
548k
/*  2475*/                    OPC_MoveParent,
1395
548k
/*  2476*/                    OPC_MoveChild1,
1396
548k
/*  2477*/                    OPC_CheckAndImm, 15, 
1397
548k
/*  2479*/                    OPC_MoveChild0,
1398
548k
/*  2480*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1399
548k
/*  2483*/                    OPC_CheckChild0Same, 1,
1400
548k
/*  2485*/                    OPC_CheckChild1Integer, 16, 
1401
548k
/*  2487*/                    OPC_CheckChild1Type, MVT::i32,
1402
548k
/*  2489*/                    OPC_MoveParent,
1403
548k
/*  2490*/                    OPC_MoveParent,
1404
548k
/*  2491*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1405
548k
/*  2493*/                    OPC_MoveParent,
1406
548k
/*  2494*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1407
548k
/*  2496*/                    OPC_MoveParent,
1408
548k
/*  2497*/                    OPC_MoveChild1,
1409
548k
/*  2498*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1410
548k
/*  2501*/                    OPC_MoveChild0,
1411
548k
/*  2502*/                    OPC_CheckAndImm, 15, 
1412
548k
/*  2504*/                    OPC_MoveChild0,
1413
548k
/*  2505*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1414
548k
/*  2508*/                    OPC_CheckChild0Same, 0,
1415
548k
/*  2510*/                    OPC_CheckChild1Integer, 20, 
1416
548k
/*  2512*/                    OPC_CheckChild1Type, MVT::i32,
1417
548k
/*  2514*/                    OPC_MoveParent,
1418
548k
/*  2515*/                    OPC_MoveParent,
1419
548k
/*  2516*/                    OPC_MoveChild1,
1420
548k
/*  2517*/                    OPC_CheckAndImm, 15, 
1421
548k
/*  2519*/                    OPC_MoveChild0,
1422
548k
/*  2520*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1423
548k
/*  2523*/                    OPC_CheckChild0Same, 1,
1424
548k
/*  2525*/                    OPC_CheckChild1Integer, 20, 
1425
548k
/*  2527*/                    OPC_CheckChild1Type, MVT::i32,
1426
548k
/*  2529*/                    OPC_MoveParent,
1427
548k
/*  2530*/                    OPC_MoveParent,
1428
548k
/*  2531*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1429
548k
/*  2533*/                    OPC_MoveParent,
1430
548k
/*  2534*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1431
548k
/*  2536*/                    OPC_MoveParent,
1432
548k
/*  2537*/                    OPC_MoveChild1,
1433
548k
/*  2538*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1434
548k
/*  2541*/                    OPC_MoveChild0,
1435
548k
/*  2542*/                    OPC_CheckAndImm, 15, 
1436
548k
/*  2544*/                    OPC_MoveChild0,
1437
548k
/*  2545*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1438
548k
/*  2548*/                    OPC_CheckChild0Same, 0,
1439
548k
/*  2550*/                    OPC_CheckChild1Integer, 24, 
1440
548k
/*  2552*/                    OPC_CheckChild1Type, MVT::i32,
1441
548k
/*  2554*/                    OPC_MoveParent,
1442
548k
/*  2555*/                    OPC_MoveParent,
1443
548k
/*  2556*/                    OPC_MoveChild1,
1444
548k
/*  2557*/                    OPC_CheckAndImm, 15, 
1445
548k
/*  2559*/                    OPC_MoveChild0,
1446
548k
/*  2560*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1447
548k
/*  2563*/                    OPC_CheckChild0Same, 1,
1448
548k
/*  2565*/                    OPC_CheckChild1Integer, 24, 
1449
548k
/*  2567*/                    OPC_CheckChild1Type, MVT::i32,
1450
548k
/*  2569*/                    OPC_MoveParent,
1451
548k
/*  2570*/                    OPC_MoveParent,
1452
548k
/*  2571*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1453
548k
/*  2573*/                    OPC_MoveParent,
1454
548k
/*  2574*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1455
548k
/*  2576*/                    OPC_MoveParent,
1456
548k
/*  2577*/                    OPC_MoveChild1,
1457
548k
/*  2578*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1458
548k
/*  2581*/                    OPC_MoveChild0,
1459
548k
/*  2582*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1460
548k
/*  2585*/                    OPC_CheckChild0Same, 0,
1461
548k
/*  2587*/                    OPC_CheckChild1Integer, 28, 
1462
548k
/*  2589*/                    OPC_CheckChild1Type, MVT::i32,
1463
548k
/*  2591*/                    OPC_MoveParent,
1464
548k
/*  2592*/                    OPC_MoveChild1,
1465
548k
/*  2593*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1466
548k
/*  2596*/                    OPC_CheckChild0Same, 1,
1467
548k
/*  2598*/                    OPC_CheckChild1Integer, 28, 
1468
548k
/*  2600*/                    OPC_CheckChild1Type, MVT::i32,
1469
548k
/*  2602*/                    OPC_MoveParent,
1470
548k
/*  2603*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1471
548k
/*  2605*/                    OPC_MoveParent,
1472
548k
/*  2606*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1473
548k
/*  2608*/                    OPC_CheckType, MVT::i32,
1474
548k
/*  2610*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1475
548k
/*  2612*/                    OPC_EmitInteger, MVT::i32, 8, 
1476
548k
/*  2615*/                    OPC_EmitInteger, MVT::i32, 8, 
1477
548k
/*  2618*/                    OPC_EmitInteger, MVT::i32, 8, 
1478
548k
/*  2621*/                    OPC_EmitInteger, MVT::i1, 0, 
1479
548k
/*  2624*/                    OPC_EmitInteger, MVT::i32, 0, 
1480
548k
/*  2627*/                    OPC_EmitInteger, MVT::i32, 0, 
1481
548k
/*  2630*/                    OPC_EmitInteger, MVT::i32, 0, 
1482
548k
/*  2633*/                    OPC_EmitInteger, MVT::i32, 0, 
1483
548k
/*  2636*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
1484
548k
                                  MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
1485
548k
                              // 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
1486
548k
                              // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1487
548k
/*  2653*/                  /*Scope*/ 55|128,2/*311*/, /*->2966*/
1488
548k
/*  2655*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1489
548k
/*  2658*/                    OPC_CheckChild0Same, 0,
1490
548k
/*  2660*/                    OPC_CheckChild1Integer, 28, 
1491
548k
/*  2662*/                    OPC_CheckChild1Type, MVT::i32,
1492
548k
/*  2664*/                    OPC_MoveParent,
1493
548k
/*  2665*/                    OPC_MoveChild1,
1494
548k
/*  2666*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1495
548k
/*  2669*/                    OPC_CheckChild0Same, 1,
1496
548k
/*  2671*/                    OPC_CheckChild1Integer, 28, 
1497
548k
/*  2673*/                    OPC_CheckChild1Type, MVT::i32,
1498
548k
/*  2675*/                    OPC_MoveParent,
1499
548k
/*  2676*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1500
548k
/*  2678*/                    OPC_MoveParent,
1501
548k
/*  2679*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1502
548k
/*  2681*/                    OPC_MoveParent,
1503
548k
/*  2682*/                    OPC_MoveChild1,
1504
548k
/*  2683*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1505
548k
/*  2686*/                    OPC_MoveChild0,
1506
548k
/*  2687*/                    OPC_CheckAndImm, 15, 
1507
548k
/*  2689*/                    OPC_MoveChild0,
1508
548k
/*  2690*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1509
548k
/*  2693*/                    OPC_CheckChild0Same, 0,
1510
548k
/*  2695*/                    OPC_CheckChild1Integer, 4, 
1511
548k
/*  2697*/                    OPC_CheckChild1Type, MVT::i32,
1512
548k
/*  2699*/                    OPC_MoveParent,
1513
548k
/*  2700*/                    OPC_MoveParent,
1514
548k
/*  2701*/                    OPC_MoveChild1,
1515
548k
/*  2702*/                    OPC_CheckAndImm, 15, 
1516
548k
/*  2704*/                    OPC_MoveChild0,
1517
548k
/*  2705*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1518
548k
/*  2708*/                    OPC_CheckChild0Same, 1,
1519
548k
/*  2710*/                    OPC_CheckChild1Integer, 4, 
1520
548k
/*  2712*/                    OPC_CheckChild1Type, MVT::i32,
1521
548k
/*  2714*/                    OPC_MoveParent,
1522
548k
/*  2715*/                    OPC_MoveParent,
1523
548k
/*  2716*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1524
548k
/*  2718*/                    OPC_MoveParent,
1525
548k
/*  2719*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1526
548k
/*  2721*/                    OPC_MoveParent,
1527
548k
/*  2722*/                    OPC_MoveChild1,
1528
548k
/*  2723*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1529
548k
/*  2726*/                    OPC_MoveChild0,
1530
548k
/*  2727*/                    OPC_CheckAndImm, 15, 
1531
548k
/*  2729*/                    OPC_MoveChild0,
1532
548k
/*  2730*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1533
548k
/*  2733*/                    OPC_CheckChild0Same, 0,
1534
548k
/*  2735*/                    OPC_CheckChild1Integer, 8, 
1535
548k
/*  2737*/                    OPC_CheckChild1Type, MVT::i32,
1536
548k
/*  2739*/                    OPC_MoveParent,
1537
548k
/*  2740*/                    OPC_MoveParent,
1538
548k
/*  2741*/                    OPC_MoveChild1,
1539
548k
/*  2742*/                    OPC_CheckAndImm, 15, 
1540
548k
/*  2744*/                    OPC_MoveChild0,
1541
548k
/*  2745*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1542
548k
/*  2748*/                    OPC_CheckChild0Same, 1,
1543
548k
/*  2750*/                    OPC_CheckChild1Integer, 8, 
1544
548k
/*  2752*/                    OPC_CheckChild1Type, MVT::i32,
1545
548k
/*  2754*/                    OPC_MoveParent,
1546
548k
/*  2755*/                    OPC_MoveParent,
1547
548k
/*  2756*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1548
548k
/*  2758*/                    OPC_MoveParent,
1549
548k
/*  2759*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1550
548k
/*  2761*/                    OPC_MoveParent,
1551
548k
/*  2762*/                    OPC_MoveChild1,
1552
548k
/*  2763*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1553
548k
/*  2766*/                    OPC_MoveChild0,
1554
548k
/*  2767*/                    OPC_CheckAndImm, 15, 
1555
548k
/*  2769*/                    OPC_MoveChild0,
1556
548k
/*  2770*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1557
548k
/*  2773*/                    OPC_CheckChild0Same, 0,
1558
548k
/*  2775*/                    OPC_CheckChild1Integer, 12, 
1559
548k
/*  2777*/                    OPC_CheckChild1Type, MVT::i32,
1560
548k
/*  2779*/                    OPC_MoveParent,
1561
548k
/*  2780*/                    OPC_MoveParent,
1562
548k
/*  2781*/                    OPC_MoveChild1,
1563
548k
/*  2782*/                    OPC_CheckAndImm, 15, 
1564
548k
/*  2784*/                    OPC_MoveChild0,
1565
548k
/*  2785*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1566
548k
/*  2788*/                    OPC_CheckChild0Same, 1,
1567
548k
/*  2790*/                    OPC_CheckChild1Integer, 12, 
1568
548k
/*  2792*/                    OPC_CheckChild1Type, MVT::i32,
1569
548k
/*  2794*/                    OPC_MoveParent,
1570
548k
/*  2795*/                    OPC_MoveParent,
1571
548k
/*  2796*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1572
548k
/*  2798*/                    OPC_MoveParent,
1573
548k
/*  2799*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1574
548k
/*  2801*/                    OPC_MoveParent,
1575
548k
/*  2802*/                    OPC_MoveChild1,
1576
548k
/*  2803*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1577
548k
/*  2806*/                    OPC_MoveChild0,
1578
548k
/*  2807*/                    OPC_CheckAndImm, 15, 
1579
548k
/*  2809*/                    OPC_MoveChild0,
1580
548k
/*  2810*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1581
548k
/*  2813*/                    OPC_CheckChild0Same, 0,
1582
548k
/*  2815*/                    OPC_CheckChild1Integer, 16, 
1583
548k
/*  2817*/                    OPC_CheckChild1Type, MVT::i32,
1584
548k
/*  2819*/                    OPC_MoveParent,
1585
548k
/*  2820*/                    OPC_MoveParent,
1586
548k
/*  2821*/                    OPC_MoveChild1,
1587
548k
/*  2822*/                    OPC_CheckAndImm, 15, 
1588
548k
/*  2824*/                    OPC_MoveChild0,
1589
548k
/*  2825*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1590
548k
/*  2828*/                    OPC_CheckChild0Same, 1,
1591
548k
/*  2830*/                    OPC_CheckChild1Integer, 16, 
1592
548k
/*  2832*/                    OPC_CheckChild1Type, MVT::i32,
1593
548k
/*  2834*/                    OPC_MoveParent,
1594
548k
/*  2835*/                    OPC_MoveParent,
1595
548k
/*  2836*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1596
548k
/*  2838*/                    OPC_MoveParent,
1597
548k
/*  2839*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1598
548k
/*  2841*/                    OPC_MoveParent,
1599
548k
/*  2842*/                    OPC_MoveChild1,
1600
548k
/*  2843*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1601
548k
/*  2846*/                    OPC_MoveChild0,
1602
548k
/*  2847*/                    OPC_CheckAndImm, 15, 
1603
548k
/*  2849*/                    OPC_MoveChild0,
1604
548k
/*  2850*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1605
548k
/*  2853*/                    OPC_CheckChild0Same, 0,
1606
548k
/*  2855*/                    OPC_CheckChild1Integer, 20, 
1607
548k
/*  2857*/                    OPC_CheckChild1Type, MVT::i32,
1608
548k
/*  2859*/                    OPC_MoveParent,
1609
548k
/*  2860*/                    OPC_MoveParent,
1610
548k
/*  2861*/                    OPC_MoveChild1,
1611
548k
/*  2862*/                    OPC_CheckAndImm, 15, 
1612
548k
/*  2864*/                    OPC_MoveChild0,
1613
548k
/*  2865*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1614
548k
/*  2868*/                    OPC_CheckChild0Same, 1,
1615
548k
/*  2870*/                    OPC_CheckChild1Integer, 20, 
1616
548k
/*  2872*/                    OPC_CheckChild1Type, MVT::i32,
1617
548k
/*  2874*/                    OPC_MoveParent,
1618
548k
/*  2875*/                    OPC_MoveParent,
1619
548k
/*  2876*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1620
548k
/*  2878*/                    OPC_MoveParent,
1621
548k
/*  2879*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1622
548k
/*  2881*/                    OPC_MoveParent,
1623
548k
/*  2882*/                    OPC_MoveChild1,
1624
548k
/*  2883*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1625
548k
/*  2886*/                    OPC_MoveChild0,
1626
548k
/*  2887*/                    OPC_CheckAndImm, 15, 
1627
548k
/*  2889*/                    OPC_MoveChild0,
1628
548k
/*  2890*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1629
548k
/*  2893*/                    OPC_CheckChild0Same, 0,
1630
548k
/*  2895*/                    OPC_CheckChild1Integer, 24, 
1631
548k
/*  2897*/                    OPC_CheckChild1Type, MVT::i32,
1632
548k
/*  2899*/                    OPC_MoveParent,
1633
548k
/*  2900*/                    OPC_MoveParent,
1634
548k
/*  2901*/                    OPC_MoveChild1,
1635
548k
/*  2902*/                    OPC_CheckAndImm, 15, 
1636
548k
/*  2904*/                    OPC_MoveChild0,
1637
548k
/*  2905*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1638
548k
/*  2908*/                    OPC_CheckChild0Same, 1,
1639
548k
/*  2910*/                    OPC_CheckChild1Integer, 24, 
1640
548k
/*  2912*/                    OPC_CheckChild1Type, MVT::i32,
1641
548k
/*  2914*/                    OPC_MoveParent,
1642
548k
/*  2915*/                    OPC_MoveParent,
1643
548k
/*  2916*/                    OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
1644
548k
/*  2918*/                    OPC_MoveParent,
1645
548k
/*  2919*/                    OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
1646
548k
/*  2921*/                    OPC_CheckType, MVT::i32,
1647
548k
/*  2923*/                    OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1648
548k
/*  2925*/                    OPC_EmitInteger, MVT::i32, 8, 
1649
548k
/*  2928*/                    OPC_EmitInteger, MVT::i32, 8, 
1650
548k
/*  2931*/                    OPC_EmitInteger, MVT::i32, 8, 
1651
548k
/*  2934*/                    OPC_EmitInteger, MVT::i1, 0, 
1652
548k
/*  2937*/                    OPC_EmitInteger, MVT::i32, 0, 
1653
548k
/*  2940*/                    OPC_EmitInteger, MVT::i32, 0, 
1654
548k
/*  2943*/                    OPC_EmitInteger, MVT::i32, 0, 
1655
548k
/*  2946*/                    OPC_EmitInteger, MVT::i32, 0, 
1656
548k
/*  2949*/                    OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
1657
548k
                                  MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
1658
548k
                              // 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] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 28:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 28:{ *:[i32] }))<<P:Predicate_NonACAMDGPUmul_u24_oneuse>>)<<P:Predicate_NonACAdd_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>> - Complexity = 288
1659
548k
                              // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1660
548k
/*  2966*/                  0, /*End of Scope*/
1661
548k
/*  2967*/                0, /*End of Scope*/
1662
548k
/*  2968*/              /*Scope*/ 117|128,11/*1525*/, /*->4495*/
1663
548k
/*  2970*/                OPC_RecordChild0, // #0 = $src2
1664
548k
/*  2971*/                OPC_MoveChild1,
1665
548k
/*  2972*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1666
548k
/*  2975*/                OPC_MoveChild0,
1667
548k
/*  2976*/                OPC_CheckAndImm, 127|128,1/*255*/, 
1668
548k
/*  2979*/                OPC_RecordChild0, // #1 = $src0
1669
548k
/*  2980*/                OPC_MoveParent,
1670
548k
/*  2981*/                OPC_MoveChild1,
1671
548k
/*  2982*/                OPC_CheckAndImm, 127|128,1/*255*/, 
1672
548k
/*  2985*/                OPC_RecordChild0, // #2 = $src1
1673
548k
/*  2986*/                OPC_MoveParent,
1674
548k
/*  2987*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1675
548k
/*  2989*/                OPC_MoveParent,
1676
548k
/*  2990*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
1677
548k
/*  2992*/                OPC_MoveParent,
1678
548k
/*  2993*/                OPC_MoveChild1,
1679
548k
/*  2994*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1680
548k
/*  2997*/                OPC_MoveChild0,
1681
548k
/*  2998*/                OPC_CheckAndImm, 127|128,1/*255*/, 
1682
548k
/*  3001*/                OPC_MoveChild0,
1683
548k
/*  3002*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1684
548k
/*  3005*/                OPC_Scope, 20|128,3/*404*/, /*->3412*/ // 3 children in Scope
1685
548k
/*  3008*/                  OPC_CheckChild0Same, 1,
1686
548k
/*  3010*/                  OPC_CheckChild1Integer, 8, 
1687
548k
/*  3012*/                  OPC_CheckChild1Type, MVT::i32,
1688
548k
/*  3014*/                  OPC_MoveParent,
1689
548k
/*  3015*/                  OPC_MoveParent,
1690
548k
/*  3016*/                  OPC_MoveChild1,
1691
548k
/*  3017*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
1692
548k
/*  3020*/                  OPC_MoveChild0,
1693
548k
/*  3021*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1694
548k
/*  3024*/                  OPC_CheckChild0Same, 2,
1695
548k
/*  3026*/                  OPC_CheckChild1Integer, 8, 
1696
548k
/*  3028*/                  OPC_CheckChild1Type, MVT::i32,
1697
548k
/*  3030*/                  OPC_MoveParent,
1698
548k
/*  3031*/                  OPC_MoveParent,
1699
548k
/*  3032*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1700
548k
/*  3034*/                  OPC_MoveParent,
1701
548k
/*  3035*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
1702
548k
/*  3037*/                  OPC_MoveParent,
1703
548k
/*  3038*/                  OPC_MoveChild1,
1704
548k
/*  3039*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1705
548k
/*  3042*/                  OPC_MoveChild0,
1706
548k
/*  3043*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
1707
548k
/*  3046*/                  OPC_MoveChild0,
1708
548k
/*  3047*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1709
548k
/*  3050*/                  OPC_Scope, 50|128,1/*178*/, /*->3231*/ // 2 children in Scope
1710
548k
/*  3053*/                    OPC_CheckChild0Same, 1,
1711
548k
/*  3055*/                    OPC_CheckChild1Integer, 16, 
1712
548k
/*  3057*/                    OPC_CheckChild1Type, MVT::i32,
1713
548k
/*  3059*/                    OPC_MoveParent,
1714
548k
/*  3060*/                    OPC_MoveParent,
1715
548k
/*  3061*/                    OPC_MoveChild1,
1716
548k
/*  3062*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
1717
548k
/*  3065*/                    OPC_MoveChild0,
1718
548k
/*  3066*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1719
548k
/*  3069*/                    OPC_CheckChild0Same, 2,
1720
548k
/*  3071*/                    OPC_CheckChild1Integer, 16, 
1721
548k
/*  3073*/                    OPC_CheckChild1Type, MVT::i32,
1722
548k
/*  3075*/                    OPC_MoveParent,
1723
548k
/*  3076*/                    OPC_MoveParent,
1724
548k
/*  3077*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1725
548k
/*  3079*/                    OPC_MoveParent,
1726
548k
/*  3080*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
1727
548k
/*  3082*/                    OPC_MoveParent,
1728
548k
/*  3083*/                    OPC_MoveChild1,
1729
548k
/*  3084*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1730
548k
/*  3087*/                    OPC_MoveChild0,
1731
548k
/*  3088*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1732
548k
/*  3091*/                    OPC_Scope, 68, /*->3161*/ // 2 children in Scope
1733
548k
/*  3093*/                      OPC_CheckChild0Same, 1,
1734
548k
/*  3095*/                      OPC_CheckChild1Integer, 24, 
1735
548k
/*  3097*/                      OPC_CheckChild1Type, MVT::i32,
1736
548k
/*  3099*/                      OPC_MoveParent,
1737
548k
/*  3100*/                      OPC_MoveChild1,
1738
548k
/*  3101*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1739
548k
/*  3104*/                      OPC_CheckChild0Same, 2,
1740
548k
/*  3106*/                      OPC_CheckChild1Integer, 24, 
1741
548k
/*  3108*/                      OPC_CheckChild1Type, MVT::i32,
1742
548k
/*  3110*/                      OPC_MoveParent,
1743
548k
/*  3111*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1744
548k
/*  3113*/                      OPC_MoveParent,
1745
548k
/*  3114*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1746
548k
/*  3116*/                      OPC_CheckType, MVT::i32,
1747
548k
/*  3118*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1748
548k
/*  3120*/                      OPC_EmitInteger, MVT::i32, 8, 
1749
548k
/*  3123*/                      OPC_EmitInteger, MVT::i32, 8, 
1750
548k
/*  3126*/                      OPC_EmitInteger, MVT::i32, 8, 
1751
548k
/*  3129*/                      OPC_EmitInteger, MVT::i1, 0, 
1752
548k
/*  3132*/                      OPC_EmitInteger, MVT::i32, 0, 
1753
548k
/*  3135*/                      OPC_EmitInteger, MVT::i32, 0, 
1754
548k
/*  3138*/                      OPC_EmitInteger, MVT::i32, 0, 
1755
548k
/*  3141*/                      OPC_EmitInteger, MVT::i32, 0, 
1756
548k
/*  3144*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1757
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1758
548k
                                // 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
1759
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1760
548k
/*  3161*/                    /*Scope*/ 68, /*->3230*/
1761
548k
/*  3162*/                      OPC_CheckChild0Same, 2,
1762
548k
/*  3164*/                      OPC_CheckChild1Integer, 24, 
1763
548k
/*  3166*/                      OPC_CheckChild1Type, MVT::i32,
1764
548k
/*  3168*/                      OPC_MoveParent,
1765
548k
/*  3169*/                      OPC_MoveChild1,
1766
548k
/*  3170*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1767
548k
/*  3173*/                      OPC_CheckChild0Same, 1,
1768
548k
/*  3175*/                      OPC_CheckChild1Integer, 24, 
1769
548k
/*  3177*/                      OPC_CheckChild1Type, MVT::i32,
1770
548k
/*  3179*/                      OPC_MoveParent,
1771
548k
/*  3180*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1772
548k
/*  3182*/                      OPC_MoveParent,
1773
548k
/*  3183*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1774
548k
/*  3185*/                      OPC_CheckType, MVT::i32,
1775
548k
/*  3187*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1776
548k
/*  3189*/                      OPC_EmitInteger, MVT::i32, 8, 
1777
548k
/*  3192*/                      OPC_EmitInteger, MVT::i32, 8, 
1778
548k
/*  3195*/                      OPC_EmitInteger, MVT::i32, 8, 
1779
548k
/*  3198*/                      OPC_EmitInteger, MVT::i1, 0, 
1780
548k
/*  3201*/                      OPC_EmitInteger, MVT::i32, 0, 
1781
548k
/*  3204*/                      OPC_EmitInteger, MVT::i32, 0, 
1782
548k
/*  3207*/                      OPC_EmitInteger, MVT::i32, 0, 
1783
548k
/*  3210*/                      OPC_EmitInteger, MVT::i32, 0, 
1784
548k
/*  3213*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1785
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1786
548k
                                // 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
1787
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1788
548k
/*  3230*/                    0, /*End of Scope*/
1789
548k
/*  3231*/                  /*Scope*/ 50|128,1/*178*/, /*->3411*/
1790
548k
/*  3233*/                    OPC_CheckChild0Same, 2,
1791
548k
/*  3235*/                    OPC_CheckChild1Integer, 16, 
1792
548k
/*  3237*/                    OPC_CheckChild1Type, MVT::i32,
1793
548k
/*  3239*/                    OPC_MoveParent,
1794
548k
/*  3240*/                    OPC_MoveParent,
1795
548k
/*  3241*/                    OPC_MoveChild1,
1796
548k
/*  3242*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
1797
548k
/*  3245*/                    OPC_MoveChild0,
1798
548k
/*  3246*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1799
548k
/*  3249*/                    OPC_CheckChild0Same, 1,
1800
548k
/*  3251*/                    OPC_CheckChild1Integer, 16, 
1801
548k
/*  3253*/                    OPC_CheckChild1Type, MVT::i32,
1802
548k
/*  3255*/                    OPC_MoveParent,
1803
548k
/*  3256*/                    OPC_MoveParent,
1804
548k
/*  3257*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1805
548k
/*  3259*/                    OPC_MoveParent,
1806
548k
/*  3260*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
1807
548k
/*  3262*/                    OPC_MoveParent,
1808
548k
/*  3263*/                    OPC_MoveChild1,
1809
548k
/*  3264*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1810
548k
/*  3267*/                    OPC_MoveChild0,
1811
548k
/*  3268*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1812
548k
/*  3271*/                    OPC_Scope, 68, /*->3341*/ // 2 children in Scope
1813
548k
/*  3273*/                      OPC_CheckChild0Same, 1,
1814
548k
/*  3275*/                      OPC_CheckChild1Integer, 24, 
1815
548k
/*  3277*/                      OPC_CheckChild1Type, MVT::i32,
1816
548k
/*  3279*/                      OPC_MoveParent,
1817
548k
/*  3280*/                      OPC_MoveChild1,
1818
548k
/*  3281*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1819
548k
/*  3284*/                      OPC_CheckChild0Same, 2,
1820
548k
/*  3286*/                      OPC_CheckChild1Integer, 24, 
1821
548k
/*  3288*/                      OPC_CheckChild1Type, MVT::i32,
1822
548k
/*  3290*/                      OPC_MoveParent,
1823
548k
/*  3291*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1824
548k
/*  3293*/                      OPC_MoveParent,
1825
548k
/*  3294*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1826
548k
/*  3296*/                      OPC_CheckType, MVT::i32,
1827
548k
/*  3298*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1828
548k
/*  3300*/                      OPC_EmitInteger, MVT::i32, 8, 
1829
548k
/*  3303*/                      OPC_EmitInteger, MVT::i32, 8, 
1830
548k
/*  3306*/                      OPC_EmitInteger, MVT::i32, 8, 
1831
548k
/*  3309*/                      OPC_EmitInteger, MVT::i1, 0, 
1832
548k
/*  3312*/                      OPC_EmitInteger, MVT::i32, 0, 
1833
548k
/*  3315*/                      OPC_EmitInteger, MVT::i32, 0, 
1834
548k
/*  3318*/                      OPC_EmitInteger, MVT::i32, 0, 
1835
548k
/*  3321*/                      OPC_EmitInteger, MVT::i32, 0, 
1836
548k
/*  3324*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1837
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1838
548k
                                // 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
1839
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1840
548k
/*  3341*/                    /*Scope*/ 68, /*->3410*/
1841
548k
/*  3342*/                      OPC_CheckChild0Same, 2,
1842
548k
/*  3344*/                      OPC_CheckChild1Integer, 24, 
1843
548k
/*  3346*/                      OPC_CheckChild1Type, MVT::i32,
1844
548k
/*  3348*/                      OPC_MoveParent,
1845
548k
/*  3349*/                      OPC_MoveChild1,
1846
548k
/*  3350*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1847
548k
/*  3353*/                      OPC_CheckChild0Same, 1,
1848
548k
/*  3355*/                      OPC_CheckChild1Integer, 24, 
1849
548k
/*  3357*/                      OPC_CheckChild1Type, MVT::i32,
1850
548k
/*  3359*/                      OPC_MoveParent,
1851
548k
/*  3360*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1852
548k
/*  3362*/                      OPC_MoveParent,
1853
548k
/*  3363*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1854
548k
/*  3365*/                      OPC_CheckType, MVT::i32,
1855
548k
/*  3367*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1856
548k
/*  3369*/                      OPC_EmitInteger, MVT::i32, 8, 
1857
548k
/*  3372*/                      OPC_EmitInteger, MVT::i32, 8, 
1858
548k
/*  3375*/                      OPC_EmitInteger, MVT::i32, 8, 
1859
548k
/*  3378*/                      OPC_EmitInteger, MVT::i1, 0, 
1860
548k
/*  3381*/                      OPC_EmitInteger, MVT::i32, 0, 
1861
548k
/*  3384*/                      OPC_EmitInteger, MVT::i32, 0, 
1862
548k
/*  3387*/                      OPC_EmitInteger, MVT::i32, 0, 
1863
548k
/*  3390*/                      OPC_EmitInteger, MVT::i32, 0, 
1864
548k
/*  3393*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1865
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1866
548k
                                // 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
1867
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1868
548k
/*  3410*/                    0, /*End of Scope*/
1869
548k
/*  3411*/                  0, /*End of Scope*/
1870
548k
/*  3412*/                /*Scope*/ 34|128,5/*674*/, /*->4088*/
1871
548k
/*  3414*/                  OPC_CheckChild0Same, 2,
1872
548k
/*  3416*/                  OPC_CheckChild1Integer, 8, 
1873
548k
/*  3418*/                  OPC_CheckChild1Type, MVT::i32,
1874
548k
/*  3420*/                  OPC_MoveParent,
1875
548k
/*  3421*/                  OPC_MoveParent,
1876
548k
/*  3422*/                  OPC_MoveChild1,
1877
548k
/*  3423*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
1878
548k
/*  3426*/                  OPC_MoveChild0,
1879
548k
/*  3427*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1880
548k
/*  3430*/                  OPC_CheckChild0Same, 1,
1881
548k
/*  3432*/                  OPC_CheckChild1Integer, 8, 
1882
548k
/*  3434*/                  OPC_CheckChild1Type, MVT::i32,
1883
548k
/*  3436*/                  OPC_MoveParent,
1884
548k
/*  3437*/                  OPC_MoveParent,
1885
548k
/*  3438*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1886
548k
/*  3440*/                  OPC_MoveParent,
1887
548k
/*  3441*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
1888
548k
/*  3443*/                  OPC_MoveParent,
1889
548k
/*  3444*/                  OPC_MoveChild1,
1890
548k
/*  3445*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1891
548k
/*  3448*/                  OPC_MoveChild0,
1892
548k
/*  3449*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
1893
548k
/*  3452*/                  OPC_MoveChild0,
1894
548k
/*  3453*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1895
548k
/*  3456*/                  OPC_Scope, 50|128,1/*178*/, /*->3637*/ // 3 children in Scope
1896
548k
/*  3459*/                    OPC_CheckChild0Same, 1,
1897
548k
/*  3461*/                    OPC_CheckChild1Integer, 16, 
1898
548k
/*  3463*/                    OPC_CheckChild1Type, MVT::i32,
1899
548k
/*  3465*/                    OPC_MoveParent,
1900
548k
/*  3466*/                    OPC_MoveParent,
1901
548k
/*  3467*/                    OPC_MoveChild1,
1902
548k
/*  3468*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
1903
548k
/*  3471*/                    OPC_MoveChild0,
1904
548k
/*  3472*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1905
548k
/*  3475*/                    OPC_CheckChild0Same, 2,
1906
548k
/*  3477*/                    OPC_CheckChild1Integer, 16, 
1907
548k
/*  3479*/                    OPC_CheckChild1Type, MVT::i32,
1908
548k
/*  3481*/                    OPC_MoveParent,
1909
548k
/*  3482*/                    OPC_MoveParent,
1910
548k
/*  3483*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1911
548k
/*  3485*/                    OPC_MoveParent,
1912
548k
/*  3486*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
1913
548k
/*  3488*/                    OPC_MoveParent,
1914
548k
/*  3489*/                    OPC_MoveChild1,
1915
548k
/*  3490*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1916
548k
/*  3493*/                    OPC_MoveChild0,
1917
548k
/*  3494*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1918
548k
/*  3497*/                    OPC_Scope, 68, /*->3567*/ // 2 children in Scope
1919
548k
/*  3499*/                      OPC_CheckChild0Same, 1,
1920
548k
/*  3501*/                      OPC_CheckChild1Integer, 24, 
1921
548k
/*  3503*/                      OPC_CheckChild1Type, MVT::i32,
1922
548k
/*  3505*/                      OPC_MoveParent,
1923
548k
/*  3506*/                      OPC_MoveChild1,
1924
548k
/*  3507*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1925
548k
/*  3510*/                      OPC_CheckChild0Same, 2,
1926
548k
/*  3512*/                      OPC_CheckChild1Integer, 24, 
1927
548k
/*  3514*/                      OPC_CheckChild1Type, MVT::i32,
1928
548k
/*  3516*/                      OPC_MoveParent,
1929
548k
/*  3517*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1930
548k
/*  3519*/                      OPC_MoveParent,
1931
548k
/*  3520*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1932
548k
/*  3522*/                      OPC_CheckType, MVT::i32,
1933
548k
/*  3524*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1934
548k
/*  3526*/                      OPC_EmitInteger, MVT::i32, 8, 
1935
548k
/*  3529*/                      OPC_EmitInteger, MVT::i32, 8, 
1936
548k
/*  3532*/                      OPC_EmitInteger, MVT::i32, 8, 
1937
548k
/*  3535*/                      OPC_EmitInteger, MVT::i1, 0, 
1938
548k
/*  3538*/                      OPC_EmitInteger, MVT::i32, 0, 
1939
548k
/*  3541*/                      OPC_EmitInteger, MVT::i32, 0, 
1940
548k
/*  3544*/                      OPC_EmitInteger, MVT::i32, 0, 
1941
548k
/*  3547*/                      OPC_EmitInteger, MVT::i32, 0, 
1942
548k
/*  3550*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1943
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1944
548k
                                // 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
1945
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1946
548k
/*  3567*/                    /*Scope*/ 68, /*->3636*/
1947
548k
/*  3568*/                      OPC_CheckChild0Same, 2,
1948
548k
/*  3570*/                      OPC_CheckChild1Integer, 24, 
1949
548k
/*  3572*/                      OPC_CheckChild1Type, MVT::i32,
1950
548k
/*  3574*/                      OPC_MoveParent,
1951
548k
/*  3575*/                      OPC_MoveChild1,
1952
548k
/*  3576*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1953
548k
/*  3579*/                      OPC_CheckChild0Same, 1,
1954
548k
/*  3581*/                      OPC_CheckChild1Integer, 24, 
1955
548k
/*  3583*/                      OPC_CheckChild1Type, MVT::i32,
1956
548k
/*  3585*/                      OPC_MoveParent,
1957
548k
/*  3586*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1958
548k
/*  3588*/                      OPC_MoveParent,
1959
548k
/*  3589*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
1960
548k
/*  3591*/                      OPC_CheckType, MVT::i32,
1961
548k
/*  3593*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
1962
548k
/*  3595*/                      OPC_EmitInteger, MVT::i32, 8, 
1963
548k
/*  3598*/                      OPC_EmitInteger, MVT::i32, 8, 
1964
548k
/*  3601*/                      OPC_EmitInteger, MVT::i32, 8, 
1965
548k
/*  3604*/                      OPC_EmitInteger, MVT::i1, 0, 
1966
548k
/*  3607*/                      OPC_EmitInteger, MVT::i32, 0, 
1967
548k
/*  3610*/                      OPC_EmitInteger, MVT::i32, 0, 
1968
548k
/*  3613*/                      OPC_EmitInteger, MVT::i32, 0, 
1969
548k
/*  3616*/                      OPC_EmitInteger, MVT::i32, 0, 
1970
548k
/*  3619*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
1971
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
1972
548k
                                // 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
1973
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
1974
548k
/*  3636*/                    0, /*End of Scope*/
1975
548k
/*  3637*/                  /*Scope*/ 12|128,2/*268*/, /*->3907*/
1976
548k
/*  3639*/                    OPC_CheckChild0Same, 2,
1977
548k
/*  3641*/                    OPC_CheckChild1Integer, 16, 
1978
548k
/*  3643*/                    OPC_CheckChild1Type, MVT::i32,
1979
548k
/*  3645*/                    OPC_MoveParent,
1980
548k
/*  3646*/                    OPC_MoveParent,
1981
548k
/*  3647*/                    OPC_MoveChild1,
1982
548k
/*  3648*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
1983
548k
/*  3651*/                    OPC_MoveChild0,
1984
548k
/*  3652*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1985
548k
/*  3655*/                    OPC_CheckChild0Same, 1,
1986
548k
/*  3657*/                    OPC_CheckChild1Integer, 16, 
1987
548k
/*  3659*/                    OPC_CheckChild1Type, MVT::i32,
1988
548k
/*  3661*/                    OPC_MoveParent,
1989
548k
/*  3662*/                    OPC_MoveParent,
1990
548k
/*  3663*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
1991
548k
/*  3665*/                    OPC_MoveParent,
1992
548k
/*  3666*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
1993
548k
/*  3668*/                    OPC_MoveParent,
1994
548k
/*  3669*/                    OPC_MoveChild1,
1995
548k
/*  3670*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
1996
548k
/*  3673*/                    OPC_MoveChild0,
1997
548k
/*  3674*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
1998
548k
/*  3677*/                    OPC_Scope, 68, /*->3747*/ // 3 children in Scope
1999
548k
/*  3679*/                      OPC_CheckChild0Same, 1,
2000
548k
/*  3681*/                      OPC_CheckChild1Integer, 24, 
2001
548k
/*  3683*/                      OPC_CheckChild1Type, MVT::i32,
2002
548k
/*  3685*/                      OPC_MoveParent,
2003
548k
/*  3686*/                      OPC_MoveChild1,
2004
548k
/*  3687*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2005
548k
/*  3690*/                      OPC_CheckChild0Same, 2,
2006
548k
/*  3692*/                      OPC_CheckChild1Integer, 24, 
2007
548k
/*  3694*/                      OPC_CheckChild1Type, MVT::i32,
2008
548k
/*  3696*/                      OPC_MoveParent,
2009
548k
/*  3697*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2010
548k
/*  3699*/                      OPC_MoveParent,
2011
548k
/*  3700*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2012
548k
/*  3702*/                      OPC_CheckType, MVT::i32,
2013
548k
/*  3704*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2014
548k
/*  3706*/                      OPC_EmitInteger, MVT::i32, 8, 
2015
548k
/*  3709*/                      OPC_EmitInteger, MVT::i32, 8, 
2016
548k
/*  3712*/                      OPC_EmitInteger, MVT::i32, 8, 
2017
548k
/*  3715*/                      OPC_EmitInteger, MVT::i1, 0, 
2018
548k
/*  3718*/                      OPC_EmitInteger, MVT::i32, 0, 
2019
548k
/*  3721*/                      OPC_EmitInteger, MVT::i32, 0, 
2020
548k
/*  3724*/                      OPC_EmitInteger, MVT::i32, 0, 
2021
548k
/*  3727*/                      OPC_EmitInteger, MVT::i32, 0, 
2022
548k
/*  3730*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2023
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
2024
548k
                                // 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
2025
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2026
548k
/*  3747*/                    /*Scope*/ 89, /*->3837*/
2027
548k
/*  3748*/                      OPC_CheckChild0Same, 2,
2028
548k
/*  3750*/                      OPC_CheckChild1Integer, 24, 
2029
548k
/*  3752*/                      OPC_CheckChild1Type, MVT::i32,
2030
548k
/*  3754*/                      OPC_MoveParent,
2031
548k
/*  3755*/                      OPC_MoveChild1,
2032
548k
/*  3756*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2033
548k
/*  3759*/                      OPC_CheckChild0Same, 1,
2034
548k
/*  3761*/                      OPC_CheckChild1Integer, 24, 
2035
548k
/*  3763*/                      OPC_CheckChild1Type, MVT::i32,
2036
548k
/*  3765*/                      OPC_MoveParent,
2037
548k
/*  3766*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2038
548k
/*  3768*/                      OPC_MoveParent,
2039
548k
/*  3769*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2040
548k
/*  3771*/                      OPC_CheckType, MVT::i32,
2041
548k
/*  3773*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2042
548k
/*  3775*/                      OPC_EmitInteger, MVT::i32, 8, 
2043
548k
/*  3778*/                      OPC_EmitInteger, MVT::i32, 8, 
2044
548k
/*  3781*/                      OPC_EmitInteger, MVT::i32, 8, 
2045
548k
/*  3784*/                      OPC_EmitInteger, MVT::i1, 0, 
2046
548k
/*  3787*/                      OPC_EmitInteger, MVT::i32, 0, 
2047
548k
/*  3790*/                      OPC_EmitInteger, MVT::i32, 0, 
2048
548k
/*  3793*/                      OPC_EmitInteger, MVT::i32, 0, 
2049
548k
/*  3796*/                      OPC_EmitInteger, MVT::i32, 0, 
2050
548k
/*  3799*/                      OPC_Scope, 17, /*->3818*/ // 2 children in Scope
2051
548k
/*  3801*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2052
548k
                                      MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
2053
548k
                                  // 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
2054
548k
                                  // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2055
548k
/*  3818*/                      /*Scope*/ 17, /*->3836*/
2056
548k
/*  3819*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2057
548k
                                      MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2058
548k
                                  // 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
2059
548k
                                  // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2060
548k
/*  3836*/                      0, /*End of Scope*/
2061
548k
/*  3837*/                    /*Scope*/ 68, /*->3906*/
2062
548k
/*  3838*/                      OPC_CheckChild0Same, 1,
2063
548k
/*  3840*/                      OPC_CheckChild1Integer, 24, 
2064
548k
/*  3842*/                      OPC_CheckChild1Type, MVT::i32,
2065
548k
/*  3844*/                      OPC_MoveParent,
2066
548k
/*  3845*/                      OPC_MoveChild1,
2067
548k
/*  3846*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2068
548k
/*  3849*/                      OPC_CheckChild0Same, 2,
2069
548k
/*  3851*/                      OPC_CheckChild1Integer, 24, 
2070
548k
/*  3853*/                      OPC_CheckChild1Type, MVT::i32,
2071
548k
/*  3855*/                      OPC_MoveParent,
2072
548k
/*  3856*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2073
548k
/*  3858*/                      OPC_MoveParent,
2074
548k
/*  3859*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2075
548k
/*  3861*/                      OPC_CheckType, MVT::i32,
2076
548k
/*  3863*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2077
548k
/*  3865*/                      OPC_EmitInteger, MVT::i32, 8, 
2078
548k
/*  3868*/                      OPC_EmitInteger, MVT::i32, 8, 
2079
548k
/*  3871*/                      OPC_EmitInteger, MVT::i32, 8, 
2080
548k
/*  3874*/                      OPC_EmitInteger, MVT::i1, 0, 
2081
548k
/*  3877*/                      OPC_EmitInteger, MVT::i32, 0, 
2082
548k
/*  3880*/                      OPC_EmitInteger, MVT::i32, 0, 
2083
548k
/*  3883*/                      OPC_EmitInteger, MVT::i32, 0, 
2084
548k
/*  3886*/                      OPC_EmitInteger, MVT::i32, 0, 
2085
548k
/*  3889*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2086
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2087
548k
                                // 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
2088
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2089
548k
/*  3906*/                    0, /*End of Scope*/
2090
548k
/*  3907*/                  /*Scope*/ 50|128,1/*178*/, /*->4087*/
2091
548k
/*  3909*/                    OPC_CheckChild0Same, 1,
2092
548k
/*  3911*/                    OPC_CheckChild1Integer, 16, 
2093
548k
/*  3913*/                    OPC_CheckChild1Type, MVT::i32,
2094
548k
/*  3915*/                    OPC_MoveParent,
2095
548k
/*  3916*/                    OPC_MoveParent,
2096
548k
/*  3917*/                    OPC_MoveChild1,
2097
548k
/*  3918*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2098
548k
/*  3921*/                    OPC_MoveChild0,
2099
548k
/*  3922*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2100
548k
/*  3925*/                    OPC_CheckChild0Same, 2,
2101
548k
/*  3927*/                    OPC_CheckChild1Integer, 16, 
2102
548k
/*  3929*/                    OPC_CheckChild1Type, MVT::i32,
2103
548k
/*  3931*/                    OPC_MoveParent,
2104
548k
/*  3932*/                    OPC_MoveParent,
2105
548k
/*  3933*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2106
548k
/*  3935*/                    OPC_MoveParent,
2107
548k
/*  3936*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2108
548k
/*  3938*/                    OPC_MoveParent,
2109
548k
/*  3939*/                    OPC_MoveChild1,
2110
548k
/*  3940*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2111
548k
/*  3943*/                    OPC_MoveChild0,
2112
548k
/*  3944*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2113
548k
/*  3947*/                    OPC_Scope, 68, /*->4017*/ // 2 children in Scope
2114
548k
/*  3949*/                      OPC_CheckChild0Same, 2,
2115
548k
/*  3951*/                      OPC_CheckChild1Integer, 24, 
2116
548k
/*  3953*/                      OPC_CheckChild1Type, MVT::i32,
2117
548k
/*  3955*/                      OPC_MoveParent,
2118
548k
/*  3956*/                      OPC_MoveChild1,
2119
548k
/*  3957*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2120
548k
/*  3960*/                      OPC_CheckChild0Same, 1,
2121
548k
/*  3962*/                      OPC_CheckChild1Integer, 24, 
2122
548k
/*  3964*/                      OPC_CheckChild1Type, MVT::i32,
2123
548k
/*  3966*/                      OPC_MoveParent,
2124
548k
/*  3967*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2125
548k
/*  3969*/                      OPC_MoveParent,
2126
548k
/*  3970*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2127
548k
/*  3972*/                      OPC_CheckType, MVT::i32,
2128
548k
/*  3974*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2129
548k
/*  3976*/                      OPC_EmitInteger, MVT::i32, 8, 
2130
548k
/*  3979*/                      OPC_EmitInteger, MVT::i32, 8, 
2131
548k
/*  3982*/                      OPC_EmitInteger, MVT::i32, 8, 
2132
548k
/*  3985*/                      OPC_EmitInteger, MVT::i1, 0, 
2133
548k
/*  3988*/                      OPC_EmitInteger, MVT::i32, 0, 
2134
548k
/*  3991*/                      OPC_EmitInteger, MVT::i32, 0, 
2135
548k
/*  3994*/                      OPC_EmitInteger, MVT::i32, 0, 
2136
548k
/*  3997*/                      OPC_EmitInteger, MVT::i32, 0, 
2137
548k
/*  4000*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2138
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2139
548k
                                // 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
2140
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2141
548k
/*  4017*/                    /*Scope*/ 68, /*->4086*/
2142
548k
/*  4018*/                      OPC_CheckChild0Same, 1,
2143
548k
/*  4020*/                      OPC_CheckChild1Integer, 24, 
2144
548k
/*  4022*/                      OPC_CheckChild1Type, MVT::i32,
2145
548k
/*  4024*/                      OPC_MoveParent,
2146
548k
/*  4025*/                      OPC_MoveChild1,
2147
548k
/*  4026*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2148
548k
/*  4029*/                      OPC_CheckChild0Same, 2,
2149
548k
/*  4031*/                      OPC_CheckChild1Integer, 24, 
2150
548k
/*  4033*/                      OPC_CheckChild1Type, MVT::i32,
2151
548k
/*  4035*/                      OPC_MoveParent,
2152
548k
/*  4036*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2153
548k
/*  4038*/                      OPC_MoveParent,
2154
548k
/*  4039*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2155
548k
/*  4041*/                      OPC_CheckType, MVT::i32,
2156
548k
/*  4043*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2157
548k
/*  4045*/                      OPC_EmitInteger, MVT::i32, 8, 
2158
548k
/*  4048*/                      OPC_EmitInteger, MVT::i32, 8, 
2159
548k
/*  4051*/                      OPC_EmitInteger, MVT::i32, 8, 
2160
548k
/*  4054*/                      OPC_EmitInteger, MVT::i1, 0, 
2161
548k
/*  4057*/                      OPC_EmitInteger, MVT::i32, 0, 
2162
548k
/*  4060*/                      OPC_EmitInteger, MVT::i32, 0, 
2163
548k
/*  4063*/                      OPC_EmitInteger, MVT::i32, 0, 
2164
548k
/*  4066*/                      OPC_EmitInteger, MVT::i32, 0, 
2165
548k
/*  4069*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2166
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2167
548k
                                // 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
2168
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2169
548k
/*  4086*/                    0, /*End of Scope*/
2170
548k
/*  4087*/                  0, /*End of Scope*/
2171
548k
/*  4088*/                /*Scope*/ 20|128,3/*404*/, /*->4494*/
2172
548k
/*  4090*/                  OPC_CheckChild0Same, 1,
2173
548k
/*  4092*/                  OPC_CheckChild1Integer, 8, 
2174
548k
/*  4094*/                  OPC_CheckChild1Type, MVT::i32,
2175
548k
/*  4096*/                  OPC_MoveParent,
2176
548k
/*  4097*/                  OPC_MoveParent,
2177
548k
/*  4098*/                  OPC_MoveChild1,
2178
548k
/*  4099*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2179
548k
/*  4102*/                  OPC_MoveChild0,
2180
548k
/*  4103*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2181
548k
/*  4106*/                  OPC_CheckChild0Same, 2,
2182
548k
/*  4108*/                  OPC_CheckChild1Integer, 8, 
2183
548k
/*  4110*/                  OPC_CheckChild1Type, MVT::i32,
2184
548k
/*  4112*/                  OPC_MoveParent,
2185
548k
/*  4113*/                  OPC_MoveParent,
2186
548k
/*  4114*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2187
548k
/*  4116*/                  OPC_MoveParent,
2188
548k
/*  4117*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
2189
548k
/*  4119*/                  OPC_MoveParent,
2190
548k
/*  4120*/                  OPC_MoveChild1,
2191
548k
/*  4121*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2192
548k
/*  4124*/                  OPC_MoveChild0,
2193
548k
/*  4125*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2194
548k
/*  4128*/                  OPC_MoveChild0,
2195
548k
/*  4129*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2196
548k
/*  4132*/                  OPC_Scope, 50|128,1/*178*/, /*->4313*/ // 2 children in Scope
2197
548k
/*  4135*/                    OPC_CheckChild0Same, 2,
2198
548k
/*  4137*/                    OPC_CheckChild1Integer, 16, 
2199
548k
/*  4139*/                    OPC_CheckChild1Type, MVT::i32,
2200
548k
/*  4141*/                    OPC_MoveParent,
2201
548k
/*  4142*/                    OPC_MoveParent,
2202
548k
/*  4143*/                    OPC_MoveChild1,
2203
548k
/*  4144*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2204
548k
/*  4147*/                    OPC_MoveChild0,
2205
548k
/*  4148*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2206
548k
/*  4151*/                    OPC_CheckChild0Same, 1,
2207
548k
/*  4153*/                    OPC_CheckChild1Integer, 16, 
2208
548k
/*  4155*/                    OPC_CheckChild1Type, MVT::i32,
2209
548k
/*  4157*/                    OPC_MoveParent,
2210
548k
/*  4158*/                    OPC_MoveParent,
2211
548k
/*  4159*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2212
548k
/*  4161*/                    OPC_MoveParent,
2213
548k
/*  4162*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2214
548k
/*  4164*/                    OPC_MoveParent,
2215
548k
/*  4165*/                    OPC_MoveChild1,
2216
548k
/*  4166*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2217
548k
/*  4169*/                    OPC_MoveChild0,
2218
548k
/*  4170*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2219
548k
/*  4173*/                    OPC_Scope, 68, /*->4243*/ // 2 children in Scope
2220
548k
/*  4175*/                      OPC_CheckChild0Same, 2,
2221
548k
/*  4177*/                      OPC_CheckChild1Integer, 24, 
2222
548k
/*  4179*/                      OPC_CheckChild1Type, MVT::i32,
2223
548k
/*  4181*/                      OPC_MoveParent,
2224
548k
/*  4182*/                      OPC_MoveChild1,
2225
548k
/*  4183*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2226
548k
/*  4186*/                      OPC_CheckChild0Same, 1,
2227
548k
/*  4188*/                      OPC_CheckChild1Integer, 24, 
2228
548k
/*  4190*/                      OPC_CheckChild1Type, MVT::i32,
2229
548k
/*  4192*/                      OPC_MoveParent,
2230
548k
/*  4193*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2231
548k
/*  4195*/                      OPC_MoveParent,
2232
548k
/*  4196*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2233
548k
/*  4198*/                      OPC_CheckType, MVT::i32,
2234
548k
/*  4200*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2235
548k
/*  4202*/                      OPC_EmitInteger, MVT::i32, 8, 
2236
548k
/*  4205*/                      OPC_EmitInteger, MVT::i32, 8, 
2237
548k
/*  4208*/                      OPC_EmitInteger, MVT::i32, 8, 
2238
548k
/*  4211*/                      OPC_EmitInteger, MVT::i1, 0, 
2239
548k
/*  4214*/                      OPC_EmitInteger, MVT::i32, 0, 
2240
548k
/*  4217*/                      OPC_EmitInteger, MVT::i32, 0, 
2241
548k
/*  4220*/                      OPC_EmitInteger, MVT::i32, 0, 
2242
548k
/*  4223*/                      OPC_EmitInteger, MVT::i32, 0, 
2243
548k
/*  4226*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2244
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2245
548k
                                // 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
2246
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2247
548k
/*  4243*/                    /*Scope*/ 68, /*->4312*/
2248
548k
/*  4244*/                      OPC_CheckChild0Same, 1,
2249
548k
/*  4246*/                      OPC_CheckChild1Integer, 24, 
2250
548k
/*  4248*/                      OPC_CheckChild1Type, MVT::i32,
2251
548k
/*  4250*/                      OPC_MoveParent,
2252
548k
/*  4251*/                      OPC_MoveChild1,
2253
548k
/*  4252*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2254
548k
/*  4255*/                      OPC_CheckChild0Same, 2,
2255
548k
/*  4257*/                      OPC_CheckChild1Integer, 24, 
2256
548k
/*  4259*/                      OPC_CheckChild1Type, MVT::i32,
2257
548k
/*  4261*/                      OPC_MoveParent,
2258
548k
/*  4262*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2259
548k
/*  4264*/                      OPC_MoveParent,
2260
548k
/*  4265*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2261
548k
/*  4267*/                      OPC_CheckType, MVT::i32,
2262
548k
/*  4269*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2263
548k
/*  4271*/                      OPC_EmitInteger, MVT::i32, 8, 
2264
548k
/*  4274*/                      OPC_EmitInteger, MVT::i32, 8, 
2265
548k
/*  4277*/                      OPC_EmitInteger, MVT::i32, 8, 
2266
548k
/*  4280*/                      OPC_EmitInteger, MVT::i1, 0, 
2267
548k
/*  4283*/                      OPC_EmitInteger, MVT::i32, 0, 
2268
548k
/*  4286*/                      OPC_EmitInteger, MVT::i32, 0, 
2269
548k
/*  4289*/                      OPC_EmitInteger, MVT::i32, 0, 
2270
548k
/*  4292*/                      OPC_EmitInteger, MVT::i32, 0, 
2271
548k
/*  4295*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2272
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2273
548k
                                // 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
2274
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2275
548k
/*  4312*/                    0, /*End of Scope*/
2276
548k
/*  4313*/                  /*Scope*/ 50|128,1/*178*/, /*->4493*/
2277
548k
/*  4315*/                    OPC_CheckChild0Same, 1,
2278
548k
/*  4317*/                    OPC_CheckChild1Integer, 16, 
2279
548k
/*  4319*/                    OPC_CheckChild1Type, MVT::i32,
2280
548k
/*  4321*/                    OPC_MoveParent,
2281
548k
/*  4322*/                    OPC_MoveParent,
2282
548k
/*  4323*/                    OPC_MoveChild1,
2283
548k
/*  4324*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2284
548k
/*  4327*/                    OPC_MoveChild0,
2285
548k
/*  4328*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2286
548k
/*  4331*/                    OPC_CheckChild0Same, 2,
2287
548k
/*  4333*/                    OPC_CheckChild1Integer, 16, 
2288
548k
/*  4335*/                    OPC_CheckChild1Type, MVT::i32,
2289
548k
/*  4337*/                    OPC_MoveParent,
2290
548k
/*  4338*/                    OPC_MoveParent,
2291
548k
/*  4339*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2292
548k
/*  4341*/                    OPC_MoveParent,
2293
548k
/*  4342*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2294
548k
/*  4344*/                    OPC_MoveParent,
2295
548k
/*  4345*/                    OPC_MoveChild1,
2296
548k
/*  4346*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2297
548k
/*  4349*/                    OPC_MoveChild0,
2298
548k
/*  4350*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2299
548k
/*  4353*/                    OPC_Scope, 68, /*->4423*/ // 2 children in Scope
2300
548k
/*  4355*/                      OPC_CheckChild0Same, 2,
2301
548k
/*  4357*/                      OPC_CheckChild1Integer, 24, 
2302
548k
/*  4359*/                      OPC_CheckChild1Type, MVT::i32,
2303
548k
/*  4361*/                      OPC_MoveParent,
2304
548k
/*  4362*/                      OPC_MoveChild1,
2305
548k
/*  4363*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2306
548k
/*  4366*/                      OPC_CheckChild0Same, 1,
2307
548k
/*  4368*/                      OPC_CheckChild1Integer, 24, 
2308
548k
/*  4370*/                      OPC_CheckChild1Type, MVT::i32,
2309
548k
/*  4372*/                      OPC_MoveParent,
2310
548k
/*  4373*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2311
548k
/*  4375*/                      OPC_MoveParent,
2312
548k
/*  4376*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2313
548k
/*  4378*/                      OPC_CheckType, MVT::i32,
2314
548k
/*  4380*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2315
548k
/*  4382*/                      OPC_EmitInteger, MVT::i32, 8, 
2316
548k
/*  4385*/                      OPC_EmitInteger, MVT::i32, 8, 
2317
548k
/*  4388*/                      OPC_EmitInteger, MVT::i32, 8, 
2318
548k
/*  4391*/                      OPC_EmitInteger, MVT::i1, 0, 
2319
548k
/*  4394*/                      OPC_EmitInteger, MVT::i32, 0, 
2320
548k
/*  4397*/                      OPC_EmitInteger, MVT::i32, 0, 
2321
548k
/*  4400*/                      OPC_EmitInteger, MVT::i32, 0, 
2322
548k
/*  4403*/                      OPC_EmitInteger, MVT::i32, 0, 
2323
548k
/*  4406*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2324
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2325
548k
                                // 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
2326
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2327
548k
/*  4423*/                    /*Scope*/ 68, /*->4492*/
2328
548k
/*  4424*/                      OPC_CheckChild0Same, 1,
2329
548k
/*  4426*/                      OPC_CheckChild1Integer, 24, 
2330
548k
/*  4428*/                      OPC_CheckChild1Type, MVT::i32,
2331
548k
/*  4430*/                      OPC_MoveParent,
2332
548k
/*  4431*/                      OPC_MoveChild1,
2333
548k
/*  4432*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2334
548k
/*  4435*/                      OPC_CheckChild0Same, 2,
2335
548k
/*  4437*/                      OPC_CheckChild1Integer, 24, 
2336
548k
/*  4439*/                      OPC_CheckChild1Type, MVT::i32,
2337
548k
/*  4441*/                      OPC_MoveParent,
2338
548k
/*  4442*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2339
548k
/*  4444*/                      OPC_MoveParent,
2340
548k
/*  4445*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2341
548k
/*  4447*/                      OPC_CheckType, MVT::i32,
2342
548k
/*  4449*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2343
548k
/*  4451*/                      OPC_EmitInteger, MVT::i32, 8, 
2344
548k
/*  4454*/                      OPC_EmitInteger, MVT::i32, 8, 
2345
548k
/*  4457*/                      OPC_EmitInteger, MVT::i32, 8, 
2346
548k
/*  4460*/                      OPC_EmitInteger, MVT::i1, 0, 
2347
548k
/*  4463*/                      OPC_EmitInteger, MVT::i32, 0, 
2348
548k
/*  4466*/                      OPC_EmitInteger, MVT::i32, 0, 
2349
548k
/*  4469*/                      OPC_EmitInteger, MVT::i32, 0, 
2350
548k
/*  4472*/                      OPC_EmitInteger, MVT::i32, 0, 
2351
548k
/*  4475*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2352
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
2353
548k
                                // 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
2354
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2355
548k
/*  4492*/                    0, /*End of Scope*/
2356
548k
/*  4493*/                  0, /*End of Scope*/
2357
548k
/*  4494*/                0, /*End of Scope*/
2358
548k
/*  4495*/              /*Scope*/ 117|128,11/*1525*/, /*->6022*/
2359
548k
/*  4497*/                OPC_MoveChild0,
2360
548k
/*  4498*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2361
548k
/*  4501*/                OPC_MoveChild0,
2362
548k
/*  4502*/                OPC_CheckAndImm, 127|128,1/*255*/, 
2363
548k
/*  4505*/                OPC_RecordChild0, // #0 = $src0
2364
548k
/*  4506*/                OPC_MoveParent,
2365
548k
/*  4507*/                OPC_MoveChild1,
2366
548k
/*  4508*/                OPC_CheckAndImm, 127|128,1/*255*/, 
2367
548k
/*  4511*/                OPC_RecordChild0, // #1 = $src1
2368
548k
/*  4512*/                OPC_MoveParent,
2369
548k
/*  4513*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2370
548k
/*  4515*/                OPC_MoveParent,
2371
548k
/*  4516*/                OPC_RecordChild1, // #2 = $src2
2372
548k
/*  4517*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
2373
548k
/*  4519*/                OPC_MoveParent,
2374
548k
/*  4520*/                OPC_MoveChild1,
2375
548k
/*  4521*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2376
548k
/*  4524*/                OPC_MoveChild0,
2377
548k
/*  4525*/                OPC_CheckAndImm, 127|128,1/*255*/, 
2378
548k
/*  4528*/                OPC_MoveChild0,
2379
548k
/*  4529*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2380
548k
/*  4532*/                OPC_Scope, 20|128,3/*404*/, /*->4939*/ // 3 children in Scope
2381
548k
/*  4535*/                  OPC_CheckChild0Same, 0,
2382
548k
/*  4537*/                  OPC_CheckChild1Integer, 8, 
2383
548k
/*  4539*/                  OPC_CheckChild1Type, MVT::i32,
2384
548k
/*  4541*/                  OPC_MoveParent,
2385
548k
/*  4542*/                  OPC_MoveParent,
2386
548k
/*  4543*/                  OPC_MoveChild1,
2387
548k
/*  4544*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2388
548k
/*  4547*/                  OPC_MoveChild0,
2389
548k
/*  4548*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2390
548k
/*  4551*/                  OPC_CheckChild0Same, 1,
2391
548k
/*  4553*/                  OPC_CheckChild1Integer, 8, 
2392
548k
/*  4555*/                  OPC_CheckChild1Type, MVT::i32,
2393
548k
/*  4557*/                  OPC_MoveParent,
2394
548k
/*  4558*/                  OPC_MoveParent,
2395
548k
/*  4559*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2396
548k
/*  4561*/                  OPC_MoveParent,
2397
548k
/*  4562*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
2398
548k
/*  4564*/                  OPC_MoveParent,
2399
548k
/*  4565*/                  OPC_MoveChild1,
2400
548k
/*  4566*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2401
548k
/*  4569*/                  OPC_MoveChild0,
2402
548k
/*  4570*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2403
548k
/*  4573*/                  OPC_MoveChild0,
2404
548k
/*  4574*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2405
548k
/*  4577*/                  OPC_Scope, 50|128,1/*178*/, /*->4758*/ // 2 children in Scope
2406
548k
/*  4580*/                    OPC_CheckChild0Same, 0,
2407
548k
/*  4582*/                    OPC_CheckChild1Integer, 16, 
2408
548k
/*  4584*/                    OPC_CheckChild1Type, MVT::i32,
2409
548k
/*  4586*/                    OPC_MoveParent,
2410
548k
/*  4587*/                    OPC_MoveParent,
2411
548k
/*  4588*/                    OPC_MoveChild1,
2412
548k
/*  4589*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2413
548k
/*  4592*/                    OPC_MoveChild0,
2414
548k
/*  4593*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2415
548k
/*  4596*/                    OPC_CheckChild0Same, 1,
2416
548k
/*  4598*/                    OPC_CheckChild1Integer, 16, 
2417
548k
/*  4600*/                    OPC_CheckChild1Type, MVT::i32,
2418
548k
/*  4602*/                    OPC_MoveParent,
2419
548k
/*  4603*/                    OPC_MoveParent,
2420
548k
/*  4604*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2421
548k
/*  4606*/                    OPC_MoveParent,
2422
548k
/*  4607*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2423
548k
/*  4609*/                    OPC_MoveParent,
2424
548k
/*  4610*/                    OPC_MoveChild1,
2425
548k
/*  4611*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2426
548k
/*  4614*/                    OPC_MoveChild0,
2427
548k
/*  4615*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2428
548k
/*  4618*/                    OPC_Scope, 68, /*->4688*/ // 2 children in Scope
2429
548k
/*  4620*/                      OPC_CheckChild0Same, 0,
2430
548k
/*  4622*/                      OPC_CheckChild1Integer, 24, 
2431
548k
/*  4624*/                      OPC_CheckChild1Type, MVT::i32,
2432
548k
/*  4626*/                      OPC_MoveParent,
2433
548k
/*  4627*/                      OPC_MoveChild1,
2434
548k
/*  4628*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2435
548k
/*  4631*/                      OPC_CheckChild0Same, 1,
2436
548k
/*  4633*/                      OPC_CheckChild1Integer, 24, 
2437
548k
/*  4635*/                      OPC_CheckChild1Type, MVT::i32,
2438
548k
/*  4637*/                      OPC_MoveParent,
2439
548k
/*  4638*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2440
548k
/*  4640*/                      OPC_MoveParent,
2441
548k
/*  4641*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2442
548k
/*  4643*/                      OPC_CheckType, MVT::i32,
2443
548k
/*  4645*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2444
548k
/*  4647*/                      OPC_EmitInteger, MVT::i32, 8, 
2445
548k
/*  4650*/                      OPC_EmitInteger, MVT::i32, 8, 
2446
548k
/*  4653*/                      OPC_EmitInteger, MVT::i32, 8, 
2447
548k
/*  4656*/                      OPC_EmitInteger, MVT::i1, 0, 
2448
548k
/*  4659*/                      OPC_EmitInteger, MVT::i32, 0, 
2449
548k
/*  4662*/                      OPC_EmitInteger, MVT::i32, 0, 
2450
548k
/*  4665*/                      OPC_EmitInteger, MVT::i32, 0, 
2451
548k
/*  4668*/                      OPC_EmitInteger, MVT::i32, 0, 
2452
548k
/*  4671*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2453
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2454
548k
                                // 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
2455
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2456
548k
/*  4688*/                    /*Scope*/ 68, /*->4757*/
2457
548k
/*  4689*/                      OPC_CheckChild0Same, 1,
2458
548k
/*  4691*/                      OPC_CheckChild1Integer, 24, 
2459
548k
/*  4693*/                      OPC_CheckChild1Type, MVT::i32,
2460
548k
/*  4695*/                      OPC_MoveParent,
2461
548k
/*  4696*/                      OPC_MoveChild1,
2462
548k
/*  4697*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2463
548k
/*  4700*/                      OPC_CheckChild0Same, 0,
2464
548k
/*  4702*/                      OPC_CheckChild1Integer, 24, 
2465
548k
/*  4704*/                      OPC_CheckChild1Type, MVT::i32,
2466
548k
/*  4706*/                      OPC_MoveParent,
2467
548k
/*  4707*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2468
548k
/*  4709*/                      OPC_MoveParent,
2469
548k
/*  4710*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2470
548k
/*  4712*/                      OPC_CheckType, MVT::i32,
2471
548k
/*  4714*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2472
548k
/*  4716*/                      OPC_EmitInteger, MVT::i32, 8, 
2473
548k
/*  4719*/                      OPC_EmitInteger, MVT::i32, 8, 
2474
548k
/*  4722*/                      OPC_EmitInteger, MVT::i32, 8, 
2475
548k
/*  4725*/                      OPC_EmitInteger, MVT::i1, 0, 
2476
548k
/*  4728*/                      OPC_EmitInteger, MVT::i32, 0, 
2477
548k
/*  4731*/                      OPC_EmitInteger, MVT::i32, 0, 
2478
548k
/*  4734*/                      OPC_EmitInteger, MVT::i32, 0, 
2479
548k
/*  4737*/                      OPC_EmitInteger, MVT::i32, 0, 
2480
548k
/*  4740*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2481
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2482
548k
                                // 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
2483
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2484
548k
/*  4757*/                    0, /*End of Scope*/
2485
548k
/*  4758*/                  /*Scope*/ 50|128,1/*178*/, /*->4938*/
2486
548k
/*  4760*/                    OPC_CheckChild0Same, 1,
2487
548k
/*  4762*/                    OPC_CheckChild1Integer, 16, 
2488
548k
/*  4764*/                    OPC_CheckChild1Type, MVT::i32,
2489
548k
/*  4766*/                    OPC_MoveParent,
2490
548k
/*  4767*/                    OPC_MoveParent,
2491
548k
/*  4768*/                    OPC_MoveChild1,
2492
548k
/*  4769*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2493
548k
/*  4772*/                    OPC_MoveChild0,
2494
548k
/*  4773*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2495
548k
/*  4776*/                    OPC_CheckChild0Same, 0,
2496
548k
/*  4778*/                    OPC_CheckChild1Integer, 16, 
2497
548k
/*  4780*/                    OPC_CheckChild1Type, MVT::i32,
2498
548k
/*  4782*/                    OPC_MoveParent,
2499
548k
/*  4783*/                    OPC_MoveParent,
2500
548k
/*  4784*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2501
548k
/*  4786*/                    OPC_MoveParent,
2502
548k
/*  4787*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2503
548k
/*  4789*/                    OPC_MoveParent,
2504
548k
/*  4790*/                    OPC_MoveChild1,
2505
548k
/*  4791*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2506
548k
/*  4794*/                    OPC_MoveChild0,
2507
548k
/*  4795*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2508
548k
/*  4798*/                    OPC_Scope, 68, /*->4868*/ // 2 children in Scope
2509
548k
/*  4800*/                      OPC_CheckChild0Same, 0,
2510
548k
/*  4802*/                      OPC_CheckChild1Integer, 24, 
2511
548k
/*  4804*/                      OPC_CheckChild1Type, MVT::i32,
2512
548k
/*  4806*/                      OPC_MoveParent,
2513
548k
/*  4807*/                      OPC_MoveChild1,
2514
548k
/*  4808*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2515
548k
/*  4811*/                      OPC_CheckChild0Same, 1,
2516
548k
/*  4813*/                      OPC_CheckChild1Integer, 24, 
2517
548k
/*  4815*/                      OPC_CheckChild1Type, MVT::i32,
2518
548k
/*  4817*/                      OPC_MoveParent,
2519
548k
/*  4818*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2520
548k
/*  4820*/                      OPC_MoveParent,
2521
548k
/*  4821*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2522
548k
/*  4823*/                      OPC_CheckType, MVT::i32,
2523
548k
/*  4825*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2524
548k
/*  4827*/                      OPC_EmitInteger, MVT::i32, 8, 
2525
548k
/*  4830*/                      OPC_EmitInteger, MVT::i32, 8, 
2526
548k
/*  4833*/                      OPC_EmitInteger, MVT::i32, 8, 
2527
548k
/*  4836*/                      OPC_EmitInteger, MVT::i1, 0, 
2528
548k
/*  4839*/                      OPC_EmitInteger, MVT::i32, 0, 
2529
548k
/*  4842*/                      OPC_EmitInteger, MVT::i32, 0, 
2530
548k
/*  4845*/                      OPC_EmitInteger, MVT::i32, 0, 
2531
548k
/*  4848*/                      OPC_EmitInteger, MVT::i32, 0, 
2532
548k
/*  4851*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2533
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2534
548k
                                // 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
2535
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2536
548k
/*  4868*/                    /*Scope*/ 68, /*->4937*/
2537
548k
/*  4869*/                      OPC_CheckChild0Same, 1,
2538
548k
/*  4871*/                      OPC_CheckChild1Integer, 24, 
2539
548k
/*  4873*/                      OPC_CheckChild1Type, MVT::i32,
2540
548k
/*  4875*/                      OPC_MoveParent,
2541
548k
/*  4876*/                      OPC_MoveChild1,
2542
548k
/*  4877*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2543
548k
/*  4880*/                      OPC_CheckChild0Same, 0,
2544
548k
/*  4882*/                      OPC_CheckChild1Integer, 24, 
2545
548k
/*  4884*/                      OPC_CheckChild1Type, MVT::i32,
2546
548k
/*  4886*/                      OPC_MoveParent,
2547
548k
/*  4887*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2548
548k
/*  4889*/                      OPC_MoveParent,
2549
548k
/*  4890*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2550
548k
/*  4892*/                      OPC_CheckType, MVT::i32,
2551
548k
/*  4894*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2552
548k
/*  4896*/                      OPC_EmitInteger, MVT::i32, 8, 
2553
548k
/*  4899*/                      OPC_EmitInteger, MVT::i32, 8, 
2554
548k
/*  4902*/                      OPC_EmitInteger, MVT::i32, 8, 
2555
548k
/*  4905*/                      OPC_EmitInteger, MVT::i1, 0, 
2556
548k
/*  4908*/                      OPC_EmitInteger, MVT::i32, 0, 
2557
548k
/*  4911*/                      OPC_EmitInteger, MVT::i32, 0, 
2558
548k
/*  4914*/                      OPC_EmitInteger, MVT::i32, 0, 
2559
548k
/*  4917*/                      OPC_EmitInteger, MVT::i32, 0, 
2560
548k
/*  4920*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2561
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2562
548k
                                // 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
2563
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2564
548k
/*  4937*/                    0, /*End of Scope*/
2565
548k
/*  4938*/                  0, /*End of Scope*/
2566
548k
/*  4939*/                /*Scope*/ 34|128,5/*674*/, /*->5615*/
2567
548k
/*  4941*/                  OPC_CheckChild0Same, 1,
2568
548k
/*  4943*/                  OPC_CheckChild1Integer, 8, 
2569
548k
/*  4945*/                  OPC_CheckChild1Type, MVT::i32,
2570
548k
/*  4947*/                  OPC_MoveParent,
2571
548k
/*  4948*/                  OPC_MoveParent,
2572
548k
/*  4949*/                  OPC_MoveChild1,
2573
548k
/*  4950*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2574
548k
/*  4953*/                  OPC_MoveChild0,
2575
548k
/*  4954*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2576
548k
/*  4957*/                  OPC_CheckChild0Same, 0,
2577
548k
/*  4959*/                  OPC_CheckChild1Integer, 8, 
2578
548k
/*  4961*/                  OPC_CheckChild1Type, MVT::i32,
2579
548k
/*  4963*/                  OPC_MoveParent,
2580
548k
/*  4964*/                  OPC_MoveParent,
2581
548k
/*  4965*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2582
548k
/*  4967*/                  OPC_MoveParent,
2583
548k
/*  4968*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
2584
548k
/*  4970*/                  OPC_MoveParent,
2585
548k
/*  4971*/                  OPC_MoveChild1,
2586
548k
/*  4972*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2587
548k
/*  4975*/                  OPC_MoveChild0,
2588
548k
/*  4976*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2589
548k
/*  4979*/                  OPC_MoveChild0,
2590
548k
/*  4980*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2591
548k
/*  4983*/                  OPC_Scope, 50|128,1/*178*/, /*->5164*/ // 3 children in Scope
2592
548k
/*  4986*/                    OPC_CheckChild0Same, 0,
2593
548k
/*  4988*/                    OPC_CheckChild1Integer, 16, 
2594
548k
/*  4990*/                    OPC_CheckChild1Type, MVT::i32,
2595
548k
/*  4992*/                    OPC_MoveParent,
2596
548k
/*  4993*/                    OPC_MoveParent,
2597
548k
/*  4994*/                    OPC_MoveChild1,
2598
548k
/*  4995*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2599
548k
/*  4998*/                    OPC_MoveChild0,
2600
548k
/*  4999*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2601
548k
/*  5002*/                    OPC_CheckChild0Same, 1,
2602
548k
/*  5004*/                    OPC_CheckChild1Integer, 16, 
2603
548k
/*  5006*/                    OPC_CheckChild1Type, MVT::i32,
2604
548k
/*  5008*/                    OPC_MoveParent,
2605
548k
/*  5009*/                    OPC_MoveParent,
2606
548k
/*  5010*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2607
548k
/*  5012*/                    OPC_MoveParent,
2608
548k
/*  5013*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2609
548k
/*  5015*/                    OPC_MoveParent,
2610
548k
/*  5016*/                    OPC_MoveChild1,
2611
548k
/*  5017*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2612
548k
/*  5020*/                    OPC_MoveChild0,
2613
548k
/*  5021*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2614
548k
/*  5024*/                    OPC_Scope, 68, /*->5094*/ // 2 children in Scope
2615
548k
/*  5026*/                      OPC_CheckChild0Same, 0,
2616
548k
/*  5028*/                      OPC_CheckChild1Integer, 24, 
2617
548k
/*  5030*/                      OPC_CheckChild1Type, MVT::i32,
2618
548k
/*  5032*/                      OPC_MoveParent,
2619
548k
/*  5033*/                      OPC_MoveChild1,
2620
548k
/*  5034*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2621
548k
/*  5037*/                      OPC_CheckChild0Same, 1,
2622
548k
/*  5039*/                      OPC_CheckChild1Integer, 24, 
2623
548k
/*  5041*/                      OPC_CheckChild1Type, MVT::i32,
2624
548k
/*  5043*/                      OPC_MoveParent,
2625
548k
/*  5044*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2626
548k
/*  5046*/                      OPC_MoveParent,
2627
548k
/*  5047*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2628
548k
/*  5049*/                      OPC_CheckType, MVT::i32,
2629
548k
/*  5051*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2630
548k
/*  5053*/                      OPC_EmitInteger, MVT::i32, 8, 
2631
548k
/*  5056*/                      OPC_EmitInteger, MVT::i32, 8, 
2632
548k
/*  5059*/                      OPC_EmitInteger, MVT::i32, 8, 
2633
548k
/*  5062*/                      OPC_EmitInteger, MVT::i1, 0, 
2634
548k
/*  5065*/                      OPC_EmitInteger, MVT::i32, 0, 
2635
548k
/*  5068*/                      OPC_EmitInteger, MVT::i32, 0, 
2636
548k
/*  5071*/                      OPC_EmitInteger, MVT::i32, 0, 
2637
548k
/*  5074*/                      OPC_EmitInteger, MVT::i32, 0, 
2638
548k
/*  5077*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2639
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2640
548k
                                // 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
2641
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2642
548k
/*  5094*/                    /*Scope*/ 68, /*->5163*/
2643
548k
/*  5095*/                      OPC_CheckChild0Same, 1,
2644
548k
/*  5097*/                      OPC_CheckChild1Integer, 24, 
2645
548k
/*  5099*/                      OPC_CheckChild1Type, MVT::i32,
2646
548k
/*  5101*/                      OPC_MoveParent,
2647
548k
/*  5102*/                      OPC_MoveChild1,
2648
548k
/*  5103*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2649
548k
/*  5106*/                      OPC_CheckChild0Same, 0,
2650
548k
/*  5108*/                      OPC_CheckChild1Integer, 24, 
2651
548k
/*  5110*/                      OPC_CheckChild1Type, MVT::i32,
2652
548k
/*  5112*/                      OPC_MoveParent,
2653
548k
/*  5113*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2654
548k
/*  5115*/                      OPC_MoveParent,
2655
548k
/*  5116*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2656
548k
/*  5118*/                      OPC_CheckType, MVT::i32,
2657
548k
/*  5120*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2658
548k
/*  5122*/                      OPC_EmitInteger, MVT::i32, 8, 
2659
548k
/*  5125*/                      OPC_EmitInteger, MVT::i32, 8, 
2660
548k
/*  5128*/                      OPC_EmitInteger, MVT::i32, 8, 
2661
548k
/*  5131*/                      OPC_EmitInteger, MVT::i1, 0, 
2662
548k
/*  5134*/                      OPC_EmitInteger, MVT::i32, 0, 
2663
548k
/*  5137*/                      OPC_EmitInteger, MVT::i32, 0, 
2664
548k
/*  5140*/                      OPC_EmitInteger, MVT::i32, 0, 
2665
548k
/*  5143*/                      OPC_EmitInteger, MVT::i32, 0, 
2666
548k
/*  5146*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2667
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2668
548k
                                // 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
2669
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2670
548k
/*  5163*/                    0, /*End of Scope*/
2671
548k
/*  5164*/                  /*Scope*/ 12|128,2/*268*/, /*->5434*/
2672
548k
/*  5166*/                    OPC_CheckChild0Same, 1,
2673
548k
/*  5168*/                    OPC_CheckChild1Integer, 16, 
2674
548k
/*  5170*/                    OPC_CheckChild1Type, MVT::i32,
2675
548k
/*  5172*/                    OPC_MoveParent,
2676
548k
/*  5173*/                    OPC_MoveParent,
2677
548k
/*  5174*/                    OPC_MoveChild1,
2678
548k
/*  5175*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2679
548k
/*  5178*/                    OPC_MoveChild0,
2680
548k
/*  5179*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2681
548k
/*  5182*/                    OPC_CheckChild0Same, 0,
2682
548k
/*  5184*/                    OPC_CheckChild1Integer, 16, 
2683
548k
/*  5186*/                    OPC_CheckChild1Type, MVT::i32,
2684
548k
/*  5188*/                    OPC_MoveParent,
2685
548k
/*  5189*/                    OPC_MoveParent,
2686
548k
/*  5190*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2687
548k
/*  5192*/                    OPC_MoveParent,
2688
548k
/*  5193*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2689
548k
/*  5195*/                    OPC_MoveParent,
2690
548k
/*  5196*/                    OPC_MoveChild1,
2691
548k
/*  5197*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2692
548k
/*  5200*/                    OPC_MoveChild0,
2693
548k
/*  5201*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2694
548k
/*  5204*/                    OPC_Scope, 68, /*->5274*/ // 3 children in Scope
2695
548k
/*  5206*/                      OPC_CheckChild0Same, 0,
2696
548k
/*  5208*/                      OPC_CheckChild1Integer, 24, 
2697
548k
/*  5210*/                      OPC_CheckChild1Type, MVT::i32,
2698
548k
/*  5212*/                      OPC_MoveParent,
2699
548k
/*  5213*/                      OPC_MoveChild1,
2700
548k
/*  5214*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2701
548k
/*  5217*/                      OPC_CheckChild0Same, 1,
2702
548k
/*  5219*/                      OPC_CheckChild1Integer, 24, 
2703
548k
/*  5221*/                      OPC_CheckChild1Type, MVT::i32,
2704
548k
/*  5223*/                      OPC_MoveParent,
2705
548k
/*  5224*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2706
548k
/*  5226*/                      OPC_MoveParent,
2707
548k
/*  5227*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2708
548k
/*  5229*/                      OPC_CheckType, MVT::i32,
2709
548k
/*  5231*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2710
548k
/*  5233*/                      OPC_EmitInteger, MVT::i32, 8, 
2711
548k
/*  5236*/                      OPC_EmitInteger, MVT::i32, 8, 
2712
548k
/*  5239*/                      OPC_EmitInteger, MVT::i32, 8, 
2713
548k
/*  5242*/                      OPC_EmitInteger, MVT::i1, 0, 
2714
548k
/*  5245*/                      OPC_EmitInteger, MVT::i32, 0, 
2715
548k
/*  5248*/                      OPC_EmitInteger, MVT::i32, 0, 
2716
548k
/*  5251*/                      OPC_EmitInteger, MVT::i32, 0, 
2717
548k
/*  5254*/                      OPC_EmitInteger, MVT::i32, 0, 
2718
548k
/*  5257*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2719
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2720
548k
                                // 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
2721
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2722
548k
/*  5274*/                    /*Scope*/ 89, /*->5364*/
2723
548k
/*  5275*/                      OPC_CheckChild0Same, 1,
2724
548k
/*  5277*/                      OPC_CheckChild1Integer, 24, 
2725
548k
/*  5279*/                      OPC_CheckChild1Type, MVT::i32,
2726
548k
/*  5281*/                      OPC_MoveParent,
2727
548k
/*  5282*/                      OPC_MoveChild1,
2728
548k
/*  5283*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2729
548k
/*  5286*/                      OPC_CheckChild0Same, 0,
2730
548k
/*  5288*/                      OPC_CheckChild1Integer, 24, 
2731
548k
/*  5290*/                      OPC_CheckChild1Type, MVT::i32,
2732
548k
/*  5292*/                      OPC_MoveParent,
2733
548k
/*  5293*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2734
548k
/*  5295*/                      OPC_MoveParent,
2735
548k
/*  5296*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2736
548k
/*  5298*/                      OPC_CheckType, MVT::i32,
2737
548k
/*  5300*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2738
548k
/*  5302*/                      OPC_EmitInteger, MVT::i32, 8, 
2739
548k
/*  5305*/                      OPC_EmitInteger, MVT::i32, 8, 
2740
548k
/*  5308*/                      OPC_EmitInteger, MVT::i32, 8, 
2741
548k
/*  5311*/                      OPC_EmitInteger, MVT::i1, 0, 
2742
548k
/*  5314*/                      OPC_EmitInteger, MVT::i32, 0, 
2743
548k
/*  5317*/                      OPC_EmitInteger, MVT::i32, 0, 
2744
548k
/*  5320*/                      OPC_EmitInteger, MVT::i32, 0, 
2745
548k
/*  5323*/                      OPC_EmitInteger, MVT::i32, 0, 
2746
548k
/*  5326*/                      OPC_Scope, 17, /*->5345*/ // 2 children in Scope
2747
548k
/*  5328*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2748
548k
                                      MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
2749
548k
                                  // 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
2750
548k
                                  // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2751
548k
/*  5345*/                      /*Scope*/ 17, /*->5363*/
2752
548k
/*  5346*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2753
548k
                                      MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2754
548k
                                  // 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
2755
548k
                                  // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2756
548k
/*  5363*/                      0, /*End of Scope*/
2757
548k
/*  5364*/                    /*Scope*/ 68, /*->5433*/
2758
548k
/*  5365*/                      OPC_CheckChild0Same, 0,
2759
548k
/*  5367*/                      OPC_CheckChild1Integer, 24, 
2760
548k
/*  5369*/                      OPC_CheckChild1Type, MVT::i32,
2761
548k
/*  5371*/                      OPC_MoveParent,
2762
548k
/*  5372*/                      OPC_MoveChild1,
2763
548k
/*  5373*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2764
548k
/*  5376*/                      OPC_CheckChild0Same, 1,
2765
548k
/*  5378*/                      OPC_CheckChild1Integer, 24, 
2766
548k
/*  5380*/                      OPC_CheckChild1Type, MVT::i32,
2767
548k
/*  5382*/                      OPC_MoveParent,
2768
548k
/*  5383*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2769
548k
/*  5385*/                      OPC_MoveParent,
2770
548k
/*  5386*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2771
548k
/*  5388*/                      OPC_CheckType, MVT::i32,
2772
548k
/*  5390*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2773
548k
/*  5392*/                      OPC_EmitInteger, MVT::i32, 8, 
2774
548k
/*  5395*/                      OPC_EmitInteger, MVT::i32, 8, 
2775
548k
/*  5398*/                      OPC_EmitInteger, MVT::i32, 8, 
2776
548k
/*  5401*/                      OPC_EmitInteger, MVT::i1, 0, 
2777
548k
/*  5404*/                      OPC_EmitInteger, MVT::i32, 0, 
2778
548k
/*  5407*/                      OPC_EmitInteger, MVT::i32, 0, 
2779
548k
/*  5410*/                      OPC_EmitInteger, MVT::i32, 0, 
2780
548k
/*  5413*/                      OPC_EmitInteger, MVT::i32, 0, 
2781
548k
/*  5416*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2782
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2783
548k
                                // 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
2784
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2785
548k
/*  5433*/                    0, /*End of Scope*/
2786
548k
/*  5434*/                  /*Scope*/ 50|128,1/*178*/, /*->5614*/
2787
548k
/*  5436*/                    OPC_CheckChild0Same, 0,
2788
548k
/*  5438*/                    OPC_CheckChild1Integer, 16, 
2789
548k
/*  5440*/                    OPC_CheckChild1Type, MVT::i32,
2790
548k
/*  5442*/                    OPC_MoveParent,
2791
548k
/*  5443*/                    OPC_MoveParent,
2792
548k
/*  5444*/                    OPC_MoveChild1,
2793
548k
/*  5445*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2794
548k
/*  5448*/                    OPC_MoveChild0,
2795
548k
/*  5449*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2796
548k
/*  5452*/                    OPC_CheckChild0Same, 1,
2797
548k
/*  5454*/                    OPC_CheckChild1Integer, 16, 
2798
548k
/*  5456*/                    OPC_CheckChild1Type, MVT::i32,
2799
548k
/*  5458*/                    OPC_MoveParent,
2800
548k
/*  5459*/                    OPC_MoveParent,
2801
548k
/*  5460*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2802
548k
/*  5462*/                    OPC_MoveParent,
2803
548k
/*  5463*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2804
548k
/*  5465*/                    OPC_MoveParent,
2805
548k
/*  5466*/                    OPC_MoveChild1,
2806
548k
/*  5467*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2807
548k
/*  5470*/                    OPC_MoveChild0,
2808
548k
/*  5471*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2809
548k
/*  5474*/                    OPC_Scope, 68, /*->5544*/ // 2 children in Scope
2810
548k
/*  5476*/                      OPC_CheckChild0Same, 1,
2811
548k
/*  5478*/                      OPC_CheckChild1Integer, 24, 
2812
548k
/*  5480*/                      OPC_CheckChild1Type, MVT::i32,
2813
548k
/*  5482*/                      OPC_MoveParent,
2814
548k
/*  5483*/                      OPC_MoveChild1,
2815
548k
/*  5484*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2816
548k
/*  5487*/                      OPC_CheckChild0Same, 0,
2817
548k
/*  5489*/                      OPC_CheckChild1Integer, 24, 
2818
548k
/*  5491*/                      OPC_CheckChild1Type, MVT::i32,
2819
548k
/*  5493*/                      OPC_MoveParent,
2820
548k
/*  5494*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2821
548k
/*  5496*/                      OPC_MoveParent,
2822
548k
/*  5497*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2823
548k
/*  5499*/                      OPC_CheckType, MVT::i32,
2824
548k
/*  5501*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2825
548k
/*  5503*/                      OPC_EmitInteger, MVT::i32, 8, 
2826
548k
/*  5506*/                      OPC_EmitInteger, MVT::i32, 8, 
2827
548k
/*  5509*/                      OPC_EmitInteger, MVT::i32, 8, 
2828
548k
/*  5512*/                      OPC_EmitInteger, MVT::i1, 0, 
2829
548k
/*  5515*/                      OPC_EmitInteger, MVT::i32, 0, 
2830
548k
/*  5518*/                      OPC_EmitInteger, MVT::i32, 0, 
2831
548k
/*  5521*/                      OPC_EmitInteger, MVT::i32, 0, 
2832
548k
/*  5524*/                      OPC_EmitInteger, MVT::i32, 0, 
2833
548k
/*  5527*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2834
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2835
548k
                                // 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
2836
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2837
548k
/*  5544*/                    /*Scope*/ 68, /*->5613*/
2838
548k
/*  5545*/                      OPC_CheckChild0Same, 0,
2839
548k
/*  5547*/                      OPC_CheckChild1Integer, 24, 
2840
548k
/*  5549*/                      OPC_CheckChild1Type, MVT::i32,
2841
548k
/*  5551*/                      OPC_MoveParent,
2842
548k
/*  5552*/                      OPC_MoveChild1,
2843
548k
/*  5553*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2844
548k
/*  5556*/                      OPC_CheckChild0Same, 1,
2845
548k
/*  5558*/                      OPC_CheckChild1Integer, 24, 
2846
548k
/*  5560*/                      OPC_CheckChild1Type, MVT::i32,
2847
548k
/*  5562*/                      OPC_MoveParent,
2848
548k
/*  5563*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2849
548k
/*  5565*/                      OPC_MoveParent,
2850
548k
/*  5566*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2851
548k
/*  5568*/                      OPC_CheckType, MVT::i32,
2852
548k
/*  5570*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2853
548k
/*  5572*/                      OPC_EmitInteger, MVT::i32, 8, 
2854
548k
/*  5575*/                      OPC_EmitInteger, MVT::i32, 8, 
2855
548k
/*  5578*/                      OPC_EmitInteger, MVT::i32, 8, 
2856
548k
/*  5581*/                      OPC_EmitInteger, MVT::i1, 0, 
2857
548k
/*  5584*/                      OPC_EmitInteger, MVT::i32, 0, 
2858
548k
/*  5587*/                      OPC_EmitInteger, MVT::i32, 0, 
2859
548k
/*  5590*/                      OPC_EmitInteger, MVT::i32, 0, 
2860
548k
/*  5593*/                      OPC_EmitInteger, MVT::i32, 0, 
2861
548k
/*  5596*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2862
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2863
548k
                                // 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
2864
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2865
548k
/*  5613*/                    0, /*End of Scope*/
2866
548k
/*  5614*/                  0, /*End of Scope*/
2867
548k
/*  5615*/                /*Scope*/ 20|128,3/*404*/, /*->6021*/
2868
548k
/*  5617*/                  OPC_CheckChild0Same, 0,
2869
548k
/*  5619*/                  OPC_CheckChild1Integer, 8, 
2870
548k
/*  5621*/                  OPC_CheckChild1Type, MVT::i32,
2871
548k
/*  5623*/                  OPC_MoveParent,
2872
548k
/*  5624*/                  OPC_MoveParent,
2873
548k
/*  5625*/                  OPC_MoveChild1,
2874
548k
/*  5626*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2875
548k
/*  5629*/                  OPC_MoveChild0,
2876
548k
/*  5630*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2877
548k
/*  5633*/                  OPC_CheckChild0Same, 1,
2878
548k
/*  5635*/                  OPC_CheckChild1Integer, 8, 
2879
548k
/*  5637*/                  OPC_CheckChild1Type, MVT::i32,
2880
548k
/*  5639*/                  OPC_MoveParent,
2881
548k
/*  5640*/                  OPC_MoveParent,
2882
548k
/*  5641*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2883
548k
/*  5643*/                  OPC_MoveParent,
2884
548k
/*  5644*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
2885
548k
/*  5646*/                  OPC_MoveParent,
2886
548k
/*  5647*/                  OPC_MoveChild1,
2887
548k
/*  5648*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2888
548k
/*  5651*/                  OPC_MoveChild0,
2889
548k
/*  5652*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
2890
548k
/*  5655*/                  OPC_MoveChild0,
2891
548k
/*  5656*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2892
548k
/*  5659*/                  OPC_Scope, 50|128,1/*178*/, /*->5840*/ // 2 children in Scope
2893
548k
/*  5662*/                    OPC_CheckChild0Same, 1,
2894
548k
/*  5664*/                    OPC_CheckChild1Integer, 16, 
2895
548k
/*  5666*/                    OPC_CheckChild1Type, MVT::i32,
2896
548k
/*  5668*/                    OPC_MoveParent,
2897
548k
/*  5669*/                    OPC_MoveParent,
2898
548k
/*  5670*/                    OPC_MoveChild1,
2899
548k
/*  5671*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2900
548k
/*  5674*/                    OPC_MoveChild0,
2901
548k
/*  5675*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2902
548k
/*  5678*/                    OPC_CheckChild0Same, 0,
2903
548k
/*  5680*/                    OPC_CheckChild1Integer, 16, 
2904
548k
/*  5682*/                    OPC_CheckChild1Type, MVT::i32,
2905
548k
/*  5684*/                    OPC_MoveParent,
2906
548k
/*  5685*/                    OPC_MoveParent,
2907
548k
/*  5686*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2908
548k
/*  5688*/                    OPC_MoveParent,
2909
548k
/*  5689*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2910
548k
/*  5691*/                    OPC_MoveParent,
2911
548k
/*  5692*/                    OPC_MoveChild1,
2912
548k
/*  5693*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2913
548k
/*  5696*/                    OPC_MoveChild0,
2914
548k
/*  5697*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2915
548k
/*  5700*/                    OPC_Scope, 68, /*->5770*/ // 2 children in Scope
2916
548k
/*  5702*/                      OPC_CheckChild0Same, 1,
2917
548k
/*  5704*/                      OPC_CheckChild1Integer, 24, 
2918
548k
/*  5706*/                      OPC_CheckChild1Type, MVT::i32,
2919
548k
/*  5708*/                      OPC_MoveParent,
2920
548k
/*  5709*/                      OPC_MoveChild1,
2921
548k
/*  5710*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2922
548k
/*  5713*/                      OPC_CheckChild0Same, 0,
2923
548k
/*  5715*/                      OPC_CheckChild1Integer, 24, 
2924
548k
/*  5717*/                      OPC_CheckChild1Type, MVT::i32,
2925
548k
/*  5719*/                      OPC_MoveParent,
2926
548k
/*  5720*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2927
548k
/*  5722*/                      OPC_MoveParent,
2928
548k
/*  5723*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2929
548k
/*  5725*/                      OPC_CheckType, MVT::i32,
2930
548k
/*  5727*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2931
548k
/*  5729*/                      OPC_EmitInteger, MVT::i32, 8, 
2932
548k
/*  5732*/                      OPC_EmitInteger, MVT::i32, 8, 
2933
548k
/*  5735*/                      OPC_EmitInteger, MVT::i32, 8, 
2934
548k
/*  5738*/                      OPC_EmitInteger, MVT::i1, 0, 
2935
548k
/*  5741*/                      OPC_EmitInteger, MVT::i32, 0, 
2936
548k
/*  5744*/                      OPC_EmitInteger, MVT::i32, 0, 
2937
548k
/*  5747*/                      OPC_EmitInteger, MVT::i32, 0, 
2938
548k
/*  5750*/                      OPC_EmitInteger, MVT::i32, 0, 
2939
548k
/*  5753*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2940
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2941
548k
                                // 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
2942
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2943
548k
/*  5770*/                    /*Scope*/ 68, /*->5839*/
2944
548k
/*  5771*/                      OPC_CheckChild0Same, 0,
2945
548k
/*  5773*/                      OPC_CheckChild1Integer, 24, 
2946
548k
/*  5775*/                      OPC_CheckChild1Type, MVT::i32,
2947
548k
/*  5777*/                      OPC_MoveParent,
2948
548k
/*  5778*/                      OPC_MoveChild1,
2949
548k
/*  5779*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2950
548k
/*  5782*/                      OPC_CheckChild0Same, 1,
2951
548k
/*  5784*/                      OPC_CheckChild1Integer, 24, 
2952
548k
/*  5786*/                      OPC_CheckChild1Type, MVT::i32,
2953
548k
/*  5788*/                      OPC_MoveParent,
2954
548k
/*  5789*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2955
548k
/*  5791*/                      OPC_MoveParent,
2956
548k
/*  5792*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
2957
548k
/*  5794*/                      OPC_CheckType, MVT::i32,
2958
548k
/*  5796*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
2959
548k
/*  5798*/                      OPC_EmitInteger, MVT::i32, 8, 
2960
548k
/*  5801*/                      OPC_EmitInteger, MVT::i32, 8, 
2961
548k
/*  5804*/                      OPC_EmitInteger, MVT::i32, 8, 
2962
548k
/*  5807*/                      OPC_EmitInteger, MVT::i1, 0, 
2963
548k
/*  5810*/                      OPC_EmitInteger, MVT::i32, 0, 
2964
548k
/*  5813*/                      OPC_EmitInteger, MVT::i32, 0, 
2965
548k
/*  5816*/                      OPC_EmitInteger, MVT::i32, 0, 
2966
548k
/*  5819*/                      OPC_EmitInteger, MVT::i32, 0, 
2967
548k
/*  5822*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
2968
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
2969
548k
                                // 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
2970
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
2971
548k
/*  5839*/                    0, /*End of Scope*/
2972
548k
/*  5840*/                  /*Scope*/ 50|128,1/*178*/, /*->6020*/
2973
548k
/*  5842*/                    OPC_CheckChild0Same, 0,
2974
548k
/*  5844*/                    OPC_CheckChild1Integer, 16, 
2975
548k
/*  5846*/                    OPC_CheckChild1Type, MVT::i32,
2976
548k
/*  5848*/                    OPC_MoveParent,
2977
548k
/*  5849*/                    OPC_MoveParent,
2978
548k
/*  5850*/                    OPC_MoveChild1,
2979
548k
/*  5851*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
2980
548k
/*  5854*/                    OPC_MoveChild0,
2981
548k
/*  5855*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2982
548k
/*  5858*/                    OPC_CheckChild0Same, 1,
2983
548k
/*  5860*/                    OPC_CheckChild1Integer, 16, 
2984
548k
/*  5862*/                    OPC_CheckChild1Type, MVT::i32,
2985
548k
/*  5864*/                    OPC_MoveParent,
2986
548k
/*  5865*/                    OPC_MoveParent,
2987
548k
/*  5866*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
2988
548k
/*  5868*/                    OPC_MoveParent,
2989
548k
/*  5869*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
2990
548k
/*  5871*/                    OPC_MoveParent,
2991
548k
/*  5872*/                    OPC_MoveChild1,
2992
548k
/*  5873*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
2993
548k
/*  5876*/                    OPC_MoveChild0,
2994
548k
/*  5877*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
2995
548k
/*  5880*/                    OPC_Scope, 68, /*->5950*/ // 2 children in Scope
2996
548k
/*  5882*/                      OPC_CheckChild0Same, 1,
2997
548k
/*  5884*/                      OPC_CheckChild1Integer, 24, 
2998
548k
/*  5886*/                      OPC_CheckChild1Type, MVT::i32,
2999
548k
/*  5888*/                      OPC_MoveParent,
3000
548k
/*  5889*/                      OPC_MoveChild1,
3001
548k
/*  5890*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3002
548k
/*  5893*/                      OPC_CheckChild0Same, 0,
3003
548k
/*  5895*/                      OPC_CheckChild1Integer, 24, 
3004
548k
/*  5897*/                      OPC_CheckChild1Type, MVT::i32,
3005
548k
/*  5899*/                      OPC_MoveParent,
3006
548k
/*  5900*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3007
548k
/*  5902*/                      OPC_MoveParent,
3008
548k
/*  5903*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3009
548k
/*  5905*/                      OPC_CheckType, MVT::i32,
3010
548k
/*  5907*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3011
548k
/*  5909*/                      OPC_EmitInteger, MVT::i32, 8, 
3012
548k
/*  5912*/                      OPC_EmitInteger, MVT::i32, 8, 
3013
548k
/*  5915*/                      OPC_EmitInteger, MVT::i32, 8, 
3014
548k
/*  5918*/                      OPC_EmitInteger, MVT::i1, 0, 
3015
548k
/*  5921*/                      OPC_EmitInteger, MVT::i32, 0, 
3016
548k
/*  5924*/                      OPC_EmitInteger, MVT::i32, 0, 
3017
548k
/*  5927*/                      OPC_EmitInteger, MVT::i32, 0, 
3018
548k
/*  5930*/                      OPC_EmitInteger, MVT::i32, 0, 
3019
548k
/*  5933*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
3020
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
3021
548k
                                // 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
3022
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3023
548k
/*  5950*/                    /*Scope*/ 68, /*->6019*/
3024
548k
/*  5951*/                      OPC_CheckChild0Same, 0,
3025
548k
/*  5953*/                      OPC_CheckChild1Integer, 24, 
3026
548k
/*  5955*/                      OPC_CheckChild1Type, MVT::i32,
3027
548k
/*  5957*/                      OPC_MoveParent,
3028
548k
/*  5958*/                      OPC_MoveChild1,
3029
548k
/*  5959*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3030
548k
/*  5962*/                      OPC_CheckChild0Same, 1,
3031
548k
/*  5964*/                      OPC_CheckChild1Integer, 24, 
3032
548k
/*  5966*/                      OPC_CheckChild1Type, MVT::i32,
3033
548k
/*  5968*/                      OPC_MoveParent,
3034
548k
/*  5969*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
3035
548k
/*  5971*/                      OPC_MoveParent,
3036
548k
/*  5972*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3037
548k
/*  5974*/                      OPC_CheckType, MVT::i32,
3038
548k
/*  5976*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3039
548k
/*  5978*/                      OPC_EmitInteger, MVT::i32, 8, 
3040
548k
/*  5981*/                      OPC_EmitInteger, MVT::i32, 8, 
3041
548k
/*  5984*/                      OPC_EmitInteger, MVT::i32, 8, 
3042
548k
/*  5987*/                      OPC_EmitInteger, MVT::i1, 0, 
3043
548k
/*  5990*/                      OPC_EmitInteger, MVT::i32, 0, 
3044
548k
/*  5993*/                      OPC_EmitInteger, MVT::i32, 0, 
3045
548k
/*  5996*/                      OPC_EmitInteger, MVT::i32, 0, 
3046
548k
/*  5999*/                      OPC_EmitInteger, MVT::i32, 0, 
3047
548k
/*  6002*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
3048
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
3049
548k
                                // 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
3050
548k
                                // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3051
548k
/*  6019*/                    0, /*End of Scope*/
3052
548k
/*  6020*/                  0, /*End of Scope*/
3053
548k
/*  6021*/                0, /*End of Scope*/
3054
548k
/*  6022*/              /*Scope*/ 77|128,12/*1613*/, /*->7637*/
3055
548k
/*  6024*/                OPC_RecordChild0, // #0 = $src2
3056
548k
/*  6025*/                OPC_MoveChild1,
3057
548k
/*  6026*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3058
548k
/*  6029*/                OPC_MoveChild0,
3059
548k
/*  6030*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3060
548k
/*  6033*/                OPC_RecordChild0, // #1 = $src0
3061
548k
/*  6034*/                OPC_MoveChild1,
3062
548k
/*  6035*/                OPC_CheckValueType, MVT::i8,
3063
548k
/*  6037*/                OPC_MoveParent,
3064
548k
/*  6038*/                OPC_MoveParent,
3065
548k
/*  6039*/                OPC_MoveChild1,
3066
548k
/*  6040*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3067
548k
/*  6043*/                OPC_RecordChild0, // #2 = $src1
3068
548k
/*  6044*/                OPC_MoveChild1,
3069
548k
/*  6045*/                OPC_CheckValueType, MVT::i8,
3070
548k
/*  6047*/                OPC_MoveParent,
3071
548k
/*  6048*/                OPC_MoveParent,
3072
548k
/*  6049*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3073
548k
/*  6051*/                OPC_MoveParent,
3074
548k
/*  6052*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
3075
548k
/*  6054*/                OPC_MoveParent,
3076
548k
/*  6055*/                OPC_MoveChild1,
3077
548k
/*  6056*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3078
548k
/*  6059*/                OPC_MoveChild0,
3079
548k
/*  6060*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3080
548k
/*  6063*/                OPC_MoveChild0,
3081
548k
/*  6064*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3082
548k
/*  6067*/                OPC_Scope, 44|128,3/*428*/, /*->6498*/ // 3 children in Scope
3083
548k
/*  6070*/                  OPC_CheckChild0Same, 1,
3084
548k
/*  6072*/                  OPC_CheckChild1Integer, 8, 
3085
548k
/*  6074*/                  OPC_CheckChild1Type, MVT::i32,
3086
548k
/*  6076*/                  OPC_MoveParent,
3087
548k
/*  6077*/                  OPC_MoveChild1,
3088
548k
/*  6078*/                  OPC_CheckValueType, MVT::i8,
3089
548k
/*  6080*/                  OPC_MoveParent,
3090
548k
/*  6081*/                  OPC_MoveParent,
3091
548k
/*  6082*/                  OPC_MoveChild1,
3092
548k
/*  6083*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3093
548k
/*  6086*/                  OPC_MoveChild0,
3094
548k
/*  6087*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3095
548k
/*  6090*/                  OPC_CheckChild0Same, 2,
3096
548k
/*  6092*/                  OPC_CheckChild1Integer, 8, 
3097
548k
/*  6094*/                  OPC_CheckChild1Type, MVT::i32,
3098
548k
/*  6096*/                  OPC_MoveParent,
3099
548k
/*  6097*/                  OPC_MoveChild1,
3100
548k
/*  6098*/                  OPC_CheckValueType, MVT::i8,
3101
548k
/*  6100*/                  OPC_MoveParent,
3102
548k
/*  6101*/                  OPC_MoveParent,
3103
548k
/*  6102*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3104
548k
/*  6104*/                  OPC_MoveParent,
3105
548k
/*  6105*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
3106
548k
/*  6107*/                  OPC_MoveParent,
3107
548k
/*  6108*/                  OPC_MoveChild1,
3108
548k
/*  6109*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3109
548k
/*  6112*/                  OPC_MoveChild0,
3110
548k
/*  6113*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3111
548k
/*  6116*/                  OPC_MoveChild0,
3112
548k
/*  6117*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3113
548k
/*  6120*/                  OPC_Scope, 58|128,1/*186*/, /*->6309*/ // 2 children in Scope
3114
548k
/*  6123*/                    OPC_CheckChild0Same, 1,
3115
548k
/*  6125*/                    OPC_CheckChild1Integer, 16, 
3116
548k
/*  6127*/                    OPC_CheckChild1Type, MVT::i32,
3117
548k
/*  6129*/                    OPC_MoveParent,
3118
548k
/*  6130*/                    OPC_MoveChild1,
3119
548k
/*  6131*/                    OPC_CheckValueType, MVT::i8,
3120
548k
/*  6133*/                    OPC_MoveParent,
3121
548k
/*  6134*/                    OPC_MoveParent,
3122
548k
/*  6135*/                    OPC_MoveChild1,
3123
548k
/*  6136*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3124
548k
/*  6139*/                    OPC_MoveChild0,
3125
548k
/*  6140*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3126
548k
/*  6143*/                    OPC_CheckChild0Same, 2,
3127
548k
/*  6145*/                    OPC_CheckChild1Integer, 16, 
3128
548k
/*  6147*/                    OPC_CheckChild1Type, MVT::i32,
3129
548k
/*  6149*/                    OPC_MoveParent,
3130
548k
/*  6150*/                    OPC_MoveChild1,
3131
548k
/*  6151*/                    OPC_CheckValueType, MVT::i8,
3132
548k
/*  6153*/                    OPC_MoveParent,
3133
548k
/*  6154*/                    OPC_MoveParent,
3134
548k
/*  6155*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3135
548k
/*  6157*/                    OPC_MoveParent,
3136
548k
/*  6158*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3137
548k
/*  6160*/                    OPC_MoveParent,
3138
548k
/*  6161*/                    OPC_MoveChild1,
3139
548k
/*  6162*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3140
548k
/*  6165*/                    OPC_MoveChild0,
3141
548k
/*  6166*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3142
548k
/*  6169*/                    OPC_Scope, 68, /*->6239*/ // 2 children in Scope
3143
548k
/*  6171*/                      OPC_CheckChild0Same, 1,
3144
548k
/*  6173*/                      OPC_CheckChild1Integer, 24, 
3145
548k
/*  6175*/                      OPC_CheckChild1Type, MVT::i32,
3146
548k
/*  6177*/                      OPC_MoveParent,
3147
548k
/*  6178*/                      OPC_MoveChild1,
3148
548k
/*  6179*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3149
548k
/*  6182*/                      OPC_CheckChild0Same, 2,
3150
548k
/*  6184*/                      OPC_CheckChild1Integer, 24, 
3151
548k
/*  6186*/                      OPC_CheckChild1Type, MVT::i32,
3152
548k
/*  6188*/                      OPC_MoveParent,
3153
548k
/*  6189*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3154
548k
/*  6191*/                      OPC_MoveParent,
3155
548k
/*  6192*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3156
548k
/*  6194*/                      OPC_CheckType, MVT::i32,
3157
548k
/*  6196*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3158
548k
/*  6198*/                      OPC_EmitInteger, MVT::i32, 8, 
3159
548k
/*  6201*/                      OPC_EmitInteger, MVT::i32, 8, 
3160
548k
/*  6204*/                      OPC_EmitInteger, MVT::i32, 8, 
3161
548k
/*  6207*/                      OPC_EmitInteger, MVT::i1, 0, 
3162
548k
/*  6210*/                      OPC_EmitInteger, MVT::i32, 0, 
3163
548k
/*  6213*/                      OPC_EmitInteger, MVT::i32, 0, 
3164
548k
/*  6216*/                      OPC_EmitInteger, MVT::i32, 0, 
3165
548k
/*  6219*/                      OPC_EmitInteger, MVT::i32, 0, 
3166
548k
/*  6222*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3167
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3168
548k
                                // 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
3169
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3170
548k
/*  6239*/                    /*Scope*/ 68, /*->6308*/
3171
548k
/*  6240*/                      OPC_CheckChild0Same, 2,
3172
548k
/*  6242*/                      OPC_CheckChild1Integer, 24, 
3173
548k
/*  6244*/                      OPC_CheckChild1Type, MVT::i32,
3174
548k
/*  6246*/                      OPC_MoveParent,
3175
548k
/*  6247*/                      OPC_MoveChild1,
3176
548k
/*  6248*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3177
548k
/*  6251*/                      OPC_CheckChild0Same, 1,
3178
548k
/*  6253*/                      OPC_CheckChild1Integer, 24, 
3179
548k
/*  6255*/                      OPC_CheckChild1Type, MVT::i32,
3180
548k
/*  6257*/                      OPC_MoveParent,
3181
548k
/*  6258*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3182
548k
/*  6260*/                      OPC_MoveParent,
3183
548k
/*  6261*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3184
548k
/*  6263*/                      OPC_CheckType, MVT::i32,
3185
548k
/*  6265*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3186
548k
/*  6267*/                      OPC_EmitInteger, MVT::i32, 8, 
3187
548k
/*  6270*/                      OPC_EmitInteger, MVT::i32, 8, 
3188
548k
/*  6273*/                      OPC_EmitInteger, MVT::i32, 8, 
3189
548k
/*  6276*/                      OPC_EmitInteger, MVT::i1, 0, 
3190
548k
/*  6279*/                      OPC_EmitInteger, MVT::i32, 0, 
3191
548k
/*  6282*/                      OPC_EmitInteger, MVT::i32, 0, 
3192
548k
/*  6285*/                      OPC_EmitInteger, MVT::i32, 0, 
3193
548k
/*  6288*/                      OPC_EmitInteger, MVT::i32, 0, 
3194
548k
/*  6291*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3195
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3196
548k
                                // 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
3197
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3198
548k
/*  6308*/                    0, /*End of Scope*/
3199
548k
/*  6309*/                  /*Scope*/ 58|128,1/*186*/, /*->6497*/
3200
548k
/*  6311*/                    OPC_CheckChild0Same, 2,
3201
548k
/*  6313*/                    OPC_CheckChild1Integer, 16, 
3202
548k
/*  6315*/                    OPC_CheckChild1Type, MVT::i32,
3203
548k
/*  6317*/                    OPC_MoveParent,
3204
548k
/*  6318*/                    OPC_MoveChild1,
3205
548k
/*  6319*/                    OPC_CheckValueType, MVT::i8,
3206
548k
/*  6321*/                    OPC_MoveParent,
3207
548k
/*  6322*/                    OPC_MoveParent,
3208
548k
/*  6323*/                    OPC_MoveChild1,
3209
548k
/*  6324*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3210
548k
/*  6327*/                    OPC_MoveChild0,
3211
548k
/*  6328*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3212
548k
/*  6331*/                    OPC_CheckChild0Same, 1,
3213
548k
/*  6333*/                    OPC_CheckChild1Integer, 16, 
3214
548k
/*  6335*/                    OPC_CheckChild1Type, MVT::i32,
3215
548k
/*  6337*/                    OPC_MoveParent,
3216
548k
/*  6338*/                    OPC_MoveChild1,
3217
548k
/*  6339*/                    OPC_CheckValueType, MVT::i8,
3218
548k
/*  6341*/                    OPC_MoveParent,
3219
548k
/*  6342*/                    OPC_MoveParent,
3220
548k
/*  6343*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3221
548k
/*  6345*/                    OPC_MoveParent,
3222
548k
/*  6346*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3223
548k
/*  6348*/                    OPC_MoveParent,
3224
548k
/*  6349*/                    OPC_MoveChild1,
3225
548k
/*  6350*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3226
548k
/*  6353*/                    OPC_MoveChild0,
3227
548k
/*  6354*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3228
548k
/*  6357*/                    OPC_Scope, 68, /*->6427*/ // 2 children in Scope
3229
548k
/*  6359*/                      OPC_CheckChild0Same, 1,
3230
548k
/*  6361*/                      OPC_CheckChild1Integer, 24, 
3231
548k
/*  6363*/                      OPC_CheckChild1Type, MVT::i32,
3232
548k
/*  6365*/                      OPC_MoveParent,
3233
548k
/*  6366*/                      OPC_MoveChild1,
3234
548k
/*  6367*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3235
548k
/*  6370*/                      OPC_CheckChild0Same, 2,
3236
548k
/*  6372*/                      OPC_CheckChild1Integer, 24, 
3237
548k
/*  6374*/                      OPC_CheckChild1Type, MVT::i32,
3238
548k
/*  6376*/                      OPC_MoveParent,
3239
548k
/*  6377*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3240
548k
/*  6379*/                      OPC_MoveParent,
3241
548k
/*  6380*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3242
548k
/*  6382*/                      OPC_CheckType, MVT::i32,
3243
548k
/*  6384*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3244
548k
/*  6386*/                      OPC_EmitInteger, MVT::i32, 8, 
3245
548k
/*  6389*/                      OPC_EmitInteger, MVT::i32, 8, 
3246
548k
/*  6392*/                      OPC_EmitInteger, MVT::i32, 8, 
3247
548k
/*  6395*/                      OPC_EmitInteger, MVT::i1, 0, 
3248
548k
/*  6398*/                      OPC_EmitInteger, MVT::i32, 0, 
3249
548k
/*  6401*/                      OPC_EmitInteger, MVT::i32, 0, 
3250
548k
/*  6404*/                      OPC_EmitInteger, MVT::i32, 0, 
3251
548k
/*  6407*/                      OPC_EmitInteger, MVT::i32, 0, 
3252
548k
/*  6410*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3253
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3254
548k
                                // 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
3255
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3256
548k
/*  6427*/                    /*Scope*/ 68, /*->6496*/
3257
548k
/*  6428*/                      OPC_CheckChild0Same, 2,
3258
548k
/*  6430*/                      OPC_CheckChild1Integer, 24, 
3259
548k
/*  6432*/                      OPC_CheckChild1Type, MVT::i32,
3260
548k
/*  6434*/                      OPC_MoveParent,
3261
548k
/*  6435*/                      OPC_MoveChild1,
3262
548k
/*  6436*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3263
548k
/*  6439*/                      OPC_CheckChild0Same, 1,
3264
548k
/*  6441*/                      OPC_CheckChild1Integer, 24, 
3265
548k
/*  6443*/                      OPC_CheckChild1Type, MVT::i32,
3266
548k
/*  6445*/                      OPC_MoveParent,
3267
548k
/*  6446*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3268
548k
/*  6448*/                      OPC_MoveParent,
3269
548k
/*  6449*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3270
548k
/*  6451*/                      OPC_CheckType, MVT::i32,
3271
548k
/*  6453*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3272
548k
/*  6455*/                      OPC_EmitInteger, MVT::i32, 8, 
3273
548k
/*  6458*/                      OPC_EmitInteger, MVT::i32, 8, 
3274
548k
/*  6461*/                      OPC_EmitInteger, MVT::i32, 8, 
3275
548k
/*  6464*/                      OPC_EmitInteger, MVT::i1, 0, 
3276
548k
/*  6467*/                      OPC_EmitInteger, MVT::i32, 0, 
3277
548k
/*  6470*/                      OPC_EmitInteger, MVT::i32, 0, 
3278
548k
/*  6473*/                      OPC_EmitInteger, MVT::i32, 0, 
3279
548k
/*  6476*/                      OPC_EmitInteger, MVT::i32, 0, 
3280
548k
/*  6479*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3281
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3282
548k
                                // 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
3283
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3284
548k
/*  6496*/                    0, /*End of Scope*/
3285
548k
/*  6497*/                  0, /*End of Scope*/
3286
548k
/*  6498*/                /*Scope*/ 66|128,5/*706*/, /*->7206*/
3287
548k
/*  6500*/                  OPC_CheckChild0Same, 2,
3288
548k
/*  6502*/                  OPC_CheckChild1Integer, 8, 
3289
548k
/*  6504*/                  OPC_CheckChild1Type, MVT::i32,
3290
548k
/*  6506*/                  OPC_MoveParent,
3291
548k
/*  6507*/                  OPC_MoveChild1,
3292
548k
/*  6508*/                  OPC_CheckValueType, MVT::i8,
3293
548k
/*  6510*/                  OPC_MoveParent,
3294
548k
/*  6511*/                  OPC_MoveParent,
3295
548k
/*  6512*/                  OPC_MoveChild1,
3296
548k
/*  6513*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3297
548k
/*  6516*/                  OPC_MoveChild0,
3298
548k
/*  6517*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3299
548k
/*  6520*/                  OPC_CheckChild0Same, 1,
3300
548k
/*  6522*/                  OPC_CheckChild1Integer, 8, 
3301
548k
/*  6524*/                  OPC_CheckChild1Type, MVT::i32,
3302
548k
/*  6526*/                  OPC_MoveParent,
3303
548k
/*  6527*/                  OPC_MoveChild1,
3304
548k
/*  6528*/                  OPC_CheckValueType, MVT::i8,
3305
548k
/*  6530*/                  OPC_MoveParent,
3306
548k
/*  6531*/                  OPC_MoveParent,
3307
548k
/*  6532*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3308
548k
/*  6534*/                  OPC_MoveParent,
3309
548k
/*  6535*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
3310
548k
/*  6537*/                  OPC_MoveParent,
3311
548k
/*  6538*/                  OPC_MoveChild1,
3312
548k
/*  6539*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3313
548k
/*  6542*/                  OPC_MoveChild0,
3314
548k
/*  6543*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3315
548k
/*  6546*/                  OPC_MoveChild0,
3316
548k
/*  6547*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3317
548k
/*  6550*/                  OPC_Scope, 58|128,1/*186*/, /*->6739*/ // 3 children in Scope
3318
548k
/*  6553*/                    OPC_CheckChild0Same, 1,
3319
548k
/*  6555*/                    OPC_CheckChild1Integer, 16, 
3320
548k
/*  6557*/                    OPC_CheckChild1Type, MVT::i32,
3321
548k
/*  6559*/                    OPC_MoveParent,
3322
548k
/*  6560*/                    OPC_MoveChild1,
3323
548k
/*  6561*/                    OPC_CheckValueType, MVT::i8,
3324
548k
/*  6563*/                    OPC_MoveParent,
3325
548k
/*  6564*/                    OPC_MoveParent,
3326
548k
/*  6565*/                    OPC_MoveChild1,
3327
548k
/*  6566*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3328
548k
/*  6569*/                    OPC_MoveChild0,
3329
548k
/*  6570*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3330
548k
/*  6573*/                    OPC_CheckChild0Same, 2,
3331
548k
/*  6575*/                    OPC_CheckChild1Integer, 16, 
3332
548k
/*  6577*/                    OPC_CheckChild1Type, MVT::i32,
3333
548k
/*  6579*/                    OPC_MoveParent,
3334
548k
/*  6580*/                    OPC_MoveChild1,
3335
548k
/*  6581*/                    OPC_CheckValueType, MVT::i8,
3336
548k
/*  6583*/                    OPC_MoveParent,
3337
548k
/*  6584*/                    OPC_MoveParent,
3338
548k
/*  6585*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3339
548k
/*  6587*/                    OPC_MoveParent,
3340
548k
/*  6588*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3341
548k
/*  6590*/                    OPC_MoveParent,
3342
548k
/*  6591*/                    OPC_MoveChild1,
3343
548k
/*  6592*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3344
548k
/*  6595*/                    OPC_MoveChild0,
3345
548k
/*  6596*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3346
548k
/*  6599*/                    OPC_Scope, 68, /*->6669*/ // 2 children in Scope
3347
548k
/*  6601*/                      OPC_CheckChild0Same, 1,
3348
548k
/*  6603*/                      OPC_CheckChild1Integer, 24, 
3349
548k
/*  6605*/                      OPC_CheckChild1Type, MVT::i32,
3350
548k
/*  6607*/                      OPC_MoveParent,
3351
548k
/*  6608*/                      OPC_MoveChild1,
3352
548k
/*  6609*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3353
548k
/*  6612*/                      OPC_CheckChild0Same, 2,
3354
548k
/*  6614*/                      OPC_CheckChild1Integer, 24, 
3355
548k
/*  6616*/                      OPC_CheckChild1Type, MVT::i32,
3356
548k
/*  6618*/                      OPC_MoveParent,
3357
548k
/*  6619*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3358
548k
/*  6621*/                      OPC_MoveParent,
3359
548k
/*  6622*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3360
548k
/*  6624*/                      OPC_CheckType, MVT::i32,
3361
548k
/*  6626*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3362
548k
/*  6628*/                      OPC_EmitInteger, MVT::i32, 8, 
3363
548k
/*  6631*/                      OPC_EmitInteger, MVT::i32, 8, 
3364
548k
/*  6634*/                      OPC_EmitInteger, MVT::i32, 8, 
3365
548k
/*  6637*/                      OPC_EmitInteger, MVT::i1, 0, 
3366
548k
/*  6640*/                      OPC_EmitInteger, MVT::i32, 0, 
3367
548k
/*  6643*/                      OPC_EmitInteger, MVT::i32, 0, 
3368
548k
/*  6646*/                      OPC_EmitInteger, MVT::i32, 0, 
3369
548k
/*  6649*/                      OPC_EmitInteger, MVT::i32, 0, 
3370
548k
/*  6652*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3371
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3372
548k
                                // 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
3373
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3374
548k
/*  6669*/                    /*Scope*/ 68, /*->6738*/
3375
548k
/*  6670*/                      OPC_CheckChild0Same, 2,
3376
548k
/*  6672*/                      OPC_CheckChild1Integer, 24, 
3377
548k
/*  6674*/                      OPC_CheckChild1Type, MVT::i32,
3378
548k
/*  6676*/                      OPC_MoveParent,
3379
548k
/*  6677*/                      OPC_MoveChild1,
3380
548k
/*  6678*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3381
548k
/*  6681*/                      OPC_CheckChild0Same, 1,
3382
548k
/*  6683*/                      OPC_CheckChild1Integer, 24, 
3383
548k
/*  6685*/                      OPC_CheckChild1Type, MVT::i32,
3384
548k
/*  6687*/                      OPC_MoveParent,
3385
548k
/*  6688*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3386
548k
/*  6690*/                      OPC_MoveParent,
3387
548k
/*  6691*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3388
548k
/*  6693*/                      OPC_CheckType, MVT::i32,
3389
548k
/*  6695*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3390
548k
/*  6697*/                      OPC_EmitInteger, MVT::i32, 8, 
3391
548k
/*  6700*/                      OPC_EmitInteger, MVT::i32, 8, 
3392
548k
/*  6703*/                      OPC_EmitInteger, MVT::i32, 8, 
3393
548k
/*  6706*/                      OPC_EmitInteger, MVT::i1, 0, 
3394
548k
/*  6709*/                      OPC_EmitInteger, MVT::i32, 0, 
3395
548k
/*  6712*/                      OPC_EmitInteger, MVT::i32, 0, 
3396
548k
/*  6715*/                      OPC_EmitInteger, MVT::i32, 0, 
3397
548k
/*  6718*/                      OPC_EmitInteger, MVT::i32, 0, 
3398
548k
/*  6721*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3399
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3400
548k
                                // 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
3401
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3402
548k
/*  6738*/                    0, /*End of Scope*/
3403
548k
/*  6739*/                  /*Scope*/ 20|128,2/*276*/, /*->7017*/
3404
548k
/*  6741*/                    OPC_CheckChild0Same, 2,
3405
548k
/*  6743*/                    OPC_CheckChild1Integer, 16, 
3406
548k
/*  6745*/                    OPC_CheckChild1Type, MVT::i32,
3407
548k
/*  6747*/                    OPC_MoveParent,
3408
548k
/*  6748*/                    OPC_MoveChild1,
3409
548k
/*  6749*/                    OPC_CheckValueType, MVT::i8,
3410
548k
/*  6751*/                    OPC_MoveParent,
3411
548k
/*  6752*/                    OPC_MoveParent,
3412
548k
/*  6753*/                    OPC_MoveChild1,
3413
548k
/*  6754*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3414
548k
/*  6757*/                    OPC_MoveChild0,
3415
548k
/*  6758*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3416
548k
/*  6761*/                    OPC_CheckChild0Same, 1,
3417
548k
/*  6763*/                    OPC_CheckChild1Integer, 16, 
3418
548k
/*  6765*/                    OPC_CheckChild1Type, MVT::i32,
3419
548k
/*  6767*/                    OPC_MoveParent,
3420
548k
/*  6768*/                    OPC_MoveChild1,
3421
548k
/*  6769*/                    OPC_CheckValueType, MVT::i8,
3422
548k
/*  6771*/                    OPC_MoveParent,
3423
548k
/*  6772*/                    OPC_MoveParent,
3424
548k
/*  6773*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3425
548k
/*  6775*/                    OPC_MoveParent,
3426
548k
/*  6776*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3427
548k
/*  6778*/                    OPC_MoveParent,
3428
548k
/*  6779*/                    OPC_MoveChild1,
3429
548k
/*  6780*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3430
548k
/*  6783*/                    OPC_MoveChild0,
3431
548k
/*  6784*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3432
548k
/*  6787*/                    OPC_Scope, 68, /*->6857*/ // 3 children in Scope
3433
548k
/*  6789*/                      OPC_CheckChild0Same, 1,
3434
548k
/*  6791*/                      OPC_CheckChild1Integer, 24, 
3435
548k
/*  6793*/                      OPC_CheckChild1Type, MVT::i32,
3436
548k
/*  6795*/                      OPC_MoveParent,
3437
548k
/*  6796*/                      OPC_MoveChild1,
3438
548k
/*  6797*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3439
548k
/*  6800*/                      OPC_CheckChild0Same, 2,
3440
548k
/*  6802*/                      OPC_CheckChild1Integer, 24, 
3441
548k
/*  6804*/                      OPC_CheckChild1Type, MVT::i32,
3442
548k
/*  6806*/                      OPC_MoveParent,
3443
548k
/*  6807*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3444
548k
/*  6809*/                      OPC_MoveParent,
3445
548k
/*  6810*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3446
548k
/*  6812*/                      OPC_CheckType, MVT::i32,
3447
548k
/*  6814*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3448
548k
/*  6816*/                      OPC_EmitInteger, MVT::i32, 8, 
3449
548k
/*  6819*/                      OPC_EmitInteger, MVT::i32, 8, 
3450
548k
/*  6822*/                      OPC_EmitInteger, MVT::i32, 8, 
3451
548k
/*  6825*/                      OPC_EmitInteger, MVT::i1, 0, 
3452
548k
/*  6828*/                      OPC_EmitInteger, MVT::i32, 0, 
3453
548k
/*  6831*/                      OPC_EmitInteger, MVT::i32, 0, 
3454
548k
/*  6834*/                      OPC_EmitInteger, MVT::i32, 0, 
3455
548k
/*  6837*/                      OPC_EmitInteger, MVT::i32, 0, 
3456
548k
/*  6840*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3457
548k
                                    MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3458
548k
                                // 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
3459
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3460
548k
/*  6857*/                    /*Scope*/ 89, /*->6947*/
3461
548k
/*  6858*/                      OPC_CheckChild0Same, 2,
3462
548k
/*  6860*/                      OPC_CheckChild1Integer, 24, 
3463
548k
/*  6862*/                      OPC_CheckChild1Type, MVT::i32,
3464
548k
/*  6864*/                      OPC_MoveParent,
3465
548k
/*  6865*/                      OPC_MoveChild1,
3466
548k
/*  6866*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3467
548k
/*  6869*/                      OPC_CheckChild0Same, 1,
3468
548k
/*  6871*/                      OPC_CheckChild1Integer, 24, 
3469
548k
/*  6873*/                      OPC_CheckChild1Type, MVT::i32,
3470
548k
/*  6875*/                      OPC_MoveParent,
3471
548k
/*  6876*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3472
548k
/*  6878*/                      OPC_MoveParent,
3473
548k
/*  6879*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3474
548k
/*  6881*/                      OPC_CheckType, MVT::i32,
3475
548k
/*  6883*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3476
548k
/*  6885*/                      OPC_EmitInteger, MVT::i32, 8, 
3477
548k
/*  6888*/                      OPC_EmitInteger, MVT::i32, 8, 
3478
548k
/*  6891*/                      OPC_EmitInteger, MVT::i32, 8, 
3479
548k
/*  6894*/                      OPC_EmitInteger, MVT::i1, 0, 
3480
548k
/*  6897*/                      OPC_EmitInteger, MVT::i32, 0, 
3481
548k
/*  6900*/                      OPC_EmitInteger, MVT::i32, 0, 
3482
548k
/*  6903*/                      OPC_EmitInteger, MVT::i32, 0, 
3483
548k
/*  6906*/                      OPC_EmitInteger, MVT::i32, 0, 
3484
548k
/*  6909*/                      OPC_Scope, 17, /*->6928*/ // 2 children in Scope
3485
548k
/*  6911*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3486
548k
                                      MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
3487
548k
                                  // 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
3488
548k
                                  // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3489
548k
/*  6928*/                      /*Scope*/ 17, /*->6946*/
3490
548k
/*  6929*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3491
548k
                                      MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3492
548k
                                  // 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
3493
548k
                                  // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3494
548k
/*  6946*/                      0, /*End of Scope*/
3495
548k
/*  6947*/                    /*Scope*/ 68, /*->7016*/
3496
548k
/*  6948*/                      OPC_CheckChild0Same, 1,
3497
548k
/*  6950*/                      OPC_CheckChild1Integer, 24, 
3498
548k
/*  6952*/                      OPC_CheckChild1Type, MVT::i32,
3499
548k
/*  6954*/                      OPC_MoveParent,
3500
548k
/*  6955*/                      OPC_MoveChild1,
3501
548k
/*  6956*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3502
548k
/*  6959*/                      OPC_CheckChild0Same, 2,
3503
548k
/*  6961*/                      OPC_CheckChild1Integer, 24, 
3504
548k
/*  6963*/                      OPC_CheckChild1Type, MVT::i32,
3505
548k
/*  6965*/                      OPC_MoveParent,
3506
548k
/*  6966*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3507
548k
/*  6968*/                      OPC_MoveParent,
3508
548k
/*  6969*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3509
548k
/*  6971*/                      OPC_CheckType, MVT::i32,
3510
548k
/*  6973*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3511
548k
/*  6975*/                      OPC_EmitInteger, MVT::i32, 8, 
3512
548k
/*  6978*/                      OPC_EmitInteger, MVT::i32, 8, 
3513
548k
/*  6981*/                      OPC_EmitInteger, MVT::i32, 8, 
3514
548k
/*  6984*/                      OPC_EmitInteger, MVT::i1, 0, 
3515
548k
/*  6987*/                      OPC_EmitInteger, MVT::i32, 0, 
3516
548k
/*  6990*/                      OPC_EmitInteger, MVT::i32, 0, 
3517
548k
/*  6993*/                      OPC_EmitInteger, MVT::i32, 0, 
3518
548k
/*  6996*/                      OPC_EmitInteger, MVT::i32, 0, 
3519
548k
/*  6999*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3520
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3521
548k
                                // 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
3522
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3523
548k
/*  7016*/                    0, /*End of Scope*/
3524
548k
/*  7017*/                  /*Scope*/ 58|128,1/*186*/, /*->7205*/
3525
548k
/*  7019*/                    OPC_CheckChild0Same, 1,
3526
548k
/*  7021*/                    OPC_CheckChild1Integer, 16, 
3527
548k
/*  7023*/                    OPC_CheckChild1Type, MVT::i32,
3528
548k
/*  7025*/                    OPC_MoveParent,
3529
548k
/*  7026*/                    OPC_MoveChild1,
3530
548k
/*  7027*/                    OPC_CheckValueType, MVT::i8,
3531
548k
/*  7029*/                    OPC_MoveParent,
3532
548k
/*  7030*/                    OPC_MoveParent,
3533
548k
/*  7031*/                    OPC_MoveChild1,
3534
548k
/*  7032*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3535
548k
/*  7035*/                    OPC_MoveChild0,
3536
548k
/*  7036*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3537
548k
/*  7039*/                    OPC_CheckChild0Same, 2,
3538
548k
/*  7041*/                    OPC_CheckChild1Integer, 16, 
3539
548k
/*  7043*/                    OPC_CheckChild1Type, MVT::i32,
3540
548k
/*  7045*/                    OPC_MoveParent,
3541
548k
/*  7046*/                    OPC_MoveChild1,
3542
548k
/*  7047*/                    OPC_CheckValueType, MVT::i8,
3543
548k
/*  7049*/                    OPC_MoveParent,
3544
548k
/*  7050*/                    OPC_MoveParent,
3545
548k
/*  7051*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3546
548k
/*  7053*/                    OPC_MoveParent,
3547
548k
/*  7054*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3548
548k
/*  7056*/                    OPC_MoveParent,
3549
548k
/*  7057*/                    OPC_MoveChild1,
3550
548k
/*  7058*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3551
548k
/*  7061*/                    OPC_MoveChild0,
3552
548k
/*  7062*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3553
548k
/*  7065*/                    OPC_Scope, 68, /*->7135*/ // 2 children in Scope
3554
548k
/*  7067*/                      OPC_CheckChild0Same, 2,
3555
548k
/*  7069*/                      OPC_CheckChild1Integer, 24, 
3556
548k
/*  7071*/                      OPC_CheckChild1Type, MVT::i32,
3557
548k
/*  7073*/                      OPC_MoveParent,
3558
548k
/*  7074*/                      OPC_MoveChild1,
3559
548k
/*  7075*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3560
548k
/*  7078*/                      OPC_CheckChild0Same, 1,
3561
548k
/*  7080*/                      OPC_CheckChild1Integer, 24, 
3562
548k
/*  7082*/                      OPC_CheckChild1Type, MVT::i32,
3563
548k
/*  7084*/                      OPC_MoveParent,
3564
548k
/*  7085*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3565
548k
/*  7087*/                      OPC_MoveParent,
3566
548k
/*  7088*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3567
548k
/*  7090*/                      OPC_CheckType, MVT::i32,
3568
548k
/*  7092*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3569
548k
/*  7094*/                      OPC_EmitInteger, MVT::i32, 8, 
3570
548k
/*  7097*/                      OPC_EmitInteger, MVT::i32, 8, 
3571
548k
/*  7100*/                      OPC_EmitInteger, MVT::i32, 8, 
3572
548k
/*  7103*/                      OPC_EmitInteger, MVT::i1, 0, 
3573
548k
/*  7106*/                      OPC_EmitInteger, MVT::i32, 0, 
3574
548k
/*  7109*/                      OPC_EmitInteger, MVT::i32, 0, 
3575
548k
/*  7112*/                      OPC_EmitInteger, MVT::i32, 0, 
3576
548k
/*  7115*/                      OPC_EmitInteger, MVT::i32, 0, 
3577
548k
/*  7118*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3578
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3579
548k
                                // 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
3580
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3581
548k
/*  7135*/                    /*Scope*/ 68, /*->7204*/
3582
548k
/*  7136*/                      OPC_CheckChild0Same, 1,
3583
548k
/*  7138*/                      OPC_CheckChild1Integer, 24, 
3584
548k
/*  7140*/                      OPC_CheckChild1Type, MVT::i32,
3585
548k
/*  7142*/                      OPC_MoveParent,
3586
548k
/*  7143*/                      OPC_MoveChild1,
3587
548k
/*  7144*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3588
548k
/*  7147*/                      OPC_CheckChild0Same, 2,
3589
548k
/*  7149*/                      OPC_CheckChild1Integer, 24, 
3590
548k
/*  7151*/                      OPC_CheckChild1Type, MVT::i32,
3591
548k
/*  7153*/                      OPC_MoveParent,
3592
548k
/*  7154*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3593
548k
/*  7156*/                      OPC_MoveParent,
3594
548k
/*  7157*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3595
548k
/*  7159*/                      OPC_CheckType, MVT::i32,
3596
548k
/*  7161*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3597
548k
/*  7163*/                      OPC_EmitInteger, MVT::i32, 8, 
3598
548k
/*  7166*/                      OPC_EmitInteger, MVT::i32, 8, 
3599
548k
/*  7169*/                      OPC_EmitInteger, MVT::i32, 8, 
3600
548k
/*  7172*/                      OPC_EmitInteger, MVT::i1, 0, 
3601
548k
/*  7175*/                      OPC_EmitInteger, MVT::i32, 0, 
3602
548k
/*  7178*/                      OPC_EmitInteger, MVT::i32, 0, 
3603
548k
/*  7181*/                      OPC_EmitInteger, MVT::i32, 0, 
3604
548k
/*  7184*/                      OPC_EmitInteger, MVT::i32, 0, 
3605
548k
/*  7187*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3606
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3607
548k
                                // 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
3608
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3609
548k
/*  7204*/                    0, /*End of Scope*/
3610
548k
/*  7205*/                  0, /*End of Scope*/
3611
548k
/*  7206*/                /*Scope*/ 44|128,3/*428*/, /*->7636*/
3612
548k
/*  7208*/                  OPC_CheckChild0Same, 1,
3613
548k
/*  7210*/                  OPC_CheckChild1Integer, 8, 
3614
548k
/*  7212*/                  OPC_CheckChild1Type, MVT::i32,
3615
548k
/*  7214*/                  OPC_MoveParent,
3616
548k
/*  7215*/                  OPC_MoveChild1,
3617
548k
/*  7216*/                  OPC_CheckValueType, MVT::i8,
3618
548k
/*  7218*/                  OPC_MoveParent,
3619
548k
/*  7219*/                  OPC_MoveParent,
3620
548k
/*  7220*/                  OPC_MoveChild1,
3621
548k
/*  7221*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3622
548k
/*  7224*/                  OPC_MoveChild0,
3623
548k
/*  7225*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3624
548k
/*  7228*/                  OPC_CheckChild0Same, 2,
3625
548k
/*  7230*/                  OPC_CheckChild1Integer, 8, 
3626
548k
/*  7232*/                  OPC_CheckChild1Type, MVT::i32,
3627
548k
/*  7234*/                  OPC_MoveParent,
3628
548k
/*  7235*/                  OPC_MoveChild1,
3629
548k
/*  7236*/                  OPC_CheckValueType, MVT::i8,
3630
548k
/*  7238*/                  OPC_MoveParent,
3631
548k
/*  7239*/                  OPC_MoveParent,
3632
548k
/*  7240*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3633
548k
/*  7242*/                  OPC_MoveParent,
3634
548k
/*  7243*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
3635
548k
/*  7245*/                  OPC_MoveParent,
3636
548k
/*  7246*/                  OPC_MoveChild1,
3637
548k
/*  7247*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3638
548k
/*  7250*/                  OPC_MoveChild0,
3639
548k
/*  7251*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3640
548k
/*  7254*/                  OPC_MoveChild0,
3641
548k
/*  7255*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3642
548k
/*  7258*/                  OPC_Scope, 58|128,1/*186*/, /*->7447*/ // 2 children in Scope
3643
548k
/*  7261*/                    OPC_CheckChild0Same, 2,
3644
548k
/*  7263*/                    OPC_CheckChild1Integer, 16, 
3645
548k
/*  7265*/                    OPC_CheckChild1Type, MVT::i32,
3646
548k
/*  7267*/                    OPC_MoveParent,
3647
548k
/*  7268*/                    OPC_MoveChild1,
3648
548k
/*  7269*/                    OPC_CheckValueType, MVT::i8,
3649
548k
/*  7271*/                    OPC_MoveParent,
3650
548k
/*  7272*/                    OPC_MoveParent,
3651
548k
/*  7273*/                    OPC_MoveChild1,
3652
548k
/*  7274*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3653
548k
/*  7277*/                    OPC_MoveChild0,
3654
548k
/*  7278*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3655
548k
/*  7281*/                    OPC_CheckChild0Same, 1,
3656
548k
/*  7283*/                    OPC_CheckChild1Integer, 16, 
3657
548k
/*  7285*/                    OPC_CheckChild1Type, MVT::i32,
3658
548k
/*  7287*/                    OPC_MoveParent,
3659
548k
/*  7288*/                    OPC_MoveChild1,
3660
548k
/*  7289*/                    OPC_CheckValueType, MVT::i8,
3661
548k
/*  7291*/                    OPC_MoveParent,
3662
548k
/*  7292*/                    OPC_MoveParent,
3663
548k
/*  7293*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3664
548k
/*  7295*/                    OPC_MoveParent,
3665
548k
/*  7296*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3666
548k
/*  7298*/                    OPC_MoveParent,
3667
548k
/*  7299*/                    OPC_MoveChild1,
3668
548k
/*  7300*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3669
548k
/*  7303*/                    OPC_MoveChild0,
3670
548k
/*  7304*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3671
548k
/*  7307*/                    OPC_Scope, 68, /*->7377*/ // 2 children in Scope
3672
548k
/*  7309*/                      OPC_CheckChild0Same, 2,
3673
548k
/*  7311*/                      OPC_CheckChild1Integer, 24, 
3674
548k
/*  7313*/                      OPC_CheckChild1Type, MVT::i32,
3675
548k
/*  7315*/                      OPC_MoveParent,
3676
548k
/*  7316*/                      OPC_MoveChild1,
3677
548k
/*  7317*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3678
548k
/*  7320*/                      OPC_CheckChild0Same, 1,
3679
548k
/*  7322*/                      OPC_CheckChild1Integer, 24, 
3680
548k
/*  7324*/                      OPC_CheckChild1Type, MVT::i32,
3681
548k
/*  7326*/                      OPC_MoveParent,
3682
548k
/*  7327*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3683
548k
/*  7329*/                      OPC_MoveParent,
3684
548k
/*  7330*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3685
548k
/*  7332*/                      OPC_CheckType, MVT::i32,
3686
548k
/*  7334*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3687
548k
/*  7336*/                      OPC_EmitInteger, MVT::i32, 8, 
3688
548k
/*  7339*/                      OPC_EmitInteger, MVT::i32, 8, 
3689
548k
/*  7342*/                      OPC_EmitInteger, MVT::i32, 8, 
3690
548k
/*  7345*/                      OPC_EmitInteger, MVT::i1, 0, 
3691
548k
/*  7348*/                      OPC_EmitInteger, MVT::i32, 0, 
3692
548k
/*  7351*/                      OPC_EmitInteger, MVT::i32, 0, 
3693
548k
/*  7354*/                      OPC_EmitInteger, MVT::i32, 0, 
3694
548k
/*  7357*/                      OPC_EmitInteger, MVT::i32, 0, 
3695
548k
/*  7360*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3696
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3697
548k
                                // 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
3698
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3699
548k
/*  7377*/                    /*Scope*/ 68, /*->7446*/
3700
548k
/*  7378*/                      OPC_CheckChild0Same, 1,
3701
548k
/*  7380*/                      OPC_CheckChild1Integer, 24, 
3702
548k
/*  7382*/                      OPC_CheckChild1Type, MVT::i32,
3703
548k
/*  7384*/                      OPC_MoveParent,
3704
548k
/*  7385*/                      OPC_MoveChild1,
3705
548k
/*  7386*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3706
548k
/*  7389*/                      OPC_CheckChild0Same, 2,
3707
548k
/*  7391*/                      OPC_CheckChild1Integer, 24, 
3708
548k
/*  7393*/                      OPC_CheckChild1Type, MVT::i32,
3709
548k
/*  7395*/                      OPC_MoveParent,
3710
548k
/*  7396*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3711
548k
/*  7398*/                      OPC_MoveParent,
3712
548k
/*  7399*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3713
548k
/*  7401*/                      OPC_CheckType, MVT::i32,
3714
548k
/*  7403*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3715
548k
/*  7405*/                      OPC_EmitInteger, MVT::i32, 8, 
3716
548k
/*  7408*/                      OPC_EmitInteger, MVT::i32, 8, 
3717
548k
/*  7411*/                      OPC_EmitInteger, MVT::i32, 8, 
3718
548k
/*  7414*/                      OPC_EmitInteger, MVT::i1, 0, 
3719
548k
/*  7417*/                      OPC_EmitInteger, MVT::i32, 0, 
3720
548k
/*  7420*/                      OPC_EmitInteger, MVT::i32, 0, 
3721
548k
/*  7423*/                      OPC_EmitInteger, MVT::i32, 0, 
3722
548k
/*  7426*/                      OPC_EmitInteger, MVT::i32, 0, 
3723
548k
/*  7429*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3724
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3725
548k
                                // 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
3726
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3727
548k
/*  7446*/                    0, /*End of Scope*/
3728
548k
/*  7447*/                  /*Scope*/ 58|128,1/*186*/, /*->7635*/
3729
548k
/*  7449*/                    OPC_CheckChild0Same, 1,
3730
548k
/*  7451*/                    OPC_CheckChild1Integer, 16, 
3731
548k
/*  7453*/                    OPC_CheckChild1Type, MVT::i32,
3732
548k
/*  7455*/                    OPC_MoveParent,
3733
548k
/*  7456*/                    OPC_MoveChild1,
3734
548k
/*  7457*/                    OPC_CheckValueType, MVT::i8,
3735
548k
/*  7459*/                    OPC_MoveParent,
3736
548k
/*  7460*/                    OPC_MoveParent,
3737
548k
/*  7461*/                    OPC_MoveChild1,
3738
548k
/*  7462*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3739
548k
/*  7465*/                    OPC_MoveChild0,
3740
548k
/*  7466*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3741
548k
/*  7469*/                    OPC_CheckChild0Same, 2,
3742
548k
/*  7471*/                    OPC_CheckChild1Integer, 16, 
3743
548k
/*  7473*/                    OPC_CheckChild1Type, MVT::i32,
3744
548k
/*  7475*/                    OPC_MoveParent,
3745
548k
/*  7476*/                    OPC_MoveChild1,
3746
548k
/*  7477*/                    OPC_CheckValueType, MVT::i8,
3747
548k
/*  7479*/                    OPC_MoveParent,
3748
548k
/*  7480*/                    OPC_MoveParent,
3749
548k
/*  7481*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3750
548k
/*  7483*/                    OPC_MoveParent,
3751
548k
/*  7484*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3752
548k
/*  7486*/                    OPC_MoveParent,
3753
548k
/*  7487*/                    OPC_MoveChild1,
3754
548k
/*  7488*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3755
548k
/*  7491*/                    OPC_MoveChild0,
3756
548k
/*  7492*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3757
548k
/*  7495*/                    OPC_Scope, 68, /*->7565*/ // 2 children in Scope
3758
548k
/*  7497*/                      OPC_CheckChild0Same, 2,
3759
548k
/*  7499*/                      OPC_CheckChild1Integer, 24, 
3760
548k
/*  7501*/                      OPC_CheckChild1Type, MVT::i32,
3761
548k
/*  7503*/                      OPC_MoveParent,
3762
548k
/*  7504*/                      OPC_MoveChild1,
3763
548k
/*  7505*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3764
548k
/*  7508*/                      OPC_CheckChild0Same, 1,
3765
548k
/*  7510*/                      OPC_CheckChild1Integer, 24, 
3766
548k
/*  7512*/                      OPC_CheckChild1Type, MVT::i32,
3767
548k
/*  7514*/                      OPC_MoveParent,
3768
548k
/*  7515*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3769
548k
/*  7517*/                      OPC_MoveParent,
3770
548k
/*  7518*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3771
548k
/*  7520*/                      OPC_CheckType, MVT::i32,
3772
548k
/*  7522*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3773
548k
/*  7524*/                      OPC_EmitInteger, MVT::i32, 8, 
3774
548k
/*  7527*/                      OPC_EmitInteger, MVT::i32, 8, 
3775
548k
/*  7530*/                      OPC_EmitInteger, MVT::i32, 8, 
3776
548k
/*  7533*/                      OPC_EmitInteger, MVT::i1, 0, 
3777
548k
/*  7536*/                      OPC_EmitInteger, MVT::i32, 0, 
3778
548k
/*  7539*/                      OPC_EmitInteger, MVT::i32, 0, 
3779
548k
/*  7542*/                      OPC_EmitInteger, MVT::i32, 0, 
3780
548k
/*  7545*/                      OPC_EmitInteger, MVT::i32, 0, 
3781
548k
/*  7548*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3782
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3783
548k
                                // 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
3784
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3785
548k
/*  7565*/                    /*Scope*/ 68, /*->7634*/
3786
548k
/*  7566*/                      OPC_CheckChild0Same, 1,
3787
548k
/*  7568*/                      OPC_CheckChild1Integer, 24, 
3788
548k
/*  7570*/                      OPC_CheckChild1Type, MVT::i32,
3789
548k
/*  7572*/                      OPC_MoveParent,
3790
548k
/*  7573*/                      OPC_MoveChild1,
3791
548k
/*  7574*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3792
548k
/*  7577*/                      OPC_CheckChild0Same, 2,
3793
548k
/*  7579*/                      OPC_CheckChild1Integer, 24, 
3794
548k
/*  7581*/                      OPC_CheckChild1Type, MVT::i32,
3795
548k
/*  7583*/                      OPC_MoveParent,
3796
548k
/*  7584*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3797
548k
/*  7586*/                      OPC_MoveParent,
3798
548k
/*  7587*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3799
548k
/*  7589*/                      OPC_CheckType, MVT::i32,
3800
548k
/*  7591*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3801
548k
/*  7593*/                      OPC_EmitInteger, MVT::i32, 8, 
3802
548k
/*  7596*/                      OPC_EmitInteger, MVT::i32, 8, 
3803
548k
/*  7599*/                      OPC_EmitInteger, MVT::i32, 8, 
3804
548k
/*  7602*/                      OPC_EmitInteger, MVT::i1, 0, 
3805
548k
/*  7605*/                      OPC_EmitInteger, MVT::i32, 0, 
3806
548k
/*  7608*/                      OPC_EmitInteger, MVT::i32, 0, 
3807
548k
/*  7611*/                      OPC_EmitInteger, MVT::i32, 0, 
3808
548k
/*  7614*/                      OPC_EmitInteger, MVT::i32, 0, 
3809
548k
/*  7617*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3810
548k
                                    MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
3811
548k
                                // 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
3812
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3813
548k
/*  7634*/                    0, /*End of Scope*/
3814
548k
/*  7635*/                  0, /*End of Scope*/
3815
548k
/*  7636*/                0, /*End of Scope*/
3816
548k
/*  7637*/              /*Scope*/ 77|128,12/*1613*/, /*->9252*/
3817
548k
/*  7639*/                OPC_MoveChild0,
3818
548k
/*  7640*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3819
548k
/*  7643*/                OPC_MoveChild0,
3820
548k
/*  7644*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3821
548k
/*  7647*/                OPC_RecordChild0, // #0 = $src0
3822
548k
/*  7648*/                OPC_MoveChild1,
3823
548k
/*  7649*/                OPC_CheckValueType, MVT::i8,
3824
548k
/*  7651*/                OPC_MoveParent,
3825
548k
/*  7652*/                OPC_MoveParent,
3826
548k
/*  7653*/                OPC_MoveChild1,
3827
548k
/*  7654*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3828
548k
/*  7657*/                OPC_RecordChild0, // #1 = $src1
3829
548k
/*  7658*/                OPC_MoveChild1,
3830
548k
/*  7659*/                OPC_CheckValueType, MVT::i8,
3831
548k
/*  7661*/                OPC_MoveParent,
3832
548k
/*  7662*/                OPC_MoveParent,
3833
548k
/*  7663*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3834
548k
/*  7665*/                OPC_MoveParent,
3835
548k
/*  7666*/                OPC_RecordChild1, // #2 = $src2
3836
548k
/*  7667*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
3837
548k
/*  7669*/                OPC_MoveParent,
3838
548k
/*  7670*/                OPC_MoveChild1,
3839
548k
/*  7671*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3840
548k
/*  7674*/                OPC_MoveChild0,
3841
548k
/*  7675*/                OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3842
548k
/*  7678*/                OPC_MoveChild0,
3843
548k
/*  7679*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3844
548k
/*  7682*/                OPC_Scope, 44|128,3/*428*/, /*->8113*/ // 3 children in Scope
3845
548k
/*  7685*/                  OPC_CheckChild0Same, 0,
3846
548k
/*  7687*/                  OPC_CheckChild1Integer, 8, 
3847
548k
/*  7689*/                  OPC_CheckChild1Type, MVT::i32,
3848
548k
/*  7691*/                  OPC_MoveParent,
3849
548k
/*  7692*/                  OPC_MoveChild1,
3850
548k
/*  7693*/                  OPC_CheckValueType, MVT::i8,
3851
548k
/*  7695*/                  OPC_MoveParent,
3852
548k
/*  7696*/                  OPC_MoveParent,
3853
548k
/*  7697*/                  OPC_MoveChild1,
3854
548k
/*  7698*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3855
548k
/*  7701*/                  OPC_MoveChild0,
3856
548k
/*  7702*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3857
548k
/*  7705*/                  OPC_CheckChild0Same, 1,
3858
548k
/*  7707*/                  OPC_CheckChild1Integer, 8, 
3859
548k
/*  7709*/                  OPC_CheckChild1Type, MVT::i32,
3860
548k
/*  7711*/                  OPC_MoveParent,
3861
548k
/*  7712*/                  OPC_MoveChild1,
3862
548k
/*  7713*/                  OPC_CheckValueType, MVT::i8,
3863
548k
/*  7715*/                  OPC_MoveParent,
3864
548k
/*  7716*/                  OPC_MoveParent,
3865
548k
/*  7717*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3866
548k
/*  7719*/                  OPC_MoveParent,
3867
548k
/*  7720*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
3868
548k
/*  7722*/                  OPC_MoveParent,
3869
548k
/*  7723*/                  OPC_MoveChild1,
3870
548k
/*  7724*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3871
548k
/*  7727*/                  OPC_MoveChild0,
3872
548k
/*  7728*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3873
548k
/*  7731*/                  OPC_MoveChild0,
3874
548k
/*  7732*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3875
548k
/*  7735*/                  OPC_Scope, 58|128,1/*186*/, /*->7924*/ // 2 children in Scope
3876
548k
/*  7738*/                    OPC_CheckChild0Same, 0,
3877
548k
/*  7740*/                    OPC_CheckChild1Integer, 16, 
3878
548k
/*  7742*/                    OPC_CheckChild1Type, MVT::i32,
3879
548k
/*  7744*/                    OPC_MoveParent,
3880
548k
/*  7745*/                    OPC_MoveChild1,
3881
548k
/*  7746*/                    OPC_CheckValueType, MVT::i8,
3882
548k
/*  7748*/                    OPC_MoveParent,
3883
548k
/*  7749*/                    OPC_MoveParent,
3884
548k
/*  7750*/                    OPC_MoveChild1,
3885
548k
/*  7751*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3886
548k
/*  7754*/                    OPC_MoveChild0,
3887
548k
/*  7755*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3888
548k
/*  7758*/                    OPC_CheckChild0Same, 1,
3889
548k
/*  7760*/                    OPC_CheckChild1Integer, 16, 
3890
548k
/*  7762*/                    OPC_CheckChild1Type, MVT::i32,
3891
548k
/*  7764*/                    OPC_MoveParent,
3892
548k
/*  7765*/                    OPC_MoveChild1,
3893
548k
/*  7766*/                    OPC_CheckValueType, MVT::i8,
3894
548k
/*  7768*/                    OPC_MoveParent,
3895
548k
/*  7769*/                    OPC_MoveParent,
3896
548k
/*  7770*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3897
548k
/*  7772*/                    OPC_MoveParent,
3898
548k
/*  7773*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3899
548k
/*  7775*/                    OPC_MoveParent,
3900
548k
/*  7776*/                    OPC_MoveChild1,
3901
548k
/*  7777*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3902
548k
/*  7780*/                    OPC_MoveChild0,
3903
548k
/*  7781*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3904
548k
/*  7784*/                    OPC_Scope, 68, /*->7854*/ // 2 children in Scope
3905
548k
/*  7786*/                      OPC_CheckChild0Same, 0,
3906
548k
/*  7788*/                      OPC_CheckChild1Integer, 24, 
3907
548k
/*  7790*/                      OPC_CheckChild1Type, MVT::i32,
3908
548k
/*  7792*/                      OPC_MoveParent,
3909
548k
/*  7793*/                      OPC_MoveChild1,
3910
548k
/*  7794*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3911
548k
/*  7797*/                      OPC_CheckChild0Same, 1,
3912
548k
/*  7799*/                      OPC_CheckChild1Integer, 24, 
3913
548k
/*  7801*/                      OPC_CheckChild1Type, MVT::i32,
3914
548k
/*  7803*/                      OPC_MoveParent,
3915
548k
/*  7804*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3916
548k
/*  7806*/                      OPC_MoveParent,
3917
548k
/*  7807*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3918
548k
/*  7809*/                      OPC_CheckType, MVT::i32,
3919
548k
/*  7811*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3920
548k
/*  7813*/                      OPC_EmitInteger, MVT::i32, 8, 
3921
548k
/*  7816*/                      OPC_EmitInteger, MVT::i32, 8, 
3922
548k
/*  7819*/                      OPC_EmitInteger, MVT::i32, 8, 
3923
548k
/*  7822*/                      OPC_EmitInteger, MVT::i1, 0, 
3924
548k
/*  7825*/                      OPC_EmitInteger, MVT::i32, 0, 
3925
548k
/*  7828*/                      OPC_EmitInteger, MVT::i32, 0, 
3926
548k
/*  7831*/                      OPC_EmitInteger, MVT::i32, 0, 
3927
548k
/*  7834*/                      OPC_EmitInteger, MVT::i32, 0, 
3928
548k
/*  7837*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3929
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
3930
548k
                                // 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
3931
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3932
548k
/*  7854*/                    /*Scope*/ 68, /*->7923*/
3933
548k
/*  7855*/                      OPC_CheckChild0Same, 1,
3934
548k
/*  7857*/                      OPC_CheckChild1Integer, 24, 
3935
548k
/*  7859*/                      OPC_CheckChild1Type, MVT::i32,
3936
548k
/*  7861*/                      OPC_MoveParent,
3937
548k
/*  7862*/                      OPC_MoveChild1,
3938
548k
/*  7863*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3939
548k
/*  7866*/                      OPC_CheckChild0Same, 0,
3940
548k
/*  7868*/                      OPC_CheckChild1Integer, 24, 
3941
548k
/*  7870*/                      OPC_CheckChild1Type, MVT::i32,
3942
548k
/*  7872*/                      OPC_MoveParent,
3943
548k
/*  7873*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3944
548k
/*  7875*/                      OPC_MoveParent,
3945
548k
/*  7876*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
3946
548k
/*  7878*/                      OPC_CheckType, MVT::i32,
3947
548k
/*  7880*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
3948
548k
/*  7882*/                      OPC_EmitInteger, MVT::i32, 8, 
3949
548k
/*  7885*/                      OPC_EmitInteger, MVT::i32, 8, 
3950
548k
/*  7888*/                      OPC_EmitInteger, MVT::i32, 8, 
3951
548k
/*  7891*/                      OPC_EmitInteger, MVT::i1, 0, 
3952
548k
/*  7894*/                      OPC_EmitInteger, MVT::i32, 0, 
3953
548k
/*  7897*/                      OPC_EmitInteger, MVT::i32, 0, 
3954
548k
/*  7900*/                      OPC_EmitInteger, MVT::i32, 0, 
3955
548k
/*  7903*/                      OPC_EmitInteger, MVT::i32, 0, 
3956
548k
/*  7906*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
3957
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
3958
548k
                                // 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
3959
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
3960
548k
/*  7923*/                    0, /*End of Scope*/
3961
548k
/*  7924*/                  /*Scope*/ 58|128,1/*186*/, /*->8112*/
3962
548k
/*  7926*/                    OPC_CheckChild0Same, 1,
3963
548k
/*  7928*/                    OPC_CheckChild1Integer, 16, 
3964
548k
/*  7930*/                    OPC_CheckChild1Type, MVT::i32,
3965
548k
/*  7932*/                    OPC_MoveParent,
3966
548k
/*  7933*/                    OPC_MoveChild1,
3967
548k
/*  7934*/                    OPC_CheckValueType, MVT::i8,
3968
548k
/*  7936*/                    OPC_MoveParent,
3969
548k
/*  7937*/                    OPC_MoveParent,
3970
548k
/*  7938*/                    OPC_MoveChild1,
3971
548k
/*  7939*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
3972
548k
/*  7942*/                    OPC_MoveChild0,
3973
548k
/*  7943*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
3974
548k
/*  7946*/                    OPC_CheckChild0Same, 0,
3975
548k
/*  7948*/                    OPC_CheckChild1Integer, 16, 
3976
548k
/*  7950*/                    OPC_CheckChild1Type, MVT::i32,
3977
548k
/*  7952*/                    OPC_MoveParent,
3978
548k
/*  7953*/                    OPC_MoveChild1,
3979
548k
/*  7954*/                    OPC_CheckValueType, MVT::i8,
3980
548k
/*  7956*/                    OPC_MoveParent,
3981
548k
/*  7957*/                    OPC_MoveParent,
3982
548k
/*  7958*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
3983
548k
/*  7960*/                    OPC_MoveParent,
3984
548k
/*  7961*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
3985
548k
/*  7963*/                    OPC_MoveParent,
3986
548k
/*  7964*/                    OPC_MoveChild1,
3987
548k
/*  7965*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
3988
548k
/*  7968*/                    OPC_MoveChild0,
3989
548k
/*  7969*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3990
548k
/*  7972*/                    OPC_Scope, 68, /*->8042*/ // 2 children in Scope
3991
548k
/*  7974*/                      OPC_CheckChild0Same, 0,
3992
548k
/*  7976*/                      OPC_CheckChild1Integer, 24, 
3993
548k
/*  7978*/                      OPC_CheckChild1Type, MVT::i32,
3994
548k
/*  7980*/                      OPC_MoveParent,
3995
548k
/*  7981*/                      OPC_MoveChild1,
3996
548k
/*  7982*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
3997
548k
/*  7985*/                      OPC_CheckChild0Same, 1,
3998
548k
/*  7987*/                      OPC_CheckChild1Integer, 24, 
3999
548k
/*  7989*/                      OPC_CheckChild1Type, MVT::i32,
4000
548k
/*  7991*/                      OPC_MoveParent,
4001
548k
/*  7992*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4002
548k
/*  7994*/                      OPC_MoveParent,
4003
548k
/*  7995*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4004
548k
/*  7997*/                      OPC_CheckType, MVT::i32,
4005
548k
/*  7999*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4006
548k
/*  8001*/                      OPC_EmitInteger, MVT::i32, 8, 
4007
548k
/*  8004*/                      OPC_EmitInteger, MVT::i32, 8, 
4008
548k
/*  8007*/                      OPC_EmitInteger, MVT::i32, 8, 
4009
548k
/*  8010*/                      OPC_EmitInteger, MVT::i1, 0, 
4010
548k
/*  8013*/                      OPC_EmitInteger, MVT::i32, 0, 
4011
548k
/*  8016*/                      OPC_EmitInteger, MVT::i32, 0, 
4012
548k
/*  8019*/                      OPC_EmitInteger, MVT::i32, 0, 
4013
548k
/*  8022*/                      OPC_EmitInteger, MVT::i32, 0, 
4014
548k
/*  8025*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4015
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4016
548k
                                // 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
4017
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4018
548k
/*  8042*/                    /*Scope*/ 68, /*->8111*/
4019
548k
/*  8043*/                      OPC_CheckChild0Same, 1,
4020
548k
/*  8045*/                      OPC_CheckChild1Integer, 24, 
4021
548k
/*  8047*/                      OPC_CheckChild1Type, MVT::i32,
4022
548k
/*  8049*/                      OPC_MoveParent,
4023
548k
/*  8050*/                      OPC_MoveChild1,
4024
548k
/*  8051*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4025
548k
/*  8054*/                      OPC_CheckChild0Same, 0,
4026
548k
/*  8056*/                      OPC_CheckChild1Integer, 24, 
4027
548k
/*  8058*/                      OPC_CheckChild1Type, MVT::i32,
4028
548k
/*  8060*/                      OPC_MoveParent,
4029
548k
/*  8061*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4030
548k
/*  8063*/                      OPC_MoveParent,
4031
548k
/*  8064*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4032
548k
/*  8066*/                      OPC_CheckType, MVT::i32,
4033
548k
/*  8068*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4034
548k
/*  8070*/                      OPC_EmitInteger, MVT::i32, 8, 
4035
548k
/*  8073*/                      OPC_EmitInteger, MVT::i32, 8, 
4036
548k
/*  8076*/                      OPC_EmitInteger, MVT::i32, 8, 
4037
548k
/*  8079*/                      OPC_EmitInteger, MVT::i1, 0, 
4038
548k
/*  8082*/                      OPC_EmitInteger, MVT::i32, 0, 
4039
548k
/*  8085*/                      OPC_EmitInteger, MVT::i32, 0, 
4040
548k
/*  8088*/                      OPC_EmitInteger, MVT::i32, 0, 
4041
548k
/*  8091*/                      OPC_EmitInteger, MVT::i32, 0, 
4042
548k
/*  8094*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4043
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4044
548k
                                // 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
4045
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4046
548k
/*  8111*/                    0, /*End of Scope*/
4047
548k
/*  8112*/                  0, /*End of Scope*/
4048
548k
/*  8113*/                /*Scope*/ 66|128,5/*706*/, /*->8821*/
4049
548k
/*  8115*/                  OPC_CheckChild0Same, 1,
4050
548k
/*  8117*/                  OPC_CheckChild1Integer, 8, 
4051
548k
/*  8119*/                  OPC_CheckChild1Type, MVT::i32,
4052
548k
/*  8121*/                  OPC_MoveParent,
4053
548k
/*  8122*/                  OPC_MoveChild1,
4054
548k
/*  8123*/                  OPC_CheckValueType, MVT::i8,
4055
548k
/*  8125*/                  OPC_MoveParent,
4056
548k
/*  8126*/                  OPC_MoveParent,
4057
548k
/*  8127*/                  OPC_MoveChild1,
4058
548k
/*  8128*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
4059
548k
/*  8131*/                  OPC_MoveChild0,
4060
548k
/*  8132*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4061
548k
/*  8135*/                  OPC_CheckChild0Same, 0,
4062
548k
/*  8137*/                  OPC_CheckChild1Integer, 8, 
4063
548k
/*  8139*/                  OPC_CheckChild1Type, MVT::i32,
4064
548k
/*  8141*/                  OPC_MoveParent,
4065
548k
/*  8142*/                  OPC_MoveChild1,
4066
548k
/*  8143*/                  OPC_CheckValueType, MVT::i8,
4067
548k
/*  8145*/                  OPC_MoveParent,
4068
548k
/*  8146*/                  OPC_MoveParent,
4069
548k
/*  8147*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4070
548k
/*  8149*/                  OPC_MoveParent,
4071
548k
/*  8150*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
4072
548k
/*  8152*/                  OPC_MoveParent,
4073
548k
/*  8153*/                  OPC_MoveChild1,
4074
548k
/*  8154*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
4075
548k
/*  8157*/                  OPC_MoveChild0,
4076
548k
/*  8158*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
4077
548k
/*  8161*/                  OPC_MoveChild0,
4078
548k
/*  8162*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4079
548k
/*  8165*/                  OPC_Scope, 58|128,1/*186*/, /*->8354*/ // 3 children in Scope
4080
548k
/*  8168*/                    OPC_CheckChild0Same, 0,
4081
548k
/*  8170*/                    OPC_CheckChild1Integer, 16, 
4082
548k
/*  8172*/                    OPC_CheckChild1Type, MVT::i32,
4083
548k
/*  8174*/                    OPC_MoveParent,
4084
548k
/*  8175*/                    OPC_MoveChild1,
4085
548k
/*  8176*/                    OPC_CheckValueType, MVT::i8,
4086
548k
/*  8178*/                    OPC_MoveParent,
4087
548k
/*  8179*/                    OPC_MoveParent,
4088
548k
/*  8180*/                    OPC_MoveChild1,
4089
548k
/*  8181*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
4090
548k
/*  8184*/                    OPC_MoveChild0,
4091
548k
/*  8185*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4092
548k
/*  8188*/                    OPC_CheckChild0Same, 1,
4093
548k
/*  8190*/                    OPC_CheckChild1Integer, 16, 
4094
548k
/*  8192*/                    OPC_CheckChild1Type, MVT::i32,
4095
548k
/*  8194*/                    OPC_MoveParent,
4096
548k
/*  8195*/                    OPC_MoveChild1,
4097
548k
/*  8196*/                    OPC_CheckValueType, MVT::i8,
4098
548k
/*  8198*/                    OPC_MoveParent,
4099
548k
/*  8199*/                    OPC_MoveParent,
4100
548k
/*  8200*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4101
548k
/*  8202*/                    OPC_MoveParent,
4102
548k
/*  8203*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
4103
548k
/*  8205*/                    OPC_MoveParent,
4104
548k
/*  8206*/                    OPC_MoveChild1,
4105
548k
/*  8207*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
4106
548k
/*  8210*/                    OPC_MoveChild0,
4107
548k
/*  8211*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4108
548k
/*  8214*/                    OPC_Scope, 68, /*->8284*/ // 2 children in Scope
4109
548k
/*  8216*/                      OPC_CheckChild0Same, 0,
4110
548k
/*  8218*/                      OPC_CheckChild1Integer, 24, 
4111
548k
/*  8220*/                      OPC_CheckChild1Type, MVT::i32,
4112
548k
/*  8222*/                      OPC_MoveParent,
4113
548k
/*  8223*/                      OPC_MoveChild1,
4114
548k
/*  8224*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4115
548k
/*  8227*/                      OPC_CheckChild0Same, 1,
4116
548k
/*  8229*/                      OPC_CheckChild1Integer, 24, 
4117
548k
/*  8231*/                      OPC_CheckChild1Type, MVT::i32,
4118
548k
/*  8233*/                      OPC_MoveParent,
4119
548k
/*  8234*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4120
548k
/*  8236*/                      OPC_MoveParent,
4121
548k
/*  8237*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4122
548k
/*  8239*/                      OPC_CheckType, MVT::i32,
4123
548k
/*  8241*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4124
548k
/*  8243*/                      OPC_EmitInteger, MVT::i32, 8, 
4125
548k
/*  8246*/                      OPC_EmitInteger, MVT::i32, 8, 
4126
548k
/*  8249*/                      OPC_EmitInteger, MVT::i32, 8, 
4127
548k
/*  8252*/                      OPC_EmitInteger, MVT::i1, 0, 
4128
548k
/*  8255*/                      OPC_EmitInteger, MVT::i32, 0, 
4129
548k
/*  8258*/                      OPC_EmitInteger, MVT::i32, 0, 
4130
548k
/*  8261*/                      OPC_EmitInteger, MVT::i32, 0, 
4131
548k
/*  8264*/                      OPC_EmitInteger, MVT::i32, 0, 
4132
548k
/*  8267*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4133
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4134
548k
                                // 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
4135
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4136
548k
/*  8284*/                    /*Scope*/ 68, /*->8353*/
4137
548k
/*  8285*/                      OPC_CheckChild0Same, 1,
4138
548k
/*  8287*/                      OPC_CheckChild1Integer, 24, 
4139
548k
/*  8289*/                      OPC_CheckChild1Type, MVT::i32,
4140
548k
/*  8291*/                      OPC_MoveParent,
4141
548k
/*  8292*/                      OPC_MoveChild1,
4142
548k
/*  8293*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4143
548k
/*  8296*/                      OPC_CheckChild0Same, 0,
4144
548k
/*  8298*/                      OPC_CheckChild1Integer, 24, 
4145
548k
/*  8300*/                      OPC_CheckChild1Type, MVT::i32,
4146
548k
/*  8302*/                      OPC_MoveParent,
4147
548k
/*  8303*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4148
548k
/*  8305*/                      OPC_MoveParent,
4149
548k
/*  8306*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4150
548k
/*  8308*/                      OPC_CheckType, MVT::i32,
4151
548k
/*  8310*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4152
548k
/*  8312*/                      OPC_EmitInteger, MVT::i32, 8, 
4153
548k
/*  8315*/                      OPC_EmitInteger, MVT::i32, 8, 
4154
548k
/*  8318*/                      OPC_EmitInteger, MVT::i32, 8, 
4155
548k
/*  8321*/                      OPC_EmitInteger, MVT::i1, 0, 
4156
548k
/*  8324*/                      OPC_EmitInteger, MVT::i32, 0, 
4157
548k
/*  8327*/                      OPC_EmitInteger, MVT::i32, 0, 
4158
548k
/*  8330*/                      OPC_EmitInteger, MVT::i32, 0, 
4159
548k
/*  8333*/                      OPC_EmitInteger, MVT::i32, 0, 
4160
548k
/*  8336*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4161
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4162
548k
                                // 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
4163
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4164
548k
/*  8353*/                    0, /*End of Scope*/
4165
548k
/*  8354*/                  /*Scope*/ 20|128,2/*276*/, /*->8632*/
4166
548k
/*  8356*/                    OPC_CheckChild0Same, 1,
4167
548k
/*  8358*/                    OPC_CheckChild1Integer, 16, 
4168
548k
/*  8360*/                    OPC_CheckChild1Type, MVT::i32,
4169
548k
/*  8362*/                    OPC_MoveParent,
4170
548k
/*  8363*/                    OPC_MoveChild1,
4171
548k
/*  8364*/                    OPC_CheckValueType, MVT::i8,
4172
548k
/*  8366*/                    OPC_MoveParent,
4173
548k
/*  8367*/                    OPC_MoveParent,
4174
548k
/*  8368*/                    OPC_MoveChild1,
4175
548k
/*  8369*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
4176
548k
/*  8372*/                    OPC_MoveChild0,
4177
548k
/*  8373*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
4178
548k
/*  8376*/                    OPC_CheckChild0Same, 0,
4179
548k
/*  8378*/                    OPC_CheckChild1Integer, 16, 
4180
548k
/*  8380*/                    OPC_CheckChild1Type, MVT::i32,
4181
548k
/*  8382*/                    OPC_MoveParent,
4182
548k
/*  8383*/                    OPC_MoveChild1,
4183
548k
/*  8384*/                    OPC_CheckValueType, MVT::i8,
4184
548k
/*  8386*/                    OPC_MoveParent,
4185
548k
/*  8387*/                    OPC_MoveParent,
4186
548k
/*  8388*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4187
548k
/*  8390*/                    OPC_MoveParent,
4188
548k
/*  8391*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
4189
548k
/*  8393*/                    OPC_MoveParent,
4190
548k
/*  8394*/                    OPC_MoveChild1,
4191
548k
/*  8395*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
4192
548k
/*  8398*/                    OPC_MoveChild0,
4193
548k
/*  8399*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4194
548k
/*  8402*/                    OPC_Scope, 68, /*->8472*/ // 3 children in Scope
4195
548k
/*  8404*/                      OPC_CheckChild0Same, 0,
4196
548k
/*  8406*/                      OPC_CheckChild1Integer, 24, 
4197
548k
/*  8408*/                      OPC_CheckChild1Type, MVT::i32,
4198
548k
/*  8410*/                      OPC_MoveParent,
4199
548k
/*  8411*/                      OPC_MoveChild1,
4200
548k
/*  8412*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4201
548k
/*  8415*/                      OPC_CheckChild0Same, 1,
4202
548k
/*  8417*/                      OPC_CheckChild1Integer, 24, 
4203
548k
/*  8419*/                      OPC_CheckChild1Type, MVT::i32,
4204
548k
/*  8421*/                      OPC_MoveParent,
4205
548k
/*  8422*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4206
548k
/*  8424*/                      OPC_MoveParent,
4207
548k
/*  8425*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4208
548k
/*  8427*/                      OPC_CheckType, MVT::i32,
4209
548k
/*  8429*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4210
548k
/*  8431*/                      OPC_EmitInteger, MVT::i32, 8, 
4211
548k
/*  8434*/                      OPC_EmitInteger, MVT::i32, 8, 
4212
548k
/*  8437*/                      OPC_EmitInteger, MVT::i32, 8, 
4213
548k
/*  8440*/                      OPC_EmitInteger, MVT::i1, 0, 
4214
548k
/*  8443*/                      OPC_EmitInteger, MVT::i32, 0, 
4215
548k
/*  8446*/                      OPC_EmitInteger, MVT::i32, 0, 
4216
548k
/*  8449*/                      OPC_EmitInteger, MVT::i32, 0, 
4217
548k
/*  8452*/                      OPC_EmitInteger, MVT::i32, 0, 
4218
548k
/*  8455*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4219
548k
                                    MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4220
548k
                                // 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
4221
548k
                                // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4222
548k
/*  8472*/                    /*Scope*/ 89, /*->8562*/
4223
548k
/*  8473*/                      OPC_CheckChild0Same, 1,
4224
548k
/*  8475*/                      OPC_CheckChild1Integer, 24, 
4225
548k
/*  8477*/                      OPC_CheckChild1Type, MVT::i32,
4226
548k
/*  8479*/                      OPC_MoveParent,
4227
548k
/*  8480*/                      OPC_MoveChild1,
4228
548k
/*  8481*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4229
548k
/*  8484*/                      OPC_CheckChild0Same, 0,
4230
548k
/*  8486*/                      OPC_CheckChild1Integer, 24, 
4231
548k
/*  8488*/                      OPC_CheckChild1Type, MVT::i32,
4232
548k
/*  8490*/                      OPC_MoveParent,
4233
548k
/*  8491*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
4234
548k
/*  8493*/                      OPC_MoveParent,
4235
548k
/*  8494*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
4236
548k
/*  8496*/                      OPC_CheckType, MVT::i32,
4237
548k
/*  8498*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
4238
548k
/*  8500*/                      OPC_EmitInteger, MVT::i32, 8, 
4239
548k
/*  8503*/                      OPC_EmitInteger, MVT::i32, 8, 
4240
548k
/*  8506*/                      OPC_EmitInteger, MVT::i32, 8, 
4241
548k
/*  8509*/                      OPC_EmitInteger, MVT::i1, 0, 
4242
548k
/*  8512*/                      OPC_EmitInteger, MVT::i32, 0, 
4243
548k
/*  8515*/                      OPC_EmitInteger, MVT::i32, 0, 
4244
548k
/*  8518*/                      OPC_EmitInteger, MVT::i32, 0, 
4245
548k
/*  8521*/                      OPC_EmitInteger, MVT::i32, 0, 
4246
548k
/*  8524*/                      OPC_Scope, 17, /*->8543*/ // 2 children in Scope
4247
548k
/*  8526*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4248
548k
                                      MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
4249
548k
                                  // 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
4250
548k
                                  // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4251
548k
/*  8543*/                      /*Scope*/ 17, /*->8561*/
4252
548k
/*  8544*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_I32_I8), 0,
4253
548k
                                      MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
4254
548k
                                  // 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
4255
548k
                                  // Dst: (V_DOT4_I32_I8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
4256
548k
/*  8561*/                      0, /*End of Scope*/
4257
548k
/*  8562*/                    /*Scope*/ 68, /*->8631*/
4258
548k
/*  8563*/                      OPC_CheckChild0Same, 0,
4259
548k
/*  8565*/                      OPC_CheckChild1Integer, 24, 
4260
548k
/*  8567*/                      OPC_CheckChild1Type, MVT::i32,
4261
548k
/*  8569*/                      OPC_MoveParent,
4262
548k
/*  8570*/                      OPC_MoveChild1,
4263
548k
/*  8571*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
4264
548k
/*  8574*/                      OPC_CheckChild0Same, 1,
4265
548k
/*  8576*/                      OPC_CheckChild1Integer, 24, 
4266
548k
/*  8578*/                      OPC_CheckChild1Type, MVT::i32,
4267
548k
/*  8580*/