Coverage Report

Created: 2019-03-22 08:08

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