LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/AMDGPU - AMDGPUGenDAGISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 289 295 98.0 %
Date: 2018-09-23 13:06:45 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* DAG Instruction Selector for the AMDGPU target                             *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : // *** NOTE: This file is #included into the middle of the target
      10             : // *** instruction selector class.  These functions are really methods.
      11             : 
      12             : // If GET_DAGISEL_DECL is #defined with any value, only function
      13             : // declarations will be included when this file is included.
      14             : // If GET_DAGISEL_BODY is #defined, its value should be the name of
      15             : // the instruction selector class. Function bodies will be emitted
      16             : // and each function's name will be qualified with the name of the
      17             : // class.
      18             : //
      19             : // When neither of the GET_DAGISEL* macros is defined, the functions
      20             : // are emitted inline.
      21             : 
      22             : #if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
      23             : #error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
      24             : #endif
      25             : 
      26             : #ifdef GET_DAGISEL_BODY
      27             : #define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
      28             : #define LOCAL_DAGISEL_STRINGIZE_(X) #X
      29             : static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
      30             :    "GET_DAGISEL_BODY is empty: it should be defined with the class name");
      31             : #undef LOCAL_DAGISEL_STRINGIZE_
      32             : #undef LOCAL_DAGISEL_STRINGIZE
      33             : #endif
      34             : 
      35             : #if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
      36             : #define DAGISEL_INLINE 1
      37             : #else
      38             : #define DAGISEL_INLINE 0
      39             : #endif
      40             : 
      41             : #if !DAGISEL_INLINE
      42             : #define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
      43             : #else
      44             : #define DAGISEL_CLASS_COLONCOLON
      45             : #endif
      46             : 
      47             : #ifdef GET_DAGISEL_DECL
      48             : void SelectCode(SDNode *N);
      49             : #endif
      50             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
      51             : void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
      52             : {
      53             :   // Some target values are emitted as 2 bytes, TARGET_VAL handles
      54             :   // this.
      55             :   #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
      56             :   static const unsigned char MatcherTable[] = {
      57             : /*     0*/  OPC_SwitchOpcode /*196 cases */, 12|128,102|128,1/*29452*/, TARGET_VAL(ISD::ADD),// ->29458
      58             : /*     6*/    OPC_Scope, 91|128,95|128,1/*28635*/, /*->28645*/ // 10 children in Scope
      59             : /*    10*/      OPC_MoveChild0,
      60             : /*    11*/      OPC_SwitchOpcode /*4 cases */, 107|128,111/*14315*/, TARGET_VAL(ISD::ADD),// ->14331
      61             : /*    16*/        OPC_Scope, 96|128,105/*13536*/, /*->13555*/ // 4 children in Scope
      62             : /*    19*/          OPC_MoveChild0,
      63             : /*    20*/          OPC_SwitchOpcode /*2 cases */, 106|128,54/*7018*/, TARGET_VAL(ISD::ADD),// ->7043
      64             : /*    25*/            OPC_MoveChild0,
      65             : /*    26*/            OPC_SwitchOpcode /*2 cases */, 42|128,29/*3754*/, TARGET_VAL(ISD::ADD),// ->3785
      66             : /*    31*/              OPC_Scope, 56|128,5/*696*/, /*->730*/ // 3 children in Scope
      67             : /*    34*/                OPC_MoveChild0,
      68             : /*    35*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
      69             : /*    38*/                OPC_MoveChild0,
      70             : /*    39*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
      71             : /*    42*/                OPC_MoveChild0,
      72             : /*    43*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
      73             : /*    46*/                OPC_MoveChild0,
      74             : /*    47*/                OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
      75             : /*    50*/                OPC_Scope, 81|128,2/*337*/, /*->390*/ // 2 children in Scope
      76             : /*    53*/                  OPC_RecordChild0, // #0 = $src2
      77             : /*    54*/                  OPC_MoveChild1,
      78             : /*    55*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
      79             : /*    58*/                  OPC_MoveChild0,
      80             : /*    59*/                  OPC_CheckAndImm, 15, 
      81             : /*    61*/                  OPC_RecordChild0, // #1 = $src0
      82             : /*    62*/                  OPC_MoveParent,
      83             : /*    63*/                  OPC_MoveChild1,
      84             : /*    64*/                  OPC_CheckAndImm, 15, 
      85             : /*    66*/                  OPC_RecordChild0, // #2 = $src1
      86             : /*    67*/                  OPC_MoveParent,
      87             : /*    68*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
      88             : /*    70*/                  OPC_MoveParent,
      89             : /*    71*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
      90             : /*    73*/                  OPC_MoveParent,
      91             : /*    74*/                  OPC_MoveChild1,
      92             : /*    75*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
      93             : /*    78*/                  OPC_MoveChild0,
      94             : /*    79*/                  OPC_CheckAndImm, 15, 
      95             : /*    81*/                  OPC_MoveChild0,
      96             : /*    82*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
      97             : /*    85*/                  OPC_CheckChild0Same, 1,
      98             : /*    87*/                  OPC_CheckChild1Integer, 4, 
      99             : /*    89*/                  OPC_CheckChild1Type, MVT::i32,
     100             : /*    91*/                  OPC_MoveParent,
     101             : /*    92*/                  OPC_MoveParent,
     102             : /*    93*/                  OPC_MoveChild1,
     103             : /*    94*/                  OPC_CheckAndImm, 15, 
     104             : /*    96*/                  OPC_MoveChild0,
     105             : /*    97*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     106             : /*   100*/                  OPC_CheckChild0Same, 2,
     107             : /*   102*/                  OPC_CheckChild1Integer, 4, 
     108             : /*   104*/                  OPC_CheckChild1Type, MVT::i32,
     109             : /*   106*/                  OPC_MoveParent,
     110             : /*   107*/                  OPC_MoveParent,
     111             : /*   108*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     112             : /*   110*/                  OPC_MoveParent,
     113             : /*   111*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     114             : /*   113*/                  OPC_MoveParent,
     115             : /*   114*/                  OPC_MoveChild1,
     116             : /*   115*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     117             : /*   118*/                  OPC_MoveChild0,
     118             : /*   119*/                  OPC_CheckAndImm, 15, 
     119             : /*   121*/                  OPC_MoveChild0,
     120             : /*   122*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     121             : /*   125*/                  OPC_CheckChild0Same, 1,
     122             : /*   127*/                  OPC_CheckChild1Integer, 8, 
     123             : /*   129*/                  OPC_CheckChild1Type, MVT::i32,
     124             : /*   131*/                  OPC_MoveParent,
     125             : /*   132*/                  OPC_MoveParent,
     126             : /*   133*/                  OPC_MoveChild1,
     127             : /*   134*/                  OPC_CheckAndImm, 15, 
     128             : /*   136*/                  OPC_MoveChild0,
     129             : /*   137*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     130             : /*   140*/                  OPC_CheckChild0Same, 2,
     131             : /*   142*/                  OPC_CheckChild1Integer, 8, 
     132             : /*   144*/                  OPC_CheckChild1Type, MVT::i32,
     133             : /*   146*/                  OPC_MoveParent,
     134             : /*   147*/                  OPC_MoveParent,
     135             : /*   148*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     136             : /*   150*/                  OPC_MoveParent,
     137             : /*   151*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     138             : /*   153*/                  OPC_MoveParent,
     139             : /*   154*/                  OPC_MoveChild1,
     140             : /*   155*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     141             : /*   158*/                  OPC_MoveChild0,
     142             : /*   159*/                  OPC_CheckAndImm, 15, 
     143             : /*   161*/                  OPC_MoveChild0,
     144             : /*   162*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     145             : /*   165*/                  OPC_CheckChild0Same, 1,
     146             : /*   167*/                  OPC_CheckChild1Integer, 12, 
     147             : /*   169*/                  OPC_CheckChild1Type, MVT::i32,
     148             : /*   171*/                  OPC_MoveParent,
     149             : /*   172*/                  OPC_MoveParent,
     150             : /*   173*/                  OPC_MoveChild1,
     151             : /*   174*/                  OPC_CheckAndImm, 15, 
     152             : /*   176*/                  OPC_MoveChild0,
     153             : /*   177*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     154             : /*   180*/                  OPC_CheckChild0Same, 2,
     155             : /*   182*/                  OPC_CheckChild1Integer, 12, 
     156             : /*   184*/                  OPC_CheckChild1Type, MVT::i32,
     157             : /*   186*/                  OPC_MoveParent,
     158             : /*   187*/                  OPC_MoveParent,
     159             : /*   188*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     160             : /*   190*/                  OPC_MoveParent,
     161             : /*   191*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     162             : /*   193*/                  OPC_MoveParent,
     163             : /*   194*/                  OPC_MoveChild1,
     164             : /*   195*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     165             : /*   198*/                  OPC_MoveChild0,
     166             : /*   199*/                  OPC_CheckAndImm, 15, 
     167             : /*   201*/                  OPC_MoveChild0,
     168             : /*   202*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     169             : /*   205*/                  OPC_CheckChild0Same, 1,
     170             : /*   207*/                  OPC_CheckChild1Integer, 16, 
     171             : /*   209*/                  OPC_CheckChild1Type, MVT::i32,
     172             : /*   211*/                  OPC_MoveParent,
     173             : /*   212*/                  OPC_MoveParent,
     174             : /*   213*/                  OPC_MoveChild1,
     175             : /*   214*/                  OPC_CheckAndImm, 15, 
     176             : /*   216*/                  OPC_MoveChild0,
     177             : /*   217*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     178             : /*   220*/                  OPC_CheckChild0Same, 2,
     179             : /*   222*/                  OPC_CheckChild1Integer, 16, 
     180             : /*   224*/                  OPC_CheckChild1Type, MVT::i32,
     181             : /*   226*/                  OPC_MoveParent,
     182             : /*   227*/                  OPC_MoveParent,
     183             : /*   228*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     184             : /*   230*/                  OPC_MoveParent,
     185             : /*   231*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     186             : /*   233*/                  OPC_MoveParent,
     187             : /*   234*/                  OPC_MoveChild1,
     188             : /*   235*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     189             : /*   238*/                  OPC_MoveChild0,
     190             : /*   239*/                  OPC_CheckAndImm, 15, 
     191             : /*   241*/                  OPC_MoveChild0,
     192             : /*   242*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     193             : /*   245*/                  OPC_CheckChild0Same, 1,
     194             : /*   247*/                  OPC_CheckChild1Integer, 20, 
     195             : /*   249*/                  OPC_CheckChild1Type, MVT::i32,
     196             : /*   251*/                  OPC_MoveParent,
     197             : /*   252*/                  OPC_MoveParent,
     198             : /*   253*/                  OPC_MoveChild1,
     199             : /*   254*/                  OPC_CheckAndImm, 15, 
     200             : /*   256*/                  OPC_MoveChild0,
     201             : /*   257*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     202             : /*   260*/                  OPC_CheckChild0Same, 2,
     203             : /*   262*/                  OPC_CheckChild1Integer, 20, 
     204             : /*   264*/                  OPC_CheckChild1Type, MVT::i32,
     205             : /*   266*/                  OPC_MoveParent,
     206             : /*   267*/                  OPC_MoveParent,
     207             : /*   268*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     208             : /*   270*/                  OPC_MoveParent,
     209             : /*   271*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     210             : /*   273*/                  OPC_MoveParent,
     211             : /*   274*/                  OPC_MoveChild1,
     212             : /*   275*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     213             : /*   278*/                  OPC_MoveChild0,
     214             : /*   279*/                  OPC_CheckAndImm, 15, 
     215             : /*   281*/                  OPC_MoveChild0,
     216             : /*   282*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     217             : /*   285*/                  OPC_CheckChild0Same, 1,
     218             : /*   287*/                  OPC_CheckChild1Integer, 24, 
     219             : /*   289*/                  OPC_CheckChild1Type, MVT::i32,
     220             : /*   291*/                  OPC_MoveParent,
     221             : /*   292*/                  OPC_MoveParent,
     222             : /*   293*/                  OPC_MoveChild1,
     223             : /*   294*/                  OPC_CheckAndImm, 15, 
     224             : /*   296*/                  OPC_MoveChild0,
     225             : /*   297*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     226             : /*   300*/                  OPC_CheckChild0Same, 2,
     227             : /*   302*/                  OPC_CheckChild1Integer, 24, 
     228             : /*   304*/                  OPC_CheckChild1Type, MVT::i32,
     229             : /*   306*/                  OPC_MoveParent,
     230             : /*   307*/                  OPC_MoveParent,
     231             : /*   308*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     232             : /*   310*/                  OPC_MoveParent,
     233             : /*   311*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     234             : /*   313*/                  OPC_MoveParent,
     235             : /*   314*/                  OPC_MoveChild1,
     236             : /*   315*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     237             : /*   318*/                  OPC_MoveChild0,
     238             : /*   319*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     239             : /*   322*/                  OPC_CheckChild0Same, 1,
     240             : /*   324*/                  OPC_CheckChild1Integer, 28, 
     241             : /*   326*/                  OPC_CheckChild1Type, MVT::i32,
     242             : /*   328*/                  OPC_MoveParent,
     243             : /*   329*/                  OPC_MoveChild1,
     244             : /*   330*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     245             : /*   333*/                  OPC_CheckChild0Same, 2,
     246             : /*   335*/                  OPC_CheckChild1Integer, 28, 
     247             : /*   337*/                  OPC_CheckChild1Type, MVT::i32,
     248             : /*   339*/                  OPC_MoveParent,
     249             : /*   340*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     250             : /*   342*/                  OPC_MoveParent,
     251             : /*   343*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     252             : /*   345*/                  OPC_CheckType, MVT::i32,
     253             : /*   347*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     254             : /*   349*/                  OPC_EmitInteger, MVT::i32, 8, 
     255             : /*   352*/                  OPC_EmitInteger, MVT::i32, 8, 
     256             : /*   355*/                  OPC_EmitInteger, MVT::i32, 8, 
     257             : /*   358*/                  OPC_EmitInteger, MVT::i1, 0, 
     258             : /*   361*/                  OPC_EmitInteger, MVT::i32, 0, 
     259             : /*   364*/                  OPC_EmitInteger, MVT::i32, 0, 
     260             : /*   367*/                  OPC_EmitInteger, MVT::i32, 0, 
     261             : /*   370*/                  OPC_EmitInteger, MVT::i32, 0, 
     262             : /*   373*/                  OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
     263             :                                 MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     264             :                             // 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
     265             :                             // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     266             : /*   390*/                /*Scope*/ 81|128,2/*337*/, /*->729*/
     267             : /*   392*/                  OPC_MoveChild0,
     268             : /*   393*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     269             : /*   396*/                  OPC_MoveChild0,
     270             : /*   397*/                  OPC_CheckAndImm, 15, 
     271             : /*   399*/                  OPC_RecordChild0, // #0 = $src0
     272             : /*   400*/                  OPC_MoveParent,
     273             : /*   401*/                  OPC_MoveChild1,
     274             : /*   402*/                  OPC_CheckAndImm, 15, 
     275             : /*   404*/                  OPC_RecordChild0, // #1 = $src1
     276             : /*   405*/                  OPC_MoveParent,
     277             : /*   406*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     278             : /*   408*/                  OPC_MoveParent,
     279             : /*   409*/                  OPC_RecordChild1, // #2 = $src2
     280             : /*   410*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
     281             : /*   412*/                  OPC_MoveParent,
     282             : /*   413*/                  OPC_MoveChild1,
     283             : /*   414*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     284             : /*   417*/                  OPC_MoveChild0,
     285             : /*   418*/                  OPC_CheckAndImm, 15, 
     286             : /*   420*/                  OPC_MoveChild0,
     287             : /*   421*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     288             : /*   424*/                  OPC_CheckChild0Same, 0,
     289             : /*   426*/                  OPC_CheckChild1Integer, 4, 
     290             : /*   428*/                  OPC_CheckChild1Type, MVT::i32,
     291             : /*   430*/                  OPC_MoveParent,
     292             : /*   431*/                  OPC_MoveParent,
     293             : /*   432*/                  OPC_MoveChild1,
     294             : /*   433*/                  OPC_CheckAndImm, 15, 
     295             : /*   435*/                  OPC_MoveChild0,
     296             : /*   436*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     297             : /*   439*/                  OPC_CheckChild0Same, 1,
     298             : /*   441*/                  OPC_CheckChild1Integer, 4, 
     299             : /*   443*/                  OPC_CheckChild1Type, MVT::i32,
     300             : /*   445*/                  OPC_MoveParent,
     301             : /*   446*/                  OPC_MoveParent,
     302             : /*   447*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     303             : /*   449*/                  OPC_MoveParent,
     304             : /*   450*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     305             : /*   452*/                  OPC_MoveParent,
     306             : /*   453*/                  OPC_MoveChild1,
     307             : /*   454*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     308             : /*   457*/                  OPC_MoveChild0,
     309             : /*   458*/                  OPC_CheckAndImm, 15, 
     310             : /*   460*/                  OPC_MoveChild0,
     311             : /*   461*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     312             : /*   464*/                  OPC_CheckChild0Same, 0,
     313             : /*   466*/                  OPC_CheckChild1Integer, 8, 
     314             : /*   468*/                  OPC_CheckChild1Type, MVT::i32,
     315             : /*   470*/                  OPC_MoveParent,
     316             : /*   471*/                  OPC_MoveParent,
     317             : /*   472*/                  OPC_MoveChild1,
     318             : /*   473*/                  OPC_CheckAndImm, 15, 
     319             : /*   475*/                  OPC_MoveChild0,
     320             : /*   476*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     321             : /*   479*/                  OPC_CheckChild0Same, 1,
     322             : /*   481*/                  OPC_CheckChild1Integer, 8, 
     323             : /*   483*/                  OPC_CheckChild1Type, MVT::i32,
     324             : /*   485*/                  OPC_MoveParent,
     325             : /*   486*/                  OPC_MoveParent,
     326             : /*   487*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     327             : /*   489*/                  OPC_MoveParent,
     328             : /*   490*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     329             : /*   492*/                  OPC_MoveParent,
     330             : /*   493*/                  OPC_MoveChild1,
     331             : /*   494*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     332             : /*   497*/                  OPC_MoveChild0,
     333             : /*   498*/                  OPC_CheckAndImm, 15, 
     334             : /*   500*/                  OPC_MoveChild0,
     335             : /*   501*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     336             : /*   504*/                  OPC_CheckChild0Same, 0,
     337             : /*   506*/                  OPC_CheckChild1Integer, 12, 
     338             : /*   508*/                  OPC_CheckChild1Type, MVT::i32,
     339             : /*   510*/                  OPC_MoveParent,
     340             : /*   511*/                  OPC_MoveParent,
     341             : /*   512*/                  OPC_MoveChild1,
     342             : /*   513*/                  OPC_CheckAndImm, 15, 
     343             : /*   515*/                  OPC_MoveChild0,
     344             : /*   516*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     345             : /*   519*/                  OPC_CheckChild0Same, 1,
     346             : /*   521*/                  OPC_CheckChild1Integer, 12, 
     347             : /*   523*/                  OPC_CheckChild1Type, MVT::i32,
     348             : /*   525*/                  OPC_MoveParent,
     349             : /*   526*/                  OPC_MoveParent,
     350             : /*   527*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     351             : /*   529*/                  OPC_MoveParent,
     352             : /*   530*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     353             : /*   532*/                  OPC_MoveParent,
     354             : /*   533*/                  OPC_MoveChild1,
     355             : /*   534*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     356             : /*   537*/                  OPC_MoveChild0,
     357             : /*   538*/                  OPC_CheckAndImm, 15, 
     358             : /*   540*/                  OPC_MoveChild0,
     359             : /*   541*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     360             : /*   544*/                  OPC_CheckChild0Same, 0,
     361             : /*   546*/                  OPC_CheckChild1Integer, 16, 
     362             : /*   548*/                  OPC_CheckChild1Type, MVT::i32,
     363             : /*   550*/                  OPC_MoveParent,
     364             : /*   551*/                  OPC_MoveParent,
     365             : /*   552*/                  OPC_MoveChild1,
     366             : /*   553*/                  OPC_CheckAndImm, 15, 
     367             : /*   555*/                  OPC_MoveChild0,
     368             : /*   556*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     369             : /*   559*/                  OPC_CheckChild0Same, 1,
     370             : /*   561*/                  OPC_CheckChild1Integer, 16, 
     371             : /*   563*/                  OPC_CheckChild1Type, MVT::i32,
     372             : /*   565*/                  OPC_MoveParent,
     373             : /*   566*/                  OPC_MoveParent,
     374             : /*   567*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     375             : /*   569*/                  OPC_MoveParent,
     376             : /*   570*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     377             : /*   572*/                  OPC_MoveParent,
     378             : /*   573*/                  OPC_MoveChild1,
     379             : /*   574*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     380             : /*   577*/                  OPC_MoveChild0,
     381             : /*   578*/                  OPC_CheckAndImm, 15, 
     382             : /*   580*/                  OPC_MoveChild0,
     383             : /*   581*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     384             : /*   584*/                  OPC_CheckChild0Same, 0,
     385             : /*   586*/                  OPC_CheckChild1Integer, 20, 
     386             : /*   588*/                  OPC_CheckChild1Type, MVT::i32,
     387             : /*   590*/                  OPC_MoveParent,
     388             : /*   591*/                  OPC_MoveParent,
     389             : /*   592*/                  OPC_MoveChild1,
     390             : /*   593*/                  OPC_CheckAndImm, 15, 
     391             : /*   595*/                  OPC_MoveChild0,
     392             : /*   596*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     393             : /*   599*/                  OPC_CheckChild0Same, 1,
     394             : /*   601*/                  OPC_CheckChild1Integer, 20, 
     395             : /*   603*/                  OPC_CheckChild1Type, MVT::i32,
     396             : /*   605*/                  OPC_MoveParent,
     397             : /*   606*/                  OPC_MoveParent,
     398             : /*   607*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     399             : /*   609*/                  OPC_MoveParent,
     400             : /*   610*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     401             : /*   612*/                  OPC_MoveParent,
     402             : /*   613*/                  OPC_MoveChild1,
     403             : /*   614*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     404             : /*   617*/                  OPC_MoveChild0,
     405             : /*   618*/                  OPC_CheckAndImm, 15, 
     406             : /*   620*/                  OPC_MoveChild0,
     407             : /*   621*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     408             : /*   624*/                  OPC_CheckChild0Same, 0,
     409             : /*   626*/                  OPC_CheckChild1Integer, 24, 
     410             : /*   628*/                  OPC_CheckChild1Type, MVT::i32,
     411             : /*   630*/                  OPC_MoveParent,
     412             : /*   631*/                  OPC_MoveParent,
     413             : /*   632*/                  OPC_MoveChild1,
     414             : /*   633*/                  OPC_CheckAndImm, 15, 
     415             : /*   635*/                  OPC_MoveChild0,
     416             : /*   636*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     417             : /*   639*/                  OPC_CheckChild0Same, 1,
     418             : /*   641*/                  OPC_CheckChild1Integer, 24, 
     419             : /*   643*/                  OPC_CheckChild1Type, MVT::i32,
     420             : /*   645*/                  OPC_MoveParent,
     421             : /*   646*/                  OPC_MoveParent,
     422             : /*   647*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     423             : /*   649*/                  OPC_MoveParent,
     424             : /*   650*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     425             : /*   652*/                  OPC_MoveParent,
     426             : /*   653*/                  OPC_MoveChild1,
     427             : /*   654*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     428             : /*   657*/                  OPC_MoveChild0,
     429             : /*   658*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     430             : /*   661*/                  OPC_CheckChild0Same, 0,
     431             : /*   663*/                  OPC_CheckChild1Integer, 28, 
     432             : /*   665*/                  OPC_CheckChild1Type, MVT::i32,
     433             : /*   667*/                  OPC_MoveParent,
     434             : /*   668*/                  OPC_MoveChild1,
     435             : /*   669*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     436             : /*   672*/                  OPC_CheckChild0Same, 1,
     437             : /*   674*/                  OPC_CheckChild1Integer, 28, 
     438             : /*   676*/                  OPC_CheckChild1Type, MVT::i32,
     439             : /*   678*/                  OPC_MoveParent,
     440             : /*   679*/                  OPC_CheckPredicate, 0, // Predicate_NonACAMDGPUmul_u24_oneuse
     441             : /*   681*/                  OPC_MoveParent,
     442             : /*   682*/                  OPC_CheckPredicate, 0, // Predicate_NonACAdd_oneuse
     443             : /*   684*/                  OPC_CheckType, MVT::i32,
     444             : /*   686*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     445             : /*   688*/                  OPC_EmitInteger, MVT::i32, 8, 
     446             : /*   691*/                  OPC_EmitInteger, MVT::i32, 8, 
     447             : /*   694*/                  OPC_EmitInteger, MVT::i32, 8, 
     448             : /*   697*/                  OPC_EmitInteger, MVT::i1, 0, 
     449             : /*   700*/                  OPC_EmitInteger, MVT::i32, 0, 
     450             : /*   703*/                  OPC_EmitInteger, MVT::i32, 0, 
     451             : /*   706*/                  OPC_EmitInteger, MVT::i32, 0, 
     452             : /*   709*/                  OPC_EmitInteger, MVT::i32, 0, 
     453             : /*   712*/                  OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT8_U32_U4), 0,
     454             :                                 MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
     455             :                             // 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
     456             :                             // Dst: (V_DOT8_U32_U4:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     457             : /*   729*/                0, /*End of Scope*/
     458             : /*   730*/              /*Scope*/ 117|128,11/*1525*/, /*->2257*/
     459             : /*   732*/                OPC_RecordChild0, // #0 = $src2
     460             : /*   733*/                OPC_MoveChild1,
     461             : /*   734*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     462             : /*   737*/                OPC_MoveChild0,
     463             : /*   738*/                OPC_CheckAndImm, 127|128,1/*255*/, 
     464             : /*   741*/                OPC_RecordChild0, // #1 = $src0
     465             : /*   742*/                OPC_MoveParent,
     466             : /*   743*/                OPC_MoveChild1,
     467             : /*   744*/                OPC_CheckAndImm, 127|128,1/*255*/, 
     468             : /*   747*/                OPC_RecordChild0, // #2 = $src1
     469             : /*   748*/                OPC_MoveParent,
     470             : /*   749*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     471             : /*   751*/                OPC_MoveParent,
     472             : /*   752*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
     473             : /*   754*/                OPC_MoveParent,
     474             : /*   755*/                OPC_MoveChild1,
     475             : /*   756*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     476             : /*   759*/                OPC_MoveChild0,
     477             : /*   760*/                OPC_CheckAndImm, 127|128,1/*255*/, 
     478             : /*   763*/                OPC_MoveChild0,
     479             : /*   764*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     480             : /*   767*/                OPC_Scope, 20|128,3/*404*/, /*->1174*/ // 3 children in Scope
     481             : /*   770*/                  OPC_CheckChild0Same, 1,
     482             : /*   772*/                  OPC_CheckChild1Integer, 8, 
     483             : /*   774*/                  OPC_CheckChild1Type, MVT::i32,
     484             : /*   776*/                  OPC_MoveParent,
     485             : /*   777*/                  OPC_MoveParent,
     486             : /*   778*/                  OPC_MoveChild1,
     487             : /*   779*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     488             : /*   782*/                  OPC_MoveChild0,
     489             : /*   783*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     490             : /*   786*/                  OPC_CheckChild0Same, 2,
     491             : /*   788*/                  OPC_CheckChild1Integer, 8, 
     492             : /*   790*/                  OPC_CheckChild1Type, MVT::i32,
     493             : /*   792*/                  OPC_MoveParent,
     494             : /*   793*/                  OPC_MoveParent,
     495             : /*   794*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     496             : /*   796*/                  OPC_MoveParent,
     497             : /*   797*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
     498             : /*   799*/                  OPC_MoveParent,
     499             : /*   800*/                  OPC_MoveChild1,
     500             : /*   801*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     501             : /*   804*/                  OPC_MoveChild0,
     502             : /*   805*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     503             : /*   808*/                  OPC_MoveChild0,
     504             : /*   809*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     505             : /*   812*/                  OPC_Scope, 50|128,1/*178*/, /*->993*/ // 2 children in Scope
     506             : /*   815*/                    OPC_CheckChild0Same, 1,
     507             : /*   817*/                    OPC_CheckChild1Integer, 16, 
     508             : /*   819*/                    OPC_CheckChild1Type, MVT::i32,
     509             : /*   821*/                    OPC_MoveParent,
     510             : /*   822*/                    OPC_MoveParent,
     511             : /*   823*/                    OPC_MoveChild1,
     512             : /*   824*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
     513             : /*   827*/                    OPC_MoveChild0,
     514             : /*   828*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     515             : /*   831*/                    OPC_CheckChild0Same, 2,
     516             : /*   833*/                    OPC_CheckChild1Integer, 16, 
     517             : /*   835*/                    OPC_CheckChild1Type, MVT::i32,
     518             : /*   837*/                    OPC_MoveParent,
     519             : /*   838*/                    OPC_MoveParent,
     520             : /*   839*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     521             : /*   841*/                    OPC_MoveParent,
     522             : /*   842*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
     523             : /*   844*/                    OPC_MoveParent,
     524             : /*   845*/                    OPC_MoveChild1,
     525             : /*   846*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     526             : /*   849*/                    OPC_MoveChild0,
     527             : /*   850*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     528             : /*   853*/                    OPC_Scope, 68, /*->923*/ // 2 children in Scope
     529             : /*   855*/                      OPC_CheckChild0Same, 1,
     530             : /*   857*/                      OPC_CheckChild1Integer, 24, 
     531             : /*   859*/                      OPC_CheckChild1Type, MVT::i32,
     532             : /*   861*/                      OPC_MoveParent,
     533             : /*   862*/                      OPC_MoveChild1,
     534             : /*   863*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     535             : /*   866*/                      OPC_CheckChild0Same, 2,
     536             : /*   868*/                      OPC_CheckChild1Integer, 24, 
     537             : /*   870*/                      OPC_CheckChild1Type, MVT::i32,
     538             : /*   872*/                      OPC_MoveParent,
     539             : /*   873*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     540             : /*   875*/                      OPC_MoveParent,
     541             : /*   876*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     542             : /*   878*/                      OPC_CheckType, MVT::i32,
     543             : /*   880*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     544             : /*   882*/                      OPC_EmitInteger, MVT::i32, 8, 
     545             : /*   885*/                      OPC_EmitInteger, MVT::i32, 8, 
     546             : /*   888*/                      OPC_EmitInteger, MVT::i32, 8, 
     547             : /*   891*/                      OPC_EmitInteger, MVT::i1, 0, 
     548             : /*   894*/                      OPC_EmitInteger, MVT::i32, 0, 
     549             : /*   897*/                      OPC_EmitInteger, MVT::i32, 0, 
     550             : /*   900*/                      OPC_EmitInteger, MVT::i32, 0, 
     551             : /*   903*/                      OPC_EmitInteger, MVT::i32, 0, 
     552             : /*   906*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     553             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     554             :                                 // 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
     555             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     556             : /*   923*/                    /*Scope*/ 68, /*->992*/
     557             : /*   924*/                      OPC_CheckChild0Same, 2,
     558             : /*   926*/                      OPC_CheckChild1Integer, 24, 
     559             : /*   928*/                      OPC_CheckChild1Type, MVT::i32,
     560             : /*   930*/                      OPC_MoveParent,
     561             : /*   931*/                      OPC_MoveChild1,
     562             : /*   932*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     563             : /*   935*/                      OPC_CheckChild0Same, 1,
     564             : /*   937*/                      OPC_CheckChild1Integer, 24, 
     565             : /*   939*/                      OPC_CheckChild1Type, MVT::i32,
     566             : /*   941*/                      OPC_MoveParent,
     567             : /*   942*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     568             : /*   944*/                      OPC_MoveParent,
     569             : /*   945*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     570             : /*   947*/                      OPC_CheckType, MVT::i32,
     571             : /*   949*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     572             : /*   951*/                      OPC_EmitInteger, MVT::i32, 8, 
     573             : /*   954*/                      OPC_EmitInteger, MVT::i32, 8, 
     574             : /*   957*/                      OPC_EmitInteger, MVT::i32, 8, 
     575             : /*   960*/                      OPC_EmitInteger, MVT::i1, 0, 
     576             : /*   963*/                      OPC_EmitInteger, MVT::i32, 0, 
     577             : /*   966*/                      OPC_EmitInteger, MVT::i32, 0, 
     578             : /*   969*/                      OPC_EmitInteger, MVT::i32, 0, 
     579             : /*   972*/                      OPC_EmitInteger, MVT::i32, 0, 
     580             : /*   975*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     581             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     582             :                                 // 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
     583             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     584             : /*   992*/                    0, /*End of Scope*/
     585             : /*   993*/                  /*Scope*/ 50|128,1/*178*/, /*->1173*/
     586             : /*   995*/                    OPC_CheckChild0Same, 2,
     587             : /*   997*/                    OPC_CheckChild1Integer, 16, 
     588             : /*   999*/                    OPC_CheckChild1Type, MVT::i32,
     589             : /*  1001*/                    OPC_MoveParent,
     590             : /*  1002*/                    OPC_MoveParent,
     591             : /*  1003*/                    OPC_MoveChild1,
     592             : /*  1004*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
     593             : /*  1007*/                    OPC_MoveChild0,
     594             : /*  1008*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     595             : /*  1011*/                    OPC_CheckChild0Same, 1,
     596             : /*  1013*/                    OPC_CheckChild1Integer, 16, 
     597             : /*  1015*/                    OPC_CheckChild1Type, MVT::i32,
     598             : /*  1017*/                    OPC_MoveParent,
     599             : /*  1018*/                    OPC_MoveParent,
     600             : /*  1019*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     601             : /*  1021*/                    OPC_MoveParent,
     602             : /*  1022*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
     603             : /*  1024*/                    OPC_MoveParent,
     604             : /*  1025*/                    OPC_MoveChild1,
     605             : /*  1026*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     606             : /*  1029*/                    OPC_MoveChild0,
     607             : /*  1030*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     608             : /*  1033*/                    OPC_Scope, 68, /*->1103*/ // 2 children in Scope
     609             : /*  1035*/                      OPC_CheckChild0Same, 1,
     610             : /*  1037*/                      OPC_CheckChild1Integer, 24, 
     611             : /*  1039*/                      OPC_CheckChild1Type, MVT::i32,
     612             : /*  1041*/                      OPC_MoveParent,
     613             : /*  1042*/                      OPC_MoveChild1,
     614             : /*  1043*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     615             : /*  1046*/                      OPC_CheckChild0Same, 2,
     616             : /*  1048*/                      OPC_CheckChild1Integer, 24, 
     617             : /*  1050*/                      OPC_CheckChild1Type, MVT::i32,
     618             : /*  1052*/                      OPC_MoveParent,
     619             : /*  1053*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     620             : /*  1055*/                      OPC_MoveParent,
     621             : /*  1056*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     622             : /*  1058*/                      OPC_CheckType, MVT::i32,
     623             : /*  1060*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     624             : /*  1062*/                      OPC_EmitInteger, MVT::i32, 8, 
     625             : /*  1065*/                      OPC_EmitInteger, MVT::i32, 8, 
     626             : /*  1068*/                      OPC_EmitInteger, MVT::i32, 8, 
     627             : /*  1071*/                      OPC_EmitInteger, MVT::i1, 0, 
     628             : /*  1074*/                      OPC_EmitInteger, MVT::i32, 0, 
     629             : /*  1077*/                      OPC_EmitInteger, MVT::i32, 0, 
     630             : /*  1080*/                      OPC_EmitInteger, MVT::i32, 0, 
     631             : /*  1083*/                      OPC_EmitInteger, MVT::i32, 0, 
     632             : /*  1086*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     633             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     634             :                                 // 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
     635             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     636             : /*  1103*/                    /*Scope*/ 68, /*->1172*/
     637             : /*  1104*/                      OPC_CheckChild0Same, 2,
     638             : /*  1106*/                      OPC_CheckChild1Integer, 24, 
     639             : /*  1108*/                      OPC_CheckChild1Type, MVT::i32,
     640             : /*  1110*/                      OPC_MoveParent,
     641             : /*  1111*/                      OPC_MoveChild1,
     642             : /*  1112*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     643             : /*  1115*/                      OPC_CheckChild0Same, 1,
     644             : /*  1117*/                      OPC_CheckChild1Integer, 24, 
     645             : /*  1119*/                      OPC_CheckChild1Type, MVT::i32,
     646             : /*  1121*/                      OPC_MoveParent,
     647             : /*  1122*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     648             : /*  1124*/                      OPC_MoveParent,
     649             : /*  1125*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     650             : /*  1127*/                      OPC_CheckType, MVT::i32,
     651             : /*  1129*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     652             : /*  1131*/                      OPC_EmitInteger, MVT::i32, 8, 
     653             : /*  1134*/                      OPC_EmitInteger, MVT::i32, 8, 
     654             : /*  1137*/                      OPC_EmitInteger, MVT::i32, 8, 
     655             : /*  1140*/                      OPC_EmitInteger, MVT::i1, 0, 
     656             : /*  1143*/                      OPC_EmitInteger, MVT::i32, 0, 
     657             : /*  1146*/                      OPC_EmitInteger, MVT::i32, 0, 
     658             : /*  1149*/                      OPC_EmitInteger, MVT::i32, 0, 
     659             : /*  1152*/                      OPC_EmitInteger, MVT::i32, 0, 
     660             : /*  1155*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     661             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     662             :                                 // 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
     663             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     664             : /*  1172*/                    0, /*End of Scope*/
     665             : /*  1173*/                  0, /*End of Scope*/
     666             : /*  1174*/                /*Scope*/ 34|128,5/*674*/, /*->1850*/
     667             : /*  1176*/                  OPC_CheckChild0Same, 2,
     668             : /*  1178*/                  OPC_CheckChild1Integer, 8, 
     669             : /*  1180*/                  OPC_CheckChild1Type, MVT::i32,
     670             : /*  1182*/                  OPC_MoveParent,
     671             : /*  1183*/                  OPC_MoveParent,
     672             : /*  1184*/                  OPC_MoveChild1,
     673             : /*  1185*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     674             : /*  1188*/                  OPC_MoveChild0,
     675             : /*  1189*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     676             : /*  1192*/                  OPC_CheckChild0Same, 1,
     677             : /*  1194*/                  OPC_CheckChild1Integer, 8, 
     678             : /*  1196*/                  OPC_CheckChild1Type, MVT::i32,
     679             : /*  1198*/                  OPC_MoveParent,
     680             : /*  1199*/                  OPC_MoveParent,
     681             : /*  1200*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     682             : /*  1202*/                  OPC_MoveParent,
     683             : /*  1203*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
     684             : /*  1205*/                  OPC_MoveParent,
     685             : /*  1206*/                  OPC_MoveChild1,
     686             : /*  1207*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     687             : /*  1210*/                  OPC_MoveChild0,
     688             : /*  1211*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     689             : /*  1214*/                  OPC_MoveChild0,
     690             : /*  1215*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     691             : /*  1218*/                  OPC_Scope, 50|128,1/*178*/, /*->1399*/ // 3 children in Scope
     692             : /*  1221*/                    OPC_CheckChild0Same, 1,
     693             : /*  1223*/                    OPC_CheckChild1Integer, 16, 
     694             : /*  1225*/                    OPC_CheckChild1Type, MVT::i32,
     695             : /*  1227*/                    OPC_MoveParent,
     696             : /*  1228*/                    OPC_MoveParent,
     697             : /*  1229*/                    OPC_MoveChild1,
     698             : /*  1230*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
     699             : /*  1233*/                    OPC_MoveChild0,
     700             : /*  1234*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     701             : /*  1237*/                    OPC_CheckChild0Same, 2,
     702             : /*  1239*/                    OPC_CheckChild1Integer, 16, 
     703             : /*  1241*/                    OPC_CheckChild1Type, MVT::i32,
     704             : /*  1243*/                    OPC_MoveParent,
     705             : /*  1244*/                    OPC_MoveParent,
     706             : /*  1245*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     707             : /*  1247*/                    OPC_MoveParent,
     708             : /*  1248*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
     709             : /*  1250*/                    OPC_MoveParent,
     710             : /*  1251*/                    OPC_MoveChild1,
     711             : /*  1252*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     712             : /*  1255*/                    OPC_MoveChild0,
     713             : /*  1256*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     714             : /*  1259*/                    OPC_Scope, 68, /*->1329*/ // 2 children in Scope
     715             : /*  1261*/                      OPC_CheckChild0Same, 1,
     716             : /*  1263*/                      OPC_CheckChild1Integer, 24, 
     717             : /*  1265*/                      OPC_CheckChild1Type, MVT::i32,
     718             : /*  1267*/                      OPC_MoveParent,
     719             : /*  1268*/                      OPC_MoveChild1,
     720             : /*  1269*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     721             : /*  1272*/                      OPC_CheckChild0Same, 2,
     722             : /*  1274*/                      OPC_CheckChild1Integer, 24, 
     723             : /*  1276*/                      OPC_CheckChild1Type, MVT::i32,
     724             : /*  1278*/                      OPC_MoveParent,
     725             : /*  1279*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     726             : /*  1281*/                      OPC_MoveParent,
     727             : /*  1282*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     728             : /*  1284*/                      OPC_CheckType, MVT::i32,
     729             : /*  1286*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     730             : /*  1288*/                      OPC_EmitInteger, MVT::i32, 8, 
     731             : /*  1291*/                      OPC_EmitInteger, MVT::i32, 8, 
     732             : /*  1294*/                      OPC_EmitInteger, MVT::i32, 8, 
     733             : /*  1297*/                      OPC_EmitInteger, MVT::i1, 0, 
     734             : /*  1300*/                      OPC_EmitInteger, MVT::i32, 0, 
     735             : /*  1303*/                      OPC_EmitInteger, MVT::i32, 0, 
     736             : /*  1306*/                      OPC_EmitInteger, MVT::i32, 0, 
     737             : /*  1309*/                      OPC_EmitInteger, MVT::i32, 0, 
     738             : /*  1312*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     739             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     740             :                                 // 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
     741             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     742             : /*  1329*/                    /*Scope*/ 68, /*->1398*/
     743             : /*  1330*/                      OPC_CheckChild0Same, 2,
     744             : /*  1332*/                      OPC_CheckChild1Integer, 24, 
     745             : /*  1334*/                      OPC_CheckChild1Type, MVT::i32,
     746             : /*  1336*/                      OPC_MoveParent,
     747             : /*  1337*/                      OPC_MoveChild1,
     748             : /*  1338*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     749             : /*  1341*/                      OPC_CheckChild0Same, 1,
     750             : /*  1343*/                      OPC_CheckChild1Integer, 24, 
     751             : /*  1345*/                      OPC_CheckChild1Type, MVT::i32,
     752             : /*  1347*/                      OPC_MoveParent,
     753             : /*  1348*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     754             : /*  1350*/                      OPC_MoveParent,
     755             : /*  1351*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     756             : /*  1353*/                      OPC_CheckType, MVT::i32,
     757             : /*  1355*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     758             : /*  1357*/                      OPC_EmitInteger, MVT::i32, 8, 
     759             : /*  1360*/                      OPC_EmitInteger, MVT::i32, 8, 
     760             : /*  1363*/                      OPC_EmitInteger, MVT::i32, 8, 
     761             : /*  1366*/                      OPC_EmitInteger, MVT::i1, 0, 
     762             : /*  1369*/                      OPC_EmitInteger, MVT::i32, 0, 
     763             : /*  1372*/                      OPC_EmitInteger, MVT::i32, 0, 
     764             : /*  1375*/                      OPC_EmitInteger, MVT::i32, 0, 
     765             : /*  1378*/                      OPC_EmitInteger, MVT::i32, 0, 
     766             : /*  1381*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     767             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     768             :                                 // 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
     769             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     770             : /*  1398*/                    0, /*End of Scope*/
     771             : /*  1399*/                  /*Scope*/ 12|128,2/*268*/, /*->1669*/
     772             : /*  1401*/                    OPC_CheckChild0Same, 2,
     773             : /*  1403*/                    OPC_CheckChild1Integer, 16, 
     774             : /*  1405*/                    OPC_CheckChild1Type, MVT::i32,
     775             : /*  1407*/                    OPC_MoveParent,
     776             : /*  1408*/                    OPC_MoveParent,
     777             : /*  1409*/                    OPC_MoveChild1,
     778             : /*  1410*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
     779             : /*  1413*/                    OPC_MoveChild0,
     780             : /*  1414*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     781             : /*  1417*/                    OPC_CheckChild0Same, 1,
     782             : /*  1419*/                    OPC_CheckChild1Integer, 16, 
     783             : /*  1421*/                    OPC_CheckChild1Type, MVT::i32,
     784             : /*  1423*/                    OPC_MoveParent,
     785             : /*  1424*/                    OPC_MoveParent,
     786             : /*  1425*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     787             : /*  1427*/                    OPC_MoveParent,
     788             : /*  1428*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
     789             : /*  1430*/                    OPC_MoveParent,
     790             : /*  1431*/                    OPC_MoveChild1,
     791             : /*  1432*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     792             : /*  1435*/                    OPC_MoveChild0,
     793             : /*  1436*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     794             : /*  1439*/                    OPC_Scope, 68, /*->1509*/ // 3 children in Scope
     795             : /*  1441*/                      OPC_CheckChild0Same, 1,
     796             : /*  1443*/                      OPC_CheckChild1Integer, 24, 
     797             : /*  1445*/                      OPC_CheckChild1Type, MVT::i32,
     798             : /*  1447*/                      OPC_MoveParent,
     799             : /*  1448*/                      OPC_MoveChild1,
     800             : /*  1449*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     801             : /*  1452*/                      OPC_CheckChild0Same, 2,
     802             : /*  1454*/                      OPC_CheckChild1Integer, 24, 
     803             : /*  1456*/                      OPC_CheckChild1Type, MVT::i32,
     804             : /*  1458*/                      OPC_MoveParent,
     805             : /*  1459*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     806             : /*  1461*/                      OPC_MoveParent,
     807             : /*  1462*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     808             : /*  1464*/                      OPC_CheckType, MVT::i32,
     809             : /*  1466*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     810             : /*  1468*/                      OPC_EmitInteger, MVT::i32, 8, 
     811             : /*  1471*/                      OPC_EmitInteger, MVT::i32, 8, 
     812             : /*  1474*/                      OPC_EmitInteger, MVT::i32, 8, 
     813             : /*  1477*/                      OPC_EmitInteger, MVT::i1, 0, 
     814             : /*  1480*/                      OPC_EmitInteger, MVT::i32, 0, 
     815             : /*  1483*/                      OPC_EmitInteger, MVT::i32, 0, 
     816             : /*  1486*/                      OPC_EmitInteger, MVT::i32, 0, 
     817             : /*  1489*/                      OPC_EmitInteger, MVT::i32, 0, 
     818             : /*  1492*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     819             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     820             :                                 // 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
     821             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     822             : /*  1509*/                    /*Scope*/ 89, /*->1599*/
     823             : /*  1510*/                      OPC_CheckChild0Same, 2,
     824             : /*  1512*/                      OPC_CheckChild1Integer, 24, 
     825             : /*  1514*/                      OPC_CheckChild1Type, MVT::i32,
     826             : /*  1516*/                      OPC_MoveParent,
     827             : /*  1517*/                      OPC_MoveChild1,
     828             : /*  1518*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     829             : /*  1521*/                      OPC_CheckChild0Same, 1,
     830             : /*  1523*/                      OPC_CheckChild1Integer, 24, 
     831             : /*  1525*/                      OPC_CheckChild1Type, MVT::i32,
     832             : /*  1527*/                      OPC_MoveParent,
     833             : /*  1528*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     834             : /*  1530*/                      OPC_MoveParent,
     835             : /*  1531*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     836             : /*  1533*/                      OPC_CheckType, MVT::i32,
     837             : /*  1535*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     838             : /*  1537*/                      OPC_EmitInteger, MVT::i32, 8, 
     839             : /*  1540*/                      OPC_EmitInteger, MVT::i32, 8, 
     840             : /*  1543*/                      OPC_EmitInteger, MVT::i32, 8, 
     841             : /*  1546*/                      OPC_EmitInteger, MVT::i1, 0, 
     842             : /*  1549*/                      OPC_EmitInteger, MVT::i32, 0, 
     843             : /*  1552*/                      OPC_EmitInteger, MVT::i32, 0, 
     844             : /*  1555*/                      OPC_EmitInteger, MVT::i32, 0, 
     845             : /*  1558*/                      OPC_EmitInteger, MVT::i32, 0, 
     846             : /*  1561*/                      OPC_Scope, 17, /*->1580*/ // 2 children in Scope
     847             : /*  1563*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     848             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
     849             :                                   // 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
     850             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     851             : /*  1580*/                      /*Scope*/ 17, /*->1598*/
     852             : /*  1581*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     853             :                                       MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
     854             :                                   // 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
     855             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     856             : /*  1598*/                      0, /*End of Scope*/
     857             : /*  1599*/                    /*Scope*/ 68, /*->1668*/
     858             : /*  1600*/                      OPC_CheckChild0Same, 1,
     859             : /*  1602*/                      OPC_CheckChild1Integer, 24, 
     860             : /*  1604*/                      OPC_CheckChild1Type, MVT::i32,
     861             : /*  1606*/                      OPC_MoveParent,
     862             : /*  1607*/                      OPC_MoveChild1,
     863             : /*  1608*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     864             : /*  1611*/                      OPC_CheckChild0Same, 2,
     865             : /*  1613*/                      OPC_CheckChild1Integer, 24, 
     866             : /*  1615*/                      OPC_CheckChild1Type, MVT::i32,
     867             : /*  1617*/                      OPC_MoveParent,
     868             : /*  1618*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     869             : /*  1620*/                      OPC_MoveParent,
     870             : /*  1621*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     871             : /*  1623*/                      OPC_CheckType, MVT::i32,
     872             : /*  1625*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     873             : /*  1627*/                      OPC_EmitInteger, MVT::i32, 8, 
     874             : /*  1630*/                      OPC_EmitInteger, MVT::i32, 8, 
     875             : /*  1633*/                      OPC_EmitInteger, MVT::i32, 8, 
     876             : /*  1636*/                      OPC_EmitInteger, MVT::i1, 0, 
     877             : /*  1639*/                      OPC_EmitInteger, MVT::i32, 0, 
     878             : /*  1642*/                      OPC_EmitInteger, MVT::i32, 0, 
     879             : /*  1645*/                      OPC_EmitInteger, MVT::i32, 0, 
     880             : /*  1648*/                      OPC_EmitInteger, MVT::i32, 0, 
     881             : /*  1651*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     882             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
     883             :                                 // 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
     884             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     885             : /*  1668*/                    0, /*End of Scope*/
     886             : /*  1669*/                  /*Scope*/ 50|128,1/*178*/, /*->1849*/
     887             : /*  1671*/                    OPC_CheckChild0Same, 1,
     888             : /*  1673*/                    OPC_CheckChild1Integer, 16, 
     889             : /*  1675*/                    OPC_CheckChild1Type, MVT::i32,
     890             : /*  1677*/                    OPC_MoveParent,
     891             : /*  1678*/                    OPC_MoveParent,
     892             : /*  1679*/                    OPC_MoveChild1,
     893             : /*  1680*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
     894             : /*  1683*/                    OPC_MoveChild0,
     895             : /*  1684*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     896             : /*  1687*/                    OPC_CheckChild0Same, 2,
     897             : /*  1689*/                    OPC_CheckChild1Integer, 16, 
     898             : /*  1691*/                    OPC_CheckChild1Type, MVT::i32,
     899             : /*  1693*/                    OPC_MoveParent,
     900             : /*  1694*/                    OPC_MoveParent,
     901             : /*  1695*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     902             : /*  1697*/                    OPC_MoveParent,
     903             : /*  1698*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
     904             : /*  1700*/                    OPC_MoveParent,
     905             : /*  1701*/                    OPC_MoveChild1,
     906             : /*  1702*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     907             : /*  1705*/                    OPC_MoveChild0,
     908             : /*  1706*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     909             : /*  1709*/                    OPC_Scope, 68, /*->1779*/ // 2 children in Scope
     910             : /*  1711*/                      OPC_CheckChild0Same, 2,
     911             : /*  1713*/                      OPC_CheckChild1Integer, 24, 
     912             : /*  1715*/                      OPC_CheckChild1Type, MVT::i32,
     913             : /*  1717*/                      OPC_MoveParent,
     914             : /*  1718*/                      OPC_MoveChild1,
     915             : /*  1719*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     916             : /*  1722*/                      OPC_CheckChild0Same, 1,
     917             : /*  1724*/                      OPC_CheckChild1Integer, 24, 
     918             : /*  1726*/                      OPC_CheckChild1Type, MVT::i32,
     919             : /*  1728*/                      OPC_MoveParent,
     920             : /*  1729*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     921             : /*  1731*/                      OPC_MoveParent,
     922             : /*  1732*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     923             : /*  1734*/                      OPC_CheckType, MVT::i32,
     924             : /*  1736*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     925             : /*  1738*/                      OPC_EmitInteger, MVT::i32, 8, 
     926             : /*  1741*/                      OPC_EmitInteger, MVT::i32, 8, 
     927             : /*  1744*/                      OPC_EmitInteger, MVT::i32, 8, 
     928             : /*  1747*/                      OPC_EmitInteger, MVT::i1, 0, 
     929             : /*  1750*/                      OPC_EmitInteger, MVT::i32, 0, 
     930             : /*  1753*/                      OPC_EmitInteger, MVT::i32, 0, 
     931             : /*  1756*/                      OPC_EmitInteger, MVT::i32, 0, 
     932             : /*  1759*/                      OPC_EmitInteger, MVT::i32, 0, 
     933             : /*  1762*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     934             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
     935             :                                 // 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
     936             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     937             : /*  1779*/                    /*Scope*/ 68, /*->1848*/
     938             : /*  1780*/                      OPC_CheckChild0Same, 1,
     939             : /*  1782*/                      OPC_CheckChild1Integer, 24, 
     940             : /*  1784*/                      OPC_CheckChild1Type, MVT::i32,
     941             : /*  1786*/                      OPC_MoveParent,
     942             : /*  1787*/                      OPC_MoveChild1,
     943             : /*  1788*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     944             : /*  1791*/                      OPC_CheckChild0Same, 2,
     945             : /*  1793*/                      OPC_CheckChild1Integer, 24, 
     946             : /*  1795*/                      OPC_CheckChild1Type, MVT::i32,
     947             : /*  1797*/                      OPC_MoveParent,
     948             : /*  1798*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     949             : /*  1800*/                      OPC_MoveParent,
     950             : /*  1801*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
     951             : /*  1803*/                      OPC_CheckType, MVT::i32,
     952             : /*  1805*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
     953             : /*  1807*/                      OPC_EmitInteger, MVT::i32, 8, 
     954             : /*  1810*/                      OPC_EmitInteger, MVT::i32, 8, 
     955             : /*  1813*/                      OPC_EmitInteger, MVT::i32, 8, 
     956             : /*  1816*/                      OPC_EmitInteger, MVT::i1, 0, 
     957             : /*  1819*/                      OPC_EmitInteger, MVT::i32, 0, 
     958             : /*  1822*/                      OPC_EmitInteger, MVT::i32, 0, 
     959             : /*  1825*/                      OPC_EmitInteger, MVT::i32, 0, 
     960             : /*  1828*/                      OPC_EmitInteger, MVT::i32, 0, 
     961             : /*  1831*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
     962             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
     963             :                                 // 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
     964             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
     965             : /*  1848*/                    0, /*End of Scope*/
     966             : /*  1849*/                  0, /*End of Scope*/
     967             : /*  1850*/                /*Scope*/ 20|128,3/*404*/, /*->2256*/
     968             : /*  1852*/                  OPC_CheckChild0Same, 1,
     969             : /*  1854*/                  OPC_CheckChild1Integer, 8, 
     970             : /*  1856*/                  OPC_CheckChild1Type, MVT::i32,
     971             : /*  1858*/                  OPC_MoveParent,
     972             : /*  1859*/                  OPC_MoveParent,
     973             : /*  1860*/                  OPC_MoveChild1,
     974             : /*  1861*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     975             : /*  1864*/                  OPC_MoveChild0,
     976             : /*  1865*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     977             : /*  1868*/                  OPC_CheckChild0Same, 2,
     978             : /*  1870*/                  OPC_CheckChild1Integer, 8, 
     979             : /*  1872*/                  OPC_CheckChild1Type, MVT::i32,
     980             : /*  1874*/                  OPC_MoveParent,
     981             : /*  1875*/                  OPC_MoveParent,
     982             : /*  1876*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
     983             : /*  1878*/                  OPC_MoveParent,
     984             : /*  1879*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
     985             : /*  1881*/                  OPC_MoveParent,
     986             : /*  1882*/                  OPC_MoveChild1,
     987             : /*  1883*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
     988             : /*  1886*/                  OPC_MoveChild0,
     989             : /*  1887*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
     990             : /*  1890*/                  OPC_MoveChild0,
     991             : /*  1891*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
     992             : /*  1894*/                  OPC_Scope, 50|128,1/*178*/, /*->2075*/ // 2 children in Scope
     993             : /*  1897*/                    OPC_CheckChild0Same, 2,
     994             : /*  1899*/                    OPC_CheckChild1Integer, 16, 
     995             : /*  1901*/                    OPC_CheckChild1Type, MVT::i32,
     996             : /*  1903*/                    OPC_MoveParent,
     997             : /*  1904*/                    OPC_MoveParent,
     998             : /*  1905*/                    OPC_MoveChild1,
     999             : /*  1906*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1000             : /*  1909*/                    OPC_MoveChild0,
    1001             : /*  1910*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1002             : /*  1913*/                    OPC_CheckChild0Same, 1,
    1003             : /*  1915*/                    OPC_CheckChild1Integer, 16, 
    1004             : /*  1917*/                    OPC_CheckChild1Type, MVT::i32,
    1005             : /*  1919*/                    OPC_MoveParent,
    1006             : /*  1920*/                    OPC_MoveParent,
    1007             : /*  1921*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1008             : /*  1923*/                    OPC_MoveParent,
    1009             : /*  1924*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1010             : /*  1926*/                    OPC_MoveParent,
    1011             : /*  1927*/                    OPC_MoveChild1,
    1012             : /*  1928*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1013             : /*  1931*/                    OPC_MoveChild0,
    1014             : /*  1932*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1015             : /*  1935*/                    OPC_Scope, 68, /*->2005*/ // 2 children in Scope
    1016             : /*  1937*/                      OPC_CheckChild0Same, 2,
    1017             : /*  1939*/                      OPC_CheckChild1Integer, 24, 
    1018             : /*  1941*/                      OPC_CheckChild1Type, MVT::i32,
    1019             : /*  1943*/                      OPC_MoveParent,
    1020             : /*  1944*/                      OPC_MoveChild1,
    1021             : /*  1945*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1022             : /*  1948*/                      OPC_CheckChild0Same, 1,
    1023             : /*  1950*/                      OPC_CheckChild1Integer, 24, 
    1024             : /*  1952*/                      OPC_CheckChild1Type, MVT::i32,
    1025             : /*  1954*/                      OPC_MoveParent,
    1026             : /*  1955*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1027             : /*  1957*/                      OPC_MoveParent,
    1028             : /*  1958*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1029             : /*  1960*/                      OPC_CheckType, MVT::i32,
    1030             : /*  1962*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1031             : /*  1964*/                      OPC_EmitInteger, MVT::i32, 8, 
    1032             : /*  1967*/                      OPC_EmitInteger, MVT::i32, 8, 
    1033             : /*  1970*/                      OPC_EmitInteger, MVT::i32, 8, 
    1034             : /*  1973*/                      OPC_EmitInteger, MVT::i1, 0, 
    1035             : /*  1976*/                      OPC_EmitInteger, MVT::i32, 0, 
    1036             : /*  1979*/                      OPC_EmitInteger, MVT::i32, 0, 
    1037             : /*  1982*/                      OPC_EmitInteger, MVT::i32, 0, 
    1038             : /*  1985*/                      OPC_EmitInteger, MVT::i32, 0, 
    1039             : /*  1988*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1040             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    1041             :                                 // 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
    1042             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1043             : /*  2005*/                    /*Scope*/ 68, /*->2074*/
    1044             : /*  2006*/                      OPC_CheckChild0Same, 1,
    1045             : /*  2008*/                      OPC_CheckChild1Integer, 24, 
    1046             : /*  2010*/                      OPC_CheckChild1Type, MVT::i32,
    1047             : /*  2012*/                      OPC_MoveParent,
    1048             : /*  2013*/                      OPC_MoveChild1,
    1049             : /*  2014*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1050             : /*  2017*/                      OPC_CheckChild0Same, 2,
    1051             : /*  2019*/                      OPC_CheckChild1Integer, 24, 
    1052             : /*  2021*/                      OPC_CheckChild1Type, MVT::i32,
    1053             : /*  2023*/                      OPC_MoveParent,
    1054             : /*  2024*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1055             : /*  2026*/                      OPC_MoveParent,
    1056             : /*  2027*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1057             : /*  2029*/                      OPC_CheckType, MVT::i32,
    1058             : /*  2031*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1059             : /*  2033*/                      OPC_EmitInteger, MVT::i32, 8, 
    1060             : /*  2036*/                      OPC_EmitInteger, MVT::i32, 8, 
    1061             : /*  2039*/                      OPC_EmitInteger, MVT::i32, 8, 
    1062             : /*  2042*/                      OPC_EmitInteger, MVT::i1, 0, 
    1063             : /*  2045*/                      OPC_EmitInteger, MVT::i32, 0, 
    1064             : /*  2048*/                      OPC_EmitInteger, MVT::i32, 0, 
    1065             : /*  2051*/                      OPC_EmitInteger, MVT::i32, 0, 
    1066             : /*  2054*/                      OPC_EmitInteger, MVT::i32, 0, 
    1067             : /*  2057*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1068             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    1069             :                                 // 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
    1070             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1071             : /*  2074*/                    0, /*End of Scope*/
    1072             : /*  2075*/                  /*Scope*/ 50|128,1/*178*/, /*->2255*/
    1073             : /*  2077*/                    OPC_CheckChild0Same, 1,
    1074             : /*  2079*/                    OPC_CheckChild1Integer, 16, 
    1075             : /*  2081*/                    OPC_CheckChild1Type, MVT::i32,
    1076             : /*  2083*/                    OPC_MoveParent,
    1077             : /*  2084*/                    OPC_MoveParent,
    1078             : /*  2085*/                    OPC_MoveChild1,
    1079             : /*  2086*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1080             : /*  2089*/                    OPC_MoveChild0,
    1081             : /*  2090*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1082             : /*  2093*/                    OPC_CheckChild0Same, 2,
    1083             : /*  2095*/                    OPC_CheckChild1Integer, 16, 
    1084             : /*  2097*/                    OPC_CheckChild1Type, MVT::i32,
    1085             : /*  2099*/                    OPC_MoveParent,
    1086             : /*  2100*/                    OPC_MoveParent,
    1087             : /*  2101*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1088             : /*  2103*/                    OPC_MoveParent,
    1089             : /*  2104*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1090             : /*  2106*/                    OPC_MoveParent,
    1091             : /*  2107*/                    OPC_MoveChild1,
    1092             : /*  2108*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1093             : /*  2111*/                    OPC_MoveChild0,
    1094             : /*  2112*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1095             : /*  2115*/                    OPC_Scope, 68, /*->2185*/ // 2 children in Scope
    1096             : /*  2117*/                      OPC_CheckChild0Same, 2,
    1097             : /*  2119*/                      OPC_CheckChild1Integer, 24, 
    1098             : /*  2121*/                      OPC_CheckChild1Type, MVT::i32,
    1099             : /*  2123*/                      OPC_MoveParent,
    1100             : /*  2124*/                      OPC_MoveChild1,
    1101             : /*  2125*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1102             : /*  2128*/                      OPC_CheckChild0Same, 1,
    1103             : /*  2130*/                      OPC_CheckChild1Integer, 24, 
    1104             : /*  2132*/                      OPC_CheckChild1Type, MVT::i32,
    1105             : /*  2134*/                      OPC_MoveParent,
    1106             : /*  2135*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1107             : /*  2137*/                      OPC_MoveParent,
    1108             : /*  2138*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1109             : /*  2140*/                      OPC_CheckType, MVT::i32,
    1110             : /*  2142*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1111             : /*  2144*/                      OPC_EmitInteger, MVT::i32, 8, 
    1112             : /*  2147*/                      OPC_EmitInteger, MVT::i32, 8, 
    1113             : /*  2150*/                      OPC_EmitInteger, MVT::i32, 8, 
    1114             : /*  2153*/                      OPC_EmitInteger, MVT::i1, 0, 
    1115             : /*  2156*/                      OPC_EmitInteger, MVT::i32, 0, 
    1116             : /*  2159*/                      OPC_EmitInteger, MVT::i32, 0, 
    1117             : /*  2162*/                      OPC_EmitInteger, MVT::i32, 0, 
    1118             : /*  2165*/                      OPC_EmitInteger, MVT::i32, 0, 
    1119             : /*  2168*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1120             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    1121             :                                 // 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
    1122             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1123             : /*  2185*/                    /*Scope*/ 68, /*->2254*/
    1124             : /*  2186*/                      OPC_CheckChild0Same, 1,
    1125             : /*  2188*/                      OPC_CheckChild1Integer, 24, 
    1126             : /*  2190*/                      OPC_CheckChild1Type, MVT::i32,
    1127             : /*  2192*/                      OPC_MoveParent,
    1128             : /*  2193*/                      OPC_MoveChild1,
    1129             : /*  2194*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1130             : /*  2197*/                      OPC_CheckChild0Same, 2,
    1131             : /*  2199*/                      OPC_CheckChild1Integer, 24, 
    1132             : /*  2201*/                      OPC_CheckChild1Type, MVT::i32,
    1133             : /*  2203*/                      OPC_MoveParent,
    1134             : /*  2204*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1135             : /*  2206*/                      OPC_MoveParent,
    1136             : /*  2207*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1137             : /*  2209*/                      OPC_CheckType, MVT::i32,
    1138             : /*  2211*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1139             : /*  2213*/                      OPC_EmitInteger, MVT::i32, 8, 
    1140             : /*  2216*/                      OPC_EmitInteger, MVT::i32, 8, 
    1141             : /*  2219*/                      OPC_EmitInteger, MVT::i32, 8, 
    1142             : /*  2222*/                      OPC_EmitInteger, MVT::i1, 0, 
    1143             : /*  2225*/                      OPC_EmitInteger, MVT::i32, 0, 
    1144             : /*  2228*/                      OPC_EmitInteger, MVT::i32, 0, 
    1145             : /*  2231*/                      OPC_EmitInteger, MVT::i32, 0, 
    1146             : /*  2234*/                      OPC_EmitInteger, MVT::i32, 0, 
    1147             : /*  2237*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1148             :                                     MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    1149             :                                 // 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
    1150             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1151             : /*  2254*/                    0, /*End of Scope*/
    1152             : /*  2255*/                  0, /*End of Scope*/
    1153             : /*  2256*/                0, /*End of Scope*/
    1154             : /*  2257*/              /*Scope*/ 117|128,11/*1525*/, /*->3784*/
    1155             : /*  2259*/                OPC_MoveChild0,
    1156             : /*  2260*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1157             : /*  2263*/                OPC_MoveChild0,
    1158             : /*  2264*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    1159             : /*  2267*/                OPC_RecordChild0, // #0 = $src0
    1160             : /*  2268*/                OPC_MoveParent,
    1161             : /*  2269*/                OPC_MoveChild1,
    1162             : /*  2270*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    1163             : /*  2273*/                OPC_RecordChild0, // #1 = $src1
    1164             : /*  2274*/                OPC_MoveParent,
    1165             : /*  2275*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1166             : /*  2277*/                OPC_MoveParent,
    1167             : /*  2278*/                OPC_RecordChild1, // #2 = $src2
    1168             : /*  2279*/                OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1169             : /*  2281*/                OPC_MoveParent,
    1170             : /*  2282*/                OPC_MoveChild1,
    1171             : /*  2283*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1172             : /*  2286*/                OPC_MoveChild0,
    1173             : /*  2287*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    1174             : /*  2290*/                OPC_MoveChild0,
    1175             : /*  2291*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1176             : /*  2294*/                OPC_Scope, 20|128,3/*404*/, /*->2701*/ // 3 children in Scope
    1177             : /*  2297*/                  OPC_CheckChild0Same, 0,
    1178             : /*  2299*/                  OPC_CheckChild1Integer, 8, 
    1179             : /*  2301*/                  OPC_CheckChild1Type, MVT::i32,
    1180             : /*  2303*/                  OPC_MoveParent,
    1181             : /*  2304*/                  OPC_MoveParent,
    1182             : /*  2305*/                  OPC_MoveChild1,
    1183             : /*  2306*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1184             : /*  2309*/                  OPC_MoveChild0,
    1185             : /*  2310*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1186             : /*  2313*/                  OPC_CheckChild0Same, 1,
    1187             : /*  2315*/                  OPC_CheckChild1Integer, 8, 
    1188             : /*  2317*/                  OPC_CheckChild1Type, MVT::i32,
    1189             : /*  2319*/                  OPC_MoveParent,
    1190             : /*  2320*/                  OPC_MoveParent,
    1191             : /*  2321*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1192             : /*  2323*/                  OPC_MoveParent,
    1193             : /*  2324*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1194             : /*  2326*/                  OPC_MoveParent,
    1195             : /*  2327*/                  OPC_MoveChild1,
    1196             : /*  2328*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1197             : /*  2331*/                  OPC_MoveChild0,
    1198             : /*  2332*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1199             : /*  2335*/                  OPC_MoveChild0,
    1200             : /*  2336*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1201             : /*  2339*/                  OPC_Scope, 50|128,1/*178*/, /*->2520*/ // 2 children in Scope
    1202             : /*  2342*/                    OPC_CheckChild0Same, 0,
    1203             : /*  2344*/                    OPC_CheckChild1Integer, 16, 
    1204             : /*  2346*/                    OPC_CheckChild1Type, MVT::i32,
    1205             : /*  2348*/                    OPC_MoveParent,
    1206             : /*  2349*/                    OPC_MoveParent,
    1207             : /*  2350*/                    OPC_MoveChild1,
    1208             : /*  2351*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1209             : /*  2354*/                    OPC_MoveChild0,
    1210             : /*  2355*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1211             : /*  2358*/                    OPC_CheckChild0Same, 1,
    1212             : /*  2360*/                    OPC_CheckChild1Integer, 16, 
    1213             : /*  2362*/                    OPC_CheckChild1Type, MVT::i32,
    1214             : /*  2364*/                    OPC_MoveParent,
    1215             : /*  2365*/                    OPC_MoveParent,
    1216             : /*  2366*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1217             : /*  2368*/                    OPC_MoveParent,
    1218             : /*  2369*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1219             : /*  2371*/                    OPC_MoveParent,
    1220             : /*  2372*/                    OPC_MoveChild1,
    1221             : /*  2373*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1222             : /*  2376*/                    OPC_MoveChild0,
    1223             : /*  2377*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1224             : /*  2380*/                    OPC_Scope, 68, /*->2450*/ // 2 children in Scope
    1225             : /*  2382*/                      OPC_CheckChild0Same, 0,
    1226             : /*  2384*/                      OPC_CheckChild1Integer, 24, 
    1227             : /*  2386*/                      OPC_CheckChild1Type, MVT::i32,
    1228             : /*  2388*/                      OPC_MoveParent,
    1229             : /*  2389*/                      OPC_MoveChild1,
    1230             : /*  2390*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1231             : /*  2393*/                      OPC_CheckChild0Same, 1,
    1232             : /*  2395*/                      OPC_CheckChild1Integer, 24, 
    1233             : /*  2397*/                      OPC_CheckChild1Type, MVT::i32,
    1234             : /*  2399*/                      OPC_MoveParent,
    1235             : /*  2400*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1236             : /*  2402*/                      OPC_MoveParent,
    1237             : /*  2403*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1238             : /*  2405*/                      OPC_CheckType, MVT::i32,
    1239             : /*  2407*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1240             : /*  2409*/                      OPC_EmitInteger, MVT::i32, 8, 
    1241             : /*  2412*/                      OPC_EmitInteger, MVT::i32, 8, 
    1242             : /*  2415*/                      OPC_EmitInteger, MVT::i32, 8, 
    1243             : /*  2418*/                      OPC_EmitInteger, MVT::i1, 0, 
    1244             : /*  2421*/                      OPC_EmitInteger, MVT::i32, 0, 
    1245             : /*  2424*/                      OPC_EmitInteger, MVT::i32, 0, 
    1246             : /*  2427*/                      OPC_EmitInteger, MVT::i32, 0, 
    1247             : /*  2430*/                      OPC_EmitInteger, MVT::i32, 0, 
    1248             : /*  2433*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1249             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1250             :                                 // 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
    1251             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1252             : /*  2450*/                    /*Scope*/ 68, /*->2519*/
    1253             : /*  2451*/                      OPC_CheckChild0Same, 1,
    1254             : /*  2453*/                      OPC_CheckChild1Integer, 24, 
    1255             : /*  2455*/                      OPC_CheckChild1Type, MVT::i32,
    1256             : /*  2457*/                      OPC_MoveParent,
    1257             : /*  2458*/                      OPC_MoveChild1,
    1258             : /*  2459*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1259             : /*  2462*/                      OPC_CheckChild0Same, 0,
    1260             : /*  2464*/                      OPC_CheckChild1Integer, 24, 
    1261             : /*  2466*/                      OPC_CheckChild1Type, MVT::i32,
    1262             : /*  2468*/                      OPC_MoveParent,
    1263             : /*  2469*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1264             : /*  2471*/                      OPC_MoveParent,
    1265             : /*  2472*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1266             : /*  2474*/                      OPC_CheckType, MVT::i32,
    1267             : /*  2476*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1268             : /*  2478*/                      OPC_EmitInteger, MVT::i32, 8, 
    1269             : /*  2481*/                      OPC_EmitInteger, MVT::i32, 8, 
    1270             : /*  2484*/                      OPC_EmitInteger, MVT::i32, 8, 
    1271             : /*  2487*/                      OPC_EmitInteger, MVT::i1, 0, 
    1272             : /*  2490*/                      OPC_EmitInteger, MVT::i32, 0, 
    1273             : /*  2493*/                      OPC_EmitInteger, MVT::i32, 0, 
    1274             : /*  2496*/                      OPC_EmitInteger, MVT::i32, 0, 
    1275             : /*  2499*/                      OPC_EmitInteger, MVT::i32, 0, 
    1276             : /*  2502*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1277             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1278             :                                 // 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
    1279             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1280             : /*  2519*/                    0, /*End of Scope*/
    1281             : /*  2520*/                  /*Scope*/ 50|128,1/*178*/, /*->2700*/
    1282             : /*  2522*/                    OPC_CheckChild0Same, 1,
    1283             : /*  2524*/                    OPC_CheckChild1Integer, 16, 
    1284             : /*  2526*/                    OPC_CheckChild1Type, MVT::i32,
    1285             : /*  2528*/                    OPC_MoveParent,
    1286             : /*  2529*/                    OPC_MoveParent,
    1287             : /*  2530*/                    OPC_MoveChild1,
    1288             : /*  2531*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1289             : /*  2534*/                    OPC_MoveChild0,
    1290             : /*  2535*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1291             : /*  2538*/                    OPC_CheckChild0Same, 0,
    1292             : /*  2540*/                    OPC_CheckChild1Integer, 16, 
    1293             : /*  2542*/                    OPC_CheckChild1Type, MVT::i32,
    1294             : /*  2544*/                    OPC_MoveParent,
    1295             : /*  2545*/                    OPC_MoveParent,
    1296             : /*  2546*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1297             : /*  2548*/                    OPC_MoveParent,
    1298             : /*  2549*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1299             : /*  2551*/                    OPC_MoveParent,
    1300             : /*  2552*/                    OPC_MoveChild1,
    1301             : /*  2553*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1302             : /*  2556*/                    OPC_MoveChild0,
    1303             : /*  2557*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1304             : /*  2560*/                    OPC_Scope, 68, /*->2630*/ // 2 children in Scope
    1305             : /*  2562*/                      OPC_CheckChild0Same, 0,
    1306             : /*  2564*/                      OPC_CheckChild1Integer, 24, 
    1307             : /*  2566*/                      OPC_CheckChild1Type, MVT::i32,
    1308             : /*  2568*/                      OPC_MoveParent,
    1309             : /*  2569*/                      OPC_MoveChild1,
    1310             : /*  2570*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1311             : /*  2573*/                      OPC_CheckChild0Same, 1,
    1312             : /*  2575*/                      OPC_CheckChild1Integer, 24, 
    1313             : /*  2577*/                      OPC_CheckChild1Type, MVT::i32,
    1314             : /*  2579*/                      OPC_MoveParent,
    1315             : /*  2580*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1316             : /*  2582*/                      OPC_MoveParent,
    1317             : /*  2583*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1318             : /*  2585*/                      OPC_CheckType, MVT::i32,
    1319             : /*  2587*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1320             : /*  2589*/                      OPC_EmitInteger, MVT::i32, 8, 
    1321             : /*  2592*/                      OPC_EmitInteger, MVT::i32, 8, 
    1322             : /*  2595*/                      OPC_EmitInteger, MVT::i32, 8, 
    1323             : /*  2598*/                      OPC_EmitInteger, MVT::i1, 0, 
    1324             : /*  2601*/                      OPC_EmitInteger, MVT::i32, 0, 
    1325             : /*  2604*/                      OPC_EmitInteger, MVT::i32, 0, 
    1326             : /*  2607*/                      OPC_EmitInteger, MVT::i32, 0, 
    1327             : /*  2610*/                      OPC_EmitInteger, MVT::i32, 0, 
    1328             : /*  2613*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1329             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1330             :                                 // 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
    1331             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1332             : /*  2630*/                    /*Scope*/ 68, /*->2699*/
    1333             : /*  2631*/                      OPC_CheckChild0Same, 1,
    1334             : /*  2633*/                      OPC_CheckChild1Integer, 24, 
    1335             : /*  2635*/                      OPC_CheckChild1Type, MVT::i32,
    1336             : /*  2637*/                      OPC_MoveParent,
    1337             : /*  2638*/                      OPC_MoveChild1,
    1338             : /*  2639*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1339             : /*  2642*/                      OPC_CheckChild0Same, 0,
    1340             : /*  2644*/                      OPC_CheckChild1Integer, 24, 
    1341             : /*  2646*/                      OPC_CheckChild1Type, MVT::i32,
    1342             : /*  2648*/                      OPC_MoveParent,
    1343             : /*  2649*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1344             : /*  2651*/                      OPC_MoveParent,
    1345             : /*  2652*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1346             : /*  2654*/                      OPC_CheckType, MVT::i32,
    1347             : /*  2656*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1348             : /*  2658*/                      OPC_EmitInteger, MVT::i32, 8, 
    1349             : /*  2661*/                      OPC_EmitInteger, MVT::i32, 8, 
    1350             : /*  2664*/                      OPC_EmitInteger, MVT::i32, 8, 
    1351             : /*  2667*/                      OPC_EmitInteger, MVT::i1, 0, 
    1352             : /*  2670*/                      OPC_EmitInteger, MVT::i32, 0, 
    1353             : /*  2673*/                      OPC_EmitInteger, MVT::i32, 0, 
    1354             : /*  2676*/                      OPC_EmitInteger, MVT::i32, 0, 
    1355             : /*  2679*/                      OPC_EmitInteger, MVT::i32, 0, 
    1356             : /*  2682*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1357             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1358             :                                 // 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
    1359             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1360             : /*  2699*/                    0, /*End of Scope*/
    1361             : /*  2700*/                  0, /*End of Scope*/
    1362             : /*  2701*/                /*Scope*/ 34|128,5/*674*/, /*->3377*/
    1363             : /*  2703*/                  OPC_CheckChild0Same, 1,
    1364             : /*  2705*/                  OPC_CheckChild1Integer, 8, 
    1365             : /*  2707*/                  OPC_CheckChild1Type, MVT::i32,
    1366             : /*  2709*/                  OPC_MoveParent,
    1367             : /*  2710*/                  OPC_MoveParent,
    1368             : /*  2711*/                  OPC_MoveChild1,
    1369             : /*  2712*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1370             : /*  2715*/                  OPC_MoveChild0,
    1371             : /*  2716*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1372             : /*  2719*/                  OPC_CheckChild0Same, 0,
    1373             : /*  2721*/                  OPC_CheckChild1Integer, 8, 
    1374             : /*  2723*/                  OPC_CheckChild1Type, MVT::i32,
    1375             : /*  2725*/                  OPC_MoveParent,
    1376             : /*  2726*/                  OPC_MoveParent,
    1377             : /*  2727*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1378             : /*  2729*/                  OPC_MoveParent,
    1379             : /*  2730*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1380             : /*  2732*/                  OPC_MoveParent,
    1381             : /*  2733*/                  OPC_MoveChild1,
    1382             : /*  2734*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1383             : /*  2737*/                  OPC_MoveChild0,
    1384             : /*  2738*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1385             : /*  2741*/                  OPC_MoveChild0,
    1386             : /*  2742*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1387             : /*  2745*/                  OPC_Scope, 50|128,1/*178*/, /*->2926*/ // 3 children in Scope
    1388             : /*  2748*/                    OPC_CheckChild0Same, 0,
    1389             : /*  2750*/                    OPC_CheckChild1Integer, 16, 
    1390             : /*  2752*/                    OPC_CheckChild1Type, MVT::i32,
    1391             : /*  2754*/                    OPC_MoveParent,
    1392             : /*  2755*/                    OPC_MoveParent,
    1393             : /*  2756*/                    OPC_MoveChild1,
    1394             : /*  2757*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1395             : /*  2760*/                    OPC_MoveChild0,
    1396             : /*  2761*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1397             : /*  2764*/                    OPC_CheckChild0Same, 1,
    1398             : /*  2766*/                    OPC_CheckChild1Integer, 16, 
    1399             : /*  2768*/                    OPC_CheckChild1Type, MVT::i32,
    1400             : /*  2770*/                    OPC_MoveParent,
    1401             : /*  2771*/                    OPC_MoveParent,
    1402             : /*  2772*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1403             : /*  2774*/                    OPC_MoveParent,
    1404             : /*  2775*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1405             : /*  2777*/                    OPC_MoveParent,
    1406             : /*  2778*/                    OPC_MoveChild1,
    1407             : /*  2779*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1408             : /*  2782*/                    OPC_MoveChild0,
    1409             : /*  2783*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1410             : /*  2786*/                    OPC_Scope, 68, /*->2856*/ // 2 children in Scope
    1411             : /*  2788*/                      OPC_CheckChild0Same, 0,
    1412             : /*  2790*/                      OPC_CheckChild1Integer, 24, 
    1413             : /*  2792*/                      OPC_CheckChild1Type, MVT::i32,
    1414             : /*  2794*/                      OPC_MoveParent,
    1415             : /*  2795*/                      OPC_MoveChild1,
    1416             : /*  2796*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1417             : /*  2799*/                      OPC_CheckChild0Same, 1,
    1418             : /*  2801*/                      OPC_CheckChild1Integer, 24, 
    1419             : /*  2803*/                      OPC_CheckChild1Type, MVT::i32,
    1420             : /*  2805*/                      OPC_MoveParent,
    1421             : /*  2806*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1422             : /*  2808*/                      OPC_MoveParent,
    1423             : /*  2809*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1424             : /*  2811*/                      OPC_CheckType, MVT::i32,
    1425             : /*  2813*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1426             : /*  2815*/                      OPC_EmitInteger, MVT::i32, 8, 
    1427             : /*  2818*/                      OPC_EmitInteger, MVT::i32, 8, 
    1428             : /*  2821*/                      OPC_EmitInteger, MVT::i32, 8, 
    1429             : /*  2824*/                      OPC_EmitInteger, MVT::i1, 0, 
    1430             : /*  2827*/                      OPC_EmitInteger, MVT::i32, 0, 
    1431             : /*  2830*/                      OPC_EmitInteger, MVT::i32, 0, 
    1432             : /*  2833*/                      OPC_EmitInteger, MVT::i32, 0, 
    1433             : /*  2836*/                      OPC_EmitInteger, MVT::i32, 0, 
    1434             : /*  2839*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1435             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1436             :                                 // 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
    1437             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1438             : /*  2856*/                    /*Scope*/ 68, /*->2925*/
    1439             : /*  2857*/                      OPC_CheckChild0Same, 1,
    1440             : /*  2859*/                      OPC_CheckChild1Integer, 24, 
    1441             : /*  2861*/                      OPC_CheckChild1Type, MVT::i32,
    1442             : /*  2863*/                      OPC_MoveParent,
    1443             : /*  2864*/                      OPC_MoveChild1,
    1444             : /*  2865*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1445             : /*  2868*/                      OPC_CheckChild0Same, 0,
    1446             : /*  2870*/                      OPC_CheckChild1Integer, 24, 
    1447             : /*  2872*/                      OPC_CheckChild1Type, MVT::i32,
    1448             : /*  2874*/                      OPC_MoveParent,
    1449             : /*  2875*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1450             : /*  2877*/                      OPC_MoveParent,
    1451             : /*  2878*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1452             : /*  2880*/                      OPC_CheckType, MVT::i32,
    1453             : /*  2882*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1454             : /*  2884*/                      OPC_EmitInteger, MVT::i32, 8, 
    1455             : /*  2887*/                      OPC_EmitInteger, MVT::i32, 8, 
    1456             : /*  2890*/                      OPC_EmitInteger, MVT::i32, 8, 
    1457             : /*  2893*/                      OPC_EmitInteger, MVT::i1, 0, 
    1458             : /*  2896*/                      OPC_EmitInteger, MVT::i32, 0, 
    1459             : /*  2899*/                      OPC_EmitInteger, MVT::i32, 0, 
    1460             : /*  2902*/                      OPC_EmitInteger, MVT::i32, 0, 
    1461             : /*  2905*/                      OPC_EmitInteger, MVT::i32, 0, 
    1462             : /*  2908*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1463             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1464             :                                 // 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
    1465             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1466             : /*  2925*/                    0, /*End of Scope*/
    1467             : /*  2926*/                  /*Scope*/ 12|128,2/*268*/, /*->3196*/
    1468             : /*  2928*/                    OPC_CheckChild0Same, 1,
    1469             : /*  2930*/                    OPC_CheckChild1Integer, 16, 
    1470             : /*  2932*/                    OPC_CheckChild1Type, MVT::i32,
    1471             : /*  2934*/                    OPC_MoveParent,
    1472             : /*  2935*/                    OPC_MoveParent,
    1473             : /*  2936*/                    OPC_MoveChild1,
    1474             : /*  2937*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1475             : /*  2940*/                    OPC_MoveChild0,
    1476             : /*  2941*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1477             : /*  2944*/                    OPC_CheckChild0Same, 0,
    1478             : /*  2946*/                    OPC_CheckChild1Integer, 16, 
    1479             : /*  2948*/                    OPC_CheckChild1Type, MVT::i32,
    1480             : /*  2950*/                    OPC_MoveParent,
    1481             : /*  2951*/                    OPC_MoveParent,
    1482             : /*  2952*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1483             : /*  2954*/                    OPC_MoveParent,
    1484             : /*  2955*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1485             : /*  2957*/                    OPC_MoveParent,
    1486             : /*  2958*/                    OPC_MoveChild1,
    1487             : /*  2959*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1488             : /*  2962*/                    OPC_MoveChild0,
    1489             : /*  2963*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1490             : /*  2966*/                    OPC_Scope, 68, /*->3036*/ // 3 children in Scope
    1491             : /*  2968*/                      OPC_CheckChild0Same, 0,
    1492             : /*  2970*/                      OPC_CheckChild1Integer, 24, 
    1493             : /*  2972*/                      OPC_CheckChild1Type, MVT::i32,
    1494             : /*  2974*/                      OPC_MoveParent,
    1495             : /*  2975*/                      OPC_MoveChild1,
    1496             : /*  2976*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1497             : /*  2979*/                      OPC_CheckChild0Same, 1,
    1498             : /*  2981*/                      OPC_CheckChild1Integer, 24, 
    1499             : /*  2983*/                      OPC_CheckChild1Type, MVT::i32,
    1500             : /*  2985*/                      OPC_MoveParent,
    1501             : /*  2986*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1502             : /*  2988*/                      OPC_MoveParent,
    1503             : /*  2989*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1504             : /*  2991*/                      OPC_CheckType, MVT::i32,
    1505             : /*  2993*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1506             : /*  2995*/                      OPC_EmitInteger, MVT::i32, 8, 
    1507             : /*  2998*/                      OPC_EmitInteger, MVT::i32, 8, 
    1508             : /*  3001*/                      OPC_EmitInteger, MVT::i32, 8, 
    1509             : /*  3004*/                      OPC_EmitInteger, MVT::i1, 0, 
    1510             : /*  3007*/                      OPC_EmitInteger, MVT::i32, 0, 
    1511             : /*  3010*/                      OPC_EmitInteger, MVT::i32, 0, 
    1512             : /*  3013*/                      OPC_EmitInteger, MVT::i32, 0, 
    1513             : /*  3016*/                      OPC_EmitInteger, MVT::i32, 0, 
    1514             : /*  3019*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1515             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1516             :                                 // 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
    1517             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1518             : /*  3036*/                    /*Scope*/ 89, /*->3126*/
    1519             : /*  3037*/                      OPC_CheckChild0Same, 1,
    1520             : /*  3039*/                      OPC_CheckChild1Integer, 24, 
    1521             : /*  3041*/                      OPC_CheckChild1Type, MVT::i32,
    1522             : /*  3043*/                      OPC_MoveParent,
    1523             : /*  3044*/                      OPC_MoveChild1,
    1524             : /*  3045*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1525             : /*  3048*/                      OPC_CheckChild0Same, 0,
    1526             : /*  3050*/                      OPC_CheckChild1Integer, 24, 
    1527             : /*  3052*/                      OPC_CheckChild1Type, MVT::i32,
    1528             : /*  3054*/                      OPC_MoveParent,
    1529             : /*  3055*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1530             : /*  3057*/                      OPC_MoveParent,
    1531             : /*  3058*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1532             : /*  3060*/                      OPC_CheckType, MVT::i32,
    1533             : /*  3062*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1534             : /*  3064*/                      OPC_EmitInteger, MVT::i32, 8, 
    1535             : /*  3067*/                      OPC_EmitInteger, MVT::i32, 8, 
    1536             : /*  3070*/                      OPC_EmitInteger, MVT::i32, 8, 
    1537             : /*  3073*/                      OPC_EmitInteger, MVT::i1, 0, 
    1538             : /*  3076*/                      OPC_EmitInteger, MVT::i32, 0, 
    1539             : /*  3079*/                      OPC_EmitInteger, MVT::i32, 0, 
    1540             : /*  3082*/                      OPC_EmitInteger, MVT::i32, 0, 
    1541             : /*  3085*/                      OPC_EmitInteger, MVT::i32, 0, 
    1542             : /*  3088*/                      OPC_Scope, 17, /*->3107*/ // 2 children in Scope
    1543             : /*  3090*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1544             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1545             :                                   // 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
    1546             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1547             : /*  3107*/                      /*Scope*/ 17, /*->3125*/
    1548             : /*  3108*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1549             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1550             :                                   // 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
    1551             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1552             : /*  3125*/                      0, /*End of Scope*/
    1553             : /*  3126*/                    /*Scope*/ 68, /*->3195*/
    1554             : /*  3127*/                      OPC_CheckChild0Same, 0,
    1555             : /*  3129*/                      OPC_CheckChild1Integer, 24, 
    1556             : /*  3131*/                      OPC_CheckChild1Type, MVT::i32,
    1557             : /*  3133*/                      OPC_MoveParent,
    1558             : /*  3134*/                      OPC_MoveChild1,
    1559             : /*  3135*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1560             : /*  3138*/                      OPC_CheckChild0Same, 1,
    1561             : /*  3140*/                      OPC_CheckChild1Integer, 24, 
    1562             : /*  3142*/                      OPC_CheckChild1Type, MVT::i32,
    1563             : /*  3144*/                      OPC_MoveParent,
    1564             : /*  3145*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1565             : /*  3147*/                      OPC_MoveParent,
    1566             : /*  3148*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1567             : /*  3150*/                      OPC_CheckType, MVT::i32,
    1568             : /*  3152*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1569             : /*  3154*/                      OPC_EmitInteger, MVT::i32, 8, 
    1570             : /*  3157*/                      OPC_EmitInteger, MVT::i32, 8, 
    1571             : /*  3160*/                      OPC_EmitInteger, MVT::i32, 8, 
    1572             : /*  3163*/                      OPC_EmitInteger, MVT::i1, 0, 
    1573             : /*  3166*/                      OPC_EmitInteger, MVT::i32, 0, 
    1574             : /*  3169*/                      OPC_EmitInteger, MVT::i32, 0, 
    1575             : /*  3172*/                      OPC_EmitInteger, MVT::i32, 0, 
    1576             : /*  3175*/                      OPC_EmitInteger, MVT::i32, 0, 
    1577             : /*  3178*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1578             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1579             :                                 // 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
    1580             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1581             : /*  3195*/                    0, /*End of Scope*/
    1582             : /*  3196*/                  /*Scope*/ 50|128,1/*178*/, /*->3376*/
    1583             : /*  3198*/                    OPC_CheckChild0Same, 0,
    1584             : /*  3200*/                    OPC_CheckChild1Integer, 16, 
    1585             : /*  3202*/                    OPC_CheckChild1Type, MVT::i32,
    1586             : /*  3204*/                    OPC_MoveParent,
    1587             : /*  3205*/                    OPC_MoveParent,
    1588             : /*  3206*/                    OPC_MoveChild1,
    1589             : /*  3207*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1590             : /*  3210*/                    OPC_MoveChild0,
    1591             : /*  3211*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1592             : /*  3214*/                    OPC_CheckChild0Same, 1,
    1593             : /*  3216*/                    OPC_CheckChild1Integer, 16, 
    1594             : /*  3218*/                    OPC_CheckChild1Type, MVT::i32,
    1595             : /*  3220*/                    OPC_MoveParent,
    1596             : /*  3221*/                    OPC_MoveParent,
    1597             : /*  3222*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1598             : /*  3224*/                    OPC_MoveParent,
    1599             : /*  3225*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1600             : /*  3227*/                    OPC_MoveParent,
    1601             : /*  3228*/                    OPC_MoveChild1,
    1602             : /*  3229*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1603             : /*  3232*/                    OPC_MoveChild0,
    1604             : /*  3233*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1605             : /*  3236*/                    OPC_Scope, 68, /*->3306*/ // 2 children in Scope
    1606             : /*  3238*/                      OPC_CheckChild0Same, 1,
    1607             : /*  3240*/                      OPC_CheckChild1Integer, 24, 
    1608             : /*  3242*/                      OPC_CheckChild1Type, MVT::i32,
    1609             : /*  3244*/                      OPC_MoveParent,
    1610             : /*  3245*/                      OPC_MoveChild1,
    1611             : /*  3246*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1612             : /*  3249*/                      OPC_CheckChild0Same, 0,
    1613             : /*  3251*/                      OPC_CheckChild1Integer, 24, 
    1614             : /*  3253*/                      OPC_CheckChild1Type, MVT::i32,
    1615             : /*  3255*/                      OPC_MoveParent,
    1616             : /*  3256*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1617             : /*  3258*/                      OPC_MoveParent,
    1618             : /*  3259*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1619             : /*  3261*/                      OPC_CheckType, MVT::i32,
    1620             : /*  3263*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1621             : /*  3265*/                      OPC_EmitInteger, MVT::i32, 8, 
    1622             : /*  3268*/                      OPC_EmitInteger, MVT::i32, 8, 
    1623             : /*  3271*/                      OPC_EmitInteger, MVT::i32, 8, 
    1624             : /*  3274*/                      OPC_EmitInteger, MVT::i1, 0, 
    1625             : /*  3277*/                      OPC_EmitInteger, MVT::i32, 0, 
    1626             : /*  3280*/                      OPC_EmitInteger, MVT::i32, 0, 
    1627             : /*  3283*/                      OPC_EmitInteger, MVT::i32, 0, 
    1628             : /*  3286*/                      OPC_EmitInteger, MVT::i32, 0, 
    1629             : /*  3289*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1630             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1631             :                                 // 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
    1632             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1633             : /*  3306*/                    /*Scope*/ 68, /*->3375*/
    1634             : /*  3307*/                      OPC_CheckChild0Same, 0,
    1635             : /*  3309*/                      OPC_CheckChild1Integer, 24, 
    1636             : /*  3311*/                      OPC_CheckChild1Type, MVT::i32,
    1637             : /*  3313*/                      OPC_MoveParent,
    1638             : /*  3314*/                      OPC_MoveChild1,
    1639             : /*  3315*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1640             : /*  3318*/                      OPC_CheckChild0Same, 1,
    1641             : /*  3320*/                      OPC_CheckChild1Integer, 24, 
    1642             : /*  3322*/                      OPC_CheckChild1Type, MVT::i32,
    1643             : /*  3324*/                      OPC_MoveParent,
    1644             : /*  3325*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1645             : /*  3327*/                      OPC_MoveParent,
    1646             : /*  3328*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1647             : /*  3330*/                      OPC_CheckType, MVT::i32,
    1648             : /*  3332*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1649             : /*  3334*/                      OPC_EmitInteger, MVT::i32, 8, 
    1650             : /*  3337*/                      OPC_EmitInteger, MVT::i32, 8, 
    1651             : /*  3340*/                      OPC_EmitInteger, MVT::i32, 8, 
    1652             : /*  3343*/                      OPC_EmitInteger, MVT::i1, 0, 
    1653             : /*  3346*/                      OPC_EmitInteger, MVT::i32, 0, 
    1654             : /*  3349*/                      OPC_EmitInteger, MVT::i32, 0, 
    1655             : /*  3352*/                      OPC_EmitInteger, MVT::i32, 0, 
    1656             : /*  3355*/                      OPC_EmitInteger, MVT::i32, 0, 
    1657             : /*  3358*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1658             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1659             :                                 // 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
    1660             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1661             : /*  3375*/                    0, /*End of Scope*/
    1662             : /*  3376*/                  0, /*End of Scope*/
    1663             : /*  3377*/                /*Scope*/ 20|128,3/*404*/, /*->3783*/
    1664             : /*  3379*/                  OPC_CheckChild0Same, 0,
    1665             : /*  3381*/                  OPC_CheckChild1Integer, 8, 
    1666             : /*  3383*/                  OPC_CheckChild1Type, MVT::i32,
    1667             : /*  3385*/                  OPC_MoveParent,
    1668             : /*  3386*/                  OPC_MoveParent,
    1669             : /*  3387*/                  OPC_MoveChild1,
    1670             : /*  3388*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1671             : /*  3391*/                  OPC_MoveChild0,
    1672             : /*  3392*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1673             : /*  3395*/                  OPC_CheckChild0Same, 1,
    1674             : /*  3397*/                  OPC_CheckChild1Integer, 8, 
    1675             : /*  3399*/                  OPC_CheckChild1Type, MVT::i32,
    1676             : /*  3401*/                  OPC_MoveParent,
    1677             : /*  3402*/                  OPC_MoveParent,
    1678             : /*  3403*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1679             : /*  3405*/                  OPC_MoveParent,
    1680             : /*  3406*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1681             : /*  3408*/                  OPC_MoveParent,
    1682             : /*  3409*/                  OPC_MoveChild1,
    1683             : /*  3410*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1684             : /*  3413*/                  OPC_MoveChild0,
    1685             : /*  3414*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1686             : /*  3417*/                  OPC_MoveChild0,
    1687             : /*  3418*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1688             : /*  3421*/                  OPC_Scope, 50|128,1/*178*/, /*->3602*/ // 2 children in Scope
    1689             : /*  3424*/                    OPC_CheckChild0Same, 1,
    1690             : /*  3426*/                    OPC_CheckChild1Integer, 16, 
    1691             : /*  3428*/                    OPC_CheckChild1Type, MVT::i32,
    1692             : /*  3430*/                    OPC_MoveParent,
    1693             : /*  3431*/                    OPC_MoveParent,
    1694             : /*  3432*/                    OPC_MoveChild1,
    1695             : /*  3433*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1696             : /*  3436*/                    OPC_MoveChild0,
    1697             : /*  3437*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1698             : /*  3440*/                    OPC_CheckChild0Same, 0,
    1699             : /*  3442*/                    OPC_CheckChild1Integer, 16, 
    1700             : /*  3444*/                    OPC_CheckChild1Type, MVT::i32,
    1701             : /*  3446*/                    OPC_MoveParent,
    1702             : /*  3447*/                    OPC_MoveParent,
    1703             : /*  3448*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1704             : /*  3450*/                    OPC_MoveParent,
    1705             : /*  3451*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1706             : /*  3453*/                    OPC_MoveParent,
    1707             : /*  3454*/                    OPC_MoveChild1,
    1708             : /*  3455*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1709             : /*  3458*/                    OPC_MoveChild0,
    1710             : /*  3459*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1711             : /*  3462*/                    OPC_Scope, 68, /*->3532*/ // 2 children in Scope
    1712             : /*  3464*/                      OPC_CheckChild0Same, 1,
    1713             : /*  3466*/                      OPC_CheckChild1Integer, 24, 
    1714             : /*  3468*/                      OPC_CheckChild1Type, MVT::i32,
    1715             : /*  3470*/                      OPC_MoveParent,
    1716             : /*  3471*/                      OPC_MoveChild1,
    1717             : /*  3472*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1718             : /*  3475*/                      OPC_CheckChild0Same, 0,
    1719             : /*  3477*/                      OPC_CheckChild1Integer, 24, 
    1720             : /*  3479*/                      OPC_CheckChild1Type, MVT::i32,
    1721             : /*  3481*/                      OPC_MoveParent,
    1722             : /*  3482*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1723             : /*  3484*/                      OPC_MoveParent,
    1724             : /*  3485*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1725             : /*  3487*/                      OPC_CheckType, MVT::i32,
    1726             : /*  3489*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1727             : /*  3491*/                      OPC_EmitInteger, MVT::i32, 8, 
    1728             : /*  3494*/                      OPC_EmitInteger, MVT::i32, 8, 
    1729             : /*  3497*/                      OPC_EmitInteger, MVT::i32, 8, 
    1730             : /*  3500*/                      OPC_EmitInteger, MVT::i1, 0, 
    1731             : /*  3503*/                      OPC_EmitInteger, MVT::i32, 0, 
    1732             : /*  3506*/                      OPC_EmitInteger, MVT::i32, 0, 
    1733             : /*  3509*/                      OPC_EmitInteger, MVT::i32, 0, 
    1734             : /*  3512*/                      OPC_EmitInteger, MVT::i32, 0, 
    1735             : /*  3515*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1736             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1737             :                                 // 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
    1738             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1739             : /*  3532*/                    /*Scope*/ 68, /*->3601*/
    1740             : /*  3533*/                      OPC_CheckChild0Same, 0,
    1741             : /*  3535*/                      OPC_CheckChild1Integer, 24, 
    1742             : /*  3537*/                      OPC_CheckChild1Type, MVT::i32,
    1743             : /*  3539*/                      OPC_MoveParent,
    1744             : /*  3540*/                      OPC_MoveChild1,
    1745             : /*  3541*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1746             : /*  3544*/                      OPC_CheckChild0Same, 1,
    1747             : /*  3546*/                      OPC_CheckChild1Integer, 24, 
    1748             : /*  3548*/                      OPC_CheckChild1Type, MVT::i32,
    1749             : /*  3550*/                      OPC_MoveParent,
    1750             : /*  3551*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1751             : /*  3553*/                      OPC_MoveParent,
    1752             : /*  3554*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1753             : /*  3556*/                      OPC_CheckType, MVT::i32,
    1754             : /*  3558*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1755             : /*  3560*/                      OPC_EmitInteger, MVT::i32, 8, 
    1756             : /*  3563*/                      OPC_EmitInteger, MVT::i32, 8, 
    1757             : /*  3566*/                      OPC_EmitInteger, MVT::i32, 8, 
    1758             : /*  3569*/                      OPC_EmitInteger, MVT::i1, 0, 
    1759             : /*  3572*/                      OPC_EmitInteger, MVT::i32, 0, 
    1760             : /*  3575*/                      OPC_EmitInteger, MVT::i32, 0, 
    1761             : /*  3578*/                      OPC_EmitInteger, MVT::i32, 0, 
    1762             : /*  3581*/                      OPC_EmitInteger, MVT::i32, 0, 
    1763             : /*  3584*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1764             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1765             :                                 // 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
    1766             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1767             : /*  3601*/                    0, /*End of Scope*/
    1768             : /*  3602*/                  /*Scope*/ 50|128,1/*178*/, /*->3782*/
    1769             : /*  3604*/                    OPC_CheckChild0Same, 0,
    1770             : /*  3606*/                    OPC_CheckChild1Integer, 16, 
    1771             : /*  3608*/                    OPC_CheckChild1Type, MVT::i32,
    1772             : /*  3610*/                    OPC_MoveParent,
    1773             : /*  3611*/                    OPC_MoveParent,
    1774             : /*  3612*/                    OPC_MoveChild1,
    1775             : /*  3613*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1776             : /*  3616*/                    OPC_MoveChild0,
    1777             : /*  3617*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1778             : /*  3620*/                    OPC_CheckChild0Same, 1,
    1779             : /*  3622*/                    OPC_CheckChild1Integer, 16, 
    1780             : /*  3624*/                    OPC_CheckChild1Type, MVT::i32,
    1781             : /*  3626*/                    OPC_MoveParent,
    1782             : /*  3627*/                    OPC_MoveParent,
    1783             : /*  3628*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1784             : /*  3630*/                    OPC_MoveParent,
    1785             : /*  3631*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1786             : /*  3633*/                    OPC_MoveParent,
    1787             : /*  3634*/                    OPC_MoveChild1,
    1788             : /*  3635*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1789             : /*  3638*/                    OPC_MoveChild0,
    1790             : /*  3639*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1791             : /*  3642*/                    OPC_Scope, 68, /*->3712*/ // 2 children in Scope
    1792             : /*  3644*/                      OPC_CheckChild0Same, 1,
    1793             : /*  3646*/                      OPC_CheckChild1Integer, 24, 
    1794             : /*  3648*/                      OPC_CheckChild1Type, MVT::i32,
    1795             : /*  3650*/                      OPC_MoveParent,
    1796             : /*  3651*/                      OPC_MoveChild1,
    1797             : /*  3652*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1798             : /*  3655*/                      OPC_CheckChild0Same, 0,
    1799             : /*  3657*/                      OPC_CheckChild1Integer, 24, 
    1800             : /*  3659*/                      OPC_CheckChild1Type, MVT::i32,
    1801             : /*  3661*/                      OPC_MoveParent,
    1802             : /*  3662*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1803             : /*  3664*/                      OPC_MoveParent,
    1804             : /*  3665*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1805             : /*  3667*/                      OPC_CheckType, MVT::i32,
    1806             : /*  3669*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1807             : /*  3671*/                      OPC_EmitInteger, MVT::i32, 8, 
    1808             : /*  3674*/                      OPC_EmitInteger, MVT::i32, 8, 
    1809             : /*  3677*/                      OPC_EmitInteger, MVT::i32, 8, 
    1810             : /*  3680*/                      OPC_EmitInteger, MVT::i1, 0, 
    1811             : /*  3683*/                      OPC_EmitInteger, MVT::i32, 0, 
    1812             : /*  3686*/                      OPC_EmitInteger, MVT::i32, 0, 
    1813             : /*  3689*/                      OPC_EmitInteger, MVT::i32, 0, 
    1814             : /*  3692*/                      OPC_EmitInteger, MVT::i32, 0, 
    1815             : /*  3695*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1816             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1817             :                                 // 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
    1818             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1819             : /*  3712*/                    /*Scope*/ 68, /*->3781*/
    1820             : /*  3713*/                      OPC_CheckChild0Same, 0,
    1821             : /*  3715*/                      OPC_CheckChild1Integer, 24, 
    1822             : /*  3717*/                      OPC_CheckChild1Type, MVT::i32,
    1823             : /*  3719*/                      OPC_MoveParent,
    1824             : /*  3720*/                      OPC_MoveChild1,
    1825             : /*  3721*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1826             : /*  3724*/                      OPC_CheckChild0Same, 1,
    1827             : /*  3726*/                      OPC_CheckChild1Integer, 24, 
    1828             : /*  3728*/                      OPC_CheckChild1Type, MVT::i32,
    1829             : /*  3730*/                      OPC_MoveParent,
    1830             : /*  3731*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1831             : /*  3733*/                      OPC_MoveParent,
    1832             : /*  3734*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1833             : /*  3736*/                      OPC_CheckType, MVT::i32,
    1834             : /*  3738*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1835             : /*  3740*/                      OPC_EmitInteger, MVT::i32, 8, 
    1836             : /*  3743*/                      OPC_EmitInteger, MVT::i32, 8, 
    1837             : /*  3746*/                      OPC_EmitInteger, MVT::i32, 8, 
    1838             : /*  3749*/                      OPC_EmitInteger, MVT::i1, 0, 
    1839             : /*  3752*/                      OPC_EmitInteger, MVT::i32, 0, 
    1840             : /*  3755*/                      OPC_EmitInteger, MVT::i32, 0, 
    1841             : /*  3758*/                      OPC_EmitInteger, MVT::i32, 0, 
    1842             : /*  3761*/                      OPC_EmitInteger, MVT::i32, 0, 
    1843             : /*  3764*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1844             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    1845             :                                 // 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
    1846             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1847             : /*  3781*/                    0, /*End of Scope*/
    1848             : /*  3782*/                  0, /*End of Scope*/
    1849             : /*  3783*/                0, /*End of Scope*/
    1850             : /*  3784*/              0, /*End of Scope*/
    1851             : /*  3785*/            /*SwitchOpcode*/ 53|128,25/*3253*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->7042
    1852             : /*  3789*/              OPC_MoveChild0,
    1853             : /*  3790*/              OPC_CheckAndImm, 127|128,1/*255*/, 
    1854             : /*  3793*/              OPC_MoveChild0,
    1855             : /*  3794*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1856             : /*  3797*/              OPC_RecordChild0, // #0 = $src0
    1857             : /*  3798*/              OPC_CheckChild1Integer, 8, 
    1858             : /*  3800*/              OPC_CheckChild1Type, MVT::i32,
    1859             : /*  3802*/              OPC_MoveParent,
    1860             : /*  3803*/              OPC_MoveParent,
    1861             : /*  3804*/              OPC_MoveChild1,
    1862             : /*  3805*/              OPC_CheckAndImm, 127|128,1/*255*/, 
    1863             : /*  3808*/              OPC_MoveChild0,
    1864             : /*  3809*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1865             : /*  3812*/              OPC_RecordChild0, // #1 = $src1
    1866             : /*  3813*/              OPC_CheckChild1Integer, 8, 
    1867             : /*  3815*/              OPC_CheckChild1Type, MVT::i32,
    1868             : /*  3817*/              OPC_MoveParent,
    1869             : /*  3818*/              OPC_MoveParent,
    1870             : /*  3819*/              OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1871             : /*  3821*/              OPC_MoveParent,
    1872             : /*  3822*/              OPC_MoveChild1,
    1873             : /*  3823*/              OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    1874             : /*  3826*/              OPC_Scope, 33|128,6/*801*/, /*->4630*/ // 4 children in Scope
    1875             : /*  3829*/                OPC_RecordChild0, // #2 = $src2
    1876             : /*  3830*/                OPC_MoveChild1,
    1877             : /*  3831*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1878             : /*  3834*/                OPC_MoveChild0,
    1879             : /*  3835*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    1880             : /*  3838*/                OPC_Scope, 9|128,3/*393*/, /*->4234*/ // 2 children in Scope
    1881             : /*  3841*/                  OPC_CheckChild0Same, 0,
    1882             : /*  3843*/                  OPC_MoveParent,
    1883             : /*  3844*/                  OPC_MoveChild1,
    1884             : /*  3845*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1885             : /*  3848*/                  OPC_CheckChild0Same, 1,
    1886             : /*  3850*/                  OPC_MoveParent,
    1887             : /*  3851*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1888             : /*  3853*/                  OPC_MoveParent,
    1889             : /*  3854*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1890             : /*  3856*/                  OPC_MoveParent,
    1891             : /*  3857*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1892             : /*  3859*/                  OPC_MoveParent,
    1893             : /*  3860*/                  OPC_MoveChild1,
    1894             : /*  3861*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1895             : /*  3864*/                  OPC_MoveChild0,
    1896             : /*  3865*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    1897             : /*  3868*/                  OPC_MoveChild0,
    1898             : /*  3869*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1899             : /*  3872*/                  OPC_Scope, 50|128,1/*178*/, /*->4053*/ // 2 children in Scope
    1900             : /*  3875*/                    OPC_CheckChild0Same, 0,
    1901             : /*  3877*/                    OPC_CheckChild1Integer, 16, 
    1902             : /*  3879*/                    OPC_CheckChild1Type, MVT::i32,
    1903             : /*  3881*/                    OPC_MoveParent,
    1904             : /*  3882*/                    OPC_MoveParent,
    1905             : /*  3883*/                    OPC_MoveChild1,
    1906             : /*  3884*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1907             : /*  3887*/                    OPC_MoveChild0,
    1908             : /*  3888*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1909             : /*  3891*/                    OPC_CheckChild0Same, 1,
    1910             : /*  3893*/                    OPC_CheckChild1Integer, 16, 
    1911             : /*  3895*/                    OPC_CheckChild1Type, MVT::i32,
    1912             : /*  3897*/                    OPC_MoveParent,
    1913             : /*  3898*/                    OPC_MoveParent,
    1914             : /*  3899*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1915             : /*  3901*/                    OPC_MoveParent,
    1916             : /*  3902*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1917             : /*  3904*/                    OPC_MoveParent,
    1918             : /*  3905*/                    OPC_MoveChild1,
    1919             : /*  3906*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    1920             : /*  3909*/                    OPC_MoveChild0,
    1921             : /*  3910*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1922             : /*  3913*/                    OPC_Scope, 68, /*->3983*/ // 2 children in Scope
    1923             : /*  3915*/                      OPC_CheckChild0Same, 0,
    1924             : /*  3917*/                      OPC_CheckChild1Integer, 24, 
    1925             : /*  3919*/                      OPC_CheckChild1Type, MVT::i32,
    1926             : /*  3921*/                      OPC_MoveParent,
    1927             : /*  3922*/                      OPC_MoveChild1,
    1928             : /*  3923*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1929             : /*  3926*/                      OPC_CheckChild0Same, 1,
    1930             : /*  3928*/                      OPC_CheckChild1Integer, 24, 
    1931             : /*  3930*/                      OPC_CheckChild1Type, MVT::i32,
    1932             : /*  3932*/                      OPC_MoveParent,
    1933             : /*  3933*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1934             : /*  3935*/                      OPC_MoveParent,
    1935             : /*  3936*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1936             : /*  3938*/                      OPC_CheckType, MVT::i32,
    1937             : /*  3940*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1938             : /*  3942*/                      OPC_EmitInteger, MVT::i32, 8, 
    1939             : /*  3945*/                      OPC_EmitInteger, MVT::i32, 8, 
    1940             : /*  3948*/                      OPC_EmitInteger, MVT::i32, 8, 
    1941             : /*  3951*/                      OPC_EmitInteger, MVT::i1, 0, 
    1942             : /*  3954*/                      OPC_EmitInteger, MVT::i32, 0, 
    1943             : /*  3957*/                      OPC_EmitInteger, MVT::i32, 0, 
    1944             : /*  3960*/                      OPC_EmitInteger, MVT::i32, 0, 
    1945             : /*  3963*/                      OPC_EmitInteger, MVT::i32, 0, 
    1946             : /*  3966*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1947             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1948             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    1949             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1950             : /*  3983*/                    /*Scope*/ 68, /*->4052*/
    1951             : /*  3984*/                      OPC_CheckChild0Same, 1,
    1952             : /*  3986*/                      OPC_CheckChild1Integer, 24, 
    1953             : /*  3988*/                      OPC_CheckChild1Type, MVT::i32,
    1954             : /*  3990*/                      OPC_MoveParent,
    1955             : /*  3991*/                      OPC_MoveChild1,
    1956             : /*  3992*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1957             : /*  3995*/                      OPC_CheckChild0Same, 0,
    1958             : /*  3997*/                      OPC_CheckChild1Integer, 24, 
    1959             : /*  3999*/                      OPC_CheckChild1Type, MVT::i32,
    1960             : /*  4001*/                      OPC_MoveParent,
    1961             : /*  4002*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1962             : /*  4004*/                      OPC_MoveParent,
    1963             : /*  4005*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1964             : /*  4007*/                      OPC_CheckType, MVT::i32,
    1965             : /*  4009*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    1966             : /*  4011*/                      OPC_EmitInteger, MVT::i32, 8, 
    1967             : /*  4014*/                      OPC_EmitInteger, MVT::i32, 8, 
    1968             : /*  4017*/                      OPC_EmitInteger, MVT::i32, 8, 
    1969             : /*  4020*/                      OPC_EmitInteger, MVT::i1, 0, 
    1970             : /*  4023*/                      OPC_EmitInteger, MVT::i32, 0, 
    1971             : /*  4026*/                      OPC_EmitInteger, MVT::i32, 0, 
    1972             : /*  4029*/                      OPC_EmitInteger, MVT::i32, 0, 
    1973             : /*  4032*/                      OPC_EmitInteger, MVT::i32, 0, 
    1974             : /*  4035*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    1975             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    1976             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    1977             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    1978             : /*  4052*/                    0, /*End of Scope*/
    1979             : /*  4053*/                  /*Scope*/ 50|128,1/*178*/, /*->4233*/
    1980             : /*  4055*/                    OPC_CheckChild0Same, 1,
    1981             : /*  4057*/                    OPC_CheckChild1Integer, 16, 
    1982             : /*  4059*/                    OPC_CheckChild1Type, MVT::i32,
    1983             : /*  4061*/                    OPC_MoveParent,
    1984             : /*  4062*/                    OPC_MoveParent,
    1985             : /*  4063*/                    OPC_MoveChild1,
    1986             : /*  4064*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    1987             : /*  4067*/                    OPC_MoveChild0,
    1988             : /*  4068*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    1989             : /*  4071*/                    OPC_CheckChild0Same, 0,
    1990             : /*  4073*/                    OPC_CheckChild1Integer, 16, 
    1991             : /*  4075*/                    OPC_CheckChild1Type, MVT::i32,
    1992             : /*  4077*/                    OPC_MoveParent,
    1993             : /*  4078*/                    OPC_MoveParent,
    1994             : /*  4079*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    1995             : /*  4081*/                    OPC_MoveParent,
    1996             : /*  4082*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    1997             : /*  4084*/                    OPC_MoveParent,
    1998             : /*  4085*/                    OPC_MoveChild1,
    1999             : /*  4086*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2000             : /*  4089*/                    OPC_MoveChild0,
    2001             : /*  4090*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2002             : /*  4093*/                    OPC_Scope, 68, /*->4163*/ // 2 children in Scope
    2003             : /*  4095*/                      OPC_CheckChild0Same, 0,
    2004             : /*  4097*/                      OPC_CheckChild1Integer, 24, 
    2005             : /*  4099*/                      OPC_CheckChild1Type, MVT::i32,
    2006             : /*  4101*/                      OPC_MoveParent,
    2007             : /*  4102*/                      OPC_MoveChild1,
    2008             : /*  4103*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2009             : /*  4106*/                      OPC_CheckChild0Same, 1,
    2010             : /*  4108*/                      OPC_CheckChild1Integer, 24, 
    2011             : /*  4110*/                      OPC_CheckChild1Type, MVT::i32,
    2012             : /*  4112*/                      OPC_MoveParent,
    2013             : /*  4113*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2014             : /*  4115*/                      OPC_MoveParent,
    2015             : /*  4116*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2016             : /*  4118*/                      OPC_CheckType, MVT::i32,
    2017             : /*  4120*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2018             : /*  4122*/                      OPC_EmitInteger, MVT::i32, 8, 
    2019             : /*  4125*/                      OPC_EmitInteger, MVT::i32, 8, 
    2020             : /*  4128*/                      OPC_EmitInteger, MVT::i32, 8, 
    2021             : /*  4131*/                      OPC_EmitInteger, MVT::i1, 0, 
    2022             : /*  4134*/                      OPC_EmitInteger, MVT::i32, 0, 
    2023             : /*  4137*/                      OPC_EmitInteger, MVT::i32, 0, 
    2024             : /*  4140*/                      OPC_EmitInteger, MVT::i32, 0, 
    2025             : /*  4143*/                      OPC_EmitInteger, MVT::i32, 0, 
    2026             : /*  4146*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2027             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2028             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2029             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2030             : /*  4163*/                    /*Scope*/ 68, /*->4232*/
    2031             : /*  4164*/                      OPC_CheckChild0Same, 1,
    2032             : /*  4166*/                      OPC_CheckChild1Integer, 24, 
    2033             : /*  4168*/                      OPC_CheckChild1Type, MVT::i32,
    2034             : /*  4170*/                      OPC_MoveParent,
    2035             : /*  4171*/                      OPC_MoveChild1,
    2036             : /*  4172*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2037             : /*  4175*/                      OPC_CheckChild0Same, 0,
    2038             : /*  4177*/                      OPC_CheckChild1Integer, 24, 
    2039             : /*  4179*/                      OPC_CheckChild1Type, MVT::i32,
    2040             : /*  4181*/                      OPC_MoveParent,
    2041             : /*  4182*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2042             : /*  4184*/                      OPC_MoveParent,
    2043             : /*  4185*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2044             : /*  4187*/                      OPC_CheckType, MVT::i32,
    2045             : /*  4189*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2046             : /*  4191*/                      OPC_EmitInteger, MVT::i32, 8, 
    2047             : /*  4194*/                      OPC_EmitInteger, MVT::i32, 8, 
    2048             : /*  4197*/                      OPC_EmitInteger, MVT::i32, 8, 
    2049             : /*  4200*/                      OPC_EmitInteger, MVT::i1, 0, 
    2050             : /*  4203*/                      OPC_EmitInteger, MVT::i32, 0, 
    2051             : /*  4206*/                      OPC_EmitInteger, MVT::i32, 0, 
    2052             : /*  4209*/                      OPC_EmitInteger, MVT::i32, 0, 
    2053             : /*  4212*/                      OPC_EmitInteger, MVT::i32, 0, 
    2054             : /*  4215*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2055             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2056             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2057             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2058             : /*  4232*/                    0, /*End of Scope*/
    2059             : /*  4233*/                  0, /*End of Scope*/
    2060             : /*  4234*/                /*Scope*/ 9|128,3/*393*/, /*->4629*/
    2061             : /*  4236*/                  OPC_CheckChild0Same, 1,
    2062             : /*  4238*/                  OPC_MoveParent,
    2063             : /*  4239*/                  OPC_MoveChild1,
    2064             : /*  4240*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2065             : /*  4243*/                  OPC_CheckChild0Same, 0,
    2066             : /*  4245*/                  OPC_MoveParent,
    2067             : /*  4246*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2068             : /*  4248*/                  OPC_MoveParent,
    2069             : /*  4249*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2070             : /*  4251*/                  OPC_MoveParent,
    2071             : /*  4252*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2072             : /*  4254*/                  OPC_MoveParent,
    2073             : /*  4255*/                  OPC_MoveChild1,
    2074             : /*  4256*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2075             : /*  4259*/                  OPC_MoveChild0,
    2076             : /*  4260*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2077             : /*  4263*/                  OPC_MoveChild0,
    2078             : /*  4264*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2079             : /*  4267*/                  OPC_Scope, 50|128,1/*178*/, /*->4448*/ // 2 children in Scope
    2080             : /*  4270*/                    OPC_CheckChild0Same, 0,
    2081             : /*  4272*/                    OPC_CheckChild1Integer, 16, 
    2082             : /*  4274*/                    OPC_CheckChild1Type, MVT::i32,
    2083             : /*  4276*/                    OPC_MoveParent,
    2084             : /*  4277*/                    OPC_MoveParent,
    2085             : /*  4278*/                    OPC_MoveChild1,
    2086             : /*  4279*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2087             : /*  4282*/                    OPC_MoveChild0,
    2088             : /*  4283*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2089             : /*  4286*/                    OPC_CheckChild0Same, 1,
    2090             : /*  4288*/                    OPC_CheckChild1Integer, 16, 
    2091             : /*  4290*/                    OPC_CheckChild1Type, MVT::i32,
    2092             : /*  4292*/                    OPC_MoveParent,
    2093             : /*  4293*/                    OPC_MoveParent,
    2094             : /*  4294*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2095             : /*  4296*/                    OPC_MoveParent,
    2096             : /*  4297*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2097             : /*  4299*/                    OPC_MoveParent,
    2098             : /*  4300*/                    OPC_MoveChild1,
    2099             : /*  4301*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2100             : /*  4304*/                    OPC_MoveChild0,
    2101             : /*  4305*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2102             : /*  4308*/                    OPC_Scope, 68, /*->4378*/ // 2 children in Scope
    2103             : /*  4310*/                      OPC_CheckChild0Same, 0,
    2104             : /*  4312*/                      OPC_CheckChild1Integer, 24, 
    2105             : /*  4314*/                      OPC_CheckChild1Type, MVT::i32,
    2106             : /*  4316*/                      OPC_MoveParent,
    2107             : /*  4317*/                      OPC_MoveChild1,
    2108             : /*  4318*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2109             : /*  4321*/                      OPC_CheckChild0Same, 1,
    2110             : /*  4323*/                      OPC_CheckChild1Integer, 24, 
    2111             : /*  4325*/                      OPC_CheckChild1Type, MVT::i32,
    2112             : /*  4327*/                      OPC_MoveParent,
    2113             : /*  4328*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2114             : /*  4330*/                      OPC_MoveParent,
    2115             : /*  4331*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2116             : /*  4333*/                      OPC_CheckType, MVT::i32,
    2117             : /*  4335*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2118             : /*  4337*/                      OPC_EmitInteger, MVT::i32, 8, 
    2119             : /*  4340*/                      OPC_EmitInteger, MVT::i32, 8, 
    2120             : /*  4343*/                      OPC_EmitInteger, MVT::i32, 8, 
    2121             : /*  4346*/                      OPC_EmitInteger, MVT::i1, 0, 
    2122             : /*  4349*/                      OPC_EmitInteger, MVT::i32, 0, 
    2123             : /*  4352*/                      OPC_EmitInteger, MVT::i32, 0, 
    2124             : /*  4355*/                      OPC_EmitInteger, MVT::i32, 0, 
    2125             : /*  4358*/                      OPC_EmitInteger, MVT::i32, 0, 
    2126             : /*  4361*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2127             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2128             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2129             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2130             : /*  4378*/                    /*Scope*/ 68, /*->4447*/
    2131             : /*  4379*/                      OPC_CheckChild0Same, 1,
    2132             : /*  4381*/                      OPC_CheckChild1Integer, 24, 
    2133             : /*  4383*/                      OPC_CheckChild1Type, MVT::i32,
    2134             : /*  4385*/                      OPC_MoveParent,
    2135             : /*  4386*/                      OPC_MoveChild1,
    2136             : /*  4387*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2137             : /*  4390*/                      OPC_CheckChild0Same, 0,
    2138             : /*  4392*/                      OPC_CheckChild1Integer, 24, 
    2139             : /*  4394*/                      OPC_CheckChild1Type, MVT::i32,
    2140             : /*  4396*/                      OPC_MoveParent,
    2141             : /*  4397*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2142             : /*  4399*/                      OPC_MoveParent,
    2143             : /*  4400*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2144             : /*  4402*/                      OPC_CheckType, MVT::i32,
    2145             : /*  4404*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2146             : /*  4406*/                      OPC_EmitInteger, MVT::i32, 8, 
    2147             : /*  4409*/                      OPC_EmitInteger, MVT::i32, 8, 
    2148             : /*  4412*/                      OPC_EmitInteger, MVT::i32, 8, 
    2149             : /*  4415*/                      OPC_EmitInteger, MVT::i1, 0, 
    2150             : /*  4418*/                      OPC_EmitInteger, MVT::i32, 0, 
    2151             : /*  4421*/                      OPC_EmitInteger, MVT::i32, 0, 
    2152             : /*  4424*/                      OPC_EmitInteger, MVT::i32, 0, 
    2153             : /*  4427*/                      OPC_EmitInteger, MVT::i32, 0, 
    2154             : /*  4430*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2155             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2156             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2157             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2158             : /*  4447*/                    0, /*End of Scope*/
    2159             : /*  4448*/                  /*Scope*/ 50|128,1/*178*/, /*->4628*/
    2160             : /*  4450*/                    OPC_CheckChild0Same, 1,
    2161             : /*  4452*/                    OPC_CheckChild1Integer, 16, 
    2162             : /*  4454*/                    OPC_CheckChild1Type, MVT::i32,
    2163             : /*  4456*/                    OPC_MoveParent,
    2164             : /*  4457*/                    OPC_MoveParent,
    2165             : /*  4458*/                    OPC_MoveChild1,
    2166             : /*  4459*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2167             : /*  4462*/                    OPC_MoveChild0,
    2168             : /*  4463*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2169             : /*  4466*/                    OPC_CheckChild0Same, 0,
    2170             : /*  4468*/                    OPC_CheckChild1Integer, 16, 
    2171             : /*  4470*/                    OPC_CheckChild1Type, MVT::i32,
    2172             : /*  4472*/                    OPC_MoveParent,
    2173             : /*  4473*/                    OPC_MoveParent,
    2174             : /*  4474*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2175             : /*  4476*/                    OPC_MoveParent,
    2176             : /*  4477*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2177             : /*  4479*/                    OPC_MoveParent,
    2178             : /*  4480*/                    OPC_MoveChild1,
    2179             : /*  4481*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2180             : /*  4484*/                    OPC_MoveChild0,
    2181             : /*  4485*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2182             : /*  4488*/                    OPC_Scope, 68, /*->4558*/ // 2 children in Scope
    2183             : /*  4490*/                      OPC_CheckChild0Same, 0,
    2184             : /*  4492*/                      OPC_CheckChild1Integer, 24, 
    2185             : /*  4494*/                      OPC_CheckChild1Type, MVT::i32,
    2186             : /*  4496*/                      OPC_MoveParent,
    2187             : /*  4497*/                      OPC_MoveChild1,
    2188             : /*  4498*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2189             : /*  4501*/                      OPC_CheckChild0Same, 1,
    2190             : /*  4503*/                      OPC_CheckChild1Integer, 24, 
    2191             : /*  4505*/                      OPC_CheckChild1Type, MVT::i32,
    2192             : /*  4507*/                      OPC_MoveParent,
    2193             : /*  4508*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2194             : /*  4510*/                      OPC_MoveParent,
    2195             : /*  4511*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2196             : /*  4513*/                      OPC_CheckType, MVT::i32,
    2197             : /*  4515*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2198             : /*  4517*/                      OPC_EmitInteger, MVT::i32, 8, 
    2199             : /*  4520*/                      OPC_EmitInteger, MVT::i32, 8, 
    2200             : /*  4523*/                      OPC_EmitInteger, MVT::i32, 8, 
    2201             : /*  4526*/                      OPC_EmitInteger, MVT::i1, 0, 
    2202             : /*  4529*/                      OPC_EmitInteger, MVT::i32, 0, 
    2203             : /*  4532*/                      OPC_EmitInteger, MVT::i32, 0, 
    2204             : /*  4535*/                      OPC_EmitInteger, MVT::i32, 0, 
    2205             : /*  4538*/                      OPC_EmitInteger, MVT::i32, 0, 
    2206             : /*  4541*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2207             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2208             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2209             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2210             : /*  4558*/                    /*Scope*/ 68, /*->4627*/
    2211             : /*  4559*/                      OPC_CheckChild0Same, 1,
    2212             : /*  4561*/                      OPC_CheckChild1Integer, 24, 
    2213             : /*  4563*/                      OPC_CheckChild1Type, MVT::i32,
    2214             : /*  4565*/                      OPC_MoveParent,
    2215             : /*  4566*/                      OPC_MoveChild1,
    2216             : /*  4567*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2217             : /*  4570*/                      OPC_CheckChild0Same, 0,
    2218             : /*  4572*/                      OPC_CheckChild1Integer, 24, 
    2219             : /*  4574*/                      OPC_CheckChild1Type, MVT::i32,
    2220             : /*  4576*/                      OPC_MoveParent,
    2221             : /*  4577*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2222             : /*  4579*/                      OPC_MoveParent,
    2223             : /*  4580*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2224             : /*  4582*/                      OPC_CheckType, MVT::i32,
    2225             : /*  4584*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2226             : /*  4586*/                      OPC_EmitInteger, MVT::i32, 8, 
    2227             : /*  4589*/                      OPC_EmitInteger, MVT::i32, 8, 
    2228             : /*  4592*/                      OPC_EmitInteger, MVT::i32, 8, 
    2229             : /*  4595*/                      OPC_EmitInteger, MVT::i1, 0, 
    2230             : /*  4598*/                      OPC_EmitInteger, MVT::i32, 0, 
    2231             : /*  4601*/                      OPC_EmitInteger, MVT::i32, 0, 
    2232             : /*  4604*/                      OPC_EmitInteger, MVT::i32, 0, 
    2233             : /*  4607*/                      OPC_EmitInteger, MVT::i32, 0, 
    2234             : /*  4610*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2235             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2236             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2237             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2238             : /*  4627*/                    0, /*End of Scope*/
    2239             : /*  4628*/                  0, /*End of Scope*/
    2240             : /*  4629*/                0, /*End of Scope*/
    2241             : /*  4630*/              /*Scope*/ 34|128,6/*802*/, /*->5434*/
    2242             : /*  4632*/                OPC_MoveChild0,
    2243             : /*  4633*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2244             : /*  4636*/                OPC_MoveChild0,
    2245             : /*  4637*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    2246             : /*  4640*/                OPC_Scope, 10|128,3/*394*/, /*->5037*/ // 2 children in Scope
    2247             : /*  4643*/                  OPC_CheckChild0Same, 0,
    2248             : /*  4645*/                  OPC_MoveParent,
    2249             : /*  4646*/                  OPC_MoveChild1,
    2250             : /*  4647*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2251             : /*  4650*/                  OPC_CheckChild0Same, 1,
    2252             : /*  4652*/                  OPC_MoveParent,
    2253             : /*  4653*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2254             : /*  4655*/                  OPC_MoveParent,
    2255             : /*  4656*/                  OPC_RecordChild1, // #2 = $src2
    2256             : /*  4657*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2257             : /*  4659*/                  OPC_MoveParent,
    2258             : /*  4660*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2259             : /*  4662*/                  OPC_MoveParent,
    2260             : /*  4663*/                  OPC_MoveChild1,
    2261             : /*  4664*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2262             : /*  4667*/                  OPC_MoveChild0,
    2263             : /*  4668*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2264             : /*  4671*/                  OPC_MoveChild0,
    2265             : /*  4672*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2266             : /*  4675*/                  OPC_Scope, 50|128,1/*178*/, /*->4856*/ // 2 children in Scope
    2267             : /*  4678*/                    OPC_CheckChild0Same, 0,
    2268             : /*  4680*/                    OPC_CheckChild1Integer, 16, 
    2269             : /*  4682*/                    OPC_CheckChild1Type, MVT::i32,
    2270             : /*  4684*/                    OPC_MoveParent,
    2271             : /*  4685*/                    OPC_MoveParent,
    2272             : /*  4686*/                    OPC_MoveChild1,
    2273             : /*  4687*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2274             : /*  4690*/                    OPC_MoveChild0,
    2275             : /*  4691*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2276             : /*  4694*/                    OPC_CheckChild0Same, 1,
    2277             : /*  4696*/                    OPC_CheckChild1Integer, 16, 
    2278             : /*  4698*/                    OPC_CheckChild1Type, MVT::i32,
    2279             : /*  4700*/                    OPC_MoveParent,
    2280             : /*  4701*/                    OPC_MoveParent,
    2281             : /*  4702*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2282             : /*  4704*/                    OPC_MoveParent,
    2283             : /*  4705*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2284             : /*  4707*/                    OPC_MoveParent,
    2285             : /*  4708*/                    OPC_MoveChild1,
    2286             : /*  4709*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2287             : /*  4712*/                    OPC_MoveChild0,
    2288             : /*  4713*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2289             : /*  4716*/                    OPC_Scope, 68, /*->4786*/ // 2 children in Scope
    2290             : /*  4718*/                      OPC_CheckChild0Same, 0,
    2291             : /*  4720*/                      OPC_CheckChild1Integer, 24, 
    2292             : /*  4722*/                      OPC_CheckChild1Type, MVT::i32,
    2293             : /*  4724*/                      OPC_MoveParent,
    2294             : /*  4725*/                      OPC_MoveChild1,
    2295             : /*  4726*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2296             : /*  4729*/                      OPC_CheckChild0Same, 1,
    2297             : /*  4731*/                      OPC_CheckChild1Integer, 24, 
    2298             : /*  4733*/                      OPC_CheckChild1Type, MVT::i32,
    2299             : /*  4735*/                      OPC_MoveParent,
    2300             : /*  4736*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2301             : /*  4738*/                      OPC_MoveParent,
    2302             : /*  4739*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2303             : /*  4741*/                      OPC_CheckType, MVT::i32,
    2304             : /*  4743*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2305             : /*  4745*/                      OPC_EmitInteger, MVT::i32, 8, 
    2306             : /*  4748*/                      OPC_EmitInteger, MVT::i32, 8, 
    2307             : /*  4751*/                      OPC_EmitInteger, MVT::i32, 8, 
    2308             : /*  4754*/                      OPC_EmitInteger, MVT::i1, 0, 
    2309             : /*  4757*/                      OPC_EmitInteger, MVT::i32, 0, 
    2310             : /*  4760*/                      OPC_EmitInteger, MVT::i32, 0, 
    2311             : /*  4763*/                      OPC_EmitInteger, MVT::i32, 0, 
    2312             : /*  4766*/                      OPC_EmitInteger, MVT::i32, 0, 
    2313             : /*  4769*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2314             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2315             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2316             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2317             : /*  4786*/                    /*Scope*/ 68, /*->4855*/
    2318             : /*  4787*/                      OPC_CheckChild0Same, 1,
    2319             : /*  4789*/                      OPC_CheckChild1Integer, 24, 
    2320             : /*  4791*/                      OPC_CheckChild1Type, MVT::i32,
    2321             : /*  4793*/                      OPC_MoveParent,
    2322             : /*  4794*/                      OPC_MoveChild1,
    2323             : /*  4795*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2324             : /*  4798*/                      OPC_CheckChild0Same, 0,
    2325             : /*  4800*/                      OPC_CheckChild1Integer, 24, 
    2326             : /*  4802*/                      OPC_CheckChild1Type, MVT::i32,
    2327             : /*  4804*/                      OPC_MoveParent,
    2328             : /*  4805*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2329             : /*  4807*/                      OPC_MoveParent,
    2330             : /*  4808*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2331             : /*  4810*/                      OPC_CheckType, MVT::i32,
    2332             : /*  4812*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2333             : /*  4814*/                      OPC_EmitInteger, MVT::i32, 8, 
    2334             : /*  4817*/                      OPC_EmitInteger, MVT::i32, 8, 
    2335             : /*  4820*/                      OPC_EmitInteger, MVT::i32, 8, 
    2336             : /*  4823*/                      OPC_EmitInteger, MVT::i1, 0, 
    2337             : /*  4826*/                      OPC_EmitInteger, MVT::i32, 0, 
    2338             : /*  4829*/                      OPC_EmitInteger, MVT::i32, 0, 
    2339             : /*  4832*/                      OPC_EmitInteger, MVT::i32, 0, 
    2340             : /*  4835*/                      OPC_EmitInteger, MVT::i32, 0, 
    2341             : /*  4838*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2342             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2343             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2344             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2345             : /*  4855*/                    0, /*End of Scope*/
    2346             : /*  4856*/                  /*Scope*/ 50|128,1/*178*/, /*->5036*/
    2347             : /*  4858*/                    OPC_CheckChild0Same, 1,
    2348             : /*  4860*/                    OPC_CheckChild1Integer, 16, 
    2349             : /*  4862*/                    OPC_CheckChild1Type, MVT::i32,
    2350             : /*  4864*/                    OPC_MoveParent,
    2351             : /*  4865*/                    OPC_MoveParent,
    2352             : /*  4866*/                    OPC_MoveChild1,
    2353             : /*  4867*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2354             : /*  4870*/                    OPC_MoveChild0,
    2355             : /*  4871*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2356             : /*  4874*/                    OPC_CheckChild0Same, 0,
    2357             : /*  4876*/                    OPC_CheckChild1Integer, 16, 
    2358             : /*  4878*/                    OPC_CheckChild1Type, MVT::i32,
    2359             : /*  4880*/                    OPC_MoveParent,
    2360             : /*  4881*/                    OPC_MoveParent,
    2361             : /*  4882*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2362             : /*  4884*/                    OPC_MoveParent,
    2363             : /*  4885*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2364             : /*  4887*/                    OPC_MoveParent,
    2365             : /*  4888*/                    OPC_MoveChild1,
    2366             : /*  4889*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2367             : /*  4892*/                    OPC_MoveChild0,
    2368             : /*  4893*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2369             : /*  4896*/                    OPC_Scope, 68, /*->4966*/ // 2 children in Scope
    2370             : /*  4898*/                      OPC_CheckChild0Same, 0,
    2371             : /*  4900*/                      OPC_CheckChild1Integer, 24, 
    2372             : /*  4902*/                      OPC_CheckChild1Type, MVT::i32,
    2373             : /*  4904*/                      OPC_MoveParent,
    2374             : /*  4905*/                      OPC_MoveChild1,
    2375             : /*  4906*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2376             : /*  4909*/                      OPC_CheckChild0Same, 1,
    2377             : /*  4911*/                      OPC_CheckChild1Integer, 24, 
    2378             : /*  4913*/                      OPC_CheckChild1Type, MVT::i32,
    2379             : /*  4915*/                      OPC_MoveParent,
    2380             : /*  4916*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2381             : /*  4918*/                      OPC_MoveParent,
    2382             : /*  4919*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2383             : /*  4921*/                      OPC_CheckType, MVT::i32,
    2384             : /*  4923*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2385             : /*  4925*/                      OPC_EmitInteger, MVT::i32, 8, 
    2386             : /*  4928*/                      OPC_EmitInteger, MVT::i32, 8, 
    2387             : /*  4931*/                      OPC_EmitInteger, MVT::i32, 8, 
    2388             : /*  4934*/                      OPC_EmitInteger, MVT::i1, 0, 
    2389             : /*  4937*/                      OPC_EmitInteger, MVT::i32, 0, 
    2390             : /*  4940*/                      OPC_EmitInteger, MVT::i32, 0, 
    2391             : /*  4943*/                      OPC_EmitInteger, MVT::i32, 0, 
    2392             : /*  4946*/                      OPC_EmitInteger, MVT::i32, 0, 
    2393             : /*  4949*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2394             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2395             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2396             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2397             : /*  4966*/                    /*Scope*/ 68, /*->5035*/
    2398             : /*  4967*/                      OPC_CheckChild0Same, 1,
    2399             : /*  4969*/                      OPC_CheckChild1Integer, 24, 
    2400             : /*  4971*/                      OPC_CheckChild1Type, MVT::i32,
    2401             : /*  4973*/                      OPC_MoveParent,
    2402             : /*  4974*/                      OPC_MoveChild1,
    2403             : /*  4975*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2404             : /*  4978*/                      OPC_CheckChild0Same, 0,
    2405             : /*  4980*/                      OPC_CheckChild1Integer, 24, 
    2406             : /*  4982*/                      OPC_CheckChild1Type, MVT::i32,
    2407             : /*  4984*/                      OPC_MoveParent,
    2408             : /*  4985*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2409             : /*  4987*/                      OPC_MoveParent,
    2410             : /*  4988*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2411             : /*  4990*/                      OPC_CheckType, MVT::i32,
    2412             : /*  4992*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2413             : /*  4994*/                      OPC_EmitInteger, MVT::i32, 8, 
    2414             : /*  4997*/                      OPC_EmitInteger, MVT::i32, 8, 
    2415             : /*  5000*/                      OPC_EmitInteger, MVT::i32, 8, 
    2416             : /*  5003*/                      OPC_EmitInteger, MVT::i1, 0, 
    2417             : /*  5006*/                      OPC_EmitInteger, MVT::i32, 0, 
    2418             : /*  5009*/                      OPC_EmitInteger, MVT::i32, 0, 
    2419             : /*  5012*/                      OPC_EmitInteger, MVT::i32, 0, 
    2420             : /*  5015*/                      OPC_EmitInteger, MVT::i32, 0, 
    2421             : /*  5018*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2422             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2423             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2424             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2425             : /*  5035*/                    0, /*End of Scope*/
    2426             : /*  5036*/                  0, /*End of Scope*/
    2427             : /*  5037*/                /*Scope*/ 10|128,3/*394*/, /*->5433*/
    2428             : /*  5039*/                  OPC_CheckChild0Same, 1,
    2429             : /*  5041*/                  OPC_MoveParent,
    2430             : /*  5042*/                  OPC_MoveChild1,
    2431             : /*  5043*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2432             : /*  5046*/                  OPC_CheckChild0Same, 0,
    2433             : /*  5048*/                  OPC_MoveParent,
    2434             : /*  5049*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2435             : /*  5051*/                  OPC_MoveParent,
    2436             : /*  5052*/                  OPC_RecordChild1, // #2 = $src2
    2437             : /*  5053*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2438             : /*  5055*/                  OPC_MoveParent,
    2439             : /*  5056*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2440             : /*  5058*/                  OPC_MoveParent,
    2441             : /*  5059*/                  OPC_MoveChild1,
    2442             : /*  5060*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2443             : /*  5063*/                  OPC_MoveChild0,
    2444             : /*  5064*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2445             : /*  5067*/                  OPC_MoveChild0,
    2446             : /*  5068*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2447             : /*  5071*/                  OPC_Scope, 50|128,1/*178*/, /*->5252*/ // 2 children in Scope
    2448             : /*  5074*/                    OPC_CheckChild0Same, 0,
    2449             : /*  5076*/                    OPC_CheckChild1Integer, 16, 
    2450             : /*  5078*/                    OPC_CheckChild1Type, MVT::i32,
    2451             : /*  5080*/                    OPC_MoveParent,
    2452             : /*  5081*/                    OPC_MoveParent,
    2453             : /*  5082*/                    OPC_MoveChild1,
    2454             : /*  5083*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2455             : /*  5086*/                    OPC_MoveChild0,
    2456             : /*  5087*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2457             : /*  5090*/                    OPC_CheckChild0Same, 1,
    2458             : /*  5092*/                    OPC_CheckChild1Integer, 16, 
    2459             : /*  5094*/                    OPC_CheckChild1Type, MVT::i32,
    2460             : /*  5096*/                    OPC_MoveParent,
    2461             : /*  5097*/                    OPC_MoveParent,
    2462             : /*  5098*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2463             : /*  5100*/                    OPC_MoveParent,
    2464             : /*  5101*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2465             : /*  5103*/                    OPC_MoveParent,
    2466             : /*  5104*/                    OPC_MoveChild1,
    2467             : /*  5105*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2468             : /*  5108*/                    OPC_MoveChild0,
    2469             : /*  5109*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2470             : /*  5112*/                    OPC_Scope, 68, /*->5182*/ // 2 children in Scope
    2471             : /*  5114*/                      OPC_CheckChild0Same, 0,
    2472             : /*  5116*/                      OPC_CheckChild1Integer, 24, 
    2473             : /*  5118*/                      OPC_CheckChild1Type, MVT::i32,
    2474             : /*  5120*/                      OPC_MoveParent,
    2475             : /*  5121*/                      OPC_MoveChild1,
    2476             : /*  5122*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2477             : /*  5125*/                      OPC_CheckChild0Same, 1,
    2478             : /*  5127*/                      OPC_CheckChild1Integer, 24, 
    2479             : /*  5129*/                      OPC_CheckChild1Type, MVT::i32,
    2480             : /*  5131*/                      OPC_MoveParent,
    2481             : /*  5132*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2482             : /*  5134*/                      OPC_MoveParent,
    2483             : /*  5135*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2484             : /*  5137*/                      OPC_CheckType, MVT::i32,
    2485             : /*  5139*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2486             : /*  5141*/                      OPC_EmitInteger, MVT::i32, 8, 
    2487             : /*  5144*/                      OPC_EmitInteger, MVT::i32, 8, 
    2488             : /*  5147*/                      OPC_EmitInteger, MVT::i32, 8, 
    2489             : /*  5150*/                      OPC_EmitInteger, MVT::i1, 0, 
    2490             : /*  5153*/                      OPC_EmitInteger, MVT::i32, 0, 
    2491             : /*  5156*/                      OPC_EmitInteger, MVT::i32, 0, 
    2492             : /*  5159*/                      OPC_EmitInteger, MVT::i32, 0, 
    2493             : /*  5162*/                      OPC_EmitInteger, MVT::i32, 0, 
    2494             : /*  5165*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2495             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2496             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2497             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2498             : /*  5182*/                    /*Scope*/ 68, /*->5251*/
    2499             : /*  5183*/                      OPC_CheckChild0Same, 1,
    2500             : /*  5185*/                      OPC_CheckChild1Integer, 24, 
    2501             : /*  5187*/                      OPC_CheckChild1Type, MVT::i32,
    2502             : /*  5189*/                      OPC_MoveParent,
    2503             : /*  5190*/                      OPC_MoveChild1,
    2504             : /*  5191*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2505             : /*  5194*/                      OPC_CheckChild0Same, 0,
    2506             : /*  5196*/                      OPC_CheckChild1Integer, 24, 
    2507             : /*  5198*/                      OPC_CheckChild1Type, MVT::i32,
    2508             : /*  5200*/                      OPC_MoveParent,
    2509             : /*  5201*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2510             : /*  5203*/                      OPC_MoveParent,
    2511             : /*  5204*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2512             : /*  5206*/                      OPC_CheckType, MVT::i32,
    2513             : /*  5208*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2514             : /*  5210*/                      OPC_EmitInteger, MVT::i32, 8, 
    2515             : /*  5213*/                      OPC_EmitInteger, MVT::i32, 8, 
    2516             : /*  5216*/                      OPC_EmitInteger, MVT::i32, 8, 
    2517             : /*  5219*/                      OPC_EmitInteger, MVT::i1, 0, 
    2518             : /*  5222*/                      OPC_EmitInteger, MVT::i32, 0, 
    2519             : /*  5225*/                      OPC_EmitInteger, MVT::i32, 0, 
    2520             : /*  5228*/                      OPC_EmitInteger, MVT::i32, 0, 
    2521             : /*  5231*/                      OPC_EmitInteger, MVT::i32, 0, 
    2522             : /*  5234*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2523             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2524             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2525             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2526             : /*  5251*/                    0, /*End of Scope*/
    2527             : /*  5252*/                  /*Scope*/ 50|128,1/*178*/, /*->5432*/
    2528             : /*  5254*/                    OPC_CheckChild0Same, 1,
    2529             : /*  5256*/                    OPC_CheckChild1Integer, 16, 
    2530             : /*  5258*/                    OPC_CheckChild1Type, MVT::i32,
    2531             : /*  5260*/                    OPC_MoveParent,
    2532             : /*  5261*/                    OPC_MoveParent,
    2533             : /*  5262*/                    OPC_MoveChild1,
    2534             : /*  5263*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2535             : /*  5266*/                    OPC_MoveChild0,
    2536             : /*  5267*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2537             : /*  5270*/                    OPC_CheckChild0Same, 0,
    2538             : /*  5272*/                    OPC_CheckChild1Integer, 16, 
    2539             : /*  5274*/                    OPC_CheckChild1Type, MVT::i32,
    2540             : /*  5276*/                    OPC_MoveParent,
    2541             : /*  5277*/                    OPC_MoveParent,
    2542             : /*  5278*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2543             : /*  5280*/                    OPC_MoveParent,
    2544             : /*  5281*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2545             : /*  5283*/                    OPC_MoveParent,
    2546             : /*  5284*/                    OPC_MoveChild1,
    2547             : /*  5285*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2548             : /*  5288*/                    OPC_MoveChild0,
    2549             : /*  5289*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2550             : /*  5292*/                    OPC_Scope, 68, /*->5362*/ // 2 children in Scope
    2551             : /*  5294*/                      OPC_CheckChild0Same, 0,
    2552             : /*  5296*/                      OPC_CheckChild1Integer, 24, 
    2553             : /*  5298*/                      OPC_CheckChild1Type, MVT::i32,
    2554             : /*  5300*/                      OPC_MoveParent,
    2555             : /*  5301*/                      OPC_MoveChild1,
    2556             : /*  5302*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2557             : /*  5305*/                      OPC_CheckChild0Same, 1,
    2558             : /*  5307*/                      OPC_CheckChild1Integer, 24, 
    2559             : /*  5309*/                      OPC_CheckChild1Type, MVT::i32,
    2560             : /*  5311*/                      OPC_MoveParent,
    2561             : /*  5312*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2562             : /*  5314*/                      OPC_MoveParent,
    2563             : /*  5315*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2564             : /*  5317*/                      OPC_CheckType, MVT::i32,
    2565             : /*  5319*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2566             : /*  5321*/                      OPC_EmitInteger, MVT::i32, 8, 
    2567             : /*  5324*/                      OPC_EmitInteger, MVT::i32, 8, 
    2568             : /*  5327*/                      OPC_EmitInteger, MVT::i32, 8, 
    2569             : /*  5330*/                      OPC_EmitInteger, MVT::i1, 0, 
    2570             : /*  5333*/                      OPC_EmitInteger, MVT::i32, 0, 
    2571             : /*  5336*/                      OPC_EmitInteger, MVT::i32, 0, 
    2572             : /*  5339*/                      OPC_EmitInteger, MVT::i32, 0, 
    2573             : /*  5342*/                      OPC_EmitInteger, MVT::i32, 0, 
    2574             : /*  5345*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2575             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2576             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2577             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2578             : /*  5362*/                    /*Scope*/ 68, /*->5431*/
    2579             : /*  5363*/                      OPC_CheckChild0Same, 1,
    2580             : /*  5365*/                      OPC_CheckChild1Integer, 24, 
    2581             : /*  5367*/                      OPC_CheckChild1Type, MVT::i32,
    2582             : /*  5369*/                      OPC_MoveParent,
    2583             : /*  5370*/                      OPC_MoveChild1,
    2584             : /*  5371*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2585             : /*  5374*/                      OPC_CheckChild0Same, 0,
    2586             : /*  5376*/                      OPC_CheckChild1Integer, 24, 
    2587             : /*  5378*/                      OPC_CheckChild1Type, MVT::i32,
    2588             : /*  5380*/                      OPC_MoveParent,
    2589             : /*  5381*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2590             : /*  5383*/                      OPC_MoveParent,
    2591             : /*  5384*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2592             : /*  5386*/                      OPC_CheckType, MVT::i32,
    2593             : /*  5388*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2594             : /*  5390*/                      OPC_EmitInteger, MVT::i32, 8, 
    2595             : /*  5393*/                      OPC_EmitInteger, MVT::i32, 8, 
    2596             : /*  5396*/                      OPC_EmitInteger, MVT::i32, 8, 
    2597             : /*  5399*/                      OPC_EmitInteger, MVT::i1, 0, 
    2598             : /*  5402*/                      OPC_EmitInteger, MVT::i32, 0, 
    2599             : /*  5405*/                      OPC_EmitInteger, MVT::i32, 0, 
    2600             : /*  5408*/                      OPC_EmitInteger, MVT::i32, 0, 
    2601             : /*  5411*/                      OPC_EmitInteger, MVT::i32, 0, 
    2602             : /*  5414*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2603             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    2604             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2605             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2606             : /*  5431*/                    0, /*End of Scope*/
    2607             : /*  5432*/                  0, /*End of Scope*/
    2608             : /*  5433*/                0, /*End of Scope*/
    2609             : /*  5434*/              /*Scope*/ 33|128,6/*801*/, /*->6237*/
    2610             : /*  5436*/                OPC_RecordChild0, // #2 = $src2
    2611             : /*  5437*/                OPC_MoveChild1,
    2612             : /*  5438*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2613             : /*  5441*/                OPC_MoveChild0,
    2614             : /*  5442*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    2615             : /*  5445*/                OPC_Scope, 9|128,3/*393*/, /*->5841*/ // 2 children in Scope
    2616             : /*  5448*/                  OPC_CheckChild0Same, 1,
    2617             : /*  5450*/                  OPC_MoveParent,
    2618             : /*  5451*/                  OPC_MoveChild1,
    2619             : /*  5452*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2620             : /*  5455*/                  OPC_CheckChild0Same, 0,
    2621             : /*  5457*/                  OPC_MoveParent,
    2622             : /*  5458*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2623             : /*  5460*/                  OPC_MoveParent,
    2624             : /*  5461*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2625             : /*  5463*/                  OPC_MoveParent,
    2626             : /*  5464*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2627             : /*  5466*/                  OPC_MoveParent,
    2628             : /*  5467*/                  OPC_MoveChild1,
    2629             : /*  5468*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2630             : /*  5471*/                  OPC_MoveChild0,
    2631             : /*  5472*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2632             : /*  5475*/                  OPC_MoveChild0,
    2633             : /*  5476*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2634             : /*  5479*/                  OPC_Scope, 50|128,1/*178*/, /*->5660*/ // 2 children in Scope
    2635             : /*  5482*/                    OPC_CheckChild0Same, 1,
    2636             : /*  5484*/                    OPC_CheckChild1Integer, 16, 
    2637             : /*  5486*/                    OPC_CheckChild1Type, MVT::i32,
    2638             : /*  5488*/                    OPC_MoveParent,
    2639             : /*  5489*/                    OPC_MoveParent,
    2640             : /*  5490*/                    OPC_MoveChild1,
    2641             : /*  5491*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2642             : /*  5494*/                    OPC_MoveChild0,
    2643             : /*  5495*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2644             : /*  5498*/                    OPC_CheckChild0Same, 0,
    2645             : /*  5500*/                    OPC_CheckChild1Integer, 16, 
    2646             : /*  5502*/                    OPC_CheckChild1Type, MVT::i32,
    2647             : /*  5504*/                    OPC_MoveParent,
    2648             : /*  5505*/                    OPC_MoveParent,
    2649             : /*  5506*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2650             : /*  5508*/                    OPC_MoveParent,
    2651             : /*  5509*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2652             : /*  5511*/                    OPC_MoveParent,
    2653             : /*  5512*/                    OPC_MoveChild1,
    2654             : /*  5513*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2655             : /*  5516*/                    OPC_MoveChild0,
    2656             : /*  5517*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2657             : /*  5520*/                    OPC_Scope, 68, /*->5590*/ // 2 children in Scope
    2658             : /*  5522*/                      OPC_CheckChild0Same, 1,
    2659             : /*  5524*/                      OPC_CheckChild1Integer, 24, 
    2660             : /*  5526*/                      OPC_CheckChild1Type, MVT::i32,
    2661             : /*  5528*/                      OPC_MoveParent,
    2662             : /*  5529*/                      OPC_MoveChild1,
    2663             : /*  5530*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2664             : /*  5533*/                      OPC_CheckChild0Same, 0,
    2665             : /*  5535*/                      OPC_CheckChild1Integer, 24, 
    2666             : /*  5537*/                      OPC_CheckChild1Type, MVT::i32,
    2667             : /*  5539*/                      OPC_MoveParent,
    2668             : /*  5540*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2669             : /*  5542*/                      OPC_MoveParent,
    2670             : /*  5543*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2671             : /*  5545*/                      OPC_CheckType, MVT::i32,
    2672             : /*  5547*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2673             : /*  5549*/                      OPC_EmitInteger, MVT::i32, 8, 
    2674             : /*  5552*/                      OPC_EmitInteger, MVT::i32, 8, 
    2675             : /*  5555*/                      OPC_EmitInteger, MVT::i32, 8, 
    2676             : /*  5558*/                      OPC_EmitInteger, MVT::i1, 0, 
    2677             : /*  5561*/                      OPC_EmitInteger, MVT::i32, 0, 
    2678             : /*  5564*/                      OPC_EmitInteger, MVT::i32, 0, 
    2679             : /*  5567*/                      OPC_EmitInteger, MVT::i32, 0, 
    2680             : /*  5570*/                      OPC_EmitInteger, MVT::i32, 0, 
    2681             : /*  5573*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2682             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2683             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2684             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2685             : /*  5590*/                    /*Scope*/ 68, /*->5659*/
    2686             : /*  5591*/                      OPC_CheckChild0Same, 0,
    2687             : /*  5593*/                      OPC_CheckChild1Integer, 24, 
    2688             : /*  5595*/                      OPC_CheckChild1Type, MVT::i32,
    2689             : /*  5597*/                      OPC_MoveParent,
    2690             : /*  5598*/                      OPC_MoveChild1,
    2691             : /*  5599*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2692             : /*  5602*/                      OPC_CheckChild0Same, 1,
    2693             : /*  5604*/                      OPC_CheckChild1Integer, 24, 
    2694             : /*  5606*/                      OPC_CheckChild1Type, MVT::i32,
    2695             : /*  5608*/                      OPC_MoveParent,
    2696             : /*  5609*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2697             : /*  5611*/                      OPC_MoveParent,
    2698             : /*  5612*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2699             : /*  5614*/                      OPC_CheckType, MVT::i32,
    2700             : /*  5616*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2701             : /*  5618*/                      OPC_EmitInteger, MVT::i32, 8, 
    2702             : /*  5621*/                      OPC_EmitInteger, MVT::i32, 8, 
    2703             : /*  5624*/                      OPC_EmitInteger, MVT::i32, 8, 
    2704             : /*  5627*/                      OPC_EmitInteger, MVT::i1, 0, 
    2705             : /*  5630*/                      OPC_EmitInteger, MVT::i32, 0, 
    2706             : /*  5633*/                      OPC_EmitInteger, MVT::i32, 0, 
    2707             : /*  5636*/                      OPC_EmitInteger, MVT::i32, 0, 
    2708             : /*  5639*/                      OPC_EmitInteger, MVT::i32, 0, 
    2709             : /*  5642*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2710             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2711             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2712             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2713             : /*  5659*/                    0, /*End of Scope*/
    2714             : /*  5660*/                  /*Scope*/ 50|128,1/*178*/, /*->5840*/
    2715             : /*  5662*/                    OPC_CheckChild0Same, 0,
    2716             : /*  5664*/                    OPC_CheckChild1Integer, 16, 
    2717             : /*  5666*/                    OPC_CheckChild1Type, MVT::i32,
    2718             : /*  5668*/                    OPC_MoveParent,
    2719             : /*  5669*/                    OPC_MoveParent,
    2720             : /*  5670*/                    OPC_MoveChild1,
    2721             : /*  5671*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2722             : /*  5674*/                    OPC_MoveChild0,
    2723             : /*  5675*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2724             : /*  5678*/                    OPC_CheckChild0Same, 1,
    2725             : /*  5680*/                    OPC_CheckChild1Integer, 16, 
    2726             : /*  5682*/                    OPC_CheckChild1Type, MVT::i32,
    2727             : /*  5684*/                    OPC_MoveParent,
    2728             : /*  5685*/                    OPC_MoveParent,
    2729             : /*  5686*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2730             : /*  5688*/                    OPC_MoveParent,
    2731             : /*  5689*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2732             : /*  5691*/                    OPC_MoveParent,
    2733             : /*  5692*/                    OPC_MoveChild1,
    2734             : /*  5693*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2735             : /*  5696*/                    OPC_MoveChild0,
    2736             : /*  5697*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2737             : /*  5700*/                    OPC_Scope, 68, /*->5770*/ // 2 children in Scope
    2738             : /*  5702*/                      OPC_CheckChild0Same, 1,
    2739             : /*  5704*/                      OPC_CheckChild1Integer, 24, 
    2740             : /*  5706*/                      OPC_CheckChild1Type, MVT::i32,
    2741             : /*  5708*/                      OPC_MoveParent,
    2742             : /*  5709*/                      OPC_MoveChild1,
    2743             : /*  5710*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2744             : /*  5713*/                      OPC_CheckChild0Same, 0,
    2745             : /*  5715*/                      OPC_CheckChild1Integer, 24, 
    2746             : /*  5717*/                      OPC_CheckChild1Type, MVT::i32,
    2747             : /*  5719*/                      OPC_MoveParent,
    2748             : /*  5720*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2749             : /*  5722*/                      OPC_MoveParent,
    2750             : /*  5723*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2751             : /*  5725*/                      OPC_CheckType, MVT::i32,
    2752             : /*  5727*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2753             : /*  5729*/                      OPC_EmitInteger, MVT::i32, 8, 
    2754             : /*  5732*/                      OPC_EmitInteger, MVT::i32, 8, 
    2755             : /*  5735*/                      OPC_EmitInteger, MVT::i32, 8, 
    2756             : /*  5738*/                      OPC_EmitInteger, MVT::i1, 0, 
    2757             : /*  5741*/                      OPC_EmitInteger, MVT::i32, 0, 
    2758             : /*  5744*/                      OPC_EmitInteger, MVT::i32, 0, 
    2759             : /*  5747*/                      OPC_EmitInteger, MVT::i32, 0, 
    2760             : /*  5750*/                      OPC_EmitInteger, MVT::i32, 0, 
    2761             : /*  5753*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2762             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2763             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2764             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2765             : /*  5770*/                    /*Scope*/ 68, /*->5839*/
    2766             : /*  5771*/                      OPC_CheckChild0Same, 0,
    2767             : /*  5773*/                      OPC_CheckChild1Integer, 24, 
    2768             : /*  5775*/                      OPC_CheckChild1Type, MVT::i32,
    2769             : /*  5777*/                      OPC_MoveParent,
    2770             : /*  5778*/                      OPC_MoveChild1,
    2771             : /*  5779*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2772             : /*  5782*/                      OPC_CheckChild0Same, 1,
    2773             : /*  5784*/                      OPC_CheckChild1Integer, 24, 
    2774             : /*  5786*/                      OPC_CheckChild1Type, MVT::i32,
    2775             : /*  5788*/                      OPC_MoveParent,
    2776             : /*  5789*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2777             : /*  5791*/                      OPC_MoveParent,
    2778             : /*  5792*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2779             : /*  5794*/                      OPC_CheckType, MVT::i32,
    2780             : /*  5796*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2781             : /*  5798*/                      OPC_EmitInteger, MVT::i32, 8, 
    2782             : /*  5801*/                      OPC_EmitInteger, MVT::i32, 8, 
    2783             : /*  5804*/                      OPC_EmitInteger, MVT::i32, 8, 
    2784             : /*  5807*/                      OPC_EmitInteger, MVT::i1, 0, 
    2785             : /*  5810*/                      OPC_EmitInteger, MVT::i32, 0, 
    2786             : /*  5813*/                      OPC_EmitInteger, MVT::i32, 0, 
    2787             : /*  5816*/                      OPC_EmitInteger, MVT::i32, 0, 
    2788             : /*  5819*/                      OPC_EmitInteger, MVT::i32, 0, 
    2789             : /*  5822*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2790             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2791             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2792             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2793             : /*  5839*/                    0, /*End of Scope*/
    2794             : /*  5840*/                  0, /*End of Scope*/
    2795             : /*  5841*/                /*Scope*/ 9|128,3/*393*/, /*->6236*/
    2796             : /*  5843*/                  OPC_CheckChild0Same, 0,
    2797             : /*  5845*/                  OPC_MoveParent,
    2798             : /*  5846*/                  OPC_MoveChild1,
    2799             : /*  5847*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2800             : /*  5850*/                  OPC_CheckChild0Same, 1,
    2801             : /*  5852*/                  OPC_MoveParent,
    2802             : /*  5853*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2803             : /*  5855*/                  OPC_MoveParent,
    2804             : /*  5856*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2805             : /*  5858*/                  OPC_MoveParent,
    2806             : /*  5859*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2807             : /*  5861*/                  OPC_MoveParent,
    2808             : /*  5862*/                  OPC_MoveChild1,
    2809             : /*  5863*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2810             : /*  5866*/                  OPC_MoveChild0,
    2811             : /*  5867*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2812             : /*  5870*/                  OPC_MoveChild0,
    2813             : /*  5871*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2814             : /*  5874*/                  OPC_Scope, 50|128,1/*178*/, /*->6055*/ // 2 children in Scope
    2815             : /*  5877*/                    OPC_CheckChild0Same, 1,
    2816             : /*  5879*/                    OPC_CheckChild1Integer, 16, 
    2817             : /*  5881*/                    OPC_CheckChild1Type, MVT::i32,
    2818             : /*  5883*/                    OPC_MoveParent,
    2819             : /*  5884*/                    OPC_MoveParent,
    2820             : /*  5885*/                    OPC_MoveChild1,
    2821             : /*  5886*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2822             : /*  5889*/                    OPC_MoveChild0,
    2823             : /*  5890*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2824             : /*  5893*/                    OPC_CheckChild0Same, 0,
    2825             : /*  5895*/                    OPC_CheckChild1Integer, 16, 
    2826             : /*  5897*/                    OPC_CheckChild1Type, MVT::i32,
    2827             : /*  5899*/                    OPC_MoveParent,
    2828             : /*  5900*/                    OPC_MoveParent,
    2829             : /*  5901*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2830             : /*  5903*/                    OPC_MoveParent,
    2831             : /*  5904*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2832             : /*  5906*/                    OPC_MoveParent,
    2833             : /*  5907*/                    OPC_MoveChild1,
    2834             : /*  5908*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2835             : /*  5911*/                    OPC_MoveChild0,
    2836             : /*  5912*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2837             : /*  5915*/                    OPC_Scope, 68, /*->5985*/ // 2 children in Scope
    2838             : /*  5917*/                      OPC_CheckChild0Same, 1,
    2839             : /*  5919*/                      OPC_CheckChild1Integer, 24, 
    2840             : /*  5921*/                      OPC_CheckChild1Type, MVT::i32,
    2841             : /*  5923*/                      OPC_MoveParent,
    2842             : /*  5924*/                      OPC_MoveChild1,
    2843             : /*  5925*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2844             : /*  5928*/                      OPC_CheckChild0Same, 0,
    2845             : /*  5930*/                      OPC_CheckChild1Integer, 24, 
    2846             : /*  5932*/                      OPC_CheckChild1Type, MVT::i32,
    2847             : /*  5934*/                      OPC_MoveParent,
    2848             : /*  5935*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2849             : /*  5937*/                      OPC_MoveParent,
    2850             : /*  5938*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2851             : /*  5940*/                      OPC_CheckType, MVT::i32,
    2852             : /*  5942*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2853             : /*  5944*/                      OPC_EmitInteger, MVT::i32, 8, 
    2854             : /*  5947*/                      OPC_EmitInteger, MVT::i32, 8, 
    2855             : /*  5950*/                      OPC_EmitInteger, MVT::i32, 8, 
    2856             : /*  5953*/                      OPC_EmitInteger, MVT::i1, 0, 
    2857             : /*  5956*/                      OPC_EmitInteger, MVT::i32, 0, 
    2858             : /*  5959*/                      OPC_EmitInteger, MVT::i32, 0, 
    2859             : /*  5962*/                      OPC_EmitInteger, MVT::i32, 0, 
    2860             : /*  5965*/                      OPC_EmitInteger, MVT::i32, 0, 
    2861             : /*  5968*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2862             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2863             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2864             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2865             : /*  5985*/                    /*Scope*/ 68, /*->6054*/
    2866             : /*  5986*/                      OPC_CheckChild0Same, 0,
    2867             : /*  5988*/                      OPC_CheckChild1Integer, 24, 
    2868             : /*  5990*/                      OPC_CheckChild1Type, MVT::i32,
    2869             : /*  5992*/                      OPC_MoveParent,
    2870             : /*  5993*/                      OPC_MoveChild1,
    2871             : /*  5994*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2872             : /*  5997*/                      OPC_CheckChild0Same, 1,
    2873             : /*  5999*/                      OPC_CheckChild1Integer, 24, 
    2874             : /*  6001*/                      OPC_CheckChild1Type, MVT::i32,
    2875             : /*  6003*/                      OPC_MoveParent,
    2876             : /*  6004*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2877             : /*  6006*/                      OPC_MoveParent,
    2878             : /*  6007*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2879             : /*  6009*/                      OPC_CheckType, MVT::i32,
    2880             : /*  6011*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2881             : /*  6013*/                      OPC_EmitInteger, MVT::i32, 8, 
    2882             : /*  6016*/                      OPC_EmitInteger, MVT::i32, 8, 
    2883             : /*  6019*/                      OPC_EmitInteger, MVT::i32, 8, 
    2884             : /*  6022*/                      OPC_EmitInteger, MVT::i1, 0, 
    2885             : /*  6025*/                      OPC_EmitInteger, MVT::i32, 0, 
    2886             : /*  6028*/                      OPC_EmitInteger, MVT::i32, 0, 
    2887             : /*  6031*/                      OPC_EmitInteger, MVT::i32, 0, 
    2888             : /*  6034*/                      OPC_EmitInteger, MVT::i32, 0, 
    2889             : /*  6037*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2890             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2891             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2892             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2893             : /*  6054*/                    0, /*End of Scope*/
    2894             : /*  6055*/                  /*Scope*/ 50|128,1/*178*/, /*->6235*/
    2895             : /*  6057*/                    OPC_CheckChild0Same, 0,
    2896             : /*  6059*/                    OPC_CheckChild1Integer, 16, 
    2897             : /*  6061*/                    OPC_CheckChild1Type, MVT::i32,
    2898             : /*  6063*/                    OPC_MoveParent,
    2899             : /*  6064*/                    OPC_MoveParent,
    2900             : /*  6065*/                    OPC_MoveChild1,
    2901             : /*  6066*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    2902             : /*  6069*/                    OPC_MoveChild0,
    2903             : /*  6070*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2904             : /*  6073*/                    OPC_CheckChild0Same, 1,
    2905             : /*  6075*/                    OPC_CheckChild1Integer, 16, 
    2906             : /*  6077*/                    OPC_CheckChild1Type, MVT::i32,
    2907             : /*  6079*/                    OPC_MoveParent,
    2908             : /*  6080*/                    OPC_MoveParent,
    2909             : /*  6081*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2910             : /*  6083*/                    OPC_MoveParent,
    2911             : /*  6084*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2912             : /*  6086*/                    OPC_MoveParent,
    2913             : /*  6087*/                    OPC_MoveChild1,
    2914             : /*  6088*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2915             : /*  6091*/                    OPC_MoveChild0,
    2916             : /*  6092*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2917             : /*  6095*/                    OPC_Scope, 68, /*->6165*/ // 2 children in Scope
    2918             : /*  6097*/                      OPC_CheckChild0Same, 1,
    2919             : /*  6099*/                      OPC_CheckChild1Integer, 24, 
    2920             : /*  6101*/                      OPC_CheckChild1Type, MVT::i32,
    2921             : /*  6103*/                      OPC_MoveParent,
    2922             : /*  6104*/                      OPC_MoveChild1,
    2923             : /*  6105*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2924             : /*  6108*/                      OPC_CheckChild0Same, 0,
    2925             : /*  6110*/                      OPC_CheckChild1Integer, 24, 
    2926             : /*  6112*/                      OPC_CheckChild1Type, MVT::i32,
    2927             : /*  6114*/                      OPC_MoveParent,
    2928             : /*  6115*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2929             : /*  6117*/                      OPC_MoveParent,
    2930             : /*  6118*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2931             : /*  6120*/                      OPC_CheckType, MVT::i32,
    2932             : /*  6122*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2933             : /*  6124*/                      OPC_EmitInteger, MVT::i32, 8, 
    2934             : /*  6127*/                      OPC_EmitInteger, MVT::i32, 8, 
    2935             : /*  6130*/                      OPC_EmitInteger, MVT::i32, 8, 
    2936             : /*  6133*/                      OPC_EmitInteger, MVT::i1, 0, 
    2937             : /*  6136*/                      OPC_EmitInteger, MVT::i32, 0, 
    2938             : /*  6139*/                      OPC_EmitInteger, MVT::i32, 0, 
    2939             : /*  6142*/                      OPC_EmitInteger, MVT::i32, 0, 
    2940             : /*  6145*/                      OPC_EmitInteger, MVT::i32, 0, 
    2941             : /*  6148*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2942             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2943             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2944             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2945             : /*  6165*/                    /*Scope*/ 68, /*->6234*/
    2946             : /*  6166*/                      OPC_CheckChild0Same, 0,
    2947             : /*  6168*/                      OPC_CheckChild1Integer, 24, 
    2948             : /*  6170*/                      OPC_CheckChild1Type, MVT::i32,
    2949             : /*  6172*/                      OPC_MoveParent,
    2950             : /*  6173*/                      OPC_MoveChild1,
    2951             : /*  6174*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    2952             : /*  6177*/                      OPC_CheckChild0Same, 1,
    2953             : /*  6179*/                      OPC_CheckChild1Integer, 24, 
    2954             : /*  6181*/                      OPC_CheckChild1Type, MVT::i32,
    2955             : /*  6183*/                      OPC_MoveParent,
    2956             : /*  6184*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2957             : /*  6186*/                      OPC_MoveParent,
    2958             : /*  6187*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2959             : /*  6189*/                      OPC_CheckType, MVT::i32,
    2960             : /*  6191*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    2961             : /*  6193*/                      OPC_EmitInteger, MVT::i32, 8, 
    2962             : /*  6196*/                      OPC_EmitInteger, MVT::i32, 8, 
    2963             : /*  6199*/                      OPC_EmitInteger, MVT::i32, 8, 
    2964             : /*  6202*/                      OPC_EmitInteger, MVT::i1, 0, 
    2965             : /*  6205*/                      OPC_EmitInteger, MVT::i32, 0, 
    2966             : /*  6208*/                      OPC_EmitInteger, MVT::i32, 0, 
    2967             : /*  6211*/                      OPC_EmitInteger, MVT::i32, 0, 
    2968             : /*  6214*/                      OPC_EmitInteger, MVT::i32, 0, 
    2969             : /*  6217*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    2970             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    2971             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    2972             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    2973             : /*  6234*/                    0, /*End of Scope*/
    2974             : /*  6235*/                  0, /*End of Scope*/
    2975             : /*  6236*/                0, /*End of Scope*/
    2976             : /*  6237*/              /*Scope*/ 34|128,6/*802*/, /*->7041*/
    2977             : /*  6239*/                OPC_MoveChild0,
    2978             : /*  6240*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2979             : /*  6243*/                OPC_MoveChild0,
    2980             : /*  6244*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    2981             : /*  6247*/                OPC_Scope, 10|128,3/*394*/, /*->6644*/ // 2 children in Scope
    2982             : /*  6250*/                  OPC_CheckChild0Same, 1,
    2983             : /*  6252*/                  OPC_MoveParent,
    2984             : /*  6253*/                  OPC_MoveChild1,
    2985             : /*  6254*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2986             : /*  6257*/                  OPC_CheckChild0Same, 0,
    2987             : /*  6259*/                  OPC_MoveParent,
    2988             : /*  6260*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    2989             : /*  6262*/                  OPC_MoveParent,
    2990             : /*  6263*/                  OPC_RecordChild1, // #2 = $src2
    2991             : /*  6264*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2992             : /*  6266*/                  OPC_MoveParent,
    2993             : /*  6267*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    2994             : /*  6269*/                  OPC_MoveParent,
    2995             : /*  6270*/                  OPC_MoveChild1,
    2996             : /*  6271*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    2997             : /*  6274*/                  OPC_MoveChild0,
    2998             : /*  6275*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    2999             : /*  6278*/                  OPC_MoveChild0,
    3000             : /*  6279*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3001             : /*  6282*/                  OPC_Scope, 50|128,1/*178*/, /*->6463*/ // 2 children in Scope
    3002             : /*  6285*/                    OPC_CheckChild0Same, 1,
    3003             : /*  6287*/                    OPC_CheckChild1Integer, 16, 
    3004             : /*  6289*/                    OPC_CheckChild1Type, MVT::i32,
    3005             : /*  6291*/                    OPC_MoveParent,
    3006             : /*  6292*/                    OPC_MoveParent,
    3007             : /*  6293*/                    OPC_MoveChild1,
    3008             : /*  6294*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3009             : /*  6297*/                    OPC_MoveChild0,
    3010             : /*  6298*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3011             : /*  6301*/                    OPC_CheckChild0Same, 0,
    3012             : /*  6303*/                    OPC_CheckChild1Integer, 16, 
    3013             : /*  6305*/                    OPC_CheckChild1Type, MVT::i32,
    3014             : /*  6307*/                    OPC_MoveParent,
    3015             : /*  6308*/                    OPC_MoveParent,
    3016             : /*  6309*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3017             : /*  6311*/                    OPC_MoveParent,
    3018             : /*  6312*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3019             : /*  6314*/                    OPC_MoveParent,
    3020             : /*  6315*/                    OPC_MoveChild1,
    3021             : /*  6316*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3022             : /*  6319*/                    OPC_MoveChild0,
    3023             : /*  6320*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3024             : /*  6323*/                    OPC_Scope, 68, /*->6393*/ // 2 children in Scope
    3025             : /*  6325*/                      OPC_CheckChild0Same, 1,
    3026             : /*  6327*/                      OPC_CheckChild1Integer, 24, 
    3027             : /*  6329*/                      OPC_CheckChild1Type, MVT::i32,
    3028             : /*  6331*/                      OPC_MoveParent,
    3029             : /*  6332*/                      OPC_MoveChild1,
    3030             : /*  6333*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3031             : /*  6336*/                      OPC_CheckChild0Same, 0,
    3032             : /*  6338*/                      OPC_CheckChild1Integer, 24, 
    3033             : /*  6340*/                      OPC_CheckChild1Type, MVT::i32,
    3034             : /*  6342*/                      OPC_MoveParent,
    3035             : /*  6343*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3036             : /*  6345*/                      OPC_MoveParent,
    3037             : /*  6346*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3038             : /*  6348*/                      OPC_CheckType, MVT::i32,
    3039             : /*  6350*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3040             : /*  6352*/                      OPC_EmitInteger, MVT::i32, 8, 
    3041             : /*  6355*/                      OPC_EmitInteger, MVT::i32, 8, 
    3042             : /*  6358*/                      OPC_EmitInteger, MVT::i32, 8, 
    3043             : /*  6361*/                      OPC_EmitInteger, MVT::i1, 0, 
    3044             : /*  6364*/                      OPC_EmitInteger, MVT::i32, 0, 
    3045             : /*  6367*/                      OPC_EmitInteger, MVT::i32, 0, 
    3046             : /*  6370*/                      OPC_EmitInteger, MVT::i32, 0, 
    3047             : /*  6373*/                      OPC_EmitInteger, MVT::i32, 0, 
    3048             : /*  6376*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3049             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3050             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3051             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3052             : /*  6393*/                    /*Scope*/ 68, /*->6462*/
    3053             : /*  6394*/                      OPC_CheckChild0Same, 0,
    3054             : /*  6396*/                      OPC_CheckChild1Integer, 24, 
    3055             : /*  6398*/                      OPC_CheckChild1Type, MVT::i32,
    3056             : /*  6400*/                      OPC_MoveParent,
    3057             : /*  6401*/                      OPC_MoveChild1,
    3058             : /*  6402*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3059             : /*  6405*/                      OPC_CheckChild0Same, 1,
    3060             : /*  6407*/                      OPC_CheckChild1Integer, 24, 
    3061             : /*  6409*/                      OPC_CheckChild1Type, MVT::i32,
    3062             : /*  6411*/                      OPC_MoveParent,
    3063             : /*  6412*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3064             : /*  6414*/                      OPC_MoveParent,
    3065             : /*  6415*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3066             : /*  6417*/                      OPC_CheckType, MVT::i32,
    3067             : /*  6419*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3068             : /*  6421*/                      OPC_EmitInteger, MVT::i32, 8, 
    3069             : /*  6424*/                      OPC_EmitInteger, MVT::i32, 8, 
    3070             : /*  6427*/                      OPC_EmitInteger, MVT::i32, 8, 
    3071             : /*  6430*/                      OPC_EmitInteger, MVT::i1, 0, 
    3072             : /*  6433*/                      OPC_EmitInteger, MVT::i32, 0, 
    3073             : /*  6436*/                      OPC_EmitInteger, MVT::i32, 0, 
    3074             : /*  6439*/                      OPC_EmitInteger, MVT::i32, 0, 
    3075             : /*  6442*/                      OPC_EmitInteger, MVT::i32, 0, 
    3076             : /*  6445*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3077             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3078             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3079             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3080             : /*  6462*/                    0, /*End of Scope*/
    3081             : /*  6463*/                  /*Scope*/ 50|128,1/*178*/, /*->6643*/
    3082             : /*  6465*/                    OPC_CheckChild0Same, 0,
    3083             : /*  6467*/                    OPC_CheckChild1Integer, 16, 
    3084             : /*  6469*/                    OPC_CheckChild1Type, MVT::i32,
    3085             : /*  6471*/                    OPC_MoveParent,
    3086             : /*  6472*/                    OPC_MoveParent,
    3087             : /*  6473*/                    OPC_MoveChild1,
    3088             : /*  6474*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3089             : /*  6477*/                    OPC_MoveChild0,
    3090             : /*  6478*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3091             : /*  6481*/                    OPC_CheckChild0Same, 1,
    3092             : /*  6483*/                    OPC_CheckChild1Integer, 16, 
    3093             : /*  6485*/                    OPC_CheckChild1Type, MVT::i32,
    3094             : /*  6487*/                    OPC_MoveParent,
    3095             : /*  6488*/                    OPC_MoveParent,
    3096             : /*  6489*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3097             : /*  6491*/                    OPC_MoveParent,
    3098             : /*  6492*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3099             : /*  6494*/                    OPC_MoveParent,
    3100             : /*  6495*/                    OPC_MoveChild1,
    3101             : /*  6496*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3102             : /*  6499*/                    OPC_MoveChild0,
    3103             : /*  6500*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3104             : /*  6503*/                    OPC_Scope, 68, /*->6573*/ // 2 children in Scope
    3105             : /*  6505*/                      OPC_CheckChild0Same, 1,
    3106             : /*  6507*/                      OPC_CheckChild1Integer, 24, 
    3107             : /*  6509*/                      OPC_CheckChild1Type, MVT::i32,
    3108             : /*  6511*/                      OPC_MoveParent,
    3109             : /*  6512*/                      OPC_MoveChild1,
    3110             : /*  6513*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3111             : /*  6516*/                      OPC_CheckChild0Same, 0,
    3112             : /*  6518*/                      OPC_CheckChild1Integer, 24, 
    3113             : /*  6520*/                      OPC_CheckChild1Type, MVT::i32,
    3114             : /*  6522*/                      OPC_MoveParent,
    3115             : /*  6523*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3116             : /*  6525*/                      OPC_MoveParent,
    3117             : /*  6526*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3118             : /*  6528*/                      OPC_CheckType, MVT::i32,
    3119             : /*  6530*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3120             : /*  6532*/                      OPC_EmitInteger, MVT::i32, 8, 
    3121             : /*  6535*/                      OPC_EmitInteger, MVT::i32, 8, 
    3122             : /*  6538*/                      OPC_EmitInteger, MVT::i32, 8, 
    3123             : /*  6541*/                      OPC_EmitInteger, MVT::i1, 0, 
    3124             : /*  6544*/                      OPC_EmitInteger, MVT::i32, 0, 
    3125             : /*  6547*/                      OPC_EmitInteger, MVT::i32, 0, 
    3126             : /*  6550*/                      OPC_EmitInteger, MVT::i32, 0, 
    3127             : /*  6553*/                      OPC_EmitInteger, MVT::i32, 0, 
    3128             : /*  6556*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3129             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3130             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3131             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3132             : /*  6573*/                    /*Scope*/ 68, /*->6642*/
    3133             : /*  6574*/                      OPC_CheckChild0Same, 0,
    3134             : /*  6576*/                      OPC_CheckChild1Integer, 24, 
    3135             : /*  6578*/                      OPC_CheckChild1Type, MVT::i32,
    3136             : /*  6580*/                      OPC_MoveParent,
    3137             : /*  6581*/                      OPC_MoveChild1,
    3138             : /*  6582*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3139             : /*  6585*/                      OPC_CheckChild0Same, 1,
    3140             : /*  6587*/                      OPC_CheckChild1Integer, 24, 
    3141             : /*  6589*/                      OPC_CheckChild1Type, MVT::i32,
    3142             : /*  6591*/                      OPC_MoveParent,
    3143             : /*  6592*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3144             : /*  6594*/                      OPC_MoveParent,
    3145             : /*  6595*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3146             : /*  6597*/                      OPC_CheckType, MVT::i32,
    3147             : /*  6599*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3148             : /*  6601*/                      OPC_EmitInteger, MVT::i32, 8, 
    3149             : /*  6604*/                      OPC_EmitInteger, MVT::i32, 8, 
    3150             : /*  6607*/                      OPC_EmitInteger, MVT::i32, 8, 
    3151             : /*  6610*/                      OPC_EmitInteger, MVT::i1, 0, 
    3152             : /*  6613*/                      OPC_EmitInteger, MVT::i32, 0, 
    3153             : /*  6616*/                      OPC_EmitInteger, MVT::i32, 0, 
    3154             : /*  6619*/                      OPC_EmitInteger, MVT::i32, 0, 
    3155             : /*  6622*/                      OPC_EmitInteger, MVT::i32, 0, 
    3156             : /*  6625*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3157             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3158             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3159             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3160             : /*  6642*/                    0, /*End of Scope*/
    3161             : /*  6643*/                  0, /*End of Scope*/
    3162             : /*  6644*/                /*Scope*/ 10|128,3/*394*/, /*->7040*/
    3163             : /*  6646*/                  OPC_CheckChild0Same, 0,
    3164             : /*  6648*/                  OPC_MoveParent,
    3165             : /*  6649*/                  OPC_MoveChild1,
    3166             : /*  6650*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    3167             : /*  6653*/                  OPC_CheckChild0Same, 1,
    3168             : /*  6655*/                  OPC_MoveParent,
    3169             : /*  6656*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3170             : /*  6658*/                  OPC_MoveParent,
    3171             : /*  6659*/                  OPC_RecordChild1, // #2 = $src2
    3172             : /*  6660*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3173             : /*  6662*/                  OPC_MoveParent,
    3174             : /*  6663*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3175             : /*  6665*/                  OPC_MoveParent,
    3176             : /*  6666*/                  OPC_MoveChild1,
    3177             : /*  6667*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3178             : /*  6670*/                  OPC_MoveChild0,
    3179             : /*  6671*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    3180             : /*  6674*/                  OPC_MoveChild0,
    3181             : /*  6675*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3182             : /*  6678*/                  OPC_Scope, 50|128,1/*178*/, /*->6859*/ // 2 children in Scope
    3183             : /*  6681*/                    OPC_CheckChild0Same, 1,
    3184             : /*  6683*/                    OPC_CheckChild1Integer, 16, 
    3185             : /*  6685*/                    OPC_CheckChild1Type, MVT::i32,
    3186             : /*  6687*/                    OPC_MoveParent,
    3187             : /*  6688*/                    OPC_MoveParent,
    3188             : /*  6689*/                    OPC_MoveChild1,
    3189             : /*  6690*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3190             : /*  6693*/                    OPC_MoveChild0,
    3191             : /*  6694*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3192             : /*  6697*/                    OPC_CheckChild0Same, 0,
    3193             : /*  6699*/                    OPC_CheckChild1Integer, 16, 
    3194             : /*  6701*/                    OPC_CheckChild1Type, MVT::i32,
    3195             : /*  6703*/                    OPC_MoveParent,
    3196             : /*  6704*/                    OPC_MoveParent,
    3197             : /*  6705*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3198             : /*  6707*/                    OPC_MoveParent,
    3199             : /*  6708*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3200             : /*  6710*/                    OPC_MoveParent,
    3201             : /*  6711*/                    OPC_MoveChild1,
    3202             : /*  6712*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3203             : /*  6715*/                    OPC_MoveChild0,
    3204             : /*  6716*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3205             : /*  6719*/                    OPC_Scope, 68, /*->6789*/ // 2 children in Scope
    3206             : /*  6721*/                      OPC_CheckChild0Same, 1,
    3207             : /*  6723*/                      OPC_CheckChild1Integer, 24, 
    3208             : /*  6725*/                      OPC_CheckChild1Type, MVT::i32,
    3209             : /*  6727*/                      OPC_MoveParent,
    3210             : /*  6728*/                      OPC_MoveChild1,
    3211             : /*  6729*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3212             : /*  6732*/                      OPC_CheckChild0Same, 0,
    3213             : /*  6734*/                      OPC_CheckChild1Integer, 24, 
    3214             : /*  6736*/                      OPC_CheckChild1Type, MVT::i32,
    3215             : /*  6738*/                      OPC_MoveParent,
    3216             : /*  6739*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3217             : /*  6741*/                      OPC_MoveParent,
    3218             : /*  6742*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3219             : /*  6744*/                      OPC_CheckType, MVT::i32,
    3220             : /*  6746*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3221             : /*  6748*/                      OPC_EmitInteger, MVT::i32, 8, 
    3222             : /*  6751*/                      OPC_EmitInteger, MVT::i32, 8, 
    3223             : /*  6754*/                      OPC_EmitInteger, MVT::i32, 8, 
    3224             : /*  6757*/                      OPC_EmitInteger, MVT::i1, 0, 
    3225             : /*  6760*/                      OPC_EmitInteger, MVT::i32, 0, 
    3226             : /*  6763*/                      OPC_EmitInteger, MVT::i32, 0, 
    3227             : /*  6766*/                      OPC_EmitInteger, MVT::i32, 0, 
    3228             : /*  6769*/                      OPC_EmitInteger, MVT::i32, 0, 
    3229             : /*  6772*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3230             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3231             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3232             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3233             : /*  6789*/                    /*Scope*/ 68, /*->6858*/
    3234             : /*  6790*/                      OPC_CheckChild0Same, 0,
    3235             : /*  6792*/                      OPC_CheckChild1Integer, 24, 
    3236             : /*  6794*/                      OPC_CheckChild1Type, MVT::i32,
    3237             : /*  6796*/                      OPC_MoveParent,
    3238             : /*  6797*/                      OPC_MoveChild1,
    3239             : /*  6798*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3240             : /*  6801*/                      OPC_CheckChild0Same, 1,
    3241             : /*  6803*/                      OPC_CheckChild1Integer, 24, 
    3242             : /*  6805*/                      OPC_CheckChild1Type, MVT::i32,
    3243             : /*  6807*/                      OPC_MoveParent,
    3244             : /*  6808*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3245             : /*  6810*/                      OPC_MoveParent,
    3246             : /*  6811*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3247             : /*  6813*/                      OPC_CheckType, MVT::i32,
    3248             : /*  6815*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3249             : /*  6817*/                      OPC_EmitInteger, MVT::i32, 8, 
    3250             : /*  6820*/                      OPC_EmitInteger, MVT::i32, 8, 
    3251             : /*  6823*/                      OPC_EmitInteger, MVT::i32, 8, 
    3252             : /*  6826*/                      OPC_EmitInteger, MVT::i1, 0, 
    3253             : /*  6829*/                      OPC_EmitInteger, MVT::i32, 0, 
    3254             : /*  6832*/                      OPC_EmitInteger, MVT::i32, 0, 
    3255             : /*  6835*/                      OPC_EmitInteger, MVT::i32, 0, 
    3256             : /*  6838*/                      OPC_EmitInteger, MVT::i32, 0, 
    3257             : /*  6841*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3258             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3259             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3260             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3261             : /*  6858*/                    0, /*End of Scope*/
    3262             : /*  6859*/                  /*Scope*/ 50|128,1/*178*/, /*->7039*/
    3263             : /*  6861*/                    OPC_CheckChild0Same, 0,
    3264             : /*  6863*/                    OPC_CheckChild1Integer, 16, 
    3265             : /*  6865*/                    OPC_CheckChild1Type, MVT::i32,
    3266             : /*  6867*/                    OPC_MoveParent,
    3267             : /*  6868*/                    OPC_MoveParent,
    3268             : /*  6869*/                    OPC_MoveChild1,
    3269             : /*  6870*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3270             : /*  6873*/                    OPC_MoveChild0,
    3271             : /*  6874*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3272             : /*  6877*/                    OPC_CheckChild0Same, 1,
    3273             : /*  6879*/                    OPC_CheckChild1Integer, 16, 
    3274             : /*  6881*/                    OPC_CheckChild1Type, MVT::i32,
    3275             : /*  6883*/                    OPC_MoveParent,
    3276             : /*  6884*/                    OPC_MoveParent,
    3277             : /*  6885*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3278             : /*  6887*/                    OPC_MoveParent,
    3279             : /*  6888*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3280             : /*  6890*/                    OPC_MoveParent,
    3281             : /*  6891*/                    OPC_MoveChild1,
    3282             : /*  6892*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3283             : /*  6895*/                    OPC_MoveChild0,
    3284             : /*  6896*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3285             : /*  6899*/                    OPC_Scope, 68, /*->6969*/ // 2 children in Scope
    3286             : /*  6901*/                      OPC_CheckChild0Same, 1,
    3287             : /*  6903*/                      OPC_CheckChild1Integer, 24, 
    3288             : /*  6905*/                      OPC_CheckChild1Type, MVT::i32,
    3289             : /*  6907*/                      OPC_MoveParent,
    3290             : /*  6908*/                      OPC_MoveChild1,
    3291             : /*  6909*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3292             : /*  6912*/                      OPC_CheckChild0Same, 0,
    3293             : /*  6914*/                      OPC_CheckChild1Integer, 24, 
    3294             : /*  6916*/                      OPC_CheckChild1Type, MVT::i32,
    3295             : /*  6918*/                      OPC_MoveParent,
    3296             : /*  6919*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3297             : /*  6921*/                      OPC_MoveParent,
    3298             : /*  6922*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3299             : /*  6924*/                      OPC_CheckType, MVT::i32,
    3300             : /*  6926*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3301             : /*  6928*/                      OPC_EmitInteger, MVT::i32, 8, 
    3302             : /*  6931*/                      OPC_EmitInteger, MVT::i32, 8, 
    3303             : /*  6934*/                      OPC_EmitInteger, MVT::i32, 8, 
    3304             : /*  6937*/                      OPC_EmitInteger, MVT::i1, 0, 
    3305             : /*  6940*/                      OPC_EmitInteger, MVT::i32, 0, 
    3306             : /*  6943*/                      OPC_EmitInteger, MVT::i32, 0, 
    3307             : /*  6946*/                      OPC_EmitInteger, MVT::i32, 0, 
    3308             : /*  6949*/                      OPC_EmitInteger, MVT::i32, 0, 
    3309             : /*  6952*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3310             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3311             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3312             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3313             : /*  6969*/                    /*Scope*/ 68, /*->7038*/
    3314             : /*  6970*/                      OPC_CheckChild0Same, 0,
    3315             : /*  6972*/                      OPC_CheckChild1Integer, 24, 
    3316             : /*  6974*/                      OPC_CheckChild1Type, MVT::i32,
    3317             : /*  6976*/                      OPC_MoveParent,
    3318             : /*  6977*/                      OPC_MoveChild1,
    3319             : /*  6978*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3320             : /*  6981*/                      OPC_CheckChild0Same, 1,
    3321             : /*  6983*/                      OPC_CheckChild1Integer, 24, 
    3322             : /*  6985*/                      OPC_CheckChild1Type, MVT::i32,
    3323             : /*  6987*/                      OPC_MoveParent,
    3324             : /*  6988*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3325             : /*  6990*/                      OPC_MoveParent,
    3326             : /*  6991*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3327             : /*  6993*/                      OPC_CheckType, MVT::i32,
    3328             : /*  6995*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3329             : /*  6997*/                      OPC_EmitInteger, MVT::i32, 8, 
    3330             : /*  7000*/                      OPC_EmitInteger, MVT::i32, 8, 
    3331             : /*  7003*/                      OPC_EmitInteger, MVT::i32, 8, 
    3332             : /*  7006*/                      OPC_EmitInteger, MVT::i1, 0, 
    3333             : /*  7009*/                      OPC_EmitInteger, MVT::i32, 0, 
    3334             : /*  7012*/                      OPC_EmitInteger, MVT::i32, 0, 
    3335             : /*  7015*/                      OPC_EmitInteger, MVT::i32, 0, 
    3336             : /*  7018*/                      OPC_EmitInteger, MVT::i32, 0, 
    3337             : /*  7021*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3338             :                                     MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    3339             :                                 // Src: (add:{ *:[i32] } (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3340             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3341             : /*  7038*/                    0, /*End of Scope*/
    3342             : /*  7039*/                  0, /*End of Scope*/
    3343             : /*  7040*/                0, /*End of Scope*/
    3344             : /*  7041*/              0, /*End of Scope*/
    3345             : /*  7042*/            0, // EndSwitchOpcode
    3346             : /*  7043*/          /*SwitchOpcode*/ 107|128,50/*6507*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->13554
    3347             : /*  7047*/            OPC_MoveChild0,
    3348             : /*  7048*/            OPC_Scope, 118|128,48/*6262*/, /*->13313*/ // 2 children in Scope
    3349             : /*  7051*/              OPC_CheckAndImm, 127|128,1/*255*/, 
    3350             : /*  7054*/              OPC_MoveChild0,
    3351             : /*  7055*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3352             : /*  7058*/              OPC_RecordChild0, // #0 = $src0
    3353             : /*  7059*/              OPC_CheckChild1Integer, 16, 
    3354             : /*  7061*/              OPC_CheckChild1Type, MVT::i32,
    3355             : /*  7063*/              OPC_MoveParent,
    3356             : /*  7064*/              OPC_MoveParent,
    3357             : /*  7065*/              OPC_MoveChild1,
    3358             : /*  7066*/              OPC_CheckAndImm, 127|128,1/*255*/, 
    3359             : /*  7069*/              OPC_MoveChild0,
    3360             : /*  7070*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3361             : /*  7073*/              OPC_RecordChild0, // #1 = $src1
    3362             : /*  7074*/              OPC_CheckChild1Integer, 16, 
    3363             : /*  7076*/              OPC_CheckChild1Type, MVT::i32,
    3364             : /*  7078*/              OPC_MoveParent,
    3365             : /*  7079*/              OPC_MoveParent,
    3366             : /*  7080*/              OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3367             : /*  7082*/              OPC_MoveParent,
    3368             : /*  7083*/              OPC_MoveChild1,
    3369             : /*  7084*/              OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    3370             : /*  7087*/              OPC_MoveChild0,
    3371             : /*  7088*/              OPC_SwitchOpcode /*2 cases */, 40|128,25/*3240*/, TARGET_VAL(ISD::ADD),// ->10333
    3372             : /*  7093*/                OPC_Scope, 39|128,6/*807*/, /*->7903*/ // 4 children in Scope
    3373             : /*  7096*/                  OPC_RecordChild0, // #2 = $src2
    3374             : /*  7097*/                  OPC_MoveChild1,
    3375             : /*  7098*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3376             : /*  7101*/                  OPC_MoveChild0,
    3377             : /*  7102*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    3378             : /*  7105*/                  OPC_Scope, 12|128,3/*396*/, /*->7504*/ // 2 children in Scope
    3379             : /*  7108*/                    OPC_CheckChild0Same, 0,
    3380             : /*  7110*/                    OPC_MoveParent,
    3381             : /*  7111*/                    OPC_MoveChild1,
    3382             : /*  7112*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3383             : /*  7115*/                    OPC_CheckChild0Same, 1,
    3384             : /*  7117*/                    OPC_MoveParent,
    3385             : /*  7118*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3386             : /*  7120*/                    OPC_MoveParent,
    3387             : /*  7121*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3388             : /*  7123*/                    OPC_MoveParent,
    3389             : /*  7124*/                    OPC_MoveChild1,
    3390             : /*  7125*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3391             : /*  7128*/                    OPC_MoveChild0,
    3392             : /*  7129*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3393             : /*  7132*/                    OPC_MoveChild0,
    3394             : /*  7133*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3395             : /*  7136*/                    OPC_Scope, 53|128,1/*181*/, /*->7320*/ // 2 children in Scope
    3396             : /*  7139*/                      OPC_CheckChild0Same, 0,
    3397             : /*  7141*/                      OPC_CheckChild1Integer, 8, 
    3398             : /*  7143*/                      OPC_CheckChild1Type, MVT::i32,
    3399             : /*  7145*/                      OPC_MoveParent,
    3400             : /*  7146*/                      OPC_MoveParent,
    3401             : /*  7147*/                      OPC_MoveChild1,
    3402             : /*  7148*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3403             : /*  7151*/                      OPC_MoveChild0,
    3404             : /*  7152*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3405             : /*  7155*/                      OPC_CheckChild0Same, 1,
    3406             : /*  7157*/                      OPC_CheckChild1Integer, 8, 
    3407             : /*  7159*/                      OPC_CheckChild1Type, MVT::i32,
    3408             : /*  7161*/                      OPC_MoveParent,
    3409             : /*  7162*/                      OPC_MoveParent,
    3410             : /*  7163*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3411             : /*  7165*/                      OPC_MoveParent,
    3412             : /*  7166*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3413             : /*  7168*/                      OPC_MoveParent,
    3414             : /*  7169*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3415             : /*  7171*/                      OPC_MoveParent,
    3416             : /*  7172*/                      OPC_MoveChild1,
    3417             : /*  7173*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3418             : /*  7176*/                      OPC_MoveChild0,
    3419             : /*  7177*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3420             : /*  7180*/                      OPC_Scope, 68, /*->7250*/ // 2 children in Scope
    3421             : /*  7182*/                        OPC_CheckChild0Same, 0,
    3422             : /*  7184*/                        OPC_CheckChild1Integer, 24, 
    3423             : /*  7186*/                        OPC_CheckChild1Type, MVT::i32,
    3424             : /*  7188*/                        OPC_MoveParent,
    3425             : /*  7189*/                        OPC_MoveChild1,
    3426             : /*  7190*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3427             : /*  7193*/                        OPC_CheckChild0Same, 1,
    3428             : /*  7195*/                        OPC_CheckChild1Integer, 24, 
    3429             : /*  7197*/                        OPC_CheckChild1Type, MVT::i32,
    3430             : /*  7199*/                        OPC_MoveParent,
    3431             : /*  7200*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3432             : /*  7202*/                        OPC_MoveParent,
    3433             : /*  7203*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3434             : /*  7205*/                        OPC_CheckType, MVT::i32,
    3435             : /*  7207*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3436             : /*  7209*/                        OPC_EmitInteger, MVT::i32, 8, 
    3437             : /*  7212*/                        OPC_EmitInteger, MVT::i32, 8, 
    3438             : /*  7215*/                        OPC_EmitInteger, MVT::i32, 8, 
    3439             : /*  7218*/                        OPC_EmitInteger, MVT::i1, 0, 
    3440             : /*  7221*/                        OPC_EmitInteger, MVT::i32, 0, 
    3441             : /*  7224*/                        OPC_EmitInteger, MVT::i32, 0, 
    3442             : /*  7227*/                        OPC_EmitInteger, MVT::i32, 0, 
    3443             : /*  7230*/                        OPC_EmitInteger, MVT::i32, 0, 
    3444             : /*  7233*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3445             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3446             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3447             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3448             : /*  7250*/                      /*Scope*/ 68, /*->7319*/
    3449             : /*  7251*/                        OPC_CheckChild0Same, 1,
    3450             : /*  7253*/                        OPC_CheckChild1Integer, 24, 
    3451             : /*  7255*/                        OPC_CheckChild1Type, MVT::i32,
    3452             : /*  7257*/                        OPC_MoveParent,
    3453             : /*  7258*/                        OPC_MoveChild1,
    3454             : /*  7259*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3455             : /*  7262*/                        OPC_CheckChild0Same, 0,
    3456             : /*  7264*/                        OPC_CheckChild1Integer, 24, 
    3457             : /*  7266*/                        OPC_CheckChild1Type, MVT::i32,
    3458             : /*  7268*/                        OPC_MoveParent,
    3459             : /*  7269*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3460             : /*  7271*/                        OPC_MoveParent,
    3461             : /*  7272*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3462             : /*  7274*/                        OPC_CheckType, MVT::i32,
    3463             : /*  7276*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3464             : /*  7278*/                        OPC_EmitInteger, MVT::i32, 8, 
    3465             : /*  7281*/                        OPC_EmitInteger, MVT::i32, 8, 
    3466             : /*  7284*/                        OPC_EmitInteger, MVT::i32, 8, 
    3467             : /*  7287*/                        OPC_EmitInteger, MVT::i1, 0, 
    3468             : /*  7290*/                        OPC_EmitInteger, MVT::i32, 0, 
    3469             : /*  7293*/                        OPC_EmitInteger, MVT::i32, 0, 
    3470             : /*  7296*/                        OPC_EmitInteger, MVT::i32, 0, 
    3471             : /*  7299*/                        OPC_EmitInteger, MVT::i32, 0, 
    3472             : /*  7302*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3473             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3474             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3475             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3476             : /*  7319*/                      0, /*End of Scope*/
    3477             : /*  7320*/                    /*Scope*/ 53|128,1/*181*/, /*->7503*/
    3478             : /*  7322*/                      OPC_CheckChild0Same, 1,
    3479             : /*  7324*/                      OPC_CheckChild1Integer, 8, 
    3480             : /*  7326*/                      OPC_CheckChild1Type, MVT::i32,
    3481             : /*  7328*/                      OPC_MoveParent,
    3482             : /*  7329*/                      OPC_MoveParent,
    3483             : /*  7330*/                      OPC_MoveChild1,
    3484             : /*  7331*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3485             : /*  7334*/                      OPC_MoveChild0,
    3486             : /*  7335*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3487             : /*  7338*/                      OPC_CheckChild0Same, 0,
    3488             : /*  7340*/                      OPC_CheckChild1Integer, 8, 
    3489             : /*  7342*/                      OPC_CheckChild1Type, MVT::i32,
    3490             : /*  7344*/                      OPC_MoveParent,
    3491             : /*  7345*/                      OPC_MoveParent,
    3492             : /*  7346*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3493             : /*  7348*/                      OPC_MoveParent,
    3494             : /*  7349*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3495             : /*  7351*/                      OPC_MoveParent,
    3496             : /*  7352*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3497             : /*  7354*/                      OPC_MoveParent,
    3498             : /*  7355*/                      OPC_MoveChild1,
    3499             : /*  7356*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3500             : /*  7359*/                      OPC_MoveChild0,
    3501             : /*  7360*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3502             : /*  7363*/                      OPC_Scope, 68, /*->7433*/ // 2 children in Scope
    3503             : /*  7365*/                        OPC_CheckChild0Same, 0,
    3504             : /*  7367*/                        OPC_CheckChild1Integer, 24, 
    3505             : /*  7369*/                        OPC_CheckChild1Type, MVT::i32,
    3506             : /*  7371*/                        OPC_MoveParent,
    3507             : /*  7372*/                        OPC_MoveChild1,
    3508             : /*  7373*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3509             : /*  7376*/                        OPC_CheckChild0Same, 1,
    3510             : /*  7378*/                        OPC_CheckChild1Integer, 24, 
    3511             : /*  7380*/                        OPC_CheckChild1Type, MVT::i32,
    3512             : /*  7382*/                        OPC_MoveParent,
    3513             : /*  7383*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3514             : /*  7385*/                        OPC_MoveParent,
    3515             : /*  7386*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3516             : /*  7388*/                        OPC_CheckType, MVT::i32,
    3517             : /*  7390*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3518             : /*  7392*/                        OPC_EmitInteger, MVT::i32, 8, 
    3519             : /*  7395*/                        OPC_EmitInteger, MVT::i32, 8, 
    3520             : /*  7398*/                        OPC_EmitInteger, MVT::i32, 8, 
    3521             : /*  7401*/                        OPC_EmitInteger, MVT::i1, 0, 
    3522             : /*  7404*/                        OPC_EmitInteger, MVT::i32, 0, 
    3523             : /*  7407*/                        OPC_EmitInteger, MVT::i32, 0, 
    3524             : /*  7410*/                        OPC_EmitInteger, MVT::i32, 0, 
    3525             : /*  7413*/                        OPC_EmitInteger, MVT::i32, 0, 
    3526             : /*  7416*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3527             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3528             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3529             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3530             : /*  7433*/                      /*Scope*/ 68, /*->7502*/
    3531             : /*  7434*/                        OPC_CheckChild0Same, 1,
    3532             : /*  7436*/                        OPC_CheckChild1Integer, 24, 
    3533             : /*  7438*/                        OPC_CheckChild1Type, MVT::i32,
    3534             : /*  7440*/                        OPC_MoveParent,
    3535             : /*  7441*/                        OPC_MoveChild1,
    3536             : /*  7442*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3537             : /*  7445*/                        OPC_CheckChild0Same, 0,
    3538             : /*  7447*/                        OPC_CheckChild1Integer, 24, 
    3539             : /*  7449*/                        OPC_CheckChild1Type, MVT::i32,
    3540             : /*  7451*/                        OPC_MoveParent,
    3541             : /*  7452*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3542             : /*  7454*/                        OPC_MoveParent,
    3543             : /*  7455*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3544             : /*  7457*/                        OPC_CheckType, MVT::i32,
    3545             : /*  7459*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3546             : /*  7461*/                        OPC_EmitInteger, MVT::i32, 8, 
    3547             : /*  7464*/                        OPC_EmitInteger, MVT::i32, 8, 
    3548             : /*  7467*/                        OPC_EmitInteger, MVT::i32, 8, 
    3549             : /*  7470*/                        OPC_EmitInteger, MVT::i1, 0, 
    3550             : /*  7473*/                        OPC_EmitInteger, MVT::i32, 0, 
    3551             : /*  7476*/                        OPC_EmitInteger, MVT::i32, 0, 
    3552             : /*  7479*/                        OPC_EmitInteger, MVT::i32, 0, 
    3553             : /*  7482*/                        OPC_EmitInteger, MVT::i32, 0, 
    3554             : /*  7485*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3555             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3556             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3557             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3558             : /*  7502*/                      0, /*End of Scope*/
    3559             : /*  7503*/                    0, /*End of Scope*/
    3560             : /*  7504*/                  /*Scope*/ 12|128,3/*396*/, /*->7902*/
    3561             : /*  7506*/                    OPC_CheckChild0Same, 1,
    3562             : /*  7508*/                    OPC_MoveParent,
    3563             : /*  7509*/                    OPC_MoveChild1,
    3564             : /*  7510*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3565             : /*  7513*/                    OPC_CheckChild0Same, 0,
    3566             : /*  7515*/                    OPC_MoveParent,
    3567             : /*  7516*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3568             : /*  7518*/                    OPC_MoveParent,
    3569             : /*  7519*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3570             : /*  7521*/                    OPC_MoveParent,
    3571             : /*  7522*/                    OPC_MoveChild1,
    3572             : /*  7523*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3573             : /*  7526*/                    OPC_MoveChild0,
    3574             : /*  7527*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3575             : /*  7530*/                    OPC_MoveChild0,
    3576             : /*  7531*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3577             : /*  7534*/                    OPC_Scope, 53|128,1/*181*/, /*->7718*/ // 2 children in Scope
    3578             : /*  7537*/                      OPC_CheckChild0Same, 0,
    3579             : /*  7539*/                      OPC_CheckChild1Integer, 8, 
    3580             : /*  7541*/                      OPC_CheckChild1Type, MVT::i32,
    3581             : /*  7543*/                      OPC_MoveParent,
    3582             : /*  7544*/                      OPC_MoveParent,
    3583             : /*  7545*/                      OPC_MoveChild1,
    3584             : /*  7546*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3585             : /*  7549*/                      OPC_MoveChild0,
    3586             : /*  7550*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3587             : /*  7553*/                      OPC_CheckChild0Same, 1,
    3588             : /*  7555*/                      OPC_CheckChild1Integer, 8, 
    3589             : /*  7557*/                      OPC_CheckChild1Type, MVT::i32,
    3590             : /*  7559*/                      OPC_MoveParent,
    3591             : /*  7560*/                      OPC_MoveParent,
    3592             : /*  7561*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3593             : /*  7563*/                      OPC_MoveParent,
    3594             : /*  7564*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3595             : /*  7566*/                      OPC_MoveParent,
    3596             : /*  7567*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3597             : /*  7569*/                      OPC_MoveParent,
    3598             : /*  7570*/                      OPC_MoveChild1,
    3599             : /*  7571*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3600             : /*  7574*/                      OPC_MoveChild0,
    3601             : /*  7575*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3602             : /*  7578*/                      OPC_Scope, 68, /*->7648*/ // 2 children in Scope
    3603             : /*  7580*/                        OPC_CheckChild0Same, 0,
    3604             : /*  7582*/                        OPC_CheckChild1Integer, 24, 
    3605             : /*  7584*/                        OPC_CheckChild1Type, MVT::i32,
    3606             : /*  7586*/                        OPC_MoveParent,
    3607             : /*  7587*/                        OPC_MoveChild1,
    3608             : /*  7588*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3609             : /*  7591*/                        OPC_CheckChild0Same, 1,
    3610             : /*  7593*/                        OPC_CheckChild1Integer, 24, 
    3611             : /*  7595*/                        OPC_CheckChild1Type, MVT::i32,
    3612             : /*  7597*/                        OPC_MoveParent,
    3613             : /*  7598*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3614             : /*  7600*/                        OPC_MoveParent,
    3615             : /*  7601*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3616             : /*  7603*/                        OPC_CheckType, MVT::i32,
    3617             : /*  7605*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3618             : /*  7607*/                        OPC_EmitInteger, MVT::i32, 8, 
    3619             : /*  7610*/                        OPC_EmitInteger, MVT::i32, 8, 
    3620             : /*  7613*/                        OPC_EmitInteger, MVT::i32, 8, 
    3621             : /*  7616*/                        OPC_EmitInteger, MVT::i1, 0, 
    3622             : /*  7619*/                        OPC_EmitInteger, MVT::i32, 0, 
    3623             : /*  7622*/                        OPC_EmitInteger, MVT::i32, 0, 
    3624             : /*  7625*/                        OPC_EmitInteger, MVT::i32, 0, 
    3625             : /*  7628*/                        OPC_EmitInteger, MVT::i32, 0, 
    3626             : /*  7631*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3627             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3628             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3629             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3630             : /*  7648*/                      /*Scope*/ 68, /*->7717*/
    3631             : /*  7649*/                        OPC_CheckChild0Same, 1,
    3632             : /*  7651*/                        OPC_CheckChild1Integer, 24, 
    3633             : /*  7653*/                        OPC_CheckChild1Type, MVT::i32,
    3634             : /*  7655*/                        OPC_MoveParent,
    3635             : /*  7656*/                        OPC_MoveChild1,
    3636             : /*  7657*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3637             : /*  7660*/                        OPC_CheckChild0Same, 0,
    3638             : /*  7662*/                        OPC_CheckChild1Integer, 24, 
    3639             : /*  7664*/                        OPC_CheckChild1Type, MVT::i32,
    3640             : /*  7666*/                        OPC_MoveParent,
    3641             : /*  7667*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3642             : /*  7669*/                        OPC_MoveParent,
    3643             : /*  7670*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3644             : /*  7672*/                        OPC_CheckType, MVT::i32,
    3645             : /*  7674*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3646             : /*  7676*/                        OPC_EmitInteger, MVT::i32, 8, 
    3647             : /*  7679*/                        OPC_EmitInteger, MVT::i32, 8, 
    3648             : /*  7682*/                        OPC_EmitInteger, MVT::i32, 8, 
    3649             : /*  7685*/                        OPC_EmitInteger, MVT::i1, 0, 
    3650             : /*  7688*/                        OPC_EmitInteger, MVT::i32, 0, 
    3651             : /*  7691*/                        OPC_EmitInteger, MVT::i32, 0, 
    3652             : /*  7694*/                        OPC_EmitInteger, MVT::i32, 0, 
    3653             : /*  7697*/                        OPC_EmitInteger, MVT::i32, 0, 
    3654             : /*  7700*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3655             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3656             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3657             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3658             : /*  7717*/                      0, /*End of Scope*/
    3659             : /*  7718*/                    /*Scope*/ 53|128,1/*181*/, /*->7901*/
    3660             : /*  7720*/                      OPC_CheckChild0Same, 1,
    3661             : /*  7722*/                      OPC_CheckChild1Integer, 8, 
    3662             : /*  7724*/                      OPC_CheckChild1Type, MVT::i32,
    3663             : /*  7726*/                      OPC_MoveParent,
    3664             : /*  7727*/                      OPC_MoveParent,
    3665             : /*  7728*/                      OPC_MoveChild1,
    3666             : /*  7729*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3667             : /*  7732*/                      OPC_MoveChild0,
    3668             : /*  7733*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3669             : /*  7736*/                      OPC_CheckChild0Same, 0,
    3670             : /*  7738*/                      OPC_CheckChild1Integer, 8, 
    3671             : /*  7740*/                      OPC_CheckChild1Type, MVT::i32,
    3672             : /*  7742*/                      OPC_MoveParent,
    3673             : /*  7743*/                      OPC_MoveParent,
    3674             : /*  7744*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3675             : /*  7746*/                      OPC_MoveParent,
    3676             : /*  7747*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3677             : /*  7749*/                      OPC_MoveParent,
    3678             : /*  7750*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3679             : /*  7752*/                      OPC_MoveParent,
    3680             : /*  7753*/                      OPC_MoveChild1,
    3681             : /*  7754*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3682             : /*  7757*/                      OPC_MoveChild0,
    3683             : /*  7758*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3684             : /*  7761*/                      OPC_Scope, 68, /*->7831*/ // 2 children in Scope
    3685             : /*  7763*/                        OPC_CheckChild0Same, 0,
    3686             : /*  7765*/                        OPC_CheckChild1Integer, 24, 
    3687             : /*  7767*/                        OPC_CheckChild1Type, MVT::i32,
    3688             : /*  7769*/                        OPC_MoveParent,
    3689             : /*  7770*/                        OPC_MoveChild1,
    3690             : /*  7771*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3691             : /*  7774*/                        OPC_CheckChild0Same, 1,
    3692             : /*  7776*/                        OPC_CheckChild1Integer, 24, 
    3693             : /*  7778*/                        OPC_CheckChild1Type, MVT::i32,
    3694             : /*  7780*/                        OPC_MoveParent,
    3695             : /*  7781*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3696             : /*  7783*/                        OPC_MoveParent,
    3697             : /*  7784*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3698             : /*  7786*/                        OPC_CheckType, MVT::i32,
    3699             : /*  7788*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3700             : /*  7790*/                        OPC_EmitInteger, MVT::i32, 8, 
    3701             : /*  7793*/                        OPC_EmitInteger, MVT::i32, 8, 
    3702             : /*  7796*/                        OPC_EmitInteger, MVT::i32, 8, 
    3703             : /*  7799*/                        OPC_EmitInteger, MVT::i1, 0, 
    3704             : /*  7802*/                        OPC_EmitInteger, MVT::i32, 0, 
    3705             : /*  7805*/                        OPC_EmitInteger, MVT::i32, 0, 
    3706             : /*  7808*/                        OPC_EmitInteger, MVT::i32, 0, 
    3707             : /*  7811*/                        OPC_EmitInteger, MVT::i32, 0, 
    3708             : /*  7814*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3709             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3710             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3711             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3712             : /*  7831*/                      /*Scope*/ 68, /*->7900*/
    3713             : /*  7832*/                        OPC_CheckChild0Same, 1,
    3714             : /*  7834*/                        OPC_CheckChild1Integer, 24, 
    3715             : /*  7836*/                        OPC_CheckChild1Type, MVT::i32,
    3716             : /*  7838*/                        OPC_MoveParent,
    3717             : /*  7839*/                        OPC_MoveChild1,
    3718             : /*  7840*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3719             : /*  7843*/                        OPC_CheckChild0Same, 0,
    3720             : /*  7845*/                        OPC_CheckChild1Integer, 24, 
    3721             : /*  7847*/                        OPC_CheckChild1Type, MVT::i32,
    3722             : /*  7849*/                        OPC_MoveParent,
    3723             : /*  7850*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3724             : /*  7852*/                        OPC_MoveParent,
    3725             : /*  7853*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3726             : /*  7855*/                        OPC_CheckType, MVT::i32,
    3727             : /*  7857*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3728             : /*  7859*/                        OPC_EmitInteger, MVT::i32, 8, 
    3729             : /*  7862*/                        OPC_EmitInteger, MVT::i32, 8, 
    3730             : /*  7865*/                        OPC_EmitInteger, MVT::i32, 8, 
    3731             : /*  7868*/                        OPC_EmitInteger, MVT::i1, 0, 
    3732             : /*  7871*/                        OPC_EmitInteger, MVT::i32, 0, 
    3733             : /*  7874*/                        OPC_EmitInteger, MVT::i32, 0, 
    3734             : /*  7877*/                        OPC_EmitInteger, MVT::i32, 0, 
    3735             : /*  7880*/                        OPC_EmitInteger, MVT::i32, 0, 
    3736             : /*  7883*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3737             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3738             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3739             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3740             : /*  7900*/                      0, /*End of Scope*/
    3741             : /*  7901*/                    0, /*End of Scope*/
    3742             : /*  7902*/                  0, /*End of Scope*/
    3743             : /*  7903*/                /*Scope*/ 40|128,6/*808*/, /*->8713*/
    3744             : /*  7905*/                  OPC_MoveChild0,
    3745             : /*  7906*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3746             : /*  7909*/                  OPC_MoveChild0,
    3747             : /*  7910*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    3748             : /*  7913*/                  OPC_Scope, 13|128,3/*397*/, /*->8313*/ // 2 children in Scope
    3749             : /*  7916*/                    OPC_CheckChild0Same, 0,
    3750             : /*  7918*/                    OPC_MoveParent,
    3751             : /*  7919*/                    OPC_MoveChild1,
    3752             : /*  7920*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3753             : /*  7923*/                    OPC_CheckChild0Same, 1,
    3754             : /*  7925*/                    OPC_MoveParent,
    3755             : /*  7926*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3756             : /*  7928*/                    OPC_MoveParent,
    3757             : /*  7929*/                    OPC_RecordChild1, // #2 = $src2
    3758             : /*  7930*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3759             : /*  7932*/                    OPC_MoveParent,
    3760             : /*  7933*/                    OPC_MoveChild1,
    3761             : /*  7934*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3762             : /*  7937*/                    OPC_MoveChild0,
    3763             : /*  7938*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3764             : /*  7941*/                    OPC_MoveChild0,
    3765             : /*  7942*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3766             : /*  7945*/                    OPC_Scope, 53|128,1/*181*/, /*->8129*/ // 2 children in Scope
    3767             : /*  7948*/                      OPC_CheckChild0Same, 0,
    3768             : /*  7950*/                      OPC_CheckChild1Integer, 8, 
    3769             : /*  7952*/                      OPC_CheckChild1Type, MVT::i32,
    3770             : /*  7954*/                      OPC_MoveParent,
    3771             : /*  7955*/                      OPC_MoveParent,
    3772             : /*  7956*/                      OPC_MoveChild1,
    3773             : /*  7957*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3774             : /*  7960*/                      OPC_MoveChild0,
    3775             : /*  7961*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3776             : /*  7964*/                      OPC_CheckChild0Same, 1,
    3777             : /*  7966*/                      OPC_CheckChild1Integer, 8, 
    3778             : /*  7968*/                      OPC_CheckChild1Type, MVT::i32,
    3779             : /*  7970*/                      OPC_MoveParent,
    3780             : /*  7971*/                      OPC_MoveParent,
    3781             : /*  7972*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3782             : /*  7974*/                      OPC_MoveParent,
    3783             : /*  7975*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3784             : /*  7977*/                      OPC_MoveParent,
    3785             : /*  7978*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3786             : /*  7980*/                      OPC_MoveParent,
    3787             : /*  7981*/                      OPC_MoveChild1,
    3788             : /*  7982*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3789             : /*  7985*/                      OPC_MoveChild0,
    3790             : /*  7986*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3791             : /*  7989*/                      OPC_Scope, 68, /*->8059*/ // 2 children in Scope
    3792             : /*  7991*/                        OPC_CheckChild0Same, 0,
    3793             : /*  7993*/                        OPC_CheckChild1Integer, 24, 
    3794             : /*  7995*/                        OPC_CheckChild1Type, MVT::i32,
    3795             : /*  7997*/                        OPC_MoveParent,
    3796             : /*  7998*/                        OPC_MoveChild1,
    3797             : /*  7999*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3798             : /*  8002*/                        OPC_CheckChild0Same, 1,
    3799             : /*  8004*/                        OPC_CheckChild1Integer, 24, 
    3800             : /*  8006*/                        OPC_CheckChild1Type, MVT::i32,
    3801             : /*  8008*/                        OPC_MoveParent,
    3802             : /*  8009*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3803             : /*  8011*/                        OPC_MoveParent,
    3804             : /*  8012*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3805             : /*  8014*/                        OPC_CheckType, MVT::i32,
    3806             : /*  8016*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3807             : /*  8018*/                        OPC_EmitInteger, MVT::i32, 8, 
    3808             : /*  8021*/                        OPC_EmitInteger, MVT::i32, 8, 
    3809             : /*  8024*/                        OPC_EmitInteger, MVT::i32, 8, 
    3810             : /*  8027*/                        OPC_EmitInteger, MVT::i1, 0, 
    3811             : /*  8030*/                        OPC_EmitInteger, MVT::i32, 0, 
    3812             : /*  8033*/                        OPC_EmitInteger, MVT::i32, 0, 
    3813             : /*  8036*/                        OPC_EmitInteger, MVT::i32, 0, 
    3814             : /*  8039*/                        OPC_EmitInteger, MVT::i32, 0, 
    3815             : /*  8042*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3816             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3817             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3818             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3819             : /*  8059*/                      /*Scope*/ 68, /*->8128*/
    3820             : /*  8060*/                        OPC_CheckChild0Same, 1,
    3821             : /*  8062*/                        OPC_CheckChild1Integer, 24, 
    3822             : /*  8064*/                        OPC_CheckChild1Type, MVT::i32,
    3823             : /*  8066*/                        OPC_MoveParent,
    3824             : /*  8067*/                        OPC_MoveChild1,
    3825             : /*  8068*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3826             : /*  8071*/                        OPC_CheckChild0Same, 0,
    3827             : /*  8073*/                        OPC_CheckChild1Integer, 24, 
    3828             : /*  8075*/                        OPC_CheckChild1Type, MVT::i32,
    3829             : /*  8077*/                        OPC_MoveParent,
    3830             : /*  8078*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3831             : /*  8080*/                        OPC_MoveParent,
    3832             : /*  8081*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3833             : /*  8083*/                        OPC_CheckType, MVT::i32,
    3834             : /*  8085*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3835             : /*  8087*/                        OPC_EmitInteger, MVT::i32, 8, 
    3836             : /*  8090*/                        OPC_EmitInteger, MVT::i32, 8, 
    3837             : /*  8093*/                        OPC_EmitInteger, MVT::i32, 8, 
    3838             : /*  8096*/                        OPC_EmitInteger, MVT::i1, 0, 
    3839             : /*  8099*/                        OPC_EmitInteger, MVT::i32, 0, 
    3840             : /*  8102*/                        OPC_EmitInteger, MVT::i32, 0, 
    3841             : /*  8105*/                        OPC_EmitInteger, MVT::i32, 0, 
    3842             : /*  8108*/                        OPC_EmitInteger, MVT::i32, 0, 
    3843             : /*  8111*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3844             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3845             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3846             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3847             : /*  8128*/                      0, /*End of Scope*/
    3848             : /*  8129*/                    /*Scope*/ 53|128,1/*181*/, /*->8312*/
    3849             : /*  8131*/                      OPC_CheckChild0Same, 1,
    3850             : /*  8133*/                      OPC_CheckChild1Integer, 8, 
    3851             : /*  8135*/                      OPC_CheckChild1Type, MVT::i32,
    3852             : /*  8137*/                      OPC_MoveParent,
    3853             : /*  8138*/                      OPC_MoveParent,
    3854             : /*  8139*/                      OPC_MoveChild1,
    3855             : /*  8140*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3856             : /*  8143*/                      OPC_MoveChild0,
    3857             : /*  8144*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3858             : /*  8147*/                      OPC_CheckChild0Same, 0,
    3859             : /*  8149*/                      OPC_CheckChild1Integer, 8, 
    3860             : /*  8151*/                      OPC_CheckChild1Type, MVT::i32,
    3861             : /*  8153*/                      OPC_MoveParent,
    3862             : /*  8154*/                      OPC_MoveParent,
    3863             : /*  8155*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3864             : /*  8157*/                      OPC_MoveParent,
    3865             : /*  8158*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3866             : /*  8160*/                      OPC_MoveParent,
    3867             : /*  8161*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3868             : /*  8163*/                      OPC_MoveParent,
    3869             : /*  8164*/                      OPC_MoveChild1,
    3870             : /*  8165*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3871             : /*  8168*/                      OPC_MoveChild0,
    3872             : /*  8169*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3873             : /*  8172*/                      OPC_Scope, 68, /*->8242*/ // 2 children in Scope
    3874             : /*  8174*/                        OPC_CheckChild0Same, 0,
    3875             : /*  8176*/                        OPC_CheckChild1Integer, 24, 
    3876             : /*  8178*/                        OPC_CheckChild1Type, MVT::i32,
    3877             : /*  8180*/                        OPC_MoveParent,
    3878             : /*  8181*/                        OPC_MoveChild1,
    3879             : /*  8182*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3880             : /*  8185*/                        OPC_CheckChild0Same, 1,
    3881             : /*  8187*/                        OPC_CheckChild1Integer, 24, 
    3882             : /*  8189*/                        OPC_CheckChild1Type, MVT::i32,
    3883             : /*  8191*/                        OPC_MoveParent,
    3884             : /*  8192*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3885             : /*  8194*/                        OPC_MoveParent,
    3886             : /*  8195*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3887             : /*  8197*/                        OPC_CheckType, MVT::i32,
    3888             : /*  8199*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3889             : /*  8201*/                        OPC_EmitInteger, MVT::i32, 8, 
    3890             : /*  8204*/                        OPC_EmitInteger, MVT::i32, 8, 
    3891             : /*  8207*/                        OPC_EmitInteger, MVT::i32, 8, 
    3892             : /*  8210*/                        OPC_EmitInteger, MVT::i1, 0, 
    3893             : /*  8213*/                        OPC_EmitInteger, MVT::i32, 0, 
    3894             : /*  8216*/                        OPC_EmitInteger, MVT::i32, 0, 
    3895             : /*  8219*/                        OPC_EmitInteger, MVT::i32, 0, 
    3896             : /*  8222*/                        OPC_EmitInteger, MVT::i32, 0, 
    3897             : /*  8225*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3898             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3899             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3900             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3901             : /*  8242*/                      /*Scope*/ 68, /*->8311*/
    3902             : /*  8243*/                        OPC_CheckChild0Same, 1,
    3903             : /*  8245*/                        OPC_CheckChild1Integer, 24, 
    3904             : /*  8247*/                        OPC_CheckChild1Type, MVT::i32,
    3905             : /*  8249*/                        OPC_MoveParent,
    3906             : /*  8250*/                        OPC_MoveChild1,
    3907             : /*  8251*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3908             : /*  8254*/                        OPC_CheckChild0Same, 0,
    3909             : /*  8256*/                        OPC_CheckChild1Integer, 24, 
    3910             : /*  8258*/                        OPC_CheckChild1Type, MVT::i32,
    3911             : /*  8260*/                        OPC_MoveParent,
    3912             : /*  8261*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3913             : /*  8263*/                        OPC_MoveParent,
    3914             : /*  8264*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3915             : /*  8266*/                        OPC_CheckType, MVT::i32,
    3916             : /*  8268*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3917             : /*  8270*/                        OPC_EmitInteger, MVT::i32, 8, 
    3918             : /*  8273*/                        OPC_EmitInteger, MVT::i32, 8, 
    3919             : /*  8276*/                        OPC_EmitInteger, MVT::i32, 8, 
    3920             : /*  8279*/                        OPC_EmitInteger, MVT::i1, 0, 
    3921             : /*  8282*/                        OPC_EmitInteger, MVT::i32, 0, 
    3922             : /*  8285*/                        OPC_EmitInteger, MVT::i32, 0, 
    3923             : /*  8288*/                        OPC_EmitInteger, MVT::i32, 0, 
    3924             : /*  8291*/                        OPC_EmitInteger, MVT::i32, 0, 
    3925             : /*  8294*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3926             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    3927             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    3928             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    3929             : /*  8311*/                      0, /*End of Scope*/
    3930             : /*  8312*/                    0, /*End of Scope*/
    3931             : /*  8313*/                  /*Scope*/ 13|128,3/*397*/, /*->8712*/
    3932             : /*  8315*/                    OPC_CheckChild0Same, 1,
    3933             : /*  8317*/                    OPC_MoveParent,
    3934             : /*  8318*/                    OPC_MoveChild1,
    3935             : /*  8319*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3936             : /*  8322*/                    OPC_CheckChild0Same, 0,
    3937             : /*  8324*/                    OPC_MoveParent,
    3938             : /*  8325*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3939             : /*  8327*/                    OPC_MoveParent,
    3940             : /*  8328*/                    OPC_RecordChild1, // #2 = $src2
    3941             : /*  8329*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3942             : /*  8331*/                    OPC_MoveParent,
    3943             : /*  8332*/                    OPC_MoveChild1,
    3944             : /*  8333*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3945             : /*  8336*/                    OPC_MoveChild0,
    3946             : /*  8337*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    3947             : /*  8340*/                    OPC_MoveChild0,
    3948             : /*  8341*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3949             : /*  8344*/                    OPC_Scope, 53|128,1/*181*/, /*->8528*/ // 2 children in Scope
    3950             : /*  8347*/                      OPC_CheckChild0Same, 0,
    3951             : /*  8349*/                      OPC_CheckChild1Integer, 8, 
    3952             : /*  8351*/                      OPC_CheckChild1Type, MVT::i32,
    3953             : /*  8353*/                      OPC_MoveParent,
    3954             : /*  8354*/                      OPC_MoveParent,
    3955             : /*  8355*/                      OPC_MoveChild1,
    3956             : /*  8356*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    3957             : /*  8359*/                      OPC_MoveChild0,
    3958             : /*  8360*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3959             : /*  8363*/                      OPC_CheckChild0Same, 1,
    3960             : /*  8365*/                      OPC_CheckChild1Integer, 8, 
    3961             : /*  8367*/                      OPC_CheckChild1Type, MVT::i32,
    3962             : /*  8369*/                      OPC_MoveParent,
    3963             : /*  8370*/                      OPC_MoveParent,
    3964             : /*  8371*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3965             : /*  8373*/                      OPC_MoveParent,
    3966             : /*  8374*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3967             : /*  8376*/                      OPC_MoveParent,
    3968             : /*  8377*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3969             : /*  8379*/                      OPC_MoveParent,
    3970             : /*  8380*/                      OPC_MoveChild1,
    3971             : /*  8381*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    3972             : /*  8384*/                      OPC_MoveChild0,
    3973             : /*  8385*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3974             : /*  8388*/                      OPC_Scope, 68, /*->8458*/ // 2 children in Scope
    3975             : /*  8390*/                        OPC_CheckChild0Same, 0,
    3976             : /*  8392*/                        OPC_CheckChild1Integer, 24, 
    3977             : /*  8394*/                        OPC_CheckChild1Type, MVT::i32,
    3978             : /*  8396*/                        OPC_MoveParent,
    3979             : /*  8397*/                        OPC_MoveChild1,
    3980             : /*  8398*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    3981             : /*  8401*/                        OPC_CheckChild0Same, 1,
    3982             : /*  8403*/                        OPC_CheckChild1Integer, 24, 
    3983             : /*  8405*/                        OPC_CheckChild1Type, MVT::i32,
    3984             : /*  8407*/                        OPC_MoveParent,
    3985             : /*  8408*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    3986             : /*  8410*/                        OPC_MoveParent,
    3987             : /*  8411*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    3988             : /*  8413*/                        OPC_CheckType, MVT::i32,
    3989             : /*  8415*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    3990             : /*  8417*/                        OPC_EmitInteger, MVT::i32, 8, 
    3991             : /*  8420*/                        OPC_EmitInteger, MVT::i32, 8, 
    3992             : /*  8423*/                        OPC_EmitInteger, MVT::i32, 8, 
    3993             : /*  8426*/                        OPC_EmitInteger, MVT::i1, 0, 
    3994             : /*  8429*/                        OPC_EmitInteger, MVT::i32, 0, 
    3995             : /*  8432*/                        OPC_EmitInteger, MVT::i32, 0, 
    3996             : /*  8435*/                        OPC_EmitInteger, MVT::i32, 0, 
    3997             : /*  8438*/                        OPC_EmitInteger, MVT::i32, 0, 
    3998             : /*  8441*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    3999             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4000             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$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>>)<<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
    4001             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4002             : /*  8458*/                      /*Scope*/ 68, /*->8527*/
    4003             : /*  8459*/                        OPC_CheckChild0Same, 1,
    4004             : /*  8461*/                        OPC_CheckChild1Integer, 24, 
    4005             : /*  8463*/                        OPC_CheckChild1Type, MVT::i32,
    4006             : /*  8465*/                        OPC_MoveParent,
    4007             : /*  8466*/                        OPC_MoveChild1,
    4008             : /*  8467*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4009             : /*  8470*/                        OPC_CheckChild0Same, 0,
    4010             : /*  8472*/                        OPC_CheckChild1Integer, 24, 
    4011             : /*  8474*/                        OPC_CheckChild1Type, MVT::i32,
    4012             : /*  8476*/                        OPC_MoveParent,
    4013             : /*  8477*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4014             : /*  8479*/                        OPC_MoveParent,
    4015             : /*  8480*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4016             : /*  8482*/                        OPC_CheckType, MVT::i32,
    4017             : /*  8484*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4018             : /*  8486*/                        OPC_EmitInteger, MVT::i32, 8, 
    4019             : /*  8489*/                        OPC_EmitInteger, MVT::i32, 8, 
    4020             : /*  8492*/                        OPC_EmitInteger, MVT::i32, 8, 
    4021             : /*  8495*/                        OPC_EmitInteger, MVT::i1, 0, 
    4022             : /*  8498*/                        OPC_EmitInteger, MVT::i32, 0, 
    4023             : /*  8501*/                        OPC_EmitInteger, MVT::i32, 0, 
    4024             : /*  8504*/                        OPC_EmitInteger, MVT::i32, 0, 
    4025             : /*  8507*/                        OPC_EmitInteger, MVT::i32, 0, 
    4026             : /*  8510*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4027             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4028             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$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>>)<<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
    4029             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4030             : /*  8527*/                      0, /*End of Scope*/
    4031             : /*  8528*/                    /*Scope*/ 53|128,1/*181*/, /*->8711*/
    4032             : /*  8530*/                      OPC_CheckChild0Same, 1,
    4033             : /*  8532*/                      OPC_CheckChild1Integer, 8, 
    4034             : /*  8534*/                      OPC_CheckChild1Type, MVT::i32,
    4035             : /*  8536*/                      OPC_MoveParent,
    4036             : /*  8537*/                      OPC_MoveParent,
    4037             : /*  8538*/                      OPC_MoveChild1,
    4038             : /*  8539*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4039             : /*  8542*/                      OPC_MoveChild0,
    4040             : /*  8543*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4041             : /*  8546*/                      OPC_CheckChild0Same, 0,
    4042             : /*  8548*/                      OPC_CheckChild1Integer, 8, 
    4043             : /*  8550*/                      OPC_CheckChild1Type, MVT::i32,
    4044             : /*  8552*/                      OPC_MoveParent,
    4045             : /*  8553*/                      OPC_MoveParent,
    4046             : /*  8554*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4047             : /*  8556*/                      OPC_MoveParent,
    4048             : /*  8557*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4049             : /*  8559*/                      OPC_MoveParent,
    4050             : /*  8560*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4051             : /*  8562*/                      OPC_MoveParent,
    4052             : /*  8563*/                      OPC_MoveChild1,
    4053             : /*  8564*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4054             : /*  8567*/                      OPC_MoveChild0,
    4055             : /*  8568*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4056             : /*  8571*/                      OPC_Scope, 68, /*->8641*/ // 2 children in Scope
    4057             : /*  8573*/                        OPC_CheckChild0Same, 0,
    4058             : /*  8575*/                        OPC_CheckChild1Integer, 24, 
    4059             : /*  8577*/                        OPC_CheckChild1Type, MVT::i32,
    4060             : /*  8579*/                        OPC_MoveParent,
    4061             : /*  8580*/                        OPC_MoveChild1,
    4062             : /*  8581*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4063             : /*  8584*/                        OPC_CheckChild0Same, 1,
    4064             : /*  8586*/                        OPC_CheckChild1Integer, 24, 
    4065             : /*  8588*/                        OPC_CheckChild1Type, MVT::i32,
    4066             : /*  8590*/                        OPC_MoveParent,
    4067             : /*  8591*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4068             : /*  8593*/                        OPC_MoveParent,
    4069             : /*  8594*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4070             : /*  8596*/                        OPC_CheckType, MVT::i32,
    4071             : /*  8598*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4072             : /*  8600*/                        OPC_EmitInteger, MVT::i32, 8, 
    4073             : /*  8603*/                        OPC_EmitInteger, MVT::i32, 8, 
    4074             : /*  8606*/                        OPC_EmitInteger, MVT::i32, 8, 
    4075             : /*  8609*/                        OPC_EmitInteger, MVT::i1, 0, 
    4076             : /*  8612*/                        OPC_EmitInteger, MVT::i32, 0, 
    4077             : /*  8615*/                        OPC_EmitInteger, MVT::i32, 0, 
    4078             : /*  8618*/                        OPC_EmitInteger, MVT::i32, 0, 
    4079             : /*  8621*/                        OPC_EmitInteger, MVT::i32, 0, 
    4080             : /*  8624*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4081             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4082             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$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>>)<<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
    4083             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4084             : /*  8641*/                      /*Scope*/ 68, /*->8710*/
    4085             : /*  8642*/                        OPC_CheckChild0Same, 1,
    4086             : /*  8644*/                        OPC_CheckChild1Integer, 24, 
    4087             : /*  8646*/                        OPC_CheckChild1Type, MVT::i32,
    4088             : /*  8648*/                        OPC_MoveParent,
    4089             : /*  8649*/                        OPC_MoveChild1,
    4090             : /*  8650*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4091             : /*  8653*/                        OPC_CheckChild0Same, 0,
    4092             : /*  8655*/                        OPC_CheckChild1Integer, 24, 
    4093             : /*  8657*/                        OPC_CheckChild1Type, MVT::i32,
    4094             : /*  8659*/                        OPC_MoveParent,
    4095             : /*  8660*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4096             : /*  8662*/                        OPC_MoveParent,
    4097             : /*  8663*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4098             : /*  8665*/                        OPC_CheckType, MVT::i32,
    4099             : /*  8667*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4100             : /*  8669*/                        OPC_EmitInteger, MVT::i32, 8, 
    4101             : /*  8672*/                        OPC_EmitInteger, MVT::i32, 8, 
    4102             : /*  8675*/                        OPC_EmitInteger, MVT::i32, 8, 
    4103             : /*  8678*/                        OPC_EmitInteger, MVT::i1, 0, 
    4104             : /*  8681*/                        OPC_EmitInteger, MVT::i32, 0, 
    4105             : /*  8684*/                        OPC_EmitInteger, MVT::i32, 0, 
    4106             : /*  8687*/                        OPC_EmitInteger, MVT::i32, 0, 
    4107             : /*  8690*/                        OPC_EmitInteger, MVT::i32, 0, 
    4108             : /*  8693*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4109             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4110             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$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>>)<<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
    4111             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4112             : /*  8710*/                      0, /*End of Scope*/
    4113             : /*  8711*/                    0, /*End of Scope*/
    4114             : /*  8712*/                  0, /*End of Scope*/
    4115             : /*  8713*/                /*Scope*/ 39|128,6/*807*/, /*->9522*/
    4116             : /*  8715*/                  OPC_RecordChild0, // #2 = $src2
    4117             : /*  8716*/                  OPC_MoveChild1,
    4118             : /*  8717*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4119             : /*  8720*/                  OPC_MoveChild0,
    4120             : /*  8721*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    4121             : /*  8724*/                  OPC_Scope, 12|128,3/*396*/, /*->9123*/ // 2 children in Scope
    4122             : /*  8727*/                    OPC_CheckChild0Same, 1,
    4123             : /*  8729*/                    OPC_MoveParent,
    4124             : /*  8730*/                    OPC_MoveChild1,
    4125             : /*  8731*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4126             : /*  8734*/                    OPC_CheckChild0Same, 0,
    4127             : /*  8736*/                    OPC_MoveParent,
    4128             : /*  8737*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4129             : /*  8739*/                    OPC_MoveParent,
    4130             : /*  8740*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4131             : /*  8742*/                    OPC_MoveParent,
    4132             : /*  8743*/                    OPC_MoveChild1,
    4133             : /*  8744*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4134             : /*  8747*/                    OPC_MoveChild0,
    4135             : /*  8748*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4136             : /*  8751*/                    OPC_MoveChild0,
    4137             : /*  8752*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4138             : /*  8755*/                    OPC_Scope, 53|128,1/*181*/, /*->8939*/ // 2 children in Scope
    4139             : /*  8758*/                      OPC_CheckChild0Same, 1,
    4140             : /*  8760*/                      OPC_CheckChild1Integer, 8, 
    4141             : /*  8762*/                      OPC_CheckChild1Type, MVT::i32,
    4142             : /*  8764*/                      OPC_MoveParent,
    4143             : /*  8765*/                      OPC_MoveParent,
    4144             : /*  8766*/                      OPC_MoveChild1,
    4145             : /*  8767*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4146             : /*  8770*/                      OPC_MoveChild0,
    4147             : /*  8771*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4148             : /*  8774*/                      OPC_CheckChild0Same, 0,
    4149             : /*  8776*/                      OPC_CheckChild1Integer, 8, 
    4150             : /*  8778*/                      OPC_CheckChild1Type, MVT::i32,
    4151             : /*  8780*/                      OPC_MoveParent,
    4152             : /*  8781*/                      OPC_MoveParent,
    4153             : /*  8782*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4154             : /*  8784*/                      OPC_MoveParent,
    4155             : /*  8785*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4156             : /*  8787*/                      OPC_MoveParent,
    4157             : /*  8788*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4158             : /*  8790*/                      OPC_MoveParent,
    4159             : /*  8791*/                      OPC_MoveChild1,
    4160             : /*  8792*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4161             : /*  8795*/                      OPC_MoveChild0,
    4162             : /*  8796*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4163             : /*  8799*/                      OPC_Scope, 68, /*->8869*/ // 2 children in Scope
    4164             : /*  8801*/                        OPC_CheckChild0Same, 1,
    4165             : /*  8803*/                        OPC_CheckChild1Integer, 24, 
    4166             : /*  8805*/                        OPC_CheckChild1Type, MVT::i32,
    4167             : /*  8807*/                        OPC_MoveParent,
    4168             : /*  8808*/                        OPC_MoveChild1,
    4169             : /*  8809*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4170             : /*  8812*/                        OPC_CheckChild0Same, 0,
    4171             : /*  8814*/                        OPC_CheckChild1Integer, 24, 
    4172             : /*  8816*/                        OPC_CheckChild1Type, MVT::i32,
    4173             : /*  8818*/                        OPC_MoveParent,
    4174             : /*  8819*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4175             : /*  8821*/                        OPC_MoveParent,
    4176             : /*  8822*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4177             : /*  8824*/                        OPC_CheckType, MVT::i32,
    4178             : /*  8826*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4179             : /*  8828*/                        OPC_EmitInteger, MVT::i32, 8, 
    4180             : /*  8831*/                        OPC_EmitInteger, MVT::i32, 8, 
    4181             : /*  8834*/                        OPC_EmitInteger, MVT::i32, 8, 
    4182             : /*  8837*/                        OPC_EmitInteger, MVT::i1, 0, 
    4183             : /*  8840*/                        OPC_EmitInteger, MVT::i32, 0, 
    4184             : /*  8843*/                        OPC_EmitInteger, MVT::i32, 0, 
    4185             : /*  8846*/                        OPC_EmitInteger, MVT::i32, 0, 
    4186             : /*  8849*/                        OPC_EmitInteger, MVT::i32, 0, 
    4187             : /*  8852*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4188             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4189             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4190             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4191             : /*  8869*/                      /*Scope*/ 68, /*->8938*/
    4192             : /*  8870*/                        OPC_CheckChild0Same, 0,
    4193             : /*  8872*/                        OPC_CheckChild1Integer, 24, 
    4194             : /*  8874*/                        OPC_CheckChild1Type, MVT::i32,
    4195             : /*  8876*/                        OPC_MoveParent,
    4196             : /*  8877*/                        OPC_MoveChild1,
    4197             : /*  8878*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4198             : /*  8881*/                        OPC_CheckChild0Same, 1,
    4199             : /*  8883*/                        OPC_CheckChild1Integer, 24, 
    4200             : /*  8885*/                        OPC_CheckChild1Type, MVT::i32,
    4201             : /*  8887*/                        OPC_MoveParent,
    4202             : /*  8888*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4203             : /*  8890*/                        OPC_MoveParent,
    4204             : /*  8891*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4205             : /*  8893*/                        OPC_CheckType, MVT::i32,
    4206             : /*  8895*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4207             : /*  8897*/                        OPC_EmitInteger, MVT::i32, 8, 
    4208             : /*  8900*/                        OPC_EmitInteger, MVT::i32, 8, 
    4209             : /*  8903*/                        OPC_EmitInteger, MVT::i32, 8, 
    4210             : /*  8906*/                        OPC_EmitInteger, MVT::i1, 0, 
    4211             : /*  8909*/                        OPC_EmitInteger, MVT::i32, 0, 
    4212             : /*  8912*/                        OPC_EmitInteger, MVT::i32, 0, 
    4213             : /*  8915*/                        OPC_EmitInteger, MVT::i32, 0, 
    4214             : /*  8918*/                        OPC_EmitInteger, MVT::i32, 0, 
    4215             : /*  8921*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4216             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4217             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4218             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4219             : /*  8938*/                      0, /*End of Scope*/
    4220             : /*  8939*/                    /*Scope*/ 53|128,1/*181*/, /*->9122*/
    4221             : /*  8941*/                      OPC_CheckChild0Same, 0,
    4222             : /*  8943*/                      OPC_CheckChild1Integer, 8, 
    4223             : /*  8945*/                      OPC_CheckChild1Type, MVT::i32,
    4224             : /*  8947*/                      OPC_MoveParent,
    4225             : /*  8948*/                      OPC_MoveParent,
    4226             : /*  8949*/                      OPC_MoveChild1,
    4227             : /*  8950*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4228             : /*  8953*/                      OPC_MoveChild0,
    4229             : /*  8954*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4230             : /*  8957*/                      OPC_CheckChild0Same, 1,
    4231             : /*  8959*/                      OPC_CheckChild1Integer, 8, 
    4232             : /*  8961*/                      OPC_CheckChild1Type, MVT::i32,
    4233             : /*  8963*/                      OPC_MoveParent,
    4234             : /*  8964*/                      OPC_MoveParent,
    4235             : /*  8965*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4236             : /*  8967*/                      OPC_MoveParent,
    4237             : /*  8968*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4238             : /*  8970*/                      OPC_MoveParent,
    4239             : /*  8971*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4240             : /*  8973*/                      OPC_MoveParent,
    4241             : /*  8974*/                      OPC_MoveChild1,
    4242             : /*  8975*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4243             : /*  8978*/                      OPC_MoveChild0,
    4244             : /*  8979*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4245             : /*  8982*/                      OPC_Scope, 68, /*->9052*/ // 2 children in Scope
    4246             : /*  8984*/                        OPC_CheckChild0Same, 1,
    4247             : /*  8986*/                        OPC_CheckChild1Integer, 24, 
    4248             : /*  8988*/                        OPC_CheckChild1Type, MVT::i32,
    4249             : /*  8990*/                        OPC_MoveParent,
    4250             : /*  8991*/                        OPC_MoveChild1,
    4251             : /*  8992*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4252             : /*  8995*/                        OPC_CheckChild0Same, 0,
    4253             : /*  8997*/                        OPC_CheckChild1Integer, 24, 
    4254             : /*  8999*/                        OPC_CheckChild1Type, MVT::i32,
    4255             : /*  9001*/                        OPC_MoveParent,
    4256             : /*  9002*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4257             : /*  9004*/                        OPC_MoveParent,
    4258             : /*  9005*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4259             : /*  9007*/                        OPC_CheckType, MVT::i32,
    4260             : /*  9009*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4261             : /*  9011*/                        OPC_EmitInteger, MVT::i32, 8, 
    4262             : /*  9014*/                        OPC_EmitInteger, MVT::i32, 8, 
    4263             : /*  9017*/                        OPC_EmitInteger, MVT::i32, 8, 
    4264             : /*  9020*/                        OPC_EmitInteger, MVT::i1, 0, 
    4265             : /*  9023*/                        OPC_EmitInteger, MVT::i32, 0, 
    4266             : /*  9026*/                        OPC_EmitInteger, MVT::i32, 0, 
    4267             : /*  9029*/                        OPC_EmitInteger, MVT::i32, 0, 
    4268             : /*  9032*/                        OPC_EmitInteger, MVT::i32, 0, 
    4269             : /*  9035*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4270             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4271             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4272             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4273             : /*  9052*/                      /*Scope*/ 68, /*->9121*/
    4274             : /*  9053*/                        OPC_CheckChild0Same, 0,
    4275             : /*  9055*/                        OPC_CheckChild1Integer, 24, 
    4276             : /*  9057*/                        OPC_CheckChild1Type, MVT::i32,
    4277             : /*  9059*/                        OPC_MoveParent,
    4278             : /*  9060*/                        OPC_MoveChild1,
    4279             : /*  9061*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4280             : /*  9064*/                        OPC_CheckChild0Same, 1,
    4281             : /*  9066*/                        OPC_CheckChild1Integer, 24, 
    4282             : /*  9068*/                        OPC_CheckChild1Type, MVT::i32,
    4283             : /*  9070*/                        OPC_MoveParent,
    4284             : /*  9071*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4285             : /*  9073*/                        OPC_MoveParent,
    4286             : /*  9074*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4287             : /*  9076*/                        OPC_CheckType, MVT::i32,
    4288             : /*  9078*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4289             : /*  9080*/                        OPC_EmitInteger, MVT::i32, 8, 
    4290             : /*  9083*/                        OPC_EmitInteger, MVT::i32, 8, 
    4291             : /*  9086*/                        OPC_EmitInteger, MVT::i32, 8, 
    4292             : /*  9089*/                        OPC_EmitInteger, MVT::i1, 0, 
    4293             : /*  9092*/                        OPC_EmitInteger, MVT::i32, 0, 
    4294             : /*  9095*/                        OPC_EmitInteger, MVT::i32, 0, 
    4295             : /*  9098*/                        OPC_EmitInteger, MVT::i32, 0, 
    4296             : /*  9101*/                        OPC_EmitInteger, MVT::i32, 0, 
    4297             : /*  9104*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4298             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4299             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4300             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4301             : /*  9121*/                      0, /*End of Scope*/
    4302             : /*  9122*/                    0, /*End of Scope*/
    4303             : /*  9123*/                  /*Scope*/ 12|128,3/*396*/, /*->9521*/
    4304             : /*  9125*/                    OPC_CheckChild0Same, 0,
    4305             : /*  9127*/                    OPC_MoveParent,
    4306             : /*  9128*/                    OPC_MoveChild1,
    4307             : /*  9129*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4308             : /*  9132*/                    OPC_CheckChild0Same, 1,
    4309             : /*  9134*/                    OPC_MoveParent,
    4310             : /*  9135*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4311             : /*  9137*/                    OPC_MoveParent,
    4312             : /*  9138*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4313             : /*  9140*/                    OPC_MoveParent,
    4314             : /*  9141*/                    OPC_MoveChild1,
    4315             : /*  9142*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4316             : /*  9145*/                    OPC_MoveChild0,
    4317             : /*  9146*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4318             : /*  9149*/                    OPC_MoveChild0,
    4319             : /*  9150*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4320             : /*  9153*/                    OPC_Scope, 53|128,1/*181*/, /*->9337*/ // 2 children in Scope
    4321             : /*  9156*/                      OPC_CheckChild0Same, 1,
    4322             : /*  9158*/                      OPC_CheckChild1Integer, 8, 
    4323             : /*  9160*/                      OPC_CheckChild1Type, MVT::i32,
    4324             : /*  9162*/                      OPC_MoveParent,
    4325             : /*  9163*/                      OPC_MoveParent,
    4326             : /*  9164*/                      OPC_MoveChild1,
    4327             : /*  9165*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4328             : /*  9168*/                      OPC_MoveChild0,
    4329             : /*  9169*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4330             : /*  9172*/                      OPC_CheckChild0Same, 0,
    4331             : /*  9174*/                      OPC_CheckChild1Integer, 8, 
    4332             : /*  9176*/                      OPC_CheckChild1Type, MVT::i32,
    4333             : /*  9178*/                      OPC_MoveParent,
    4334             : /*  9179*/                      OPC_MoveParent,
    4335             : /*  9180*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4336             : /*  9182*/                      OPC_MoveParent,
    4337             : /*  9183*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4338             : /*  9185*/                      OPC_MoveParent,
    4339             : /*  9186*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4340             : /*  9188*/                      OPC_MoveParent,
    4341             : /*  9189*/                      OPC_MoveChild1,
    4342             : /*  9190*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4343             : /*  9193*/                      OPC_MoveChild0,
    4344             : /*  9194*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4345             : /*  9197*/                      OPC_Scope, 68, /*->9267*/ // 2 children in Scope
    4346             : /*  9199*/                        OPC_CheckChild0Same, 1,
    4347             : /*  9201*/                        OPC_CheckChild1Integer, 24, 
    4348             : /*  9203*/                        OPC_CheckChild1Type, MVT::i32,
    4349             : /*  9205*/                        OPC_MoveParent,
    4350             : /*  9206*/                        OPC_MoveChild1,
    4351             : /*  9207*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4352             : /*  9210*/                        OPC_CheckChild0Same, 0,
    4353             : /*  9212*/                        OPC_CheckChild1Integer, 24, 
    4354             : /*  9214*/                        OPC_CheckChild1Type, MVT::i32,
    4355             : /*  9216*/                        OPC_MoveParent,
    4356             : /*  9217*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4357             : /*  9219*/                        OPC_MoveParent,
    4358             : /*  9220*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4359             : /*  9222*/                        OPC_CheckType, MVT::i32,
    4360             : /*  9224*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4361             : /*  9226*/                        OPC_EmitInteger, MVT::i32, 8, 
    4362             : /*  9229*/                        OPC_EmitInteger, MVT::i32, 8, 
    4363             : /*  9232*/                        OPC_EmitInteger, MVT::i32, 8, 
    4364             : /*  9235*/                        OPC_EmitInteger, MVT::i1, 0, 
    4365             : /*  9238*/                        OPC_EmitInteger, MVT::i32, 0, 
    4366             : /*  9241*/                        OPC_EmitInteger, MVT::i32, 0, 
    4367             : /*  9244*/                        OPC_EmitInteger, MVT::i32, 0, 
    4368             : /*  9247*/                        OPC_EmitInteger, MVT::i32, 0, 
    4369             : /*  9250*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4370             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4371             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4372             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4373             : /*  9267*/                      /*Scope*/ 68, /*->9336*/
    4374             : /*  9268*/                        OPC_CheckChild0Same, 0,
    4375             : /*  9270*/                        OPC_CheckChild1Integer, 24, 
    4376             : /*  9272*/                        OPC_CheckChild1Type, MVT::i32,
    4377             : /*  9274*/                        OPC_MoveParent,
    4378             : /*  9275*/                        OPC_MoveChild1,
    4379             : /*  9276*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4380             : /*  9279*/                        OPC_CheckChild0Same, 1,
    4381             : /*  9281*/                        OPC_CheckChild1Integer, 24, 
    4382             : /*  9283*/                        OPC_CheckChild1Type, MVT::i32,
    4383             : /*  9285*/                        OPC_MoveParent,
    4384             : /*  9286*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4385             : /*  9288*/                        OPC_MoveParent,
    4386             : /*  9289*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4387             : /*  9291*/                        OPC_CheckType, MVT::i32,
    4388             : /*  9293*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4389             : /*  9295*/                        OPC_EmitInteger, MVT::i32, 8, 
    4390             : /*  9298*/                        OPC_EmitInteger, MVT::i32, 8, 
    4391             : /*  9301*/                        OPC_EmitInteger, MVT::i32, 8, 
    4392             : /*  9304*/                        OPC_EmitInteger, MVT::i1, 0, 
    4393             : /*  9307*/                        OPC_EmitInteger, MVT::i32, 0, 
    4394             : /*  9310*/                        OPC_EmitInteger, MVT::i32, 0, 
    4395             : /*  9313*/                        OPC_EmitInteger, MVT::i32, 0, 
    4396             : /*  9316*/                        OPC_EmitInteger, MVT::i32, 0, 
    4397             : /*  9319*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4398             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4399             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4400             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4401             : /*  9336*/                      0, /*End of Scope*/
    4402             : /*  9337*/                    /*Scope*/ 53|128,1/*181*/, /*->9520*/
    4403             : /*  9339*/                      OPC_CheckChild0Same, 0,
    4404             : /*  9341*/                      OPC_CheckChild1Integer, 8, 
    4405             : /*  9343*/                      OPC_CheckChild1Type, MVT::i32,
    4406             : /*  9345*/                      OPC_MoveParent,
    4407             : /*  9346*/                      OPC_MoveParent,
    4408             : /*  9347*/                      OPC_MoveChild1,
    4409             : /*  9348*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4410             : /*  9351*/                      OPC_MoveChild0,
    4411             : /*  9352*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4412             : /*  9355*/                      OPC_CheckChild0Same, 1,
    4413             : /*  9357*/                      OPC_CheckChild1Integer, 8, 
    4414             : /*  9359*/                      OPC_CheckChild1Type, MVT::i32,
    4415             : /*  9361*/                      OPC_MoveParent,
    4416             : /*  9362*/                      OPC_MoveParent,
    4417             : /*  9363*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4418             : /*  9365*/                      OPC_MoveParent,
    4419             : /*  9366*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4420             : /*  9368*/                      OPC_MoveParent,
    4421             : /*  9369*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4422             : /*  9371*/                      OPC_MoveParent,
    4423             : /*  9372*/                      OPC_MoveChild1,
    4424             : /*  9373*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4425             : /*  9376*/                      OPC_MoveChild0,
    4426             : /*  9377*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4427             : /*  9380*/                      OPC_Scope, 68, /*->9450*/ // 2 children in Scope
    4428             : /*  9382*/                        OPC_CheckChild0Same, 1,
    4429             : /*  9384*/                        OPC_CheckChild1Integer, 24, 
    4430             : /*  9386*/                        OPC_CheckChild1Type, MVT::i32,
    4431             : /*  9388*/                        OPC_MoveParent,
    4432             : /*  9389*/                        OPC_MoveChild1,
    4433             : /*  9390*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4434             : /*  9393*/                        OPC_CheckChild0Same, 0,
    4435             : /*  9395*/                        OPC_CheckChild1Integer, 24, 
    4436             : /*  9397*/                        OPC_CheckChild1Type, MVT::i32,
    4437             : /*  9399*/                        OPC_MoveParent,
    4438             : /*  9400*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4439             : /*  9402*/                        OPC_MoveParent,
    4440             : /*  9403*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4441             : /*  9405*/                        OPC_CheckType, MVT::i32,
    4442             : /*  9407*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4443             : /*  9409*/                        OPC_EmitInteger, MVT::i32, 8, 
    4444             : /*  9412*/                        OPC_EmitInteger, MVT::i32, 8, 
    4445             : /*  9415*/                        OPC_EmitInteger, MVT::i32, 8, 
    4446             : /*  9418*/                        OPC_EmitInteger, MVT::i1, 0, 
    4447             : /*  9421*/                        OPC_EmitInteger, MVT::i32, 0, 
    4448             : /*  9424*/                        OPC_EmitInteger, MVT::i32, 0, 
    4449             : /*  9427*/                        OPC_EmitInteger, MVT::i32, 0, 
    4450             : /*  9430*/                        OPC_EmitInteger, MVT::i32, 0, 
    4451             : /*  9433*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4452             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4453             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4454             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4455             : /*  9450*/                      /*Scope*/ 68, /*->9519*/
    4456             : /*  9451*/                        OPC_CheckChild0Same, 0,
    4457             : /*  9453*/                        OPC_CheckChild1Integer, 24, 
    4458             : /*  9455*/                        OPC_CheckChild1Type, MVT::i32,
    4459             : /*  9457*/                        OPC_MoveParent,
    4460             : /*  9458*/                        OPC_MoveChild1,
    4461             : /*  9459*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4462             : /*  9462*/                        OPC_CheckChild0Same, 1,
    4463             : /*  9464*/                        OPC_CheckChild1Integer, 24, 
    4464             : /*  9466*/                        OPC_CheckChild1Type, MVT::i32,
    4465             : /*  9468*/                        OPC_MoveParent,
    4466             : /*  9469*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4467             : /*  9471*/                        OPC_MoveParent,
    4468             : /*  9472*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4469             : /*  9474*/                        OPC_CheckType, MVT::i32,
    4470             : /*  9476*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4471             : /*  9478*/                        OPC_EmitInteger, MVT::i32, 8, 
    4472             : /*  9481*/                        OPC_EmitInteger, MVT::i32, 8, 
    4473             : /*  9484*/                        OPC_EmitInteger, MVT::i32, 8, 
    4474             : /*  9487*/                        OPC_EmitInteger, MVT::i1, 0, 
    4475             : /*  9490*/                        OPC_EmitInteger, MVT::i32, 0, 
    4476             : /*  9493*/                        OPC_EmitInteger, MVT::i32, 0, 
    4477             : /*  9496*/                        OPC_EmitInteger, MVT::i32, 0, 
    4478             : /*  9499*/                        OPC_EmitInteger, MVT::i32, 0, 
    4479             : /*  9502*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4480             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4481             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4482             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4483             : /*  9519*/                      0, /*End of Scope*/
    4484             : /*  9520*/                    0, /*End of Scope*/
    4485             : /*  9521*/                  0, /*End of Scope*/
    4486             : /*  9522*/                /*Scope*/ 40|128,6/*808*/, /*->10332*/
    4487             : /*  9524*/                  OPC_MoveChild0,
    4488             : /*  9525*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4489             : /*  9528*/                  OPC_MoveChild0,
    4490             : /*  9529*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    4491             : /*  9532*/                  OPC_Scope, 13|128,3/*397*/, /*->9932*/ // 2 children in Scope
    4492             : /*  9535*/                    OPC_CheckChild0Same, 1,
    4493             : /*  9537*/                    OPC_MoveParent,
    4494             : /*  9538*/                    OPC_MoveChild1,
    4495             : /*  9539*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4496             : /*  9542*/                    OPC_CheckChild0Same, 0,
    4497             : /*  9544*/                    OPC_MoveParent,
    4498             : /*  9545*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4499             : /*  9547*/                    OPC_MoveParent,
    4500             : /*  9548*/                    OPC_RecordChild1, // #2 = $src2
    4501             : /*  9549*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4502             : /*  9551*/                    OPC_MoveParent,
    4503             : /*  9552*/                    OPC_MoveChild1,
    4504             : /*  9553*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4505             : /*  9556*/                    OPC_MoveChild0,
    4506             : /*  9557*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4507             : /*  9560*/                    OPC_MoveChild0,
    4508             : /*  9561*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4509             : /*  9564*/                    OPC_Scope, 53|128,1/*181*/, /*->9748*/ // 2 children in Scope
    4510             : /*  9567*/                      OPC_CheckChild0Same, 1,
    4511             : /*  9569*/                      OPC_CheckChild1Integer, 8, 
    4512             : /*  9571*/                      OPC_CheckChild1Type, MVT::i32,
    4513             : /*  9573*/                      OPC_MoveParent,
    4514             : /*  9574*/                      OPC_MoveParent,
    4515             : /*  9575*/                      OPC_MoveChild1,
    4516             : /*  9576*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4517             : /*  9579*/                      OPC_MoveChild0,
    4518             : /*  9580*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4519             : /*  9583*/                      OPC_CheckChild0Same, 0,
    4520             : /*  9585*/                      OPC_CheckChild1Integer, 8, 
    4521             : /*  9587*/                      OPC_CheckChild1Type, MVT::i32,
    4522             : /*  9589*/                      OPC_MoveParent,
    4523             : /*  9590*/                      OPC_MoveParent,
    4524             : /*  9591*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4525             : /*  9593*/                      OPC_MoveParent,
    4526             : /*  9594*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4527             : /*  9596*/                      OPC_MoveParent,
    4528             : /*  9597*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4529             : /*  9599*/                      OPC_MoveParent,
    4530             : /*  9600*/                      OPC_MoveChild1,
    4531             : /*  9601*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4532             : /*  9604*/                      OPC_MoveChild0,
    4533             : /*  9605*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4534             : /*  9608*/                      OPC_Scope, 68, /*->9678*/ // 2 children in Scope
    4535             : /*  9610*/                        OPC_CheckChild0Same, 1,
    4536             : /*  9612*/                        OPC_CheckChild1Integer, 24, 
    4537             : /*  9614*/                        OPC_CheckChild1Type, MVT::i32,
    4538             : /*  9616*/                        OPC_MoveParent,
    4539             : /*  9617*/                        OPC_MoveChild1,
    4540             : /*  9618*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4541             : /*  9621*/                        OPC_CheckChild0Same, 0,
    4542             : /*  9623*/                        OPC_CheckChild1Integer, 24, 
    4543             : /*  9625*/                        OPC_CheckChild1Type, MVT::i32,
    4544             : /*  9627*/                        OPC_MoveParent,
    4545             : /*  9628*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4546             : /*  9630*/                        OPC_MoveParent,
    4547             : /*  9631*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4548             : /*  9633*/                        OPC_CheckType, MVT::i32,
    4549             : /*  9635*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4550             : /*  9637*/                        OPC_EmitInteger, MVT::i32, 8, 
    4551             : /*  9640*/                        OPC_EmitInteger, MVT::i32, 8, 
    4552             : /*  9643*/                        OPC_EmitInteger, MVT::i32, 8, 
    4553             : /*  9646*/                        OPC_EmitInteger, MVT::i1, 0, 
    4554             : /*  9649*/                        OPC_EmitInteger, MVT::i32, 0, 
    4555             : /*  9652*/                        OPC_EmitInteger, MVT::i32, 0, 
    4556             : /*  9655*/                        OPC_EmitInteger, MVT::i32, 0, 
    4557             : /*  9658*/                        OPC_EmitInteger, MVT::i32, 0, 
    4558             : /*  9661*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4559             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4560             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4561             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4562             : /*  9678*/                      /*Scope*/ 68, /*->9747*/
    4563             : /*  9679*/                        OPC_CheckChild0Same, 0,
    4564             : /*  9681*/                        OPC_CheckChild1Integer, 24, 
    4565             : /*  9683*/                        OPC_CheckChild1Type, MVT::i32,
    4566             : /*  9685*/                        OPC_MoveParent,
    4567             : /*  9686*/                        OPC_MoveChild1,
    4568             : /*  9687*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4569             : /*  9690*/                        OPC_CheckChild0Same, 1,
    4570             : /*  9692*/                        OPC_CheckChild1Integer, 24, 
    4571             : /*  9694*/                        OPC_CheckChild1Type, MVT::i32,
    4572             : /*  9696*/                        OPC_MoveParent,
    4573             : /*  9697*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4574             : /*  9699*/                        OPC_MoveParent,
    4575             : /*  9700*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4576             : /*  9702*/                        OPC_CheckType, MVT::i32,
    4577             : /*  9704*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4578             : /*  9706*/                        OPC_EmitInteger, MVT::i32, 8, 
    4579             : /*  9709*/                        OPC_EmitInteger, MVT::i32, 8, 
    4580             : /*  9712*/                        OPC_EmitInteger, MVT::i32, 8, 
    4581             : /*  9715*/                        OPC_EmitInteger, MVT::i1, 0, 
    4582             : /*  9718*/                        OPC_EmitInteger, MVT::i32, 0, 
    4583             : /*  9721*/                        OPC_EmitInteger, MVT::i32, 0, 
    4584             : /*  9724*/                        OPC_EmitInteger, MVT::i32, 0, 
    4585             : /*  9727*/                        OPC_EmitInteger, MVT::i32, 0, 
    4586             : /*  9730*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4587             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4588             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4589             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4590             : /*  9747*/                      0, /*End of Scope*/
    4591             : /*  9748*/                    /*Scope*/ 53|128,1/*181*/, /*->9931*/
    4592             : /*  9750*/                      OPC_CheckChild0Same, 0,
    4593             : /*  9752*/                      OPC_CheckChild1Integer, 8, 
    4594             : /*  9754*/                      OPC_CheckChild1Type, MVT::i32,
    4595             : /*  9756*/                      OPC_MoveParent,
    4596             : /*  9757*/                      OPC_MoveParent,
    4597             : /*  9758*/                      OPC_MoveChild1,
    4598             : /*  9759*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4599             : /*  9762*/                      OPC_MoveChild0,
    4600             : /*  9763*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4601             : /*  9766*/                      OPC_CheckChild0Same, 1,
    4602             : /*  9768*/                      OPC_CheckChild1Integer, 8, 
    4603             : /*  9770*/                      OPC_CheckChild1Type, MVT::i32,
    4604             : /*  9772*/                      OPC_MoveParent,
    4605             : /*  9773*/                      OPC_MoveParent,
    4606             : /*  9774*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4607             : /*  9776*/                      OPC_MoveParent,
    4608             : /*  9777*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4609             : /*  9779*/                      OPC_MoveParent,
    4610             : /*  9780*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4611             : /*  9782*/                      OPC_MoveParent,
    4612             : /*  9783*/                      OPC_MoveChild1,
    4613             : /*  9784*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4614             : /*  9787*/                      OPC_MoveChild0,
    4615             : /*  9788*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4616             : /*  9791*/                      OPC_Scope, 68, /*->9861*/ // 2 children in Scope
    4617             : /*  9793*/                        OPC_CheckChild0Same, 1,
    4618             : /*  9795*/                        OPC_CheckChild1Integer, 24, 
    4619             : /*  9797*/                        OPC_CheckChild1Type, MVT::i32,
    4620             : /*  9799*/                        OPC_MoveParent,
    4621             : /*  9800*/                        OPC_MoveChild1,
    4622             : /*  9801*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4623             : /*  9804*/                        OPC_CheckChild0Same, 0,
    4624             : /*  9806*/                        OPC_CheckChild1Integer, 24, 
    4625             : /*  9808*/                        OPC_CheckChild1Type, MVT::i32,
    4626             : /*  9810*/                        OPC_MoveParent,
    4627             : /*  9811*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4628             : /*  9813*/                        OPC_MoveParent,
    4629             : /*  9814*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4630             : /*  9816*/                        OPC_CheckType, MVT::i32,
    4631             : /*  9818*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4632             : /*  9820*/                        OPC_EmitInteger, MVT::i32, 8, 
    4633             : /*  9823*/                        OPC_EmitInteger, MVT::i32, 8, 
    4634             : /*  9826*/                        OPC_EmitInteger, MVT::i32, 8, 
    4635             : /*  9829*/                        OPC_EmitInteger, MVT::i1, 0, 
    4636             : /*  9832*/                        OPC_EmitInteger, MVT::i32, 0, 
    4637             : /*  9835*/                        OPC_EmitInteger, MVT::i32, 0, 
    4638             : /*  9838*/                        OPC_EmitInteger, MVT::i32, 0, 
    4639             : /*  9841*/                        OPC_EmitInteger, MVT::i32, 0, 
    4640             : /*  9844*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4641             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4642             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4643             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4644             : /*  9861*/                      /*Scope*/ 68, /*->9930*/
    4645             : /*  9862*/                        OPC_CheckChild0Same, 0,
    4646             : /*  9864*/                        OPC_CheckChild1Integer, 24, 
    4647             : /*  9866*/                        OPC_CheckChild1Type, MVT::i32,
    4648             : /*  9868*/                        OPC_MoveParent,
    4649             : /*  9869*/                        OPC_MoveChild1,
    4650             : /*  9870*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4651             : /*  9873*/                        OPC_CheckChild0Same, 1,
    4652             : /*  9875*/                        OPC_CheckChild1Integer, 24, 
    4653             : /*  9877*/                        OPC_CheckChild1Type, MVT::i32,
    4654             : /*  9879*/                        OPC_MoveParent,
    4655             : /*  9880*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4656             : /*  9882*/                        OPC_MoveParent,
    4657             : /*  9883*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4658             : /*  9885*/                        OPC_CheckType, MVT::i32,
    4659             : /*  9887*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4660             : /*  9889*/                        OPC_EmitInteger, MVT::i32, 8, 
    4661             : /*  9892*/                        OPC_EmitInteger, MVT::i32, 8, 
    4662             : /*  9895*/                        OPC_EmitInteger, MVT::i32, 8, 
    4663             : /*  9898*/                        OPC_EmitInteger, MVT::i1, 0, 
    4664             : /*  9901*/                        OPC_EmitInteger, MVT::i32, 0, 
    4665             : /*  9904*/                        OPC_EmitInteger, MVT::i32, 0, 
    4666             : /*  9907*/                        OPC_EmitInteger, MVT::i32, 0, 
    4667             : /*  9910*/                        OPC_EmitInteger, MVT::i32, 0, 
    4668             : /*  9913*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4669             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4670             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    4671             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4672             : /*  9930*/                      0, /*End of Scope*/
    4673             : /*  9931*/                    0, /*End of Scope*/
    4674             : /*  9932*/                  /*Scope*/ 13|128,3/*397*/, /*->10331*/
    4675             : /*  9934*/                    OPC_CheckChild0Same, 0,
    4676             : /*  9936*/                    OPC_MoveParent,
    4677             : /*  9937*/                    OPC_MoveChild1,
    4678             : /*  9938*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4679             : /*  9941*/                    OPC_CheckChild0Same, 1,
    4680             : /*  9943*/                    OPC_MoveParent,
    4681             : /*  9944*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4682             : /*  9946*/                    OPC_MoveParent,
    4683             : /*  9947*/                    OPC_RecordChild1, // #2 = $src2
    4684             : /*  9948*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4685             : /*  9950*/                    OPC_MoveParent,
    4686             : /*  9951*/                    OPC_MoveChild1,
    4687             : /*  9952*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4688             : /*  9955*/                    OPC_MoveChild0,
    4689             : /*  9956*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4690             : /*  9959*/                    OPC_MoveChild0,
    4691             : /*  9960*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4692             : /*  9963*/                    OPC_Scope, 53|128,1/*181*/, /*->10147*/ // 2 children in Scope
    4693             : /*  9966*/                      OPC_CheckChild0Same, 1,
    4694             : /*  9968*/                      OPC_CheckChild1Integer, 8, 
    4695             : /*  9970*/                      OPC_CheckChild1Type, MVT::i32,
    4696             : /*  9972*/                      OPC_MoveParent,
    4697             : /*  9973*/                      OPC_MoveParent,
    4698             : /*  9974*/                      OPC_MoveChild1,
    4699             : /*  9975*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4700             : /*  9978*/                      OPC_MoveChild0,
    4701             : /*  9979*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4702             : /*  9982*/                      OPC_CheckChild0Same, 0,
    4703             : /*  9984*/                      OPC_CheckChild1Integer, 8, 
    4704             : /*  9986*/                      OPC_CheckChild1Type, MVT::i32,
    4705             : /*  9988*/                      OPC_MoveParent,
    4706             : /*  9989*/                      OPC_MoveParent,
    4707             : /*  9990*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4708             : /*  9992*/                      OPC_MoveParent,
    4709             : /*  9993*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4710             : /*  9995*/                      OPC_MoveParent,
    4711             : /*  9996*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4712             : /*  9998*/                      OPC_MoveParent,
    4713             : /*  9999*/                      OPC_MoveChild1,
    4714             : /* 10000*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4715             : /* 10003*/                      OPC_MoveChild0,
    4716             : /* 10004*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4717             : /* 10007*/                      OPC_Scope, 68, /*->10077*/ // 2 children in Scope
    4718             : /* 10009*/                        OPC_CheckChild0Same, 1,
    4719             : /* 10011*/                        OPC_CheckChild1Integer, 24, 
    4720             : /* 10013*/                        OPC_CheckChild1Type, MVT::i32,
    4721             : /* 10015*/                        OPC_MoveParent,
    4722             : /* 10016*/                        OPC_MoveChild1,
    4723             : /* 10017*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4724             : /* 10020*/                        OPC_CheckChild0Same, 0,
    4725             : /* 10022*/                        OPC_CheckChild1Integer, 24, 
    4726             : /* 10024*/                        OPC_CheckChild1Type, MVT::i32,
    4727             : /* 10026*/                        OPC_MoveParent,
    4728             : /* 10027*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4729             : /* 10029*/                        OPC_MoveParent,
    4730             : /* 10030*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4731             : /* 10032*/                        OPC_CheckType, MVT::i32,
    4732             : /* 10034*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4733             : /* 10036*/                        OPC_EmitInteger, MVT::i32, 8, 
    4734             : /* 10039*/                        OPC_EmitInteger, MVT::i32, 8, 
    4735             : /* 10042*/                        OPC_EmitInteger, MVT::i32, 8, 
    4736             : /* 10045*/                        OPC_EmitInteger, MVT::i1, 0, 
    4737             : /* 10048*/                        OPC_EmitInteger, MVT::i32, 0, 
    4738             : /* 10051*/                        OPC_EmitInteger, MVT::i32, 0, 
    4739             : /* 10054*/                        OPC_EmitInteger, MVT::i32, 0, 
    4740             : /* 10057*/                        OPC_EmitInteger, MVT::i32, 0, 
    4741             : /* 10060*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4742             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4743             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (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>>)<<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
    4744             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4745             : /* 10077*/                      /*Scope*/ 68, /*->10146*/
    4746             : /* 10078*/                        OPC_CheckChild0Same, 0,
    4747             : /* 10080*/                        OPC_CheckChild1Integer, 24, 
    4748             : /* 10082*/                        OPC_CheckChild1Type, MVT::i32,
    4749             : /* 10084*/                        OPC_MoveParent,
    4750             : /* 10085*/                        OPC_MoveChild1,
    4751             : /* 10086*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4752             : /* 10089*/                        OPC_CheckChild0Same, 1,
    4753             : /* 10091*/                        OPC_CheckChild1Integer, 24, 
    4754             : /* 10093*/                        OPC_CheckChild1Type, MVT::i32,
    4755             : /* 10095*/                        OPC_MoveParent,
    4756             : /* 10096*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4757             : /* 10098*/                        OPC_MoveParent,
    4758             : /* 10099*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4759             : /* 10101*/                        OPC_CheckType, MVT::i32,
    4760             : /* 10103*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4761             : /* 10105*/                        OPC_EmitInteger, MVT::i32, 8, 
    4762             : /* 10108*/                        OPC_EmitInteger, MVT::i32, 8, 
    4763             : /* 10111*/                        OPC_EmitInteger, MVT::i32, 8, 
    4764             : /* 10114*/                        OPC_EmitInteger, MVT::i1, 0, 
    4765             : /* 10117*/                        OPC_EmitInteger, MVT::i32, 0, 
    4766             : /* 10120*/                        OPC_EmitInteger, MVT::i32, 0, 
    4767             : /* 10123*/                        OPC_EmitInteger, MVT::i32, 0, 
    4768             : /* 10126*/                        OPC_EmitInteger, MVT::i32, 0, 
    4769             : /* 10129*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4770             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4771             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (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>>)<<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
    4772             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4773             : /* 10146*/                      0, /*End of Scope*/
    4774             : /* 10147*/                    /*Scope*/ 53|128,1/*181*/, /*->10330*/
    4775             : /* 10149*/                      OPC_CheckChild0Same, 0,
    4776             : /* 10151*/                      OPC_CheckChild1Integer, 8, 
    4777             : /* 10153*/                      OPC_CheckChild1Type, MVT::i32,
    4778             : /* 10155*/                      OPC_MoveParent,
    4779             : /* 10156*/                      OPC_MoveParent,
    4780             : /* 10157*/                      OPC_MoveChild1,
    4781             : /* 10158*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4782             : /* 10161*/                      OPC_MoveChild0,
    4783             : /* 10162*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4784             : /* 10165*/                      OPC_CheckChild0Same, 1,
    4785             : /* 10167*/                      OPC_CheckChild1Integer, 8, 
    4786             : /* 10169*/                      OPC_CheckChild1Type, MVT::i32,
    4787             : /* 10171*/                      OPC_MoveParent,
    4788             : /* 10172*/                      OPC_MoveParent,
    4789             : /* 10173*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4790             : /* 10175*/                      OPC_MoveParent,
    4791             : /* 10176*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4792             : /* 10178*/                      OPC_MoveParent,
    4793             : /* 10179*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4794             : /* 10181*/                      OPC_MoveParent,
    4795             : /* 10182*/                      OPC_MoveChild1,
    4796             : /* 10183*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4797             : /* 10186*/                      OPC_MoveChild0,
    4798             : /* 10187*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4799             : /* 10190*/                      OPC_Scope, 68, /*->10260*/ // 2 children in Scope
    4800             : /* 10192*/                        OPC_CheckChild0Same, 1,
    4801             : /* 10194*/                        OPC_CheckChild1Integer, 24, 
    4802             : /* 10196*/                        OPC_CheckChild1Type, MVT::i32,
    4803             : /* 10198*/                        OPC_MoveParent,
    4804             : /* 10199*/                        OPC_MoveChild1,
    4805             : /* 10200*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4806             : /* 10203*/                        OPC_CheckChild0Same, 0,
    4807             : /* 10205*/                        OPC_CheckChild1Integer, 24, 
    4808             : /* 10207*/                        OPC_CheckChild1Type, MVT::i32,
    4809             : /* 10209*/                        OPC_MoveParent,
    4810             : /* 10210*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4811             : /* 10212*/                        OPC_MoveParent,
    4812             : /* 10213*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4813             : /* 10215*/                        OPC_CheckType, MVT::i32,
    4814             : /* 10217*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4815             : /* 10219*/                        OPC_EmitInteger, MVT::i32, 8, 
    4816             : /* 10222*/                        OPC_EmitInteger, MVT::i32, 8, 
    4817             : /* 10225*/                        OPC_EmitInteger, MVT::i32, 8, 
    4818             : /* 10228*/                        OPC_EmitInteger, MVT::i1, 0, 
    4819             : /* 10231*/                        OPC_EmitInteger, MVT::i32, 0, 
    4820             : /* 10234*/                        OPC_EmitInteger, MVT::i32, 0, 
    4821             : /* 10237*/                        OPC_EmitInteger, MVT::i32, 0, 
    4822             : /* 10240*/                        OPC_EmitInteger, MVT::i32, 0, 
    4823             : /* 10243*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4824             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4825             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (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>>)<<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
    4826             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4827             : /* 10260*/                      /*Scope*/ 68, /*->10329*/
    4828             : /* 10261*/                        OPC_CheckChild0Same, 0,
    4829             : /* 10263*/                        OPC_CheckChild1Integer, 24, 
    4830             : /* 10265*/                        OPC_CheckChild1Type, MVT::i32,
    4831             : /* 10267*/                        OPC_MoveParent,
    4832             : /* 10268*/                        OPC_MoveChild1,
    4833             : /* 10269*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4834             : /* 10272*/                        OPC_CheckChild0Same, 1,
    4835             : /* 10274*/                        OPC_CheckChild1Integer, 24, 
    4836             : /* 10276*/                        OPC_CheckChild1Type, MVT::i32,
    4837             : /* 10278*/                        OPC_MoveParent,
    4838             : /* 10279*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4839             : /* 10281*/                        OPC_MoveParent,
    4840             : /* 10282*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4841             : /* 10284*/                        OPC_CheckType, MVT::i32,
    4842             : /* 10286*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4843             : /* 10288*/                        OPC_EmitInteger, MVT::i32, 8, 
    4844             : /* 10291*/                        OPC_EmitInteger, MVT::i32, 8, 
    4845             : /* 10294*/                        OPC_EmitInteger, MVT::i32, 8, 
    4846             : /* 10297*/                        OPC_EmitInteger, MVT::i1, 0, 
    4847             : /* 10300*/                        OPC_EmitInteger, MVT::i32, 0, 
    4848             : /* 10303*/                        OPC_EmitInteger, MVT::i32, 0, 
    4849             : /* 10306*/                        OPC_EmitInteger, MVT::i32, 0, 
    4850             : /* 10309*/                        OPC_EmitInteger, MVT::i32, 0, 
    4851             : /* 10312*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4852             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    4853             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (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>>)<<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
    4854             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4855             : /* 10329*/                      0, /*End of Scope*/
    4856             : /* 10330*/                    0, /*End of Scope*/
    4857             : /* 10331*/                  0, /*End of Scope*/
    4858             : /* 10332*/                0, /*End of Scope*/
    4859             : /* 10333*/              /*SwitchOpcode*/ 31|128,23/*2975*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->13312
    4860             : /* 10337*/                OPC_MoveChild0,
    4861             : /* 10338*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    4862             : /* 10341*/                OPC_MoveChild0,
    4863             : /* 10342*/                OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4864             : /* 10345*/                OPC_Scope, 108|128,5/*748*/, /*->11096*/ // 3 children in Scope
    4865             : /* 10348*/                  OPC_CheckChild0Same, 0,
    4866             : /* 10350*/                  OPC_CheckChild1Integer, 8, 
    4867             : /* 10352*/                  OPC_CheckChild1Type, MVT::i32,
    4868             : /* 10354*/                  OPC_MoveParent,
    4869             : /* 10355*/                  OPC_MoveParent,
    4870             : /* 10356*/                  OPC_MoveChild1,
    4871             : /* 10357*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    4872             : /* 10360*/                  OPC_MoveChild0,
    4873             : /* 10361*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4874             : /* 10364*/                  OPC_CheckChild0Same, 1,
    4875             : /* 10366*/                  OPC_CheckChild1Integer, 8, 
    4876             : /* 10368*/                  OPC_CheckChild1Type, MVT::i32,
    4877             : /* 10370*/                  OPC_MoveParent,
    4878             : /* 10371*/                  OPC_MoveParent,
    4879             : /* 10372*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4880             : /* 10374*/                  OPC_MoveParent,
    4881             : /* 10375*/                  OPC_MoveChild1,
    4882             : /* 10376*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    4883             : /* 10379*/                  OPC_Scope, 99|128,2/*355*/, /*->10737*/ // 2 children in Scope
    4884             : /* 10382*/                    OPC_RecordChild0, // #2 = $src2
    4885             : /* 10383*/                    OPC_MoveChild1,
    4886             : /* 10384*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4887             : /* 10387*/                    OPC_MoveChild0,
    4888             : /* 10388*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    4889             : /* 10391*/                    OPC_Scope, 42|128,1/*170*/, /*->10564*/ // 2 children in Scope
    4890             : /* 10394*/                      OPC_CheckChild0Same, 0,
    4891             : /* 10396*/                      OPC_MoveParent,
    4892             : /* 10397*/                      OPC_MoveChild1,
    4893             : /* 10398*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4894             : /* 10401*/                      OPC_CheckChild0Same, 1,
    4895             : /* 10403*/                      OPC_MoveParent,
    4896             : /* 10404*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4897             : /* 10406*/                      OPC_MoveParent,
    4898             : /* 10407*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4899             : /* 10409*/                      OPC_MoveParent,
    4900             : /* 10410*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4901             : /* 10412*/                      OPC_MoveParent,
    4902             : /* 10413*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4903             : /* 10415*/                      OPC_MoveParent,
    4904             : /* 10416*/                      OPC_MoveChild1,
    4905             : /* 10417*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4906             : /* 10420*/                      OPC_MoveChild0,
    4907             : /* 10421*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4908             : /* 10424*/                      OPC_Scope, 68, /*->10494*/ // 2 children in Scope
    4909             : /* 10426*/                        OPC_CheckChild0Same, 0,
    4910             : /* 10428*/                        OPC_CheckChild1Integer, 24, 
    4911             : /* 10430*/                        OPC_CheckChild1Type, MVT::i32,
    4912             : /* 10432*/                        OPC_MoveParent,
    4913             : /* 10433*/                        OPC_MoveChild1,
    4914             : /* 10434*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4915             : /* 10437*/                        OPC_CheckChild0Same, 1,
    4916             : /* 10439*/                        OPC_CheckChild1Integer, 24, 
    4917             : /* 10441*/                        OPC_CheckChild1Type, MVT::i32,
    4918             : /* 10443*/                        OPC_MoveParent,
    4919             : /* 10444*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4920             : /* 10446*/                        OPC_MoveParent,
    4921             : /* 10447*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4922             : /* 10449*/                        OPC_CheckType, MVT::i32,
    4923             : /* 10451*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4924             : /* 10453*/                        OPC_EmitInteger, MVT::i32, 8, 
    4925             : /* 10456*/                        OPC_EmitInteger, MVT::i32, 8, 
    4926             : /* 10459*/                        OPC_EmitInteger, MVT::i32, 8, 
    4927             : /* 10462*/                        OPC_EmitInteger, MVT::i1, 0, 
    4928             : /* 10465*/                        OPC_EmitInteger, MVT::i32, 0, 
    4929             : /* 10468*/                        OPC_EmitInteger, MVT::i32, 0, 
    4930             : /* 10471*/                        OPC_EmitInteger, MVT::i32, 0, 
    4931             : /* 10474*/                        OPC_EmitInteger, MVT::i32, 0, 
    4932             : /* 10477*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4933             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4934             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    4935             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4936             : /* 10494*/                      /*Scope*/ 68, /*->10563*/
    4937             : /* 10495*/                        OPC_CheckChild0Same, 1,
    4938             : /* 10497*/                        OPC_CheckChild1Integer, 24, 
    4939             : /* 10499*/                        OPC_CheckChild1Type, MVT::i32,
    4940             : /* 10501*/                        OPC_MoveParent,
    4941             : /* 10502*/                        OPC_MoveChild1,
    4942             : /* 10503*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4943             : /* 10506*/                        OPC_CheckChild0Same, 0,
    4944             : /* 10508*/                        OPC_CheckChild1Integer, 24, 
    4945             : /* 10510*/                        OPC_CheckChild1Type, MVT::i32,
    4946             : /* 10512*/                        OPC_MoveParent,
    4947             : /* 10513*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4948             : /* 10515*/                        OPC_MoveParent,
    4949             : /* 10516*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4950             : /* 10518*/                        OPC_CheckType, MVT::i32,
    4951             : /* 10520*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    4952             : /* 10522*/                        OPC_EmitInteger, MVT::i32, 8, 
    4953             : /* 10525*/                        OPC_EmitInteger, MVT::i32, 8, 
    4954             : /* 10528*/                        OPC_EmitInteger, MVT::i32, 8, 
    4955             : /* 10531*/                        OPC_EmitInteger, MVT::i1, 0, 
    4956             : /* 10534*/                        OPC_EmitInteger, MVT::i32, 0, 
    4957             : /* 10537*/                        OPC_EmitInteger, MVT::i32, 0, 
    4958             : /* 10540*/                        OPC_EmitInteger, MVT::i32, 0, 
    4959             : /* 10543*/                        OPC_EmitInteger, MVT::i32, 0, 
    4960             : /* 10546*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    4961             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    4962             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    4963             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    4964             : /* 10563*/                      0, /*End of Scope*/
    4965             : /* 10564*/                    /*Scope*/ 42|128,1/*170*/, /*->10736*/
    4966             : /* 10566*/                      OPC_CheckChild0Same, 1,
    4967             : /* 10568*/                      OPC_MoveParent,
    4968             : /* 10569*/                      OPC_MoveChild1,
    4969             : /* 10570*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    4970             : /* 10573*/                      OPC_CheckChild0Same, 0,
    4971             : /* 10575*/                      OPC_MoveParent,
    4972             : /* 10576*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4973             : /* 10578*/                      OPC_MoveParent,
    4974             : /* 10579*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4975             : /* 10581*/                      OPC_MoveParent,
    4976             : /* 10582*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4977             : /* 10584*/                      OPC_MoveParent,
    4978             : /* 10585*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4979             : /* 10587*/                      OPC_MoveParent,
    4980             : /* 10588*/                      OPC_MoveChild1,
    4981             : /* 10589*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    4982             : /* 10592*/                      OPC_MoveChild0,
    4983             : /* 10593*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4984             : /* 10596*/                      OPC_Scope, 68, /*->10666*/ // 2 children in Scope
    4985             : /* 10598*/                        OPC_CheckChild0Same, 0,
    4986             : /* 10600*/                        OPC_CheckChild1Integer, 24, 
    4987             : /* 10602*/                        OPC_CheckChild1Type, MVT::i32,
    4988             : /* 10604*/                        OPC_MoveParent,
    4989             : /* 10605*/                        OPC_MoveChild1,
    4990             : /* 10606*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    4991             : /* 10609*/                        OPC_CheckChild0Same, 1,
    4992             : /* 10611*/                        OPC_CheckChild1Integer, 24, 
    4993             : /* 10613*/                        OPC_CheckChild1Type, MVT::i32,
    4994             : /* 10615*/                        OPC_MoveParent,
    4995             : /* 10616*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    4996             : /* 10618*/                        OPC_MoveParent,
    4997             : /* 10619*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    4998             : /* 10621*/                        OPC_CheckType, MVT::i32,
    4999             : /* 10623*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5000             : /* 10625*/                        OPC_EmitInteger, MVT::i32, 8, 
    5001             : /* 10628*/                        OPC_EmitInteger, MVT::i32, 8, 
    5002             : /* 10631*/                        OPC_EmitInteger, MVT::i32, 8, 
    5003             : /* 10634*/                        OPC_EmitInteger, MVT::i1, 0, 
    5004             : /* 10637*/                        OPC_EmitInteger, MVT::i32, 0, 
    5005             : /* 10640*/                        OPC_EmitInteger, MVT::i32, 0, 
    5006             : /* 10643*/                        OPC_EmitInteger, MVT::i32, 0, 
    5007             : /* 10646*/                        OPC_EmitInteger, MVT::i32, 0, 
    5008             : /* 10649*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5009             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5010             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5011             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5012             : /* 10666*/                      /*Scope*/ 68, /*->10735*/
    5013             : /* 10667*/                        OPC_CheckChild0Same, 1,
    5014             : /* 10669*/                        OPC_CheckChild1Integer, 24, 
    5015             : /* 10671*/                        OPC_CheckChild1Type, MVT::i32,
    5016             : /* 10673*/                        OPC_MoveParent,
    5017             : /* 10674*/                        OPC_MoveChild1,
    5018             : /* 10675*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5019             : /* 10678*/                        OPC_CheckChild0Same, 0,
    5020             : /* 10680*/                        OPC_CheckChild1Integer, 24, 
    5021             : /* 10682*/                        OPC_CheckChild1Type, MVT::i32,
    5022             : /* 10684*/                        OPC_MoveParent,
    5023             : /* 10685*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5024             : /* 10687*/                        OPC_MoveParent,
    5025             : /* 10688*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5026             : /* 10690*/                        OPC_CheckType, MVT::i32,
    5027             : /* 10692*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5028             : /* 10694*/                        OPC_EmitInteger, MVT::i32, 8, 
    5029             : /* 10697*/                        OPC_EmitInteger, MVT::i32, 8, 
    5030             : /* 10700*/                        OPC_EmitInteger, MVT::i32, 8, 
    5031             : /* 10703*/                        OPC_EmitInteger, MVT::i1, 0, 
    5032             : /* 10706*/                        OPC_EmitInteger, MVT::i32, 0, 
    5033             : /* 10709*/                        OPC_EmitInteger, MVT::i32, 0, 
    5034             : /* 10712*/                        OPC_EmitInteger, MVT::i32, 0, 
    5035             : /* 10715*/                        OPC_EmitInteger, MVT::i32, 0, 
    5036             : /* 10718*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5037             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5038             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5039             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5040             : /* 10735*/                      0, /*End of Scope*/
    5041             : /* 10736*/                    0, /*End of Scope*/
    5042             : /* 10737*/                  /*Scope*/ 100|128,2/*356*/, /*->11095*/
    5043             : /* 10739*/                    OPC_MoveChild0,
    5044             : /* 10740*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5045             : /* 10743*/                    OPC_MoveChild0,
    5046             : /* 10744*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5047             : /* 10747*/                    OPC_Scope, 43|128,1/*171*/, /*->10921*/ // 2 children in Scope
    5048             : /* 10750*/                      OPC_CheckChild0Same, 0,
    5049             : /* 10752*/                      OPC_MoveParent,
    5050             : /* 10753*/                      OPC_MoveChild1,
    5051             : /* 10754*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5052             : /* 10757*/                      OPC_CheckChild0Same, 1,
    5053             : /* 10759*/                      OPC_MoveParent,
    5054             : /* 10760*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5055             : /* 10762*/                      OPC_MoveParent,
    5056             : /* 10763*/                      OPC_RecordChild1, // #2 = $src2
    5057             : /* 10764*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5058             : /* 10766*/                      OPC_MoveParent,
    5059             : /* 10767*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5060             : /* 10769*/                      OPC_MoveParent,
    5061             : /* 10770*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5062             : /* 10772*/                      OPC_MoveParent,
    5063             : /* 10773*/                      OPC_MoveChild1,
    5064             : /* 10774*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5065             : /* 10777*/                      OPC_MoveChild0,
    5066             : /* 10778*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5067             : /* 10781*/                      OPC_Scope, 68, /*->10851*/ // 2 children in Scope
    5068             : /* 10783*/                        OPC_CheckChild0Same, 0,
    5069             : /* 10785*/                        OPC_CheckChild1Integer, 24, 
    5070             : /* 10787*/                        OPC_CheckChild1Type, MVT::i32,
    5071             : /* 10789*/                        OPC_MoveParent,
    5072             : /* 10790*/                        OPC_MoveChild1,
    5073             : /* 10791*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5074             : /* 10794*/                        OPC_CheckChild0Same, 1,
    5075             : /* 10796*/                        OPC_CheckChild1Integer, 24, 
    5076             : /* 10798*/                        OPC_CheckChild1Type, MVT::i32,
    5077             : /* 10800*/                        OPC_MoveParent,
    5078             : /* 10801*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5079             : /* 10803*/                        OPC_MoveParent,
    5080             : /* 10804*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5081             : /* 10806*/                        OPC_CheckType, MVT::i32,
    5082             : /* 10808*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5083             : /* 10810*/                        OPC_EmitInteger, MVT::i32, 8, 
    5084             : /* 10813*/                        OPC_EmitInteger, MVT::i32, 8, 
    5085             : /* 10816*/                        OPC_EmitInteger, MVT::i32, 8, 
    5086             : /* 10819*/                        OPC_EmitInteger, MVT::i1, 0, 
    5087             : /* 10822*/                        OPC_EmitInteger, MVT::i32, 0, 
    5088             : /* 10825*/                        OPC_EmitInteger, MVT::i32, 0, 
    5089             : /* 10828*/                        OPC_EmitInteger, MVT::i32, 0, 
    5090             : /* 10831*/                        OPC_EmitInteger, MVT::i32, 0, 
    5091             : /* 10834*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5092             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5093             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5094             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5095             : /* 10851*/                      /*Scope*/ 68, /*->10920*/
    5096             : /* 10852*/                        OPC_CheckChild0Same, 1,
    5097             : /* 10854*/                        OPC_CheckChild1Integer, 24, 
    5098             : /* 10856*/                        OPC_CheckChild1Type, MVT::i32,
    5099             : /* 10858*/                        OPC_MoveParent,
    5100             : /* 10859*/                        OPC_MoveChild1,
    5101             : /* 10860*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5102             : /* 10863*/                        OPC_CheckChild0Same, 0,
    5103             : /* 10865*/                        OPC_CheckChild1Integer, 24, 
    5104             : /* 10867*/                        OPC_CheckChild1Type, MVT::i32,
    5105             : /* 10869*/                        OPC_MoveParent,
    5106             : /* 10870*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5107             : /* 10872*/                        OPC_MoveParent,
    5108             : /* 10873*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5109             : /* 10875*/                        OPC_CheckType, MVT::i32,
    5110             : /* 10877*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5111             : /* 10879*/                        OPC_EmitInteger, MVT::i32, 8, 
    5112             : /* 10882*/                        OPC_EmitInteger, MVT::i32, 8, 
    5113             : /* 10885*/                        OPC_EmitInteger, MVT::i32, 8, 
    5114             : /* 10888*/                        OPC_EmitInteger, MVT::i1, 0, 
    5115             : /* 10891*/                        OPC_EmitInteger, MVT::i32, 0, 
    5116             : /* 10894*/                        OPC_EmitInteger, MVT::i32, 0, 
    5117             : /* 10897*/                        OPC_EmitInteger, MVT::i32, 0, 
    5118             : /* 10900*/                        OPC_EmitInteger, MVT::i32, 0, 
    5119             : /* 10903*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5120             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5121             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5122             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5123             : /* 10920*/                      0, /*End of Scope*/
    5124             : /* 10921*/                    /*Scope*/ 43|128,1/*171*/, /*->11094*/
    5125             : /* 10923*/                      OPC_CheckChild0Same, 1,
    5126             : /* 10925*/                      OPC_MoveParent,
    5127             : /* 10926*/                      OPC_MoveChild1,
    5128             : /* 10927*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5129             : /* 10930*/                      OPC_CheckChild0Same, 0,
    5130             : /* 10932*/                      OPC_MoveParent,
    5131             : /* 10933*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5132             : /* 10935*/                      OPC_MoveParent,
    5133             : /* 10936*/                      OPC_RecordChild1, // #2 = $src2
    5134             : /* 10937*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5135             : /* 10939*/                      OPC_MoveParent,
    5136             : /* 10940*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5137             : /* 10942*/                      OPC_MoveParent,
    5138             : /* 10943*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5139             : /* 10945*/                      OPC_MoveParent,
    5140             : /* 10946*/                      OPC_MoveChild1,
    5141             : /* 10947*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5142             : /* 10950*/                      OPC_MoveChild0,
    5143             : /* 10951*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5144             : /* 10954*/                      OPC_Scope, 68, /*->11024*/ // 2 children in Scope
    5145             : /* 10956*/                        OPC_CheckChild0Same, 0,
    5146             : /* 10958*/                        OPC_CheckChild1Integer, 24, 
    5147             : /* 10960*/                        OPC_CheckChild1Type, MVT::i32,
    5148             : /* 10962*/                        OPC_MoveParent,
    5149             : /* 10963*/                        OPC_MoveChild1,
    5150             : /* 10964*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5151             : /* 10967*/                        OPC_CheckChild0Same, 1,
    5152             : /* 10969*/                        OPC_CheckChild1Integer, 24, 
    5153             : /* 10971*/                        OPC_CheckChild1Type, MVT::i32,
    5154             : /* 10973*/                        OPC_MoveParent,
    5155             : /* 10974*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5156             : /* 10976*/                        OPC_MoveParent,
    5157             : /* 10977*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5158             : /* 10979*/                        OPC_CheckType, MVT::i32,
    5159             : /* 10981*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5160             : /* 10983*/                        OPC_EmitInteger, MVT::i32, 8, 
    5161             : /* 10986*/                        OPC_EmitInteger, MVT::i32, 8, 
    5162             : /* 10989*/                        OPC_EmitInteger, MVT::i32, 8, 
    5163             : /* 10992*/                        OPC_EmitInteger, MVT::i1, 0, 
    5164             : /* 10995*/                        OPC_EmitInteger, MVT::i32, 0, 
    5165             : /* 10998*/                        OPC_EmitInteger, MVT::i32, 0, 
    5166             : /* 11001*/                        OPC_EmitInteger, MVT::i32, 0, 
    5167             : /* 11004*/                        OPC_EmitInteger, MVT::i32, 0, 
    5168             : /* 11007*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5169             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5170             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5171             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5172             : /* 11024*/                      /*Scope*/ 68, /*->11093*/
    5173             : /* 11025*/                        OPC_CheckChild0Same, 1,
    5174             : /* 11027*/                        OPC_CheckChild1Integer, 24, 
    5175             : /* 11029*/                        OPC_CheckChild1Type, MVT::i32,
    5176             : /* 11031*/                        OPC_MoveParent,
    5177             : /* 11032*/                        OPC_MoveChild1,
    5178             : /* 11033*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5179             : /* 11036*/                        OPC_CheckChild0Same, 0,
    5180             : /* 11038*/                        OPC_CheckChild1Integer, 24, 
    5181             : /* 11040*/                        OPC_CheckChild1Type, MVT::i32,
    5182             : /* 11042*/                        OPC_MoveParent,
    5183             : /* 11043*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5184             : /* 11045*/                        OPC_MoveParent,
    5185             : /* 11046*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5186             : /* 11048*/                        OPC_CheckType, MVT::i32,
    5187             : /* 11050*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5188             : /* 11052*/                        OPC_EmitInteger, MVT::i32, 8, 
    5189             : /* 11055*/                        OPC_EmitInteger, MVT::i32, 8, 
    5190             : /* 11058*/                        OPC_EmitInteger, MVT::i32, 8, 
    5191             : /* 11061*/                        OPC_EmitInteger, MVT::i1, 0, 
    5192             : /* 11064*/                        OPC_EmitInteger, MVT::i32, 0, 
    5193             : /* 11067*/                        OPC_EmitInteger, MVT::i32, 0, 
    5194             : /* 11070*/                        OPC_EmitInteger, MVT::i32, 0, 
    5195             : /* 11073*/                        OPC_EmitInteger, MVT::i32, 0, 
    5196             : /* 11076*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5197             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5198             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5199             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5200             : /* 11093*/                      0, /*End of Scope*/
    5201             : /* 11094*/                    0, /*End of Scope*/
    5202             : /* 11095*/                  0, /*End of Scope*/
    5203             : /* 11096*/                /*Scope*/ 55|128,11/*1463*/, /*->12561*/
    5204             : /* 11098*/                  OPC_CheckChild0Same, 1,
    5205             : /* 11100*/                  OPC_CheckChild1Integer, 8, 
    5206             : /* 11102*/                  OPC_CheckChild1Type, MVT::i32,
    5207             : /* 11104*/                  OPC_MoveParent,
    5208             : /* 11105*/                  OPC_MoveParent,
    5209             : /* 11106*/                  OPC_MoveChild1,
    5210             : /* 11107*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    5211             : /* 11110*/                  OPC_MoveChild0,
    5212             : /* 11111*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5213             : /* 11114*/                  OPC_CheckChild0Same, 0,
    5214             : /* 11116*/                  OPC_CheckChild1Integer, 8, 
    5215             : /* 11118*/                  OPC_CheckChild1Type, MVT::i32,
    5216             : /* 11120*/                  OPC_MoveParent,
    5217             : /* 11121*/                  OPC_MoveParent,
    5218             : /* 11122*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5219             : /* 11124*/                  OPC_MoveParent,
    5220             : /* 11125*/                  OPC_MoveChild1,
    5221             : /* 11126*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    5222             : /* 11129*/                  OPC_Scope, 99|128,2/*355*/, /*->11487*/ // 4 children in Scope
    5223             : /* 11132*/                    OPC_RecordChild0, // #2 = $src2
    5224             : /* 11133*/                    OPC_MoveChild1,
    5225             : /* 11134*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5226             : /* 11137*/                    OPC_MoveChild0,
    5227             : /* 11138*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5228             : /* 11141*/                    OPC_Scope, 42|128,1/*170*/, /*->11314*/ // 2 children in Scope
    5229             : /* 11144*/                      OPC_CheckChild0Same, 0,
    5230             : /* 11146*/                      OPC_MoveParent,
    5231             : /* 11147*/                      OPC_MoveChild1,
    5232             : /* 11148*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5233             : /* 11151*/                      OPC_CheckChild0Same, 1,
    5234             : /* 11153*/                      OPC_MoveParent,
    5235             : /* 11154*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5236             : /* 11156*/                      OPC_MoveParent,
    5237             : /* 11157*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5238             : /* 11159*/                      OPC_MoveParent,
    5239             : /* 11160*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5240             : /* 11162*/                      OPC_MoveParent,
    5241             : /* 11163*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5242             : /* 11165*/                      OPC_MoveParent,
    5243             : /* 11166*/                      OPC_MoveChild1,
    5244             : /* 11167*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5245             : /* 11170*/                      OPC_MoveChild0,
    5246             : /* 11171*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5247             : /* 11174*/                      OPC_Scope, 68, /*->11244*/ // 2 children in Scope
    5248             : /* 11176*/                        OPC_CheckChild0Same, 0,
    5249             : /* 11178*/                        OPC_CheckChild1Integer, 24, 
    5250             : /* 11180*/                        OPC_CheckChild1Type, MVT::i32,
    5251             : /* 11182*/                        OPC_MoveParent,
    5252             : /* 11183*/                        OPC_MoveChild1,
    5253             : /* 11184*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5254             : /* 11187*/                        OPC_CheckChild0Same, 1,
    5255             : /* 11189*/                        OPC_CheckChild1Integer, 24, 
    5256             : /* 11191*/                        OPC_CheckChild1Type, MVT::i32,
    5257             : /* 11193*/                        OPC_MoveParent,
    5258             : /* 11194*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5259             : /* 11196*/                        OPC_MoveParent,
    5260             : /* 11197*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5261             : /* 11199*/                        OPC_CheckType, MVT::i32,
    5262             : /* 11201*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5263             : /* 11203*/                        OPC_EmitInteger, MVT::i32, 8, 
    5264             : /* 11206*/                        OPC_EmitInteger, MVT::i32, 8, 
    5265             : /* 11209*/                        OPC_EmitInteger, MVT::i32, 8, 
    5266             : /* 11212*/                        OPC_EmitInteger, MVT::i1, 0, 
    5267             : /* 11215*/                        OPC_EmitInteger, MVT::i32, 0, 
    5268             : /* 11218*/                        OPC_EmitInteger, MVT::i32, 0, 
    5269             : /* 11221*/                        OPC_EmitInteger, MVT::i32, 0, 
    5270             : /* 11224*/                        OPC_EmitInteger, MVT::i32, 0, 
    5271             : /* 11227*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5272             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5273             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5274             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5275             : /* 11244*/                      /*Scope*/ 68, /*->11313*/
    5276             : /* 11245*/                        OPC_CheckChild0Same, 1,
    5277             : /* 11247*/                        OPC_CheckChild1Integer, 24, 
    5278             : /* 11249*/                        OPC_CheckChild1Type, MVT::i32,
    5279             : /* 11251*/                        OPC_MoveParent,
    5280             : /* 11252*/                        OPC_MoveChild1,
    5281             : /* 11253*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5282             : /* 11256*/                        OPC_CheckChild0Same, 0,
    5283             : /* 11258*/                        OPC_CheckChild1Integer, 24, 
    5284             : /* 11260*/                        OPC_CheckChild1Type, MVT::i32,
    5285             : /* 11262*/                        OPC_MoveParent,
    5286             : /* 11263*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5287             : /* 11265*/                        OPC_MoveParent,
    5288             : /* 11266*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5289             : /* 11268*/                        OPC_CheckType, MVT::i32,
    5290             : /* 11270*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5291             : /* 11272*/                        OPC_EmitInteger, MVT::i32, 8, 
    5292             : /* 11275*/                        OPC_EmitInteger, MVT::i32, 8, 
    5293             : /* 11278*/                        OPC_EmitInteger, MVT::i32, 8, 
    5294             : /* 11281*/                        OPC_EmitInteger, MVT::i1, 0, 
    5295             : /* 11284*/                        OPC_EmitInteger, MVT::i32, 0, 
    5296             : /* 11287*/                        OPC_EmitInteger, MVT::i32, 0, 
    5297             : /* 11290*/                        OPC_EmitInteger, MVT::i32, 0, 
    5298             : /* 11293*/                        OPC_EmitInteger, MVT::i32, 0, 
    5299             : /* 11296*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5300             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5301             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5302             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5303             : /* 11313*/                      0, /*End of Scope*/
    5304             : /* 11314*/                    /*Scope*/ 42|128,1/*170*/, /*->11486*/
    5305             : /* 11316*/                      OPC_CheckChild0Same, 1,
    5306             : /* 11318*/                      OPC_MoveParent,
    5307             : /* 11319*/                      OPC_MoveChild1,
    5308             : /* 11320*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5309             : /* 11323*/                      OPC_CheckChild0Same, 0,
    5310             : /* 11325*/                      OPC_MoveParent,
    5311             : /* 11326*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5312             : /* 11328*/                      OPC_MoveParent,
    5313             : /* 11329*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5314             : /* 11331*/                      OPC_MoveParent,
    5315             : /* 11332*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5316             : /* 11334*/                      OPC_MoveParent,
    5317             : /* 11335*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5318             : /* 11337*/                      OPC_MoveParent,
    5319             : /* 11338*/                      OPC_MoveChild1,
    5320             : /* 11339*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5321             : /* 11342*/                      OPC_MoveChild0,
    5322             : /* 11343*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5323             : /* 11346*/                      OPC_Scope, 68, /*->11416*/ // 2 children in Scope
    5324             : /* 11348*/                        OPC_CheckChild0Same, 0,
    5325             : /* 11350*/                        OPC_CheckChild1Integer, 24, 
    5326             : /* 11352*/                        OPC_CheckChild1Type, MVT::i32,
    5327             : /* 11354*/                        OPC_MoveParent,
    5328             : /* 11355*/                        OPC_MoveChild1,
    5329             : /* 11356*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5330             : /* 11359*/                        OPC_CheckChild0Same, 1,
    5331             : /* 11361*/                        OPC_CheckChild1Integer, 24, 
    5332             : /* 11363*/                        OPC_CheckChild1Type, MVT::i32,
    5333             : /* 11365*/                        OPC_MoveParent,
    5334             : /* 11366*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5335             : /* 11368*/                        OPC_MoveParent,
    5336             : /* 11369*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5337             : /* 11371*/                        OPC_CheckType, MVT::i32,
    5338             : /* 11373*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5339             : /* 11375*/                        OPC_EmitInteger, MVT::i32, 8, 
    5340             : /* 11378*/                        OPC_EmitInteger, MVT::i32, 8, 
    5341             : /* 11381*/                        OPC_EmitInteger, MVT::i32, 8, 
    5342             : /* 11384*/                        OPC_EmitInteger, MVT::i1, 0, 
    5343             : /* 11387*/                        OPC_EmitInteger, MVT::i32, 0, 
    5344             : /* 11390*/                        OPC_EmitInteger, MVT::i32, 0, 
    5345             : /* 11393*/                        OPC_EmitInteger, MVT::i32, 0, 
    5346             : /* 11396*/                        OPC_EmitInteger, MVT::i32, 0, 
    5347             : /* 11399*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5348             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5349             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5350             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5351             : /* 11416*/                      /*Scope*/ 68, /*->11485*/
    5352             : /* 11417*/                        OPC_CheckChild0Same, 1,
    5353             : /* 11419*/                        OPC_CheckChild1Integer, 24, 
    5354             : /* 11421*/                        OPC_CheckChild1Type, MVT::i32,
    5355             : /* 11423*/                        OPC_MoveParent,
    5356             : /* 11424*/                        OPC_MoveChild1,
    5357             : /* 11425*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5358             : /* 11428*/                        OPC_CheckChild0Same, 0,
    5359             : /* 11430*/                        OPC_CheckChild1Integer, 24, 
    5360             : /* 11432*/                        OPC_CheckChild1Type, MVT::i32,
    5361             : /* 11434*/                        OPC_MoveParent,
    5362             : /* 11435*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5363             : /* 11437*/                        OPC_MoveParent,
    5364             : /* 11438*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5365             : /* 11440*/                        OPC_CheckType, MVT::i32,
    5366             : /* 11442*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5367             : /* 11444*/                        OPC_EmitInteger, MVT::i32, 8, 
    5368             : /* 11447*/                        OPC_EmitInteger, MVT::i32, 8, 
    5369             : /* 11450*/                        OPC_EmitInteger, MVT::i32, 8, 
    5370             : /* 11453*/                        OPC_EmitInteger, MVT::i1, 0, 
    5371             : /* 11456*/                        OPC_EmitInteger, MVT::i32, 0, 
    5372             : /* 11459*/                        OPC_EmitInteger, MVT::i32, 0, 
    5373             : /* 11462*/                        OPC_EmitInteger, MVT::i32, 0, 
    5374             : /* 11465*/                        OPC_EmitInteger, MVT::i32, 0, 
    5375             : /* 11468*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5376             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5377             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5378             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5379             : /* 11485*/                      0, /*End of Scope*/
    5380             : /* 11486*/                    0, /*End of Scope*/
    5381             : /* 11487*/                  /*Scope*/ 100|128,2/*356*/, /*->11845*/
    5382             : /* 11489*/                    OPC_MoveChild0,
    5383             : /* 11490*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5384             : /* 11493*/                    OPC_MoveChild0,
    5385             : /* 11494*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5386             : /* 11497*/                    OPC_Scope, 43|128,1/*171*/, /*->11671*/ // 2 children in Scope
    5387             : /* 11500*/                      OPC_CheckChild0Same, 0,
    5388             : /* 11502*/                      OPC_MoveParent,
    5389             : /* 11503*/                      OPC_MoveChild1,
    5390             : /* 11504*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5391             : /* 11507*/                      OPC_CheckChild0Same, 1,
    5392             : /* 11509*/                      OPC_MoveParent,
    5393             : /* 11510*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5394             : /* 11512*/                      OPC_MoveParent,
    5395             : /* 11513*/                      OPC_RecordChild1, // #2 = $src2
    5396             : /* 11514*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5397             : /* 11516*/                      OPC_MoveParent,
    5398             : /* 11517*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5399             : /* 11519*/                      OPC_MoveParent,
    5400             : /* 11520*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5401             : /* 11522*/                      OPC_MoveParent,
    5402             : /* 11523*/                      OPC_MoveChild1,
    5403             : /* 11524*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5404             : /* 11527*/                      OPC_MoveChild0,
    5405             : /* 11528*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5406             : /* 11531*/                      OPC_Scope, 68, /*->11601*/ // 2 children in Scope
    5407             : /* 11533*/                        OPC_CheckChild0Same, 0,
    5408             : /* 11535*/                        OPC_CheckChild1Integer, 24, 
    5409             : /* 11537*/                        OPC_CheckChild1Type, MVT::i32,
    5410             : /* 11539*/                        OPC_MoveParent,
    5411             : /* 11540*/                        OPC_MoveChild1,
    5412             : /* 11541*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5413             : /* 11544*/                        OPC_CheckChild0Same, 1,
    5414             : /* 11546*/                        OPC_CheckChild1Integer, 24, 
    5415             : /* 11548*/                        OPC_CheckChild1Type, MVT::i32,
    5416             : /* 11550*/                        OPC_MoveParent,
    5417             : /* 11551*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5418             : /* 11553*/                        OPC_MoveParent,
    5419             : /* 11554*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5420             : /* 11556*/                        OPC_CheckType, MVT::i32,
    5421             : /* 11558*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5422             : /* 11560*/                        OPC_EmitInteger, MVT::i32, 8, 
    5423             : /* 11563*/                        OPC_EmitInteger, MVT::i32, 8, 
    5424             : /* 11566*/                        OPC_EmitInteger, MVT::i32, 8, 
    5425             : /* 11569*/                        OPC_EmitInteger, MVT::i1, 0, 
    5426             : /* 11572*/                        OPC_EmitInteger, MVT::i32, 0, 
    5427             : /* 11575*/                        OPC_EmitInteger, MVT::i32, 0, 
    5428             : /* 11578*/                        OPC_EmitInteger, MVT::i32, 0, 
    5429             : /* 11581*/                        OPC_EmitInteger, MVT::i32, 0, 
    5430             : /* 11584*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5431             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5432             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5433             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5434             : /* 11601*/                      /*Scope*/ 68, /*->11670*/
    5435             : /* 11602*/                        OPC_CheckChild0Same, 1,
    5436             : /* 11604*/                        OPC_CheckChild1Integer, 24, 
    5437             : /* 11606*/                        OPC_CheckChild1Type, MVT::i32,
    5438             : /* 11608*/                        OPC_MoveParent,
    5439             : /* 11609*/                        OPC_MoveChild1,
    5440             : /* 11610*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5441             : /* 11613*/                        OPC_CheckChild0Same, 0,
    5442             : /* 11615*/                        OPC_CheckChild1Integer, 24, 
    5443             : /* 11617*/                        OPC_CheckChild1Type, MVT::i32,
    5444             : /* 11619*/                        OPC_MoveParent,
    5445             : /* 11620*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5446             : /* 11622*/                        OPC_MoveParent,
    5447             : /* 11623*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5448             : /* 11625*/                        OPC_CheckType, MVT::i32,
    5449             : /* 11627*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5450             : /* 11629*/                        OPC_EmitInteger, MVT::i32, 8, 
    5451             : /* 11632*/                        OPC_EmitInteger, MVT::i32, 8, 
    5452             : /* 11635*/                        OPC_EmitInteger, MVT::i32, 8, 
    5453             : /* 11638*/                        OPC_EmitInteger, MVT::i1, 0, 
    5454             : /* 11641*/                        OPC_EmitInteger, MVT::i32, 0, 
    5455             : /* 11644*/                        OPC_EmitInteger, MVT::i32, 0, 
    5456             : /* 11647*/                        OPC_EmitInteger, MVT::i32, 0, 
    5457             : /* 11650*/                        OPC_EmitInteger, MVT::i32, 0, 
    5458             : /* 11653*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5459             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5460             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5461             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5462             : /* 11670*/                      0, /*End of Scope*/
    5463             : /* 11671*/                    /*Scope*/ 43|128,1/*171*/, /*->11844*/
    5464             : /* 11673*/                      OPC_CheckChild0Same, 1,
    5465             : /* 11675*/                      OPC_MoveParent,
    5466             : /* 11676*/                      OPC_MoveChild1,
    5467             : /* 11677*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5468             : /* 11680*/                      OPC_CheckChild0Same, 0,
    5469             : /* 11682*/                      OPC_MoveParent,
    5470             : /* 11683*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5471             : /* 11685*/                      OPC_MoveParent,
    5472             : /* 11686*/                      OPC_RecordChild1, // #2 = $src2
    5473             : /* 11687*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5474             : /* 11689*/                      OPC_MoveParent,
    5475             : /* 11690*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5476             : /* 11692*/                      OPC_MoveParent,
    5477             : /* 11693*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5478             : /* 11695*/                      OPC_MoveParent,
    5479             : /* 11696*/                      OPC_MoveChild1,
    5480             : /* 11697*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5481             : /* 11700*/                      OPC_MoveChild0,
    5482             : /* 11701*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5483             : /* 11704*/                      OPC_Scope, 68, /*->11774*/ // 2 children in Scope
    5484             : /* 11706*/                        OPC_CheckChild0Same, 0,
    5485             : /* 11708*/                        OPC_CheckChild1Integer, 24, 
    5486             : /* 11710*/                        OPC_CheckChild1Type, MVT::i32,
    5487             : /* 11712*/                        OPC_MoveParent,
    5488             : /* 11713*/                        OPC_MoveChild1,
    5489             : /* 11714*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5490             : /* 11717*/                        OPC_CheckChild0Same, 1,
    5491             : /* 11719*/                        OPC_CheckChild1Integer, 24, 
    5492             : /* 11721*/                        OPC_CheckChild1Type, MVT::i32,
    5493             : /* 11723*/                        OPC_MoveParent,
    5494             : /* 11724*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5495             : /* 11726*/                        OPC_MoveParent,
    5496             : /* 11727*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5497             : /* 11729*/                        OPC_CheckType, MVT::i32,
    5498             : /* 11731*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5499             : /* 11733*/                        OPC_EmitInteger, MVT::i32, 8, 
    5500             : /* 11736*/                        OPC_EmitInteger, MVT::i32, 8, 
    5501             : /* 11739*/                        OPC_EmitInteger, MVT::i32, 8, 
    5502             : /* 11742*/                        OPC_EmitInteger, MVT::i1, 0, 
    5503             : /* 11745*/                        OPC_EmitInteger, MVT::i32, 0, 
    5504             : /* 11748*/                        OPC_EmitInteger, MVT::i32, 0, 
    5505             : /* 11751*/                        OPC_EmitInteger, MVT::i32, 0, 
    5506             : /* 11754*/                        OPC_EmitInteger, MVT::i32, 0, 
    5507             : /* 11757*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5508             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5509             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5510             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5511             : /* 11774*/                      /*Scope*/ 68, /*->11843*/
    5512             : /* 11775*/                        OPC_CheckChild0Same, 1,
    5513             : /* 11777*/                        OPC_CheckChild1Integer, 24, 
    5514             : /* 11779*/                        OPC_CheckChild1Type, MVT::i32,
    5515             : /* 11781*/                        OPC_MoveParent,
    5516             : /* 11782*/                        OPC_MoveChild1,
    5517             : /* 11783*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5518             : /* 11786*/                        OPC_CheckChild0Same, 0,
    5519             : /* 11788*/                        OPC_CheckChild1Integer, 24, 
    5520             : /* 11790*/                        OPC_CheckChild1Type, MVT::i32,
    5521             : /* 11792*/                        OPC_MoveParent,
    5522             : /* 11793*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5523             : /* 11795*/                        OPC_MoveParent,
    5524             : /* 11796*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5525             : /* 11798*/                        OPC_CheckType, MVT::i32,
    5526             : /* 11800*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5527             : /* 11802*/                        OPC_EmitInteger, MVT::i32, 8, 
    5528             : /* 11805*/                        OPC_EmitInteger, MVT::i32, 8, 
    5529             : /* 11808*/                        OPC_EmitInteger, MVT::i32, 8, 
    5530             : /* 11811*/                        OPC_EmitInteger, MVT::i1, 0, 
    5531             : /* 11814*/                        OPC_EmitInteger, MVT::i32, 0, 
    5532             : /* 11817*/                        OPC_EmitInteger, MVT::i32, 0, 
    5533             : /* 11820*/                        OPC_EmitInteger, MVT::i32, 0, 
    5534             : /* 11823*/                        OPC_EmitInteger, MVT::i32, 0, 
    5535             : /* 11826*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5536             :                                       MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    5537             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5538             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5539             : /* 11843*/                      0, /*End of Scope*/
    5540             : /* 11844*/                    0, /*End of Scope*/
    5541             : /* 11845*/                  /*Scope*/ 99|128,2/*355*/, /*->12202*/
    5542             : /* 11847*/                    OPC_RecordChild0, // #2 = $src2
    5543             : /* 11848*/                    OPC_MoveChild1,
    5544             : /* 11849*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5545             : /* 11852*/                    OPC_MoveChild0,
    5546             : /* 11853*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5547             : /* 11856*/                    OPC_Scope, 42|128,1/*170*/, /*->12029*/ // 2 children in Scope
    5548             : /* 11859*/                      OPC_CheckChild0Same, 1,
    5549             : /* 11861*/                      OPC_MoveParent,
    5550             : /* 11862*/                      OPC_MoveChild1,
    5551             : /* 11863*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5552             : /* 11866*/                      OPC_CheckChild0Same, 0,
    5553             : /* 11868*/                      OPC_MoveParent,
    5554             : /* 11869*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5555             : /* 11871*/                      OPC_MoveParent,
    5556             : /* 11872*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5557             : /* 11874*/                      OPC_MoveParent,
    5558             : /* 11875*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5559             : /* 11877*/                      OPC_MoveParent,
    5560             : /* 11878*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5561             : /* 11880*/                      OPC_MoveParent,
    5562             : /* 11881*/                      OPC_MoveChild1,
    5563             : /* 11882*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5564             : /* 11885*/                      OPC_MoveChild0,
    5565             : /* 11886*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5566             : /* 11889*/                      OPC_Scope, 68, /*->11959*/ // 2 children in Scope
    5567             : /* 11891*/                        OPC_CheckChild0Same, 1,
    5568             : /* 11893*/                        OPC_CheckChild1Integer, 24, 
    5569             : /* 11895*/                        OPC_CheckChild1Type, MVT::i32,
    5570             : /* 11897*/                        OPC_MoveParent,
    5571             : /* 11898*/                        OPC_MoveChild1,
    5572             : /* 11899*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5573             : /* 11902*/                        OPC_CheckChild0Same, 0,
    5574             : /* 11904*/                        OPC_CheckChild1Integer, 24, 
    5575             : /* 11906*/                        OPC_CheckChild1Type, MVT::i32,
    5576             : /* 11908*/                        OPC_MoveParent,
    5577             : /* 11909*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5578             : /* 11911*/                        OPC_MoveParent,
    5579             : /* 11912*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5580             : /* 11914*/                        OPC_CheckType, MVT::i32,
    5581             : /* 11916*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5582             : /* 11918*/                        OPC_EmitInteger, MVT::i32, 8, 
    5583             : /* 11921*/                        OPC_EmitInteger, MVT::i32, 8, 
    5584             : /* 11924*/                        OPC_EmitInteger, MVT::i32, 8, 
    5585             : /* 11927*/                        OPC_EmitInteger, MVT::i1, 0, 
    5586             : /* 11930*/                        OPC_EmitInteger, MVT::i32, 0, 
    5587             : /* 11933*/                        OPC_EmitInteger, MVT::i32, 0, 
    5588             : /* 11936*/                        OPC_EmitInteger, MVT::i32, 0, 
    5589             : /* 11939*/                        OPC_EmitInteger, MVT::i32, 0, 
    5590             : /* 11942*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5591             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5592             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5593             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5594             : /* 11959*/                      /*Scope*/ 68, /*->12028*/
    5595             : /* 11960*/                        OPC_CheckChild0Same, 0,
    5596             : /* 11962*/                        OPC_CheckChild1Integer, 24, 
    5597             : /* 11964*/                        OPC_CheckChild1Type, MVT::i32,
    5598             : /* 11966*/                        OPC_MoveParent,
    5599             : /* 11967*/                        OPC_MoveChild1,
    5600             : /* 11968*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5601             : /* 11971*/                        OPC_CheckChild0Same, 1,
    5602             : /* 11973*/                        OPC_CheckChild1Integer, 24, 
    5603             : /* 11975*/                        OPC_CheckChild1Type, MVT::i32,
    5604             : /* 11977*/                        OPC_MoveParent,
    5605             : /* 11978*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5606             : /* 11980*/                        OPC_MoveParent,
    5607             : /* 11981*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5608             : /* 11983*/                        OPC_CheckType, MVT::i32,
    5609             : /* 11985*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5610             : /* 11987*/                        OPC_EmitInteger, MVT::i32, 8, 
    5611             : /* 11990*/                        OPC_EmitInteger, MVT::i32, 8, 
    5612             : /* 11993*/                        OPC_EmitInteger, MVT::i32, 8, 
    5613             : /* 11996*/                        OPC_EmitInteger, MVT::i1, 0, 
    5614             : /* 11999*/                        OPC_EmitInteger, MVT::i32, 0, 
    5615             : /* 12002*/                        OPC_EmitInteger, MVT::i32, 0, 
    5616             : /* 12005*/                        OPC_EmitInteger, MVT::i32, 0, 
    5617             : /* 12008*/                        OPC_EmitInteger, MVT::i32, 0, 
    5618             : /* 12011*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5619             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5620             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5621             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5622             : /* 12028*/                      0, /*End of Scope*/
    5623             : /* 12029*/                    /*Scope*/ 42|128,1/*170*/, /*->12201*/
    5624             : /* 12031*/                      OPC_CheckChild0Same, 0,
    5625             : /* 12033*/                      OPC_MoveParent,
    5626             : /* 12034*/                      OPC_MoveChild1,
    5627             : /* 12035*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5628             : /* 12038*/                      OPC_CheckChild0Same, 1,
    5629             : /* 12040*/                      OPC_MoveParent,
    5630             : /* 12041*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5631             : /* 12043*/                      OPC_MoveParent,
    5632             : /* 12044*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5633             : /* 12046*/                      OPC_MoveParent,
    5634             : /* 12047*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5635             : /* 12049*/                      OPC_MoveParent,
    5636             : /* 12050*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5637             : /* 12052*/                      OPC_MoveParent,
    5638             : /* 12053*/                      OPC_MoveChild1,
    5639             : /* 12054*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5640             : /* 12057*/                      OPC_MoveChild0,
    5641             : /* 12058*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5642             : /* 12061*/                      OPC_Scope, 68, /*->12131*/ // 2 children in Scope
    5643             : /* 12063*/                        OPC_CheckChild0Same, 1,
    5644             : /* 12065*/                        OPC_CheckChild1Integer, 24, 
    5645             : /* 12067*/                        OPC_CheckChild1Type, MVT::i32,
    5646             : /* 12069*/                        OPC_MoveParent,
    5647             : /* 12070*/                        OPC_MoveChild1,
    5648             : /* 12071*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5649             : /* 12074*/                        OPC_CheckChild0Same, 0,
    5650             : /* 12076*/                        OPC_CheckChild1Integer, 24, 
    5651             : /* 12078*/                        OPC_CheckChild1Type, MVT::i32,
    5652             : /* 12080*/                        OPC_MoveParent,
    5653             : /* 12081*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5654             : /* 12083*/                        OPC_MoveParent,
    5655             : /* 12084*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5656             : /* 12086*/                        OPC_CheckType, MVT::i32,
    5657             : /* 12088*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5658             : /* 12090*/                        OPC_EmitInteger, MVT::i32, 8, 
    5659             : /* 12093*/                        OPC_EmitInteger, MVT::i32, 8, 
    5660             : /* 12096*/                        OPC_EmitInteger, MVT::i32, 8, 
    5661             : /* 12099*/                        OPC_EmitInteger, MVT::i1, 0, 
    5662             : /* 12102*/                        OPC_EmitInteger, MVT::i32, 0, 
    5663             : /* 12105*/                        OPC_EmitInteger, MVT::i32, 0, 
    5664             : /* 12108*/                        OPC_EmitInteger, MVT::i32, 0, 
    5665             : /* 12111*/                        OPC_EmitInteger, MVT::i32, 0, 
    5666             : /* 12114*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5667             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5668             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5669             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5670             : /* 12131*/                      /*Scope*/ 68, /*->12200*/
    5671             : /* 12132*/                        OPC_CheckChild0Same, 0,
    5672             : /* 12134*/                        OPC_CheckChild1Integer, 24, 
    5673             : /* 12136*/                        OPC_CheckChild1Type, MVT::i32,
    5674             : /* 12138*/                        OPC_MoveParent,
    5675             : /* 12139*/                        OPC_MoveChild1,
    5676             : /* 12140*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5677             : /* 12143*/                        OPC_CheckChild0Same, 1,
    5678             : /* 12145*/                        OPC_CheckChild1Integer, 24, 
    5679             : /* 12147*/                        OPC_CheckChild1Type, MVT::i32,
    5680             : /* 12149*/                        OPC_MoveParent,
    5681             : /* 12150*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5682             : /* 12152*/                        OPC_MoveParent,
    5683             : /* 12153*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5684             : /* 12155*/                        OPC_CheckType, MVT::i32,
    5685             : /* 12157*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5686             : /* 12159*/                        OPC_EmitInteger, MVT::i32, 8, 
    5687             : /* 12162*/                        OPC_EmitInteger, MVT::i32, 8, 
    5688             : /* 12165*/                        OPC_EmitInteger, MVT::i32, 8, 
    5689             : /* 12168*/                        OPC_EmitInteger, MVT::i1, 0, 
    5690             : /* 12171*/                        OPC_EmitInteger, MVT::i32, 0, 
    5691             : /* 12174*/                        OPC_EmitInteger, MVT::i32, 0, 
    5692             : /* 12177*/                        OPC_EmitInteger, MVT::i32, 0, 
    5693             : /* 12180*/                        OPC_EmitInteger, MVT::i32, 0, 
    5694             : /* 12183*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5695             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5696             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5697             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5698             : /* 12200*/                      0, /*End of Scope*/
    5699             : /* 12201*/                    0, /*End of Scope*/
    5700             : /* 12202*/                  /*Scope*/ 100|128,2/*356*/, /*->12560*/
    5701             : /* 12204*/                    OPC_MoveChild0,
    5702             : /* 12205*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5703             : /* 12208*/                    OPC_MoveChild0,
    5704             : /* 12209*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5705             : /* 12212*/                    OPC_Scope, 43|128,1/*171*/, /*->12386*/ // 2 children in Scope
    5706             : /* 12215*/                      OPC_CheckChild0Same, 1,
    5707             : /* 12217*/                      OPC_MoveParent,
    5708             : /* 12218*/                      OPC_MoveChild1,
    5709             : /* 12219*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5710             : /* 12222*/                      OPC_CheckChild0Same, 0,
    5711             : /* 12224*/                      OPC_MoveParent,
    5712             : /* 12225*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5713             : /* 12227*/                      OPC_MoveParent,
    5714             : /* 12228*/                      OPC_RecordChild1, // #2 = $src2
    5715             : /* 12229*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5716             : /* 12231*/                      OPC_MoveParent,
    5717             : /* 12232*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5718             : /* 12234*/                      OPC_MoveParent,
    5719             : /* 12235*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5720             : /* 12237*/                      OPC_MoveParent,
    5721             : /* 12238*/                      OPC_MoveChild1,
    5722             : /* 12239*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5723             : /* 12242*/                      OPC_MoveChild0,
    5724             : /* 12243*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5725             : /* 12246*/                      OPC_Scope, 68, /*->12316*/ // 2 children in Scope
    5726             : /* 12248*/                        OPC_CheckChild0Same, 1,
    5727             : /* 12250*/                        OPC_CheckChild1Integer, 24, 
    5728             : /* 12252*/                        OPC_CheckChild1Type, MVT::i32,
    5729             : /* 12254*/                        OPC_MoveParent,
    5730             : /* 12255*/                        OPC_MoveChild1,
    5731             : /* 12256*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5732             : /* 12259*/                        OPC_CheckChild0Same, 0,
    5733             : /* 12261*/                        OPC_CheckChild1Integer, 24, 
    5734             : /* 12263*/                        OPC_CheckChild1Type, MVT::i32,
    5735             : /* 12265*/                        OPC_MoveParent,
    5736             : /* 12266*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5737             : /* 12268*/                        OPC_MoveParent,
    5738             : /* 12269*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5739             : /* 12271*/                        OPC_CheckType, MVT::i32,
    5740             : /* 12273*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5741             : /* 12275*/                        OPC_EmitInteger, MVT::i32, 8, 
    5742             : /* 12278*/                        OPC_EmitInteger, MVT::i32, 8, 
    5743             : /* 12281*/                        OPC_EmitInteger, MVT::i32, 8, 
    5744             : /* 12284*/                        OPC_EmitInteger, MVT::i1, 0, 
    5745             : /* 12287*/                        OPC_EmitInteger, MVT::i32, 0, 
    5746             : /* 12290*/                        OPC_EmitInteger, MVT::i32, 0, 
    5747             : /* 12293*/                        OPC_EmitInteger, MVT::i32, 0, 
    5748             : /* 12296*/                        OPC_EmitInteger, MVT::i32, 0, 
    5749             : /* 12299*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5750             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5751             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5752             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5753             : /* 12316*/                      /*Scope*/ 68, /*->12385*/
    5754             : /* 12317*/                        OPC_CheckChild0Same, 0,
    5755             : /* 12319*/                        OPC_CheckChild1Integer, 24, 
    5756             : /* 12321*/                        OPC_CheckChild1Type, MVT::i32,
    5757             : /* 12323*/                        OPC_MoveParent,
    5758             : /* 12324*/                        OPC_MoveChild1,
    5759             : /* 12325*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5760             : /* 12328*/                        OPC_CheckChild0Same, 1,
    5761             : /* 12330*/                        OPC_CheckChild1Integer, 24, 
    5762             : /* 12332*/                        OPC_CheckChild1Type, MVT::i32,
    5763             : /* 12334*/                        OPC_MoveParent,
    5764             : /* 12335*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5765             : /* 12337*/                        OPC_MoveParent,
    5766             : /* 12338*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5767             : /* 12340*/                        OPC_CheckType, MVT::i32,
    5768             : /* 12342*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5769             : /* 12344*/                        OPC_EmitInteger, MVT::i32, 8, 
    5770             : /* 12347*/                        OPC_EmitInteger, MVT::i32, 8, 
    5771             : /* 12350*/                        OPC_EmitInteger, MVT::i32, 8, 
    5772             : /* 12353*/                        OPC_EmitInteger, MVT::i1, 0, 
    5773             : /* 12356*/                        OPC_EmitInteger, MVT::i32, 0, 
    5774             : /* 12359*/                        OPC_EmitInteger, MVT::i32, 0, 
    5775             : /* 12362*/                        OPC_EmitInteger, MVT::i32, 0, 
    5776             : /* 12365*/                        OPC_EmitInteger, MVT::i32, 0, 
    5777             : /* 12368*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5778             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5779             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5780             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5781             : /* 12385*/                      0, /*End of Scope*/
    5782             : /* 12386*/                    /*Scope*/ 43|128,1/*171*/, /*->12559*/
    5783             : /* 12388*/                      OPC_CheckChild0Same, 0,
    5784             : /* 12390*/                      OPC_MoveParent,
    5785             : /* 12391*/                      OPC_MoveChild1,
    5786             : /* 12392*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5787             : /* 12395*/                      OPC_CheckChild0Same, 1,
    5788             : /* 12397*/                      OPC_MoveParent,
    5789             : /* 12398*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5790             : /* 12400*/                      OPC_MoveParent,
    5791             : /* 12401*/                      OPC_RecordChild1, // #2 = $src2
    5792             : /* 12402*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5793             : /* 12404*/                      OPC_MoveParent,
    5794             : /* 12405*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5795             : /* 12407*/                      OPC_MoveParent,
    5796             : /* 12408*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5797             : /* 12410*/                      OPC_MoveParent,
    5798             : /* 12411*/                      OPC_MoveChild1,
    5799             : /* 12412*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5800             : /* 12415*/                      OPC_MoveChild0,
    5801             : /* 12416*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5802             : /* 12419*/                      OPC_Scope, 68, /*->12489*/ // 2 children in Scope
    5803             : /* 12421*/                        OPC_CheckChild0Same, 1,
    5804             : /* 12423*/                        OPC_CheckChild1Integer, 24, 
    5805             : /* 12425*/                        OPC_CheckChild1Type, MVT::i32,
    5806             : /* 12427*/                        OPC_MoveParent,
    5807             : /* 12428*/                        OPC_MoveChild1,
    5808             : /* 12429*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5809             : /* 12432*/                        OPC_CheckChild0Same, 0,
    5810             : /* 12434*/                        OPC_CheckChild1Integer, 24, 
    5811             : /* 12436*/                        OPC_CheckChild1Type, MVT::i32,
    5812             : /* 12438*/                        OPC_MoveParent,
    5813             : /* 12439*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5814             : /* 12441*/                        OPC_MoveParent,
    5815             : /* 12442*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5816             : /* 12444*/                        OPC_CheckType, MVT::i32,
    5817             : /* 12446*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5818             : /* 12448*/                        OPC_EmitInteger, MVT::i32, 8, 
    5819             : /* 12451*/                        OPC_EmitInteger, MVT::i32, 8, 
    5820             : /* 12454*/                        OPC_EmitInteger, MVT::i32, 8, 
    5821             : /* 12457*/                        OPC_EmitInteger, MVT::i1, 0, 
    5822             : /* 12460*/                        OPC_EmitInteger, MVT::i32, 0, 
    5823             : /* 12463*/                        OPC_EmitInteger, MVT::i32, 0, 
    5824             : /* 12466*/                        OPC_EmitInteger, MVT::i32, 0, 
    5825             : /* 12469*/                        OPC_EmitInteger, MVT::i32, 0, 
    5826             : /* 12472*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5827             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5828             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5829             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5830             : /* 12489*/                      /*Scope*/ 68, /*->12558*/
    5831             : /* 12490*/                        OPC_CheckChild0Same, 0,
    5832             : /* 12492*/                        OPC_CheckChild1Integer, 24, 
    5833             : /* 12494*/                        OPC_CheckChild1Type, MVT::i32,
    5834             : /* 12496*/                        OPC_MoveParent,
    5835             : /* 12497*/                        OPC_MoveChild1,
    5836             : /* 12498*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5837             : /* 12501*/                        OPC_CheckChild0Same, 1,
    5838             : /* 12503*/                        OPC_CheckChild1Integer, 24, 
    5839             : /* 12505*/                        OPC_CheckChild1Type, MVT::i32,
    5840             : /* 12507*/                        OPC_MoveParent,
    5841             : /* 12508*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5842             : /* 12510*/                        OPC_MoveParent,
    5843             : /* 12511*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5844             : /* 12513*/                        OPC_CheckType, MVT::i32,
    5845             : /* 12515*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5846             : /* 12517*/                        OPC_EmitInteger, MVT::i32, 8, 
    5847             : /* 12520*/                        OPC_EmitInteger, MVT::i32, 8, 
    5848             : /* 12523*/                        OPC_EmitInteger, MVT::i32, 8, 
    5849             : /* 12526*/                        OPC_EmitInteger, MVT::i1, 0, 
    5850             : /* 12529*/                        OPC_EmitInteger, MVT::i32, 0, 
    5851             : /* 12532*/                        OPC_EmitInteger, MVT::i32, 0, 
    5852             : /* 12535*/                        OPC_EmitInteger, MVT::i32, 0, 
    5853             : /* 12538*/                        OPC_EmitInteger, MVT::i32, 0, 
    5854             : /* 12541*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5855             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5856             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5857             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5858             : /* 12558*/                      0, /*End of Scope*/
    5859             : /* 12559*/                    0, /*End of Scope*/
    5860             : /* 12560*/                  0, /*End of Scope*/
    5861             : /* 12561*/                /*Scope*/ 108|128,5/*748*/, /*->13311*/
    5862             : /* 12563*/                  OPC_CheckChild0Same, 0,
    5863             : /* 12565*/                  OPC_CheckChild1Integer, 8, 
    5864             : /* 12567*/                  OPC_CheckChild1Type, MVT::i32,
    5865             : /* 12569*/                  OPC_MoveParent,
    5866             : /* 12570*/                  OPC_MoveParent,
    5867             : /* 12571*/                  OPC_MoveChild1,
    5868             : /* 12572*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    5869             : /* 12575*/                  OPC_MoveChild0,
    5870             : /* 12576*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5871             : /* 12579*/                  OPC_CheckChild0Same, 1,
    5872             : /* 12581*/                  OPC_CheckChild1Integer, 8, 
    5873             : /* 12583*/                  OPC_CheckChild1Type, MVT::i32,
    5874             : /* 12585*/                  OPC_MoveParent,
    5875             : /* 12586*/                  OPC_MoveParent,
    5876             : /* 12587*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5877             : /* 12589*/                  OPC_MoveParent,
    5878             : /* 12590*/                  OPC_MoveChild1,
    5879             : /* 12591*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    5880             : /* 12594*/                  OPC_Scope, 99|128,2/*355*/, /*->12952*/ // 2 children in Scope
    5881             : /* 12597*/                    OPC_RecordChild0, // #2 = $src2
    5882             : /* 12598*/                    OPC_MoveChild1,
    5883             : /* 12599*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5884             : /* 12602*/                    OPC_MoveChild0,
    5885             : /* 12603*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    5886             : /* 12606*/                    OPC_Scope, 42|128,1/*170*/, /*->12779*/ // 2 children in Scope
    5887             : /* 12609*/                      OPC_CheckChild0Same, 1,
    5888             : /* 12611*/                      OPC_MoveParent,
    5889             : /* 12612*/                      OPC_MoveChild1,
    5890             : /* 12613*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5891             : /* 12616*/                      OPC_CheckChild0Same, 0,
    5892             : /* 12618*/                      OPC_MoveParent,
    5893             : /* 12619*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5894             : /* 12621*/                      OPC_MoveParent,
    5895             : /* 12622*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5896             : /* 12624*/                      OPC_MoveParent,
    5897             : /* 12625*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5898             : /* 12627*/                      OPC_MoveParent,
    5899             : /* 12628*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5900             : /* 12630*/                      OPC_MoveParent,
    5901             : /* 12631*/                      OPC_MoveChild1,
    5902             : /* 12632*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5903             : /* 12635*/                      OPC_MoveChild0,
    5904             : /* 12636*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5905             : /* 12639*/                      OPC_Scope, 68, /*->12709*/ // 2 children in Scope
    5906             : /* 12641*/                        OPC_CheckChild0Same, 1,
    5907             : /* 12643*/                        OPC_CheckChild1Integer, 24, 
    5908             : /* 12645*/                        OPC_CheckChild1Type, MVT::i32,
    5909             : /* 12647*/                        OPC_MoveParent,
    5910             : /* 12648*/                        OPC_MoveChild1,
    5911             : /* 12649*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5912             : /* 12652*/                        OPC_CheckChild0Same, 0,
    5913             : /* 12654*/                        OPC_CheckChild1Integer, 24, 
    5914             : /* 12656*/                        OPC_CheckChild1Type, MVT::i32,
    5915             : /* 12658*/                        OPC_MoveParent,
    5916             : /* 12659*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5917             : /* 12661*/                        OPC_MoveParent,
    5918             : /* 12662*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5919             : /* 12664*/                        OPC_CheckType, MVT::i32,
    5920             : /* 12666*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5921             : /* 12668*/                        OPC_EmitInteger, MVT::i32, 8, 
    5922             : /* 12671*/                        OPC_EmitInteger, MVT::i32, 8, 
    5923             : /* 12674*/                        OPC_EmitInteger, MVT::i32, 8, 
    5924             : /* 12677*/                        OPC_EmitInteger, MVT::i1, 0, 
    5925             : /* 12680*/                        OPC_EmitInteger, MVT::i32, 0, 
    5926             : /* 12683*/                        OPC_EmitInteger, MVT::i32, 0, 
    5927             : /* 12686*/                        OPC_EmitInteger, MVT::i32, 0, 
    5928             : /* 12689*/                        OPC_EmitInteger, MVT::i32, 0, 
    5929             : /* 12692*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5930             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5931             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5932             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5933             : /* 12709*/                      /*Scope*/ 68, /*->12778*/
    5934             : /* 12710*/                        OPC_CheckChild0Same, 0,
    5935             : /* 12712*/                        OPC_CheckChild1Integer, 24, 
    5936             : /* 12714*/                        OPC_CheckChild1Type, MVT::i32,
    5937             : /* 12716*/                        OPC_MoveParent,
    5938             : /* 12717*/                        OPC_MoveChild1,
    5939             : /* 12718*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5940             : /* 12721*/                        OPC_CheckChild0Same, 1,
    5941             : /* 12723*/                        OPC_CheckChild1Integer, 24, 
    5942             : /* 12725*/                        OPC_CheckChild1Type, MVT::i32,
    5943             : /* 12727*/                        OPC_MoveParent,
    5944             : /* 12728*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5945             : /* 12730*/                        OPC_MoveParent,
    5946             : /* 12731*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5947             : /* 12733*/                        OPC_CheckType, MVT::i32,
    5948             : /* 12735*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5949             : /* 12737*/                        OPC_EmitInteger, MVT::i32, 8, 
    5950             : /* 12740*/                        OPC_EmitInteger, MVT::i32, 8, 
    5951             : /* 12743*/                        OPC_EmitInteger, MVT::i32, 8, 
    5952             : /* 12746*/                        OPC_EmitInteger, MVT::i1, 0, 
    5953             : /* 12749*/                        OPC_EmitInteger, MVT::i32, 0, 
    5954             : /* 12752*/                        OPC_EmitInteger, MVT::i32, 0, 
    5955             : /* 12755*/                        OPC_EmitInteger, MVT::i32, 0, 
    5956             : /* 12758*/                        OPC_EmitInteger, MVT::i32, 0, 
    5957             : /* 12761*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    5958             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    5959             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    5960             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    5961             : /* 12778*/                      0, /*End of Scope*/
    5962             : /* 12779*/                    /*Scope*/ 42|128,1/*170*/, /*->12951*/
    5963             : /* 12781*/                      OPC_CheckChild0Same, 0,
    5964             : /* 12783*/                      OPC_MoveParent,
    5965             : /* 12784*/                      OPC_MoveChild1,
    5966             : /* 12785*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    5967             : /* 12788*/                      OPC_CheckChild0Same, 1,
    5968             : /* 12790*/                      OPC_MoveParent,
    5969             : /* 12791*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5970             : /* 12793*/                      OPC_MoveParent,
    5971             : /* 12794*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5972             : /* 12796*/                      OPC_MoveParent,
    5973             : /* 12797*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5974             : /* 12799*/                      OPC_MoveParent,
    5975             : /* 12800*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5976             : /* 12802*/                      OPC_MoveParent,
    5977             : /* 12803*/                      OPC_MoveChild1,
    5978             : /* 12804*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    5979             : /* 12807*/                      OPC_MoveChild0,
    5980             : /* 12808*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5981             : /* 12811*/                      OPC_Scope, 68, /*->12881*/ // 2 children in Scope
    5982             : /* 12813*/                        OPC_CheckChild0Same, 1,
    5983             : /* 12815*/                        OPC_CheckChild1Integer, 24, 
    5984             : /* 12817*/                        OPC_CheckChild1Type, MVT::i32,
    5985             : /* 12819*/                        OPC_MoveParent,
    5986             : /* 12820*/                        OPC_MoveChild1,
    5987             : /* 12821*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    5988             : /* 12824*/                        OPC_CheckChild0Same, 0,
    5989             : /* 12826*/                        OPC_CheckChild1Integer, 24, 
    5990             : /* 12828*/                        OPC_CheckChild1Type, MVT::i32,
    5991             : /* 12830*/                        OPC_MoveParent,
    5992             : /* 12831*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    5993             : /* 12833*/                        OPC_MoveParent,
    5994             : /* 12834*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    5995             : /* 12836*/                        OPC_CheckType, MVT::i32,
    5996             : /* 12838*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    5997             : /* 12840*/                        OPC_EmitInteger, MVT::i32, 8, 
    5998             : /* 12843*/                        OPC_EmitInteger, MVT::i32, 8, 
    5999             : /* 12846*/                        OPC_EmitInteger, MVT::i32, 8, 
    6000             : /* 12849*/                        OPC_EmitInteger, MVT::i1, 0, 
    6001             : /* 12852*/                        OPC_EmitInteger, MVT::i32, 0, 
    6002             : /* 12855*/                        OPC_EmitInteger, MVT::i32, 0, 
    6003             : /* 12858*/                        OPC_EmitInteger, MVT::i32, 0, 
    6004             : /* 12861*/                        OPC_EmitInteger, MVT::i32, 0, 
    6005             : /* 12864*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6006             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6007             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6008             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6009             : /* 12881*/                      /*Scope*/ 68, /*->12950*/
    6010             : /* 12882*/                        OPC_CheckChild0Same, 0,
    6011             : /* 12884*/                        OPC_CheckChild1Integer, 24, 
    6012             : /* 12886*/                        OPC_CheckChild1Type, MVT::i32,
    6013             : /* 12888*/                        OPC_MoveParent,
    6014             : /* 12889*/                        OPC_MoveChild1,
    6015             : /* 12890*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6016             : /* 12893*/                        OPC_CheckChild0Same, 1,
    6017             : /* 12895*/                        OPC_CheckChild1Integer, 24, 
    6018             : /* 12897*/                        OPC_CheckChild1Type, MVT::i32,
    6019             : /* 12899*/                        OPC_MoveParent,
    6020             : /* 12900*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6021             : /* 12902*/                        OPC_MoveParent,
    6022             : /* 12903*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6023             : /* 12905*/                        OPC_CheckType, MVT::i32,
    6024             : /* 12907*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6025             : /* 12909*/                        OPC_EmitInteger, MVT::i32, 8, 
    6026             : /* 12912*/                        OPC_EmitInteger, MVT::i32, 8, 
    6027             : /* 12915*/                        OPC_EmitInteger, MVT::i32, 8, 
    6028             : /* 12918*/                        OPC_EmitInteger, MVT::i1, 0, 
    6029             : /* 12921*/                        OPC_EmitInteger, MVT::i32, 0, 
    6030             : /* 12924*/                        OPC_EmitInteger, MVT::i32, 0, 
    6031             : /* 12927*/                        OPC_EmitInteger, MVT::i32, 0, 
    6032             : /* 12930*/                        OPC_EmitInteger, MVT::i32, 0, 
    6033             : /* 12933*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6034             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6035             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6036             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6037             : /* 12950*/                      0, /*End of Scope*/
    6038             : /* 12951*/                    0, /*End of Scope*/
    6039             : /* 12952*/                  /*Scope*/ 100|128,2/*356*/, /*->13310*/
    6040             : /* 12954*/                    OPC_MoveChild0,
    6041             : /* 12955*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6042             : /* 12958*/                    OPC_MoveChild0,
    6043             : /* 12959*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6044             : /* 12962*/                    OPC_Scope, 43|128,1/*171*/, /*->13136*/ // 2 children in Scope
    6045             : /* 12965*/                      OPC_CheckChild0Same, 1,
    6046             : /* 12967*/                      OPC_MoveParent,
    6047             : /* 12968*/                      OPC_MoveChild1,
    6048             : /* 12969*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6049             : /* 12972*/                      OPC_CheckChild0Same, 0,
    6050             : /* 12974*/                      OPC_MoveParent,
    6051             : /* 12975*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6052             : /* 12977*/                      OPC_MoveParent,
    6053             : /* 12978*/                      OPC_RecordChild1, // #2 = $src2
    6054             : /* 12979*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6055             : /* 12981*/                      OPC_MoveParent,
    6056             : /* 12982*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6057             : /* 12984*/                      OPC_MoveParent,
    6058             : /* 12985*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6059             : /* 12987*/                      OPC_MoveParent,
    6060             : /* 12988*/                      OPC_MoveChild1,
    6061             : /* 12989*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6062             : /* 12992*/                      OPC_MoveChild0,
    6063             : /* 12993*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6064             : /* 12996*/                      OPC_Scope, 68, /*->13066*/ // 2 children in Scope
    6065             : /* 12998*/                        OPC_CheckChild0Same, 1,
    6066             : /* 13000*/                        OPC_CheckChild1Integer, 24, 
    6067             : /* 13002*/                        OPC_CheckChild1Type, MVT::i32,
    6068             : /* 13004*/                        OPC_MoveParent,
    6069             : /* 13005*/                        OPC_MoveChild1,
    6070             : /* 13006*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6071             : /* 13009*/                        OPC_CheckChild0Same, 0,
    6072             : /* 13011*/                        OPC_CheckChild1Integer, 24, 
    6073             : /* 13013*/                        OPC_CheckChild1Type, MVT::i32,
    6074             : /* 13015*/                        OPC_MoveParent,
    6075             : /* 13016*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6076             : /* 13018*/                        OPC_MoveParent,
    6077             : /* 13019*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6078             : /* 13021*/                        OPC_CheckType, MVT::i32,
    6079             : /* 13023*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6080             : /* 13025*/                        OPC_EmitInteger, MVT::i32, 8, 
    6081             : /* 13028*/                        OPC_EmitInteger, MVT::i32, 8, 
    6082             : /* 13031*/                        OPC_EmitInteger, MVT::i32, 8, 
    6083             : /* 13034*/                        OPC_EmitInteger, MVT::i1, 0, 
    6084             : /* 13037*/                        OPC_EmitInteger, MVT::i32, 0, 
    6085             : /* 13040*/                        OPC_EmitInteger, MVT::i32, 0, 
    6086             : /* 13043*/                        OPC_EmitInteger, MVT::i32, 0, 
    6087             : /* 13046*/                        OPC_EmitInteger, MVT::i32, 0, 
    6088             : /* 13049*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6089             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6090             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6091             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6092             : /* 13066*/                      /*Scope*/ 68, /*->13135*/
    6093             : /* 13067*/                        OPC_CheckChild0Same, 0,
    6094             : /* 13069*/                        OPC_CheckChild1Integer, 24, 
    6095             : /* 13071*/                        OPC_CheckChild1Type, MVT::i32,
    6096             : /* 13073*/                        OPC_MoveParent,
    6097             : /* 13074*/                        OPC_MoveChild1,
    6098             : /* 13075*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6099             : /* 13078*/                        OPC_CheckChild0Same, 1,
    6100             : /* 13080*/                        OPC_CheckChild1Integer, 24, 
    6101             : /* 13082*/                        OPC_CheckChild1Type, MVT::i32,
    6102             : /* 13084*/                        OPC_MoveParent,
    6103             : /* 13085*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6104             : /* 13087*/                        OPC_MoveParent,
    6105             : /* 13088*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6106             : /* 13090*/                        OPC_CheckType, MVT::i32,
    6107             : /* 13092*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6108             : /* 13094*/                        OPC_EmitInteger, MVT::i32, 8, 
    6109             : /* 13097*/                        OPC_EmitInteger, MVT::i32, 8, 
    6110             : /* 13100*/                        OPC_EmitInteger, MVT::i32, 8, 
    6111             : /* 13103*/                        OPC_EmitInteger, MVT::i1, 0, 
    6112             : /* 13106*/                        OPC_EmitInteger, MVT::i32, 0, 
    6113             : /* 13109*/                        OPC_EmitInteger, MVT::i32, 0, 
    6114             : /* 13112*/                        OPC_EmitInteger, MVT::i32, 0, 
    6115             : /* 13115*/                        OPC_EmitInteger, MVT::i32, 0, 
    6116             : /* 13118*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6117             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6118             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6119             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6120             : /* 13135*/                      0, /*End of Scope*/
    6121             : /* 13136*/                    /*Scope*/ 43|128,1/*171*/, /*->13309*/
    6122             : /* 13138*/                      OPC_CheckChild0Same, 0,
    6123             : /* 13140*/                      OPC_MoveParent,
    6124             : /* 13141*/                      OPC_MoveChild1,
    6125             : /* 13142*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6126             : /* 13145*/                      OPC_CheckChild0Same, 1,
    6127             : /* 13147*/                      OPC_MoveParent,
    6128             : /* 13148*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6129             : /* 13150*/                      OPC_MoveParent,
    6130             : /* 13151*/                      OPC_RecordChild1, // #2 = $src2
    6131             : /* 13152*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6132             : /* 13154*/                      OPC_MoveParent,
    6133             : /* 13155*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6134             : /* 13157*/                      OPC_MoveParent,
    6135             : /* 13158*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6136             : /* 13160*/                      OPC_MoveParent,
    6137             : /* 13161*/                      OPC_MoveChild1,
    6138             : /* 13162*/                      OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6139             : /* 13165*/                      OPC_MoveChild0,
    6140             : /* 13166*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6141             : /* 13169*/                      OPC_Scope, 68, /*->13239*/ // 2 children in Scope
    6142             : /* 13171*/                        OPC_CheckChild0Same, 1,
    6143             : /* 13173*/                        OPC_CheckChild1Integer, 24, 
    6144             : /* 13175*/                        OPC_CheckChild1Type, MVT::i32,
    6145             : /* 13177*/                        OPC_MoveParent,
    6146             : /* 13178*/                        OPC_MoveChild1,
    6147             : /* 13179*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6148             : /* 13182*/                        OPC_CheckChild0Same, 0,
    6149             : /* 13184*/                        OPC_CheckChild1Integer, 24, 
    6150             : /* 13186*/                        OPC_CheckChild1Type, MVT::i32,
    6151             : /* 13188*/                        OPC_MoveParent,
    6152             : /* 13189*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6153             : /* 13191*/                        OPC_MoveParent,
    6154             : /* 13192*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6155             : /* 13194*/                        OPC_CheckType, MVT::i32,
    6156             : /* 13196*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6157             : /* 13198*/                        OPC_EmitInteger, MVT::i32, 8, 
    6158             : /* 13201*/                        OPC_EmitInteger, MVT::i32, 8, 
    6159             : /* 13204*/                        OPC_EmitInteger, MVT::i32, 8, 
    6160             : /* 13207*/                        OPC_EmitInteger, MVT::i1, 0, 
    6161             : /* 13210*/                        OPC_EmitInteger, MVT::i32, 0, 
    6162             : /* 13213*/                        OPC_EmitInteger, MVT::i32, 0, 
    6163             : /* 13216*/                        OPC_EmitInteger, MVT::i32, 0, 
    6164             : /* 13219*/                        OPC_EmitInteger, MVT::i32, 0, 
    6165             : /* 13222*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6166             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6167             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6168             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6169             : /* 13239*/                      /*Scope*/ 68, /*->13308*/
    6170             : /* 13240*/                        OPC_CheckChild0Same, 0,
    6171             : /* 13242*/                        OPC_CheckChild1Integer, 24, 
    6172             : /* 13244*/                        OPC_CheckChild1Type, MVT::i32,
    6173             : /* 13246*/                        OPC_MoveParent,
    6174             : /* 13247*/                        OPC_MoveChild1,
    6175             : /* 13248*/                        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6176             : /* 13251*/                        OPC_CheckChild0Same, 1,
    6177             : /* 13253*/                        OPC_CheckChild1Integer, 24, 
    6178             : /* 13255*/                        OPC_CheckChild1Type, MVT::i32,
    6179             : /* 13257*/                        OPC_MoveParent,
    6180             : /* 13258*/                        OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6181             : /* 13260*/                        OPC_MoveParent,
    6182             : /* 13261*/                        OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6183             : /* 13263*/                        OPC_CheckType, MVT::i32,
    6184             : /* 13265*/                        OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6185             : /* 13267*/                        OPC_EmitInteger, MVT::i32, 8, 
    6186             : /* 13270*/                        OPC_EmitInteger, MVT::i32, 8, 
    6187             : /* 13273*/                        OPC_EmitInteger, MVT::i32, 8, 
    6188             : /* 13276*/                        OPC_EmitInteger, MVT::i1, 0, 
    6189             : /* 13279*/                        OPC_EmitInteger, MVT::i32, 0, 
    6190             : /* 13282*/                        OPC_EmitInteger, MVT::i32, 0, 
    6191             : /* 13285*/                        OPC_EmitInteger, MVT::i32, 0, 
    6192             : /* 13288*/                        OPC_EmitInteger, MVT::i32, 0, 
    6193             : /* 13291*/                        OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6194             :                                       MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6195             :                                   // Src: (add:{ *:[i32] } (add:{ *:[i32] } (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>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 8:{ *:[i32] }), 255:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 8:{ *:[i32] }), 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 255:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 255:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>)<<P:Predicate_add_oneuse>>)<<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
    6196             :                                   // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6197             : /* 13308*/                      0, /*End of Scope*/
    6198             : /* 13309*/                    0, /*End of Scope*/
    6199             : /* 13310*/                  0, /*End of Scope*/
    6200             : /* 13311*/                0, /*End of Scope*/
    6201             : /* 13312*/              0, // EndSwitchOpcode
    6202             : /* 13313*/            /*Scope*/ 110|128,1/*238*/, /*->13553*/
    6203             : /* 13315*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6204             : /* 13318*/              OPC_RecordChild0, // #0 = $src0
    6205             : /* 13319*/              OPC_CheckChild1Integer, 16, 
    6206             : /* 13321*/              OPC_CheckChild1Type, MVT::i32,
    6207             : /* 13323*/              OPC_MoveParent,
    6208             : /* 13324*/              OPC_MoveChild1,
    6209             : /* 13325*/              OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6210             : /* 13328*/              OPC_RecordChild0, // #1 = $src1
    6211             : /* 13329*/              OPC_CheckChild1Integer, 16, 
    6212             : /* 13331*/              OPC_CheckChild1Type, MVT::i32,
    6213             : /* 13333*/              OPC_MoveParent,
    6214             : /* 13334*/              OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6215             : /* 13336*/              OPC_MoveParent,
    6216             : /* 13337*/              OPC_RecordChild1, // #2 = $src2
    6217             : /* 13338*/              OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6218             : /* 13340*/              OPC_MoveParent,
    6219             : /* 13341*/              OPC_MoveChild1,
    6220             : /* 13342*/              OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6221             : /* 13345*/              OPC_MoveChild0,
    6222             : /* 13346*/              OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6223             : /* 13350*/              OPC_Scope, 59, /*->13411*/ // 3 children in Scope
    6224             : /* 13352*/                OPC_CheckChild0Same, 0,
    6225             : /* 13354*/                OPC_MoveParent,
    6226             : /* 13355*/                OPC_MoveChild1,
    6227             : /* 13356*/                OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6228             : /* 13360*/                OPC_CheckChild0Same, 1,
    6229             : /* 13362*/                OPC_MoveParent,
    6230             : /* 13363*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6231             : /* 13365*/                OPC_MoveParent,
    6232             : /* 13366*/                OPC_CheckType, MVT::i32,
    6233             : /* 13368*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6234             : /* 13370*/                OPC_EmitInteger, MVT::i32, 8, 
    6235             : /* 13373*/                OPC_EmitInteger, MVT::i32, 8, 
    6236             : /* 13376*/                OPC_EmitInteger, MVT::i32, 8, 
    6237             : /* 13379*/                OPC_EmitInteger, MVT::i1, 0, 
    6238             : /* 13382*/                OPC_EmitInteger, MVT::i32, 0, 
    6239             : /* 13385*/                OPC_EmitInteger, MVT::i32, 0, 
    6240             : /* 13388*/                OPC_EmitInteger, MVT::i32, 0, 
    6241             : /* 13391*/                OPC_EmitInteger, MVT::i32, 0, 
    6242             : /* 13394*/                OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6243             :                               MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6244             :                           // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6245             :                           // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6246             : /* 13411*/              /*Scope*/ 80, /*->13492*/
    6247             : /* 13412*/                OPC_CheckChild0Same, 1,
    6248             : /* 13414*/                OPC_MoveParent,
    6249             : /* 13415*/                OPC_MoveChild1,
    6250             : /* 13416*/                OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6251             : /* 13420*/                OPC_CheckChild0Same, 0,
    6252             : /* 13422*/                OPC_MoveParent,
    6253             : /* 13423*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6254             : /* 13425*/                OPC_MoveParent,
    6255             : /* 13426*/                OPC_CheckType, MVT::i32,
    6256             : /* 13428*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6257             : /* 13430*/                OPC_EmitInteger, MVT::i32, 8, 
    6258             : /* 13433*/                OPC_EmitInteger, MVT::i32, 8, 
    6259             : /* 13436*/                OPC_EmitInteger, MVT::i32, 8, 
    6260             : /* 13439*/                OPC_EmitInteger, MVT::i1, 0, 
    6261             : /* 13442*/                OPC_EmitInteger, MVT::i32, 0, 
    6262             : /* 13445*/                OPC_EmitInteger, MVT::i32, 0, 
    6263             : /* 13448*/                OPC_EmitInteger, MVT::i32, 0, 
    6264             : /* 13451*/                OPC_EmitInteger, MVT::i32, 0, 
    6265             : /* 13454*/                OPC_Scope, 17, /*->13473*/ // 2 children in Scope
    6266             : /* 13456*/                  OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6267             :                                 MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6268             :                             // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6269             :                             // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6270             : /* 13473*/                /*Scope*/ 17, /*->13491*/
    6271             : /* 13474*/                  OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6272             :                                 MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6273             :                             // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6274             :                             // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6275             : /* 13491*/                0, /*End of Scope*/
    6276             : /* 13492*/              /*Scope*/ 59, /*->13552*/
    6277             : /* 13493*/                OPC_CheckChild0Same, 0,
    6278             : /* 13495*/                OPC_MoveParent,
    6279             : /* 13496*/                OPC_MoveChild1,
    6280             : /* 13497*/                OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6281             : /* 13501*/                OPC_CheckChild0Same, 1,
    6282             : /* 13503*/                OPC_MoveParent,
    6283             : /* 13504*/                OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6284             : /* 13506*/                OPC_MoveParent,
    6285             : /* 13507*/                OPC_CheckType, MVT::i32,
    6286             : /* 13509*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6287             : /* 13511*/                OPC_EmitInteger, MVT::i32, 8, 
    6288             : /* 13514*/                OPC_EmitInteger, MVT::i32, 8, 
    6289             : /* 13517*/                OPC_EmitInteger, MVT::i32, 8, 
    6290             : /* 13520*/                OPC_EmitInteger, MVT::i1, 0, 
    6291             : /* 13523*/                OPC_EmitInteger, MVT::i32, 0, 
    6292             : /* 13526*/                OPC_EmitInteger, MVT::i32, 0, 
    6293             : /* 13529*/                OPC_EmitInteger, MVT::i32, 0, 
    6294             : /* 13532*/                OPC_EmitInteger, MVT::i32, 0, 
    6295             : /* 13535*/                OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6296             :                               MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6297             :                           // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6298             :                           // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6299             : /* 13552*/              0, /*End of Scope*/
    6300             : /* 13553*/            0, /*End of Scope*/
    6301             : /* 13554*/          0, // EndSwitchOpcode
    6302             : /* 13555*/        /*Scope*/ 115|128,1/*243*/, /*->13800*/
    6303             : /* 13557*/          OPC_RecordChild0, // #0 = $src2
    6304             : /* 13558*/          OPC_MoveChild1,
    6305             : /* 13559*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6306             : /* 13562*/          OPC_MoveChild0,
    6307             : /* 13563*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6308             : /* 13566*/          OPC_RecordChild0, // #1 = $src0
    6309             : /* 13567*/          OPC_CheckChild1Integer, 16, 
    6310             : /* 13569*/          OPC_CheckChild1Type, MVT::i32,
    6311             : /* 13571*/          OPC_MoveParent,
    6312             : /* 13572*/          OPC_MoveChild1,
    6313             : /* 13573*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6314             : /* 13576*/          OPC_RecordChild0, // #2 = $src1
    6315             : /* 13577*/          OPC_CheckChild1Integer, 16, 
    6316             : /* 13579*/          OPC_CheckChild1Type, MVT::i32,
    6317             : /* 13581*/          OPC_MoveParent,
    6318             : /* 13582*/          OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6319             : /* 13584*/          OPC_MoveParent,
    6320             : /* 13585*/          OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6321             : /* 13587*/          OPC_MoveParent,
    6322             : /* 13588*/          OPC_MoveChild1,
    6323             : /* 13589*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6324             : /* 13592*/          OPC_MoveChild0,
    6325             : /* 13593*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6326             : /* 13597*/          OPC_Scope, 59, /*->13658*/ // 3 children in Scope
    6327             : /* 13599*/            OPC_CheckChild0Same, 1,
    6328             : /* 13601*/            OPC_MoveParent,
    6329             : /* 13602*/            OPC_MoveChild1,
    6330             : /* 13603*/            OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6331             : /* 13607*/            OPC_CheckChild0Same, 2,
    6332             : /* 13609*/            OPC_MoveParent,
    6333             : /* 13610*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6334             : /* 13612*/            OPC_MoveParent,
    6335             : /* 13613*/            OPC_CheckType, MVT::i32,
    6336             : /* 13615*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6337             : /* 13617*/            OPC_EmitInteger, MVT::i32, 8, 
    6338             : /* 13620*/            OPC_EmitInteger, MVT::i32, 8, 
    6339             : /* 13623*/            OPC_EmitInteger, MVT::i32, 8, 
    6340             : /* 13626*/            OPC_EmitInteger, MVT::i1, 0, 
    6341             : /* 13629*/            OPC_EmitInteger, MVT::i32, 0, 
    6342             : /* 13632*/            OPC_EmitInteger, MVT::i32, 0, 
    6343             : /* 13635*/            OPC_EmitInteger, MVT::i32, 0, 
    6344             : /* 13638*/            OPC_EmitInteger, MVT::i32, 0, 
    6345             : /* 13641*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6346             :                           MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
    6347             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6348             :                       // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6349             : /* 13658*/          /*Scope*/ 80, /*->13739*/
    6350             : /* 13659*/            OPC_CheckChild0Same, 2,
    6351             : /* 13661*/            OPC_MoveParent,
    6352             : /* 13662*/            OPC_MoveChild1,
    6353             : /* 13663*/            OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6354             : /* 13667*/            OPC_CheckChild0Same, 1,
    6355             : /* 13669*/            OPC_MoveParent,
    6356             : /* 13670*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6357             : /* 13672*/            OPC_MoveParent,
    6358             : /* 13673*/            OPC_CheckType, MVT::i32,
    6359             : /* 13675*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6360             : /* 13677*/            OPC_EmitInteger, MVT::i32, 8, 
    6361             : /* 13680*/            OPC_EmitInteger, MVT::i32, 8, 
    6362             : /* 13683*/            OPC_EmitInteger, MVT::i32, 8, 
    6363             : /* 13686*/            OPC_EmitInteger, MVT::i1, 0, 
    6364             : /* 13689*/            OPC_EmitInteger, MVT::i32, 0, 
    6365             : /* 13692*/            OPC_EmitInteger, MVT::i32, 0, 
    6366             : /* 13695*/            OPC_EmitInteger, MVT::i32, 0, 
    6367             : /* 13698*/            OPC_EmitInteger, MVT::i32, 0, 
    6368             : /* 13701*/            OPC_Scope, 17, /*->13720*/ // 2 children in Scope
    6369             : /* 13703*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6370             :                             MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
    6371             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6372             :                         // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6373             : /* 13720*/            /*Scope*/ 17, /*->13738*/
    6374             : /* 13721*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6375             :                             MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    6376             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6377             :                         // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6378             : /* 13738*/            0, /*End of Scope*/
    6379             : /* 13739*/          /*Scope*/ 59, /*->13799*/
    6380             : /* 13740*/            OPC_CheckChild0Same, 1,
    6381             : /* 13742*/            OPC_MoveParent,
    6382             : /* 13743*/            OPC_MoveChild1,
    6383             : /* 13744*/            OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
    6384             : /* 13748*/            OPC_CheckChild0Same, 2,
    6385             : /* 13750*/            OPC_MoveParent,
    6386             : /* 13751*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6387             : /* 13753*/            OPC_MoveParent,
    6388             : /* 13754*/            OPC_CheckType, MVT::i32,
    6389             : /* 13756*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6390             : /* 13758*/            OPC_EmitInteger, MVT::i32, 8, 
    6391             : /* 13761*/            OPC_EmitInteger, MVT::i32, 8, 
    6392             : /* 13764*/            OPC_EmitInteger, MVT::i32, 8, 
    6393             : /* 13767*/            OPC_EmitInteger, MVT::i1, 0, 
    6394             : /* 13770*/            OPC_EmitInteger, MVT::i32, 0, 
    6395             : /* 13773*/            OPC_EmitInteger, MVT::i32, 0, 
    6396             : /* 13776*/            OPC_EmitInteger, MVT::i32, 0, 
    6397             : /* 13779*/            OPC_EmitInteger, MVT::i32, 0, 
    6398             : /* 13782*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_U32_U16), 0,
    6399             :                           MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    6400             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_u24:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } i32:{ *:[i32] }:$src0, 65535:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>) - Complexity = 47
    6401             :                       // Dst: (V_DOT2_U32_U16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6402             : /* 13799*/          0, /*End of Scope*/
    6403             : /* 13800*/        /*Scope*/ 7|128,2/*263*/, /*->14065*/
    6404             : /* 13802*/          OPC_MoveChild0,
    6405             : /* 13803*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
    6406             : /* 13806*/          OPC_MoveChild0,
    6407             : /* 13807*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
    6408             : /* 13810*/          OPC_RecordChild0, // #0 = $src0
    6409             : /* 13811*/          OPC_CheckChild1Integer, 16, 
    6410             : /* 13813*/          OPC_CheckChild1Type, MVT::i32,
    6411             : /* 13815*/          OPC_MoveParent,
    6412             : /* 13816*/          OPC_MoveChild1,
    6413             : /* 13817*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
    6414             : /* 13820*/          OPC_RecordChild0, // #1 = $src1
    6415             : /* 13821*/          OPC_CheckChild1Integer, 16, 
    6416             : /* 13823*/          OPC_CheckChild1Type, MVT::i32,
    6417             : /* 13825*/          OPC_MoveParent,
    6418             : /* 13826*/          OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6419             : /* 13828*/          OPC_MoveParent,
    6420             : /* 13829*/          OPC_RecordChild1, // #2 = $src2
    6421             : /* 13830*/          OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6422             : /* 13832*/          OPC_MoveParent,
    6423             : /* 13833*/          OPC_MoveChild1,
    6424             : /* 13834*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
    6425             : /* 13837*/          OPC_MoveChild0,
    6426             : /* 13838*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6427             : /* 13841*/          OPC_Scope, 66, /*->13909*/ // 3 children in Scope
    6428             : /* 13843*/            OPC_CheckChild0Same, 0,
    6429             : /* 13845*/            OPC_MoveChild1,
    6430             : /* 13846*/            OPC_CheckValueType, MVT::i16,
    6431             : /* 13848*/            OPC_MoveParent,
    6432             : /* 13849*/            OPC_MoveParent,
    6433             : /* 13850*/            OPC_MoveChild1,
    6434             : /* 13851*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6435             : /* 13854*/            OPC_CheckChild0Same, 1,
    6436             : /* 13856*/            OPC_MoveChild1,
    6437             : /* 13857*/            OPC_CheckValueType, MVT::i16,
    6438             : /* 13859*/            OPC_MoveParent,
    6439             : /* 13860*/            OPC_MoveParent,
    6440             : /* 13861*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6441             : /* 13863*/            OPC_MoveParent,
    6442             : /* 13864*/            OPC_CheckType, MVT::i32,
    6443             : /* 13866*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6444             : /* 13868*/            OPC_EmitInteger, MVT::i32, 8, 
    6445             : /* 13871*/            OPC_EmitInteger, MVT::i32, 8, 
    6446             : /* 13874*/            OPC_EmitInteger, MVT::i32, 8, 
    6447             : /* 13877*/            OPC_EmitInteger, MVT::i1, 0, 
    6448             : /* 13880*/            OPC_EmitInteger, MVT::i32, 0, 
    6449             : /* 13883*/            OPC_EmitInteger, MVT::i32, 0, 
    6450             : /* 13886*/            OPC_EmitInteger, MVT::i32, 0, 
    6451             : /* 13889*/            OPC_EmitInteger, MVT::i32, 0, 
    6452             : /* 13892*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6453             :                           MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6454             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6455             :                       // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6456             : /* 13909*/          /*Scope*/ 87, /*->13997*/
    6457             : /* 13910*/            OPC_CheckChild0Same, 1,
    6458             : /* 13912*/            OPC_MoveChild1,
    6459             : /* 13913*/            OPC_CheckValueType, MVT::i16,
    6460             : /* 13915*/            OPC_MoveParent,
    6461             : /* 13916*/            OPC_MoveParent,
    6462             : /* 13917*/            OPC_MoveChild1,
    6463             : /* 13918*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6464             : /* 13921*/            OPC_CheckChild0Same, 0,
    6465             : /* 13923*/            OPC_MoveChild1,
    6466             : /* 13924*/            OPC_CheckValueType, MVT::i16,
    6467             : /* 13926*/            OPC_MoveParent,
    6468             : /* 13927*/            OPC_MoveParent,
    6469             : /* 13928*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6470             : /* 13930*/            OPC_MoveParent,
    6471             : /* 13931*/            OPC_CheckType, MVT::i32,
    6472             : /* 13933*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6473             : /* 13935*/            OPC_EmitInteger, MVT::i32, 8, 
    6474             : /* 13938*/            OPC_EmitInteger, MVT::i32, 8, 
    6475             : /* 13941*/            OPC_EmitInteger, MVT::i32, 8, 
    6476             : /* 13944*/            OPC_EmitInteger, MVT::i1, 0, 
    6477             : /* 13947*/            OPC_EmitInteger, MVT::i32, 0, 
    6478             : /* 13950*/            OPC_EmitInteger, MVT::i32, 0, 
    6479             : /* 13953*/            OPC_EmitInteger, MVT::i32, 0, 
    6480             : /* 13956*/            OPC_EmitInteger, MVT::i32, 0, 
    6481             : /* 13959*/            OPC_Scope, 17, /*->13978*/ // 2 children in Scope
    6482             : /* 13961*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6483             :                             MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6484             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6485             :                         // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6486             : /* 13978*/            /*Scope*/ 17, /*->13996*/
    6487             : /* 13979*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6488             :                             MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6489             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6490             :                         // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6491             : /* 13996*/            0, /*End of Scope*/
    6492             : /* 13997*/          /*Scope*/ 66, /*->14064*/
    6493             : /* 13998*/            OPC_CheckChild0Same, 0,
    6494             : /* 14000*/            OPC_MoveChild1,
    6495             : /* 14001*/            OPC_CheckValueType, MVT::i16,
    6496             : /* 14003*/            OPC_MoveParent,
    6497             : /* 14004*/            OPC_MoveParent,
    6498             : /* 14005*/            OPC_MoveChild1,
    6499             : /* 14006*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6500             : /* 14009*/            OPC_CheckChild0Same, 1,
    6501             : /* 14011*/            OPC_MoveChild1,
    6502             : /* 14012*/            OPC_CheckValueType, MVT::i16,
    6503             : /* 14014*/            OPC_MoveParent,
    6504             : /* 14015*/            OPC_MoveParent,
    6505             : /* 14016*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6506             : /* 14018*/            OPC_MoveParent,
    6507             : /* 14019*/            OPC_CheckType, MVT::i32,
    6508             : /* 14021*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6509             : /* 14023*/            OPC_EmitInteger, MVT::i32, 8, 
    6510             : /* 14026*/            OPC_EmitInteger, MVT::i32, 8, 
    6511             : /* 14029*/            OPC_EmitInteger, MVT::i32, 8, 
    6512             : /* 14032*/            OPC_EmitInteger, MVT::i1, 0, 
    6513             : /* 14035*/            OPC_EmitInteger, MVT::i32, 0, 
    6514             : /* 14038*/            OPC_EmitInteger, MVT::i32, 0, 
    6515             : /* 14041*/            OPC_EmitInteger, MVT::i32, 0, 
    6516             : /* 14044*/            OPC_EmitInteger, MVT::i32, 0, 
    6517             : /* 14047*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6518             :                           MVT::i32, 11/*#Ops*/, 3, 1, 4, 0, 5, 2, 6, 7, 8, 9, 10, 
    6519             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>, i32:{ *:[i32] }:$src2)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6520             :                       // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6521             : /* 14064*/          0, /*End of Scope*/
    6522             : /* 14065*/        /*Scope*/ 7|128,2/*263*/, /*->14330*/
    6523             : /* 14067*/          OPC_RecordChild0, // #0 = $src2
    6524             : /* 14068*/          OPC_MoveChild1,
    6525             : /* 14069*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
    6526             : /* 14072*/          OPC_MoveChild0,
    6527             : /* 14073*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
    6528             : /* 14076*/          OPC_RecordChild0, // #1 = $src0
    6529             : /* 14077*/          OPC_CheckChild1Integer, 16, 
    6530             : /* 14079*/          OPC_CheckChild1Type, MVT::i32,
    6531             : /* 14081*/          OPC_MoveParent,
    6532             : /* 14082*/          OPC_MoveChild1,
    6533             : /* 14083*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
    6534             : /* 14086*/          OPC_RecordChild0, // #2 = $src1
    6535             : /* 14087*/          OPC_CheckChild1Integer, 16, 
    6536             : /* 14089*/          OPC_CheckChild1Type, MVT::i32,
    6537             : /* 14091*/          OPC_MoveParent,
    6538             : /* 14092*/          OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6539             : /* 14094*/          OPC_MoveParent,
    6540             : /* 14095*/          OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6541             : /* 14097*/          OPC_MoveParent,
    6542             : /* 14098*/          OPC_MoveChild1,
    6543             : /* 14099*/          OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_I24),
    6544             : /* 14102*/          OPC_MoveChild0,
    6545             : /* 14103*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6546             : /* 14106*/          OPC_Scope, 66, /*->14174*/ // 3 children in Scope
    6547             : /* 14108*/            OPC_CheckChild0Same, 1,
    6548             : /* 14110*/            OPC_MoveChild1,
    6549             : /* 14111*/            OPC_CheckValueType, MVT::i16,
    6550             : /* 14113*/            OPC_MoveParent,
    6551             : /* 14114*/            OPC_MoveParent,
    6552             : /* 14115*/            OPC_MoveChild1,
    6553             : /* 14116*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6554             : /* 14119*/            OPC_CheckChild0Same, 2,
    6555             : /* 14121*/            OPC_MoveChild1,
    6556             : /* 14122*/            OPC_CheckValueType, MVT::i16,
    6557             : /* 14124*/            OPC_MoveParent,
    6558             : /* 14125*/            OPC_MoveParent,
    6559             : /* 14126*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6560             : /* 14128*/            OPC_MoveParent,
    6561             : /* 14129*/            OPC_CheckType, MVT::i32,
    6562             : /* 14131*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6563             : /* 14133*/            OPC_EmitInteger, MVT::i32, 8, 
    6564             : /* 14136*/            OPC_EmitInteger, MVT::i32, 8, 
    6565             : /* 14139*/            OPC_EmitInteger, MVT::i32, 8, 
    6566             : /* 14142*/            OPC_EmitInteger, MVT::i1, 0, 
    6567             : /* 14145*/            OPC_EmitInteger, MVT::i32, 0, 
    6568             : /* 14148*/            OPC_EmitInteger, MVT::i32, 0, 
    6569             : /* 14151*/            OPC_EmitInteger, MVT::i32, 0, 
    6570             : /* 14154*/            OPC_EmitInteger, MVT::i32, 0, 
    6571             : /* 14157*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6572             :                           MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
    6573             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6574             :                       // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6575             : /* 14174*/          /*Scope*/ 87, /*->14262*/
    6576             : /* 14175*/            OPC_CheckChild0Same, 2,
    6577             : /* 14177*/            OPC_MoveChild1,
    6578             : /* 14178*/            OPC_CheckValueType, MVT::i16,
    6579             : /* 14180*/            OPC_MoveParent,
    6580             : /* 14181*/            OPC_MoveParent,
    6581             : /* 14182*/            OPC_MoveChild1,
    6582             : /* 14183*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6583             : /* 14186*/            OPC_CheckChild0Same, 1,
    6584             : /* 14188*/            OPC_MoveChild1,
    6585             : /* 14189*/            OPC_CheckValueType, MVT::i16,
    6586             : /* 14191*/            OPC_MoveParent,
    6587             : /* 14192*/            OPC_MoveParent,
    6588             : /* 14193*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6589             : /* 14195*/            OPC_MoveParent,
    6590             : /* 14196*/            OPC_CheckType, MVT::i32,
    6591             : /* 14198*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6592             : /* 14200*/            OPC_EmitInteger, MVT::i32, 8, 
    6593             : /* 14203*/            OPC_EmitInteger, MVT::i32, 8, 
    6594             : /* 14206*/            OPC_EmitInteger, MVT::i32, 8, 
    6595             : /* 14209*/            OPC_EmitInteger, MVT::i1, 0, 
    6596             : /* 14212*/            OPC_EmitInteger, MVT::i32, 0, 
    6597             : /* 14215*/            OPC_EmitInteger, MVT::i32, 0, 
    6598             : /* 14218*/            OPC_EmitInteger, MVT::i32, 0, 
    6599             : /* 14221*/            OPC_EmitInteger, MVT::i32, 0, 
    6600             : /* 14224*/            OPC_Scope, 17, /*->14243*/ // 2 children in Scope
    6601             : /* 14226*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6602             :                             MVT::i32, 11/*#Ops*/, 3, 1, 4, 2, 5, 0, 6, 7, 8, 9, 10, 
    6603             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6604             :                         // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6605             : /* 14243*/            /*Scope*/ 17, /*->14261*/
    6606             : /* 14244*/              OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6607             :                             MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    6608             :                         // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6609             :                         // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6610             : /* 14261*/            0, /*End of Scope*/
    6611             : /* 14262*/          /*Scope*/ 66, /*->14329*/
    6612             : /* 14263*/            OPC_CheckChild0Same, 1,
    6613             : /* 14265*/            OPC_MoveChild1,
    6614             : /* 14266*/            OPC_CheckValueType, MVT::i16,
    6615             : /* 14268*/            OPC_MoveParent,
    6616             : /* 14269*/            OPC_MoveParent,
    6617             : /* 14270*/            OPC_MoveChild1,
    6618             : /* 14271*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
    6619             : /* 14274*/            OPC_CheckChild0Same, 2,
    6620             : /* 14276*/            OPC_MoveChild1,
    6621             : /* 14277*/            OPC_CheckValueType, MVT::i16,
    6622             : /* 14279*/            OPC_MoveParent,
    6623             : /* 14280*/            OPC_MoveParent,
    6624             : /* 14281*/            OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_i24_oneuse
    6625             : /* 14283*/            OPC_MoveParent,
    6626             : /* 14284*/            OPC_CheckType, MVT::i32,
    6627             : /* 14286*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6628             : /* 14288*/            OPC_EmitInteger, MVT::i32, 8, 
    6629             : /* 14291*/            OPC_EmitInteger, MVT::i32, 8, 
    6630             : /* 14294*/            OPC_EmitInteger, MVT::i32, 8, 
    6631             : /* 14297*/            OPC_EmitInteger, MVT::i1, 0, 
    6632             : /* 14300*/            OPC_EmitInteger, MVT::i32, 0, 
    6633             : /* 14303*/            OPC_EmitInteger, MVT::i32, 0, 
    6634             : /* 14306*/            OPC_EmitInteger, MVT::i32, 0, 
    6635             : /* 14309*/            OPC_EmitInteger, MVT::i32, 0, 
    6636             : /* 14312*/            OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT2_I32_I16), 0,
    6637             :                           MVT::i32, 11/*#Ops*/, 3, 2, 4, 1, 5, 0, 6, 7, 8, 9, 10, 
    6638             :                       // Src: (add:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$src2, (AMDGPUmul_i24:{ *:[i32] } (sra:{ *:[i32] } i32:{ *:[i32] }:$src1, 16:{ *:[i32] }), (sra:{ *:[i32] } i32:{ *:[i32] }:$src0, 16:{ *:[i32] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>)<<P:Predicate_add_oneuse>>, (AMDGPUmul_i24:{ *:[i32] } (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src1, i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$src0, i16:{ *:[Other] }))<<P:Predicate_AMDGPUmul_i24_oneuse>>) - Complexity = 37
    6639             :                       // Dst: (V_DOT2_I32_I16:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6640             : /* 14329*/          0, /*End of Scope*/
    6641             : /* 14330*/        0, /*End of Scope*/
    6642             : /* 14331*/      /*SwitchOpcode*/ 37|128,106/*13605*/, TARGET_VAL(AMDGPUISD::MUL_U24),// ->27940
    6643             : /* 14335*/        OPC_MoveChild0,
    6644             : /* 14336*/        OPC_Scope, 34|128,101/*12962*/, /*->27301*/ // 2 children in Scope
    6645             : /* 14339*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6646             : /* 14342*/          OPC_RecordChild0, // #0 = $src0
    6647             : /* 14343*/          OPC_CheckChild1Integer, 24, 
    6648             : /* 14345*/          OPC_CheckChild1Type, MVT::i32,
    6649             : /* 14347*/          OPC_MoveParent,
    6650             : /* 14348*/          OPC_MoveChild1,
    6651             : /* 14349*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6652             : /* 14352*/          OPC_RecordChild0, // #1 = $src1
    6653             : /* 14353*/          OPC_CheckChild1Integer, 24, 
    6654             : /* 14355*/          OPC_CheckChild1Type, MVT::i32,
    6655             : /* 14357*/          OPC_MoveParent,
    6656             : /* 14358*/          OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6657             : /* 14360*/          OPC_MoveParent,
    6658             : /* 14361*/          OPC_MoveChild1,
    6659             : /* 14362*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
    6660             : /* 14365*/          OPC_MoveChild0,
    6661             : /* 14366*/          OPC_SwitchOpcode /*2 cases */, 50|128,53/*6834*/, TARGET_VAL(ISD::ADD),// ->21205
    6662             : /* 14371*/            OPC_MoveChild0,
    6663             : /* 14372*/            OPC_SwitchOpcode /*2 cases */, 88|128,27/*3544*/, TARGET_VAL(ISD::ADD),// ->17921
    6664             : /* 14377*/              OPC_Scope, 115|128,6/*883*/, /*->15263*/ // 4 children in Scope
    6665             : /* 14380*/                OPC_RecordChild0, // #2 = $src2
    6666             : /* 14381*/                OPC_MoveChild1,
    6667             : /* 14382*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6668             : /* 14385*/                OPC_MoveChild0,
    6669             : /* 14386*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    6670             : /* 14389*/                OPC_Scope, 50|128,3/*434*/, /*->14826*/ // 2 children in Scope
    6671             : /* 14392*/                  OPC_CheckChild0Same, 0,
    6672             : /* 14394*/                  OPC_MoveParent,
    6673             : /* 14395*/                  OPC_MoveChild1,
    6674             : /* 14396*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    6675             : /* 14399*/                  OPC_CheckChild0Same, 1,
    6676             : /* 14401*/                  OPC_MoveParent,
    6677             : /* 14402*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6678             : /* 14404*/                  OPC_MoveParent,
    6679             : /* 14405*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6680             : /* 14407*/                  OPC_MoveParent,
    6681             : /* 14408*/                  OPC_MoveChild1,
    6682             : /* 14409*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6683             : /* 14412*/                  OPC_MoveChild0,
    6684             : /* 14413*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    6685             : /* 14416*/                  OPC_MoveChild0,
    6686             : /* 14417*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6687             : /* 14420*/                  OPC_Scope, 72|128,1/*200*/, /*->14623*/ // 2 children in Scope
    6688             : /* 14423*/                    OPC_CheckChild0Same, 0,
    6689             : /* 14425*/                    OPC_CheckChild1Integer, 8, 
    6690             : /* 14427*/                    OPC_CheckChild1Type, MVT::i32,
    6691             : /* 14429*/                    OPC_MoveParent,
    6692             : /* 14430*/                    OPC_MoveParent,
    6693             : /* 14431*/                    OPC_MoveChild1,
    6694             : /* 14432*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6695             : /* 14435*/                    OPC_MoveChild0,
    6696             : /* 14436*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6697             : /* 14439*/                    OPC_CheckChild0Same, 1,
    6698             : /* 14441*/                    OPC_CheckChild1Integer, 8, 
    6699             : /* 14443*/                    OPC_CheckChild1Type, MVT::i32,
    6700             : /* 14445*/                    OPC_MoveParent,
    6701             : /* 14446*/                    OPC_MoveParent,
    6702             : /* 14447*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6703             : /* 14449*/                    OPC_MoveParent,
    6704             : /* 14450*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6705             : /* 14452*/                    OPC_MoveParent,
    6706             : /* 14453*/                    OPC_MoveChild1,
    6707             : /* 14454*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6708             : /* 14457*/                    OPC_MoveChild0,
    6709             : /* 14458*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6710             : /* 14461*/                    OPC_MoveChild0,
    6711             : /* 14462*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6712             : /* 14465*/                    OPC_Scope, 77, /*->14544*/ // 2 children in Scope
    6713             : /* 14467*/                      OPC_CheckChild0Same, 0,
    6714             : /* 14469*/                      OPC_CheckChild1Integer, 16, 
    6715             : /* 14471*/                      OPC_CheckChild1Type, MVT::i32,
    6716             : /* 14473*/                      OPC_MoveParent,
    6717             : /* 14474*/                      OPC_MoveParent,
    6718             : /* 14475*/                      OPC_MoveChild1,
    6719             : /* 14476*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6720             : /* 14479*/                      OPC_MoveChild0,
    6721             : /* 14480*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6722             : /* 14483*/                      OPC_CheckChild0Same, 1,
    6723             : /* 14485*/                      OPC_CheckChild1Integer, 16, 
    6724             : /* 14487*/                      OPC_CheckChild1Type, MVT::i32,
    6725             : /* 14489*/                      OPC_MoveParent,
    6726             : /* 14490*/                      OPC_MoveParent,
    6727             : /* 14491*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6728             : /* 14493*/                      OPC_MoveParent,
    6729             : /* 14494*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6730             : /* 14496*/                      OPC_MoveParent,
    6731             : /* 14497*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6732             : /* 14499*/                      OPC_CheckType, MVT::i32,
    6733             : /* 14501*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6734             : /* 14503*/                      OPC_EmitInteger, MVT::i32, 8, 
    6735             : /* 14506*/                      OPC_EmitInteger, MVT::i32, 8, 
    6736             : /* 14509*/                      OPC_EmitInteger, MVT::i32, 8, 
    6737             : /* 14512*/                      OPC_EmitInteger, MVT::i1, 0, 
    6738             : /* 14515*/                      OPC_EmitInteger, MVT::i32, 0, 
    6739             : /* 14518*/                      OPC_EmitInteger, MVT::i32, 0, 
    6740             : /* 14521*/                      OPC_EmitInteger, MVT::i32, 0, 
    6741             : /* 14524*/                      OPC_EmitInteger, MVT::i32, 0, 
    6742             : /* 14527*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6743             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6744             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6745             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6746             : /* 14544*/                    /*Scope*/ 77, /*->14622*/
    6747             : /* 14545*/                      OPC_CheckChild0Same, 1,
    6748             : /* 14547*/                      OPC_CheckChild1Integer, 16, 
    6749             : /* 14549*/                      OPC_CheckChild1Type, MVT::i32,
    6750             : /* 14551*/                      OPC_MoveParent,
    6751             : /* 14552*/                      OPC_MoveParent,
    6752             : /* 14553*/                      OPC_MoveChild1,
    6753             : /* 14554*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6754             : /* 14557*/                      OPC_MoveChild0,
    6755             : /* 14558*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6756             : /* 14561*/                      OPC_CheckChild0Same, 0,
    6757             : /* 14563*/                      OPC_CheckChild1Integer, 16, 
    6758             : /* 14565*/                      OPC_CheckChild1Type, MVT::i32,
    6759             : /* 14567*/                      OPC_MoveParent,
    6760             : /* 14568*/                      OPC_MoveParent,
    6761             : /* 14569*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6762             : /* 14571*/                      OPC_MoveParent,
    6763             : /* 14572*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6764             : /* 14574*/                      OPC_MoveParent,
    6765             : /* 14575*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6766             : /* 14577*/                      OPC_CheckType, MVT::i32,
    6767             : /* 14579*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6768             : /* 14581*/                      OPC_EmitInteger, MVT::i32, 8, 
    6769             : /* 14584*/                      OPC_EmitInteger, MVT::i32, 8, 
    6770             : /* 14587*/                      OPC_EmitInteger, MVT::i32, 8, 
    6771             : /* 14590*/                      OPC_EmitInteger, MVT::i1, 0, 
    6772             : /* 14593*/                      OPC_EmitInteger, MVT::i32, 0, 
    6773             : /* 14596*/                      OPC_EmitInteger, MVT::i32, 0, 
    6774             : /* 14599*/                      OPC_EmitInteger, MVT::i32, 0, 
    6775             : /* 14602*/                      OPC_EmitInteger, MVT::i32, 0, 
    6776             : /* 14605*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6777             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6778             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6779             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6780             : /* 14622*/                    0, /*End of Scope*/
    6781             : /* 14623*/                  /*Scope*/ 72|128,1/*200*/, /*->14825*/
    6782             : /* 14625*/                    OPC_CheckChild0Same, 1,
    6783             : /* 14627*/                    OPC_CheckChild1Integer, 8, 
    6784             : /* 14629*/                    OPC_CheckChild1Type, MVT::i32,
    6785             : /* 14631*/                    OPC_MoveParent,
    6786             : /* 14632*/                    OPC_MoveParent,
    6787             : /* 14633*/                    OPC_MoveChild1,
    6788             : /* 14634*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6789             : /* 14637*/                    OPC_MoveChild0,
    6790             : /* 14638*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6791             : /* 14641*/                    OPC_CheckChild0Same, 0,
    6792             : /* 14643*/                    OPC_CheckChild1Integer, 8, 
    6793             : /* 14645*/                    OPC_CheckChild1Type, MVT::i32,
    6794             : /* 14647*/                    OPC_MoveParent,
    6795             : /* 14648*/                    OPC_MoveParent,
    6796             : /* 14649*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6797             : /* 14651*/                    OPC_MoveParent,
    6798             : /* 14652*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6799             : /* 14654*/                    OPC_MoveParent,
    6800             : /* 14655*/                    OPC_MoveChild1,
    6801             : /* 14656*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6802             : /* 14659*/                    OPC_MoveChild0,
    6803             : /* 14660*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6804             : /* 14663*/                    OPC_MoveChild0,
    6805             : /* 14664*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6806             : /* 14667*/                    OPC_Scope, 77, /*->14746*/ // 2 children in Scope
    6807             : /* 14669*/                      OPC_CheckChild0Same, 0,
    6808             : /* 14671*/                      OPC_CheckChild1Integer, 16, 
    6809             : /* 14673*/                      OPC_CheckChild1Type, MVT::i32,
    6810             : /* 14675*/                      OPC_MoveParent,
    6811             : /* 14676*/                      OPC_MoveParent,
    6812             : /* 14677*/                      OPC_MoveChild1,
    6813             : /* 14678*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6814             : /* 14681*/                      OPC_MoveChild0,
    6815             : /* 14682*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6816             : /* 14685*/                      OPC_CheckChild0Same, 1,
    6817             : /* 14687*/                      OPC_CheckChild1Integer, 16, 
    6818             : /* 14689*/                      OPC_CheckChild1Type, MVT::i32,
    6819             : /* 14691*/                      OPC_MoveParent,
    6820             : /* 14692*/                      OPC_MoveParent,
    6821             : /* 14693*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6822             : /* 14695*/                      OPC_MoveParent,
    6823             : /* 14696*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6824             : /* 14698*/                      OPC_MoveParent,
    6825             : /* 14699*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6826             : /* 14701*/                      OPC_CheckType, MVT::i32,
    6827             : /* 14703*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6828             : /* 14705*/                      OPC_EmitInteger, MVT::i32, 8, 
    6829             : /* 14708*/                      OPC_EmitInteger, MVT::i32, 8, 
    6830             : /* 14711*/                      OPC_EmitInteger, MVT::i32, 8, 
    6831             : /* 14714*/                      OPC_EmitInteger, MVT::i1, 0, 
    6832             : /* 14717*/                      OPC_EmitInteger, MVT::i32, 0, 
    6833             : /* 14720*/                      OPC_EmitInteger, MVT::i32, 0, 
    6834             : /* 14723*/                      OPC_EmitInteger, MVT::i32, 0, 
    6835             : /* 14726*/                      OPC_EmitInteger, MVT::i32, 0, 
    6836             : /* 14729*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6837             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6838             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6839             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6840             : /* 14746*/                    /*Scope*/ 77, /*->14824*/
    6841             : /* 14747*/                      OPC_CheckChild0Same, 1,
    6842             : /* 14749*/                      OPC_CheckChild1Integer, 16, 
    6843             : /* 14751*/                      OPC_CheckChild1Type, MVT::i32,
    6844             : /* 14753*/                      OPC_MoveParent,
    6845             : /* 14754*/                      OPC_MoveParent,
    6846             : /* 14755*/                      OPC_MoveChild1,
    6847             : /* 14756*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6848             : /* 14759*/                      OPC_MoveChild0,
    6849             : /* 14760*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6850             : /* 14763*/                      OPC_CheckChild0Same, 0,
    6851             : /* 14765*/                      OPC_CheckChild1Integer, 16, 
    6852             : /* 14767*/                      OPC_CheckChild1Type, MVT::i32,
    6853             : /* 14769*/                      OPC_MoveParent,
    6854             : /* 14770*/                      OPC_MoveParent,
    6855             : /* 14771*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6856             : /* 14773*/                      OPC_MoveParent,
    6857             : /* 14774*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6858             : /* 14776*/                      OPC_MoveParent,
    6859             : /* 14777*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6860             : /* 14779*/                      OPC_CheckType, MVT::i32,
    6861             : /* 14781*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6862             : /* 14783*/                      OPC_EmitInteger, MVT::i32, 8, 
    6863             : /* 14786*/                      OPC_EmitInteger, MVT::i32, 8, 
    6864             : /* 14789*/                      OPC_EmitInteger, MVT::i32, 8, 
    6865             : /* 14792*/                      OPC_EmitInteger, MVT::i1, 0, 
    6866             : /* 14795*/                      OPC_EmitInteger, MVT::i32, 0, 
    6867             : /* 14798*/                      OPC_EmitInteger, MVT::i32, 0, 
    6868             : /* 14801*/                      OPC_EmitInteger, MVT::i32, 0, 
    6869             : /* 14804*/                      OPC_EmitInteger, MVT::i32, 0, 
    6870             : /* 14807*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6871             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6872             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6873             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6874             : /* 14824*/                    0, /*End of Scope*/
    6875             : /* 14825*/                  0, /*End of Scope*/
    6876             : /* 14826*/                /*Scope*/ 50|128,3/*434*/, /*->15262*/
    6877             : /* 14828*/                  OPC_CheckChild0Same, 1,
    6878             : /* 14830*/                  OPC_MoveParent,
    6879             : /* 14831*/                  OPC_MoveChild1,
    6880             : /* 14832*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    6881             : /* 14835*/                  OPC_CheckChild0Same, 0,
    6882             : /* 14837*/                  OPC_MoveParent,
    6883             : /* 14838*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6884             : /* 14840*/                  OPC_MoveParent,
    6885             : /* 14841*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6886             : /* 14843*/                  OPC_MoveParent,
    6887             : /* 14844*/                  OPC_MoveChild1,
    6888             : /* 14845*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6889             : /* 14848*/                  OPC_MoveChild0,
    6890             : /* 14849*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    6891             : /* 14852*/                  OPC_MoveChild0,
    6892             : /* 14853*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6893             : /* 14856*/                  OPC_Scope, 72|128,1/*200*/, /*->15059*/ // 2 children in Scope
    6894             : /* 14859*/                    OPC_CheckChild0Same, 0,
    6895             : /* 14861*/                    OPC_CheckChild1Integer, 8, 
    6896             : /* 14863*/                    OPC_CheckChild1Type, MVT::i32,
    6897             : /* 14865*/                    OPC_MoveParent,
    6898             : /* 14866*/                    OPC_MoveParent,
    6899             : /* 14867*/                    OPC_MoveChild1,
    6900             : /* 14868*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6901             : /* 14871*/                    OPC_MoveChild0,
    6902             : /* 14872*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6903             : /* 14875*/                    OPC_CheckChild0Same, 1,
    6904             : /* 14877*/                    OPC_CheckChild1Integer, 8, 
    6905             : /* 14879*/                    OPC_CheckChild1Type, MVT::i32,
    6906             : /* 14881*/                    OPC_MoveParent,
    6907             : /* 14882*/                    OPC_MoveParent,
    6908             : /* 14883*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6909             : /* 14885*/                    OPC_MoveParent,
    6910             : /* 14886*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6911             : /* 14888*/                    OPC_MoveParent,
    6912             : /* 14889*/                    OPC_MoveChild1,
    6913             : /* 14890*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    6914             : /* 14893*/                    OPC_MoveChild0,
    6915             : /* 14894*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6916             : /* 14897*/                    OPC_MoveChild0,
    6917             : /* 14898*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6918             : /* 14901*/                    OPC_Scope, 77, /*->14980*/ // 2 children in Scope
    6919             : /* 14903*/                      OPC_CheckChild0Same, 0,
    6920             : /* 14905*/                      OPC_CheckChild1Integer, 16, 
    6921             : /* 14907*/                      OPC_CheckChild1Type, MVT::i32,
    6922             : /* 14909*/                      OPC_MoveParent,
    6923             : /* 14910*/                      OPC_MoveParent,
    6924             : /* 14911*/                      OPC_MoveChild1,
    6925             : /* 14912*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6926             : /* 14915*/                      OPC_MoveChild0,
    6927             : /* 14916*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6928             : /* 14919*/                      OPC_CheckChild0Same, 1,
    6929             : /* 14921*/                      OPC_CheckChild1Integer, 16, 
    6930             : /* 14923*/                      OPC_CheckChild1Type, MVT::i32,
    6931             : /* 14925*/                      OPC_MoveParent,
    6932             : /* 14926*/                      OPC_MoveParent,
    6933             : /* 14927*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6934             : /* 14929*/                      OPC_MoveParent,
    6935             : /* 14930*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6936             : /* 14932*/                      OPC_MoveParent,
    6937             : /* 14933*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6938             : /* 14935*/                      OPC_CheckType, MVT::i32,
    6939             : /* 14937*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6940             : /* 14939*/                      OPC_EmitInteger, MVT::i32, 8, 
    6941             : /* 14942*/                      OPC_EmitInteger, MVT::i32, 8, 
    6942             : /* 14945*/                      OPC_EmitInteger, MVT::i32, 8, 
    6943             : /* 14948*/                      OPC_EmitInteger, MVT::i1, 0, 
    6944             : /* 14951*/                      OPC_EmitInteger, MVT::i32, 0, 
    6945             : /* 14954*/                      OPC_EmitInteger, MVT::i32, 0, 
    6946             : /* 14957*/                      OPC_EmitInteger, MVT::i32, 0, 
    6947             : /* 14960*/                      OPC_EmitInteger, MVT::i32, 0, 
    6948             : /* 14963*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6949             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6950             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6951             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6952             : /* 14980*/                    /*Scope*/ 77, /*->15058*/
    6953             : /* 14981*/                      OPC_CheckChild0Same, 1,
    6954             : /* 14983*/                      OPC_CheckChild1Integer, 16, 
    6955             : /* 14985*/                      OPC_CheckChild1Type, MVT::i32,
    6956             : /* 14987*/                      OPC_MoveParent,
    6957             : /* 14988*/                      OPC_MoveParent,
    6958             : /* 14989*/                      OPC_MoveChild1,
    6959             : /* 14990*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    6960             : /* 14993*/                      OPC_MoveChild0,
    6961             : /* 14994*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6962             : /* 14997*/                      OPC_CheckChild0Same, 0,
    6963             : /* 14999*/                      OPC_CheckChild1Integer, 16, 
    6964             : /* 15001*/                      OPC_CheckChild1Type, MVT::i32,
    6965             : /* 15003*/                      OPC_MoveParent,
    6966             : /* 15004*/                      OPC_MoveParent,
    6967             : /* 15005*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    6968             : /* 15007*/                      OPC_MoveParent,
    6969             : /* 15008*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6970             : /* 15010*/                      OPC_MoveParent,
    6971             : /* 15011*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    6972             : /* 15013*/                      OPC_CheckType, MVT::i32,
    6973             : /* 15015*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    6974             : /* 15017*/                      OPC_EmitInteger, MVT::i32, 8, 
    6975             : /* 15020*/                      OPC_EmitInteger, MVT::i32, 8, 
    6976             : /* 15023*/                      OPC_EmitInteger, MVT::i32, 8, 
    6977             : /* 15026*/                      OPC_EmitInteger, MVT::i1, 0, 
    6978             : /* 15029*/                      OPC_EmitInteger, MVT::i32, 0, 
    6979             : /* 15032*/                      OPC_EmitInteger, MVT::i32, 0, 
    6980             : /* 15035*/                      OPC_EmitInteger, MVT::i32, 0, 
    6981             : /* 15038*/                      OPC_EmitInteger, MVT::i32, 0, 
    6982             : /* 15041*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    6983             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    6984             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    6985             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    6986             : /* 15058*/                    0, /*End of Scope*/
    6987             : /* 15059*/                  /*Scope*/ 72|128,1/*200*/, /*->15261*/
    6988             : /* 15061*/                    OPC_CheckChild0Same, 1,
    6989             : /* 15063*/                    OPC_CheckChild1Integer, 8, 
    6990             : /* 15065*/                    OPC_CheckChild1Type, MVT::i32,
    6991             : /* 15067*/                    OPC_MoveParent,
    6992             : /* 15068*/                    OPC_MoveParent,
    6993             : /* 15069*/                    OPC_MoveChild1,
    6994             : /* 15070*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    6995             : /* 15073*/                    OPC_MoveChild0,
    6996             : /* 15074*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    6997             : /* 15077*/                    OPC_CheckChild0Same, 0,
    6998             : /* 15079*/                    OPC_CheckChild1Integer, 8, 
    6999             : /* 15081*/                    OPC_CheckChild1Type, MVT::i32,
    7000             : /* 15083*/                    OPC_MoveParent,
    7001             : /* 15084*/                    OPC_MoveParent,
    7002             : /* 15085*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7003             : /* 15087*/                    OPC_MoveParent,
    7004             : /* 15088*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7005             : /* 15090*/                    OPC_MoveParent,
    7006             : /* 15091*/                    OPC_MoveChild1,
    7007             : /* 15092*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7008             : /* 15095*/                    OPC_MoveChild0,
    7009             : /* 15096*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7010             : /* 15099*/                    OPC_MoveChild0,
    7011             : /* 15100*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7012             : /* 15103*/                    OPC_Scope, 77, /*->15182*/ // 2 children in Scope
    7013             : /* 15105*/                      OPC_CheckChild0Same, 0,
    7014             : /* 15107*/                      OPC_CheckChild1Integer, 16, 
    7015             : /* 15109*/                      OPC_CheckChild1Type, MVT::i32,
    7016             : /* 15111*/                      OPC_MoveParent,
    7017             : /* 15112*/                      OPC_MoveParent,
    7018             : /* 15113*/                      OPC_MoveChild1,
    7019             : /* 15114*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7020             : /* 15117*/                      OPC_MoveChild0,
    7021             : /* 15118*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7022             : /* 15121*/                      OPC_CheckChild0Same, 1,
    7023             : /* 15123*/                      OPC_CheckChild1Integer, 16, 
    7024             : /* 15125*/                      OPC_CheckChild1Type, MVT::i32,
    7025             : /* 15127*/                      OPC_MoveParent,
    7026             : /* 15128*/                      OPC_MoveParent,
    7027             : /* 15129*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7028             : /* 15131*/                      OPC_MoveParent,
    7029             : /* 15132*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7030             : /* 15134*/                      OPC_MoveParent,
    7031             : /* 15135*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7032             : /* 15137*/                      OPC_CheckType, MVT::i32,
    7033             : /* 15139*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7034             : /* 15141*/                      OPC_EmitInteger, MVT::i32, 8, 
    7035             : /* 15144*/                      OPC_EmitInteger, MVT::i32, 8, 
    7036             : /* 15147*/                      OPC_EmitInteger, MVT::i32, 8, 
    7037             : /* 15150*/                      OPC_EmitInteger, MVT::i1, 0, 
    7038             : /* 15153*/                      OPC_EmitInteger, MVT::i32, 0, 
    7039             : /* 15156*/                      OPC_EmitInteger, MVT::i32, 0, 
    7040             : /* 15159*/                      OPC_EmitInteger, MVT::i32, 0, 
    7041             : /* 15162*/                      OPC_EmitInteger, MVT::i32, 0, 
    7042             : /* 15165*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7043             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7044             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7045             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7046             : /* 15182*/                    /*Scope*/ 77, /*->15260*/
    7047             : /* 15183*/                      OPC_CheckChild0Same, 1,
    7048             : /* 15185*/                      OPC_CheckChild1Integer, 16, 
    7049             : /* 15187*/                      OPC_CheckChild1Type, MVT::i32,
    7050             : /* 15189*/                      OPC_MoveParent,
    7051             : /* 15190*/                      OPC_MoveParent,
    7052             : /* 15191*/                      OPC_MoveChild1,
    7053             : /* 15192*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7054             : /* 15195*/                      OPC_MoveChild0,
    7055             : /* 15196*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7056             : /* 15199*/                      OPC_CheckChild0Same, 0,
    7057             : /* 15201*/                      OPC_CheckChild1Integer, 16, 
    7058             : /* 15203*/                      OPC_CheckChild1Type, MVT::i32,
    7059             : /* 15205*/                      OPC_MoveParent,
    7060             : /* 15206*/                      OPC_MoveParent,
    7061             : /* 15207*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7062             : /* 15209*/                      OPC_MoveParent,
    7063             : /* 15210*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7064             : /* 15212*/                      OPC_MoveParent,
    7065             : /* 15213*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7066             : /* 15215*/                      OPC_CheckType, MVT::i32,
    7067             : /* 15217*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7068             : /* 15219*/                      OPC_EmitInteger, MVT::i32, 8, 
    7069             : /* 15222*/                      OPC_EmitInteger, MVT::i32, 8, 
    7070             : /* 15225*/                      OPC_EmitInteger, MVT::i32, 8, 
    7071             : /* 15228*/                      OPC_EmitInteger, MVT::i1, 0, 
    7072             : /* 15231*/                      OPC_EmitInteger, MVT::i32, 0, 
    7073             : /* 15234*/                      OPC_EmitInteger, MVT::i32, 0, 
    7074             : /* 15237*/                      OPC_EmitInteger, MVT::i32, 0, 
    7075             : /* 15240*/                      OPC_EmitInteger, MVT::i32, 0, 
    7076             : /* 15243*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7077             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7078             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7079             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7080             : /* 15260*/                    0, /*End of Scope*/
    7081             : /* 15261*/                  0, /*End of Scope*/
    7082             : /* 15262*/                0, /*End of Scope*/
    7083             : /* 15263*/              /*Scope*/ 116|128,6/*884*/, /*->16149*/
    7084             : /* 15265*/                OPC_MoveChild0,
    7085             : /* 15266*/                OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7086             : /* 15269*/                OPC_MoveChild0,
    7087             : /* 15270*/                OPC_CheckAndImm, 127|128,1/*255*/, 
    7088             : /* 15273*/                OPC_Scope, 51|128,3/*435*/, /*->15711*/ // 2 children in Scope
    7089             : /* 15276*/                  OPC_CheckChild0Same, 0,
    7090             : /* 15278*/                  OPC_MoveParent,
    7091             : /* 15279*/                  OPC_MoveChild1,
    7092             : /* 15280*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    7093             : /* 15283*/                  OPC_CheckChild0Same, 1,
    7094             : /* 15285*/                  OPC_MoveParent,
    7095             : /* 15286*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7096             : /* 15288*/                  OPC_MoveParent,
    7097             : /* 15289*/                  OPC_RecordChild1, // #2 = $src2
    7098             : /* 15290*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7099             : /* 15292*/                  OPC_MoveParent,
    7100             : /* 15293*/                  OPC_MoveChild1,
    7101             : /* 15294*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7102             : /* 15297*/                  OPC_MoveChild0,
    7103             : /* 15298*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    7104             : /* 15301*/                  OPC_MoveChild0,
    7105             : /* 15302*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7106             : /* 15305*/                  OPC_Scope, 72|128,1/*200*/, /*->15508*/ // 2 children in Scope
    7107             : /* 15308*/                    OPC_CheckChild0Same, 0,
    7108             : /* 15310*/                    OPC_CheckChild1Integer, 8, 
    7109             : /* 15312*/                    OPC_CheckChild1Type, MVT::i32,
    7110             : /* 15314*/                    OPC_MoveParent,
    7111             : /* 15315*/                    OPC_MoveParent,
    7112             : /* 15316*/                    OPC_MoveChild1,
    7113             : /* 15317*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7114             : /* 15320*/                    OPC_MoveChild0,
    7115             : /* 15321*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7116             : /* 15324*/                    OPC_CheckChild0Same, 1,
    7117             : /* 15326*/                    OPC_CheckChild1Integer, 8, 
    7118             : /* 15328*/                    OPC_CheckChild1Type, MVT::i32,
    7119             : /* 15330*/                    OPC_MoveParent,
    7120             : /* 15331*/                    OPC_MoveParent,
    7121             : /* 15332*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7122             : /* 15334*/                    OPC_MoveParent,
    7123             : /* 15335*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7124             : /* 15337*/                    OPC_MoveParent,
    7125             : /* 15338*/                    OPC_MoveChild1,
    7126             : /* 15339*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7127             : /* 15342*/                    OPC_MoveChild0,
    7128             : /* 15343*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7129             : /* 15346*/                    OPC_MoveChild0,
    7130             : /* 15347*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7131             : /* 15350*/                    OPC_Scope, 77, /*->15429*/ // 2 children in Scope
    7132             : /* 15352*/                      OPC_CheckChild0Same, 0,
    7133             : /* 15354*/                      OPC_CheckChild1Integer, 16, 
    7134             : /* 15356*/                      OPC_CheckChild1Type, MVT::i32,
    7135             : /* 15358*/                      OPC_MoveParent,
    7136             : /* 15359*/                      OPC_MoveParent,
    7137             : /* 15360*/                      OPC_MoveChild1,
    7138             : /* 15361*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7139             : /* 15364*/                      OPC_MoveChild0,
    7140             : /* 15365*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7141             : /* 15368*/                      OPC_CheckChild0Same, 1,
    7142             : /* 15370*/                      OPC_CheckChild1Integer, 16, 
    7143             : /* 15372*/                      OPC_CheckChild1Type, MVT::i32,
    7144             : /* 15374*/                      OPC_MoveParent,
    7145             : /* 15375*/                      OPC_MoveParent,
    7146             : /* 15376*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7147             : /* 15378*/                      OPC_MoveParent,
    7148             : /* 15379*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7149             : /* 15381*/                      OPC_MoveParent,
    7150             : /* 15382*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7151             : /* 15384*/                      OPC_CheckType, MVT::i32,
    7152             : /* 15386*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7153             : /* 15388*/                      OPC_EmitInteger, MVT::i32, 8, 
    7154             : /* 15391*/                      OPC_EmitInteger, MVT::i32, 8, 
    7155             : /* 15394*/                      OPC_EmitInteger, MVT::i32, 8, 
    7156             : /* 15397*/                      OPC_EmitInteger, MVT::i1, 0, 
    7157             : /* 15400*/                      OPC_EmitInteger, MVT::i32, 0, 
    7158             : /* 15403*/                      OPC_EmitInteger, MVT::i32, 0, 
    7159             : /* 15406*/                      OPC_EmitInteger, MVT::i32, 0, 
    7160             : /* 15409*/                      OPC_EmitInteger, MVT::i32, 0, 
    7161             : /* 15412*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7162             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7163             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7164             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7165             : /* 15429*/                    /*Scope*/ 77, /*->15507*/
    7166             : /* 15430*/                      OPC_CheckChild0Same, 1,
    7167             : /* 15432*/                      OPC_CheckChild1Integer, 16, 
    7168             : /* 15434*/                      OPC_CheckChild1Type, MVT::i32,
    7169             : /* 15436*/                      OPC_MoveParent,
    7170             : /* 15437*/                      OPC_MoveParent,
    7171             : /* 15438*/                      OPC_MoveChild1,
    7172             : /* 15439*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7173             : /* 15442*/                      OPC_MoveChild0,
    7174             : /* 15443*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7175             : /* 15446*/                      OPC_CheckChild0Same, 0,
    7176             : /* 15448*/                      OPC_CheckChild1Integer, 16, 
    7177             : /* 15450*/                      OPC_CheckChild1Type, MVT::i32,
    7178             : /* 15452*/                      OPC_MoveParent,
    7179             : /* 15453*/                      OPC_MoveParent,
    7180             : /* 15454*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7181             : /* 15456*/                      OPC_MoveParent,
    7182             : /* 15457*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7183             : /* 15459*/                      OPC_MoveParent,
    7184             : /* 15460*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7185             : /* 15462*/                      OPC_CheckType, MVT::i32,
    7186             : /* 15464*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7187             : /* 15466*/                      OPC_EmitInteger, MVT::i32, 8, 
    7188             : /* 15469*/                      OPC_EmitInteger, MVT::i32, 8, 
    7189             : /* 15472*/                      OPC_EmitInteger, MVT::i32, 8, 
    7190             : /* 15475*/                      OPC_EmitInteger, MVT::i1, 0, 
    7191             : /* 15478*/                      OPC_EmitInteger, MVT::i32, 0, 
    7192             : /* 15481*/                      OPC_EmitInteger, MVT::i32, 0, 
    7193             : /* 15484*/                      OPC_EmitInteger, MVT::i32, 0, 
    7194             : /* 15487*/                      OPC_EmitInteger, MVT::i32, 0, 
    7195             : /* 15490*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7196             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7197             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7198             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7199             : /* 15507*/                    0, /*End of Scope*/
    7200             : /* 15508*/                  /*Scope*/ 72|128,1/*200*/, /*->15710*/
    7201             : /* 15510*/                    OPC_CheckChild0Same, 1,
    7202             : /* 15512*/                    OPC_CheckChild1Integer, 8, 
    7203             : /* 15514*/                    OPC_CheckChild1Type, MVT::i32,
    7204             : /* 15516*/                    OPC_MoveParent,
    7205             : /* 15517*/                    OPC_MoveParent,
    7206             : /* 15518*/                    OPC_MoveChild1,
    7207             : /* 15519*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7208             : /* 15522*/                    OPC_MoveChild0,
    7209             : /* 15523*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7210             : /* 15526*/                    OPC_CheckChild0Same, 0,
    7211             : /* 15528*/                    OPC_CheckChild1Integer, 8, 
    7212             : /* 15530*/                    OPC_CheckChild1Type, MVT::i32,
    7213             : /* 15532*/                    OPC_MoveParent,
    7214             : /* 15533*/                    OPC_MoveParent,
    7215             : /* 15534*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7216             : /* 15536*/                    OPC_MoveParent,
    7217             : /* 15537*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7218             : /* 15539*/                    OPC_MoveParent,
    7219             : /* 15540*/                    OPC_MoveChild1,
    7220             : /* 15541*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7221             : /* 15544*/                    OPC_MoveChild0,
    7222             : /* 15545*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7223             : /* 15548*/                    OPC_MoveChild0,
    7224             : /* 15549*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7225             : /* 15552*/                    OPC_Scope, 77, /*->15631*/ // 2 children in Scope
    7226             : /* 15554*/                      OPC_CheckChild0Same, 0,
    7227             : /* 15556*/                      OPC_CheckChild1Integer, 16, 
    7228             : /* 15558*/                      OPC_CheckChild1Type, MVT::i32,
    7229             : /* 15560*/                      OPC_MoveParent,
    7230             : /* 15561*/                      OPC_MoveParent,
    7231             : /* 15562*/                      OPC_MoveChild1,
    7232             : /* 15563*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7233             : /* 15566*/                      OPC_MoveChild0,
    7234             : /* 15567*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7235             : /* 15570*/                      OPC_CheckChild0Same, 1,
    7236             : /* 15572*/                      OPC_CheckChild1Integer, 16, 
    7237             : /* 15574*/                      OPC_CheckChild1Type, MVT::i32,
    7238             : /* 15576*/                      OPC_MoveParent,
    7239             : /* 15577*/                      OPC_MoveParent,
    7240             : /* 15578*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7241             : /* 15580*/                      OPC_MoveParent,
    7242             : /* 15581*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7243             : /* 15583*/                      OPC_MoveParent,
    7244             : /* 15584*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7245             : /* 15586*/                      OPC_CheckType, MVT::i32,
    7246             : /* 15588*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7247             : /* 15590*/                      OPC_EmitInteger, MVT::i32, 8, 
    7248             : /* 15593*/                      OPC_EmitInteger, MVT::i32, 8, 
    7249             : /* 15596*/                      OPC_EmitInteger, MVT::i32, 8, 
    7250             : /* 15599*/                      OPC_EmitInteger, MVT::i1, 0, 
    7251             : /* 15602*/                      OPC_EmitInteger, MVT::i32, 0, 
    7252             : /* 15605*/                      OPC_EmitInteger, MVT::i32, 0, 
    7253             : /* 15608*/                      OPC_EmitInteger, MVT::i32, 0, 
    7254             : /* 15611*/                      OPC_EmitInteger, MVT::i32, 0, 
    7255             : /* 15614*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7256             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7257             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7258             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7259             : /* 15631*/                    /*Scope*/ 77, /*->15709*/
    7260             : /* 15632*/                      OPC_CheckChild0Same, 1,
    7261             : /* 15634*/                      OPC_CheckChild1Integer, 16, 
    7262             : /* 15636*/                      OPC_CheckChild1Type, MVT::i32,
    7263             : /* 15638*/                      OPC_MoveParent,
    7264             : /* 15639*/                      OPC_MoveParent,
    7265             : /* 15640*/                      OPC_MoveChild1,
    7266             : /* 15641*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7267             : /* 15644*/                      OPC_MoveChild0,
    7268             : /* 15645*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7269             : /* 15648*/                      OPC_CheckChild0Same, 0,
    7270             : /* 15650*/                      OPC_CheckChild1Integer, 16, 
    7271             : /* 15652*/                      OPC_CheckChild1Type, MVT::i32,
    7272             : /* 15654*/                      OPC_MoveParent,
    7273             : /* 15655*/                      OPC_MoveParent,
    7274             : /* 15656*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7275             : /* 15658*/                      OPC_MoveParent,
    7276             : /* 15659*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7277             : /* 15661*/                      OPC_MoveParent,
    7278             : /* 15662*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7279             : /* 15664*/                      OPC_CheckType, MVT::i32,
    7280             : /* 15666*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7281             : /* 15668*/                      OPC_EmitInteger, MVT::i32, 8, 
    7282             : /* 15671*/                      OPC_EmitInteger, MVT::i32, 8, 
    7283             : /* 15674*/                      OPC_EmitInteger, MVT::i32, 8, 
    7284             : /* 15677*/                      OPC_EmitInteger, MVT::i1, 0, 
    7285             : /* 15680*/                      OPC_EmitInteger, MVT::i32, 0, 
    7286             : /* 15683*/                      OPC_EmitInteger, MVT::i32, 0, 
    7287             : /* 15686*/                      OPC_EmitInteger, MVT::i32, 0, 
    7288             : /* 15689*/                      OPC_EmitInteger, MVT::i32, 0, 
    7289             : /* 15692*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7290             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7291             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7292             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7293             : /* 15709*/                    0, /*End of Scope*/
    7294             : /* 15710*/                  0, /*End of Scope*/
    7295             : /* 15711*/                /*Scope*/ 51|128,3/*435*/, /*->16148*/
    7296             : /* 15713*/                  OPC_CheckChild0Same, 1,
    7297             : /* 15715*/                  OPC_MoveParent,
    7298             : /* 15716*/                  OPC_MoveChild1,
    7299             : /* 15717*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    7300             : /* 15720*/                  OPC_CheckChild0Same, 0,
    7301             : /* 15722*/                  OPC_MoveParent,
    7302             : /* 15723*/                  OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7303             : /* 15725*/                  OPC_MoveParent,
    7304             : /* 15726*/                  OPC_RecordChild1, // #2 = $src2
    7305             : /* 15727*/                  OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7306             : /* 15729*/                  OPC_MoveParent,
    7307             : /* 15730*/                  OPC_MoveChild1,
    7308             : /* 15731*/                  OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7309             : /* 15734*/                  OPC_MoveChild0,
    7310             : /* 15735*/                  OPC_CheckAndImm, 127|128,1/*255*/, 
    7311             : /* 15738*/                  OPC_MoveChild0,
    7312             : /* 15739*/                  OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7313             : /* 15742*/                  OPC_Scope, 72|128,1/*200*/, /*->15945*/ // 2 children in Scope
    7314             : /* 15745*/                    OPC_CheckChild0Same, 0,
    7315             : /* 15747*/                    OPC_CheckChild1Integer, 8, 
    7316             : /* 15749*/                    OPC_CheckChild1Type, MVT::i32,
    7317             : /* 15751*/                    OPC_MoveParent,
    7318             : /* 15752*/                    OPC_MoveParent,
    7319             : /* 15753*/                    OPC_MoveChild1,
    7320             : /* 15754*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7321             : /* 15757*/                    OPC_MoveChild0,
    7322             : /* 15758*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7323             : /* 15761*/                    OPC_CheckChild0Same, 1,
    7324             : /* 15763*/                    OPC_CheckChild1Integer, 8, 
    7325             : /* 15765*/                    OPC_CheckChild1Type, MVT::i32,
    7326             : /* 15767*/                    OPC_MoveParent,
    7327             : /* 15768*/                    OPC_MoveParent,
    7328             : /* 15769*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7329             : /* 15771*/                    OPC_MoveParent,
    7330             : /* 15772*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7331             : /* 15774*/                    OPC_MoveParent,
    7332             : /* 15775*/                    OPC_MoveChild1,
    7333             : /* 15776*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7334             : /* 15779*/                    OPC_MoveChild0,
    7335             : /* 15780*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7336             : /* 15783*/                    OPC_MoveChild0,
    7337             : /* 15784*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7338             : /* 15787*/                    OPC_Scope, 77, /*->15866*/ // 2 children in Scope
    7339             : /* 15789*/                      OPC_CheckChild0Same, 0,
    7340             : /* 15791*/                      OPC_CheckChild1Integer, 16, 
    7341             : /* 15793*/                      OPC_CheckChild1Type, MVT::i32,
    7342             : /* 15795*/                      OPC_MoveParent,
    7343             : /* 15796*/                      OPC_MoveParent,
    7344             : /* 15797*/                      OPC_MoveChild1,
    7345             : /* 15798*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7346             : /* 15801*/                      OPC_MoveChild0,
    7347             : /* 15802*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7348             : /* 15805*/                      OPC_CheckChild0Same, 1,
    7349             : /* 15807*/                      OPC_CheckChild1Integer, 16, 
    7350             : /* 15809*/                      OPC_CheckChild1Type, MVT::i32,
    7351             : /* 15811*/                      OPC_MoveParent,
    7352             : /* 15812*/                      OPC_MoveParent,
    7353             : /* 15813*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7354             : /* 15815*/                      OPC_MoveParent,
    7355             : /* 15816*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7356             : /* 15818*/                      OPC_MoveParent,
    7357             : /* 15819*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7358             : /* 15821*/                      OPC_CheckType, MVT::i32,
    7359             : /* 15823*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7360             : /* 15825*/                      OPC_EmitInteger, MVT::i32, 8, 
    7361             : /* 15828*/                      OPC_EmitInteger, MVT::i32, 8, 
    7362             : /* 15831*/                      OPC_EmitInteger, MVT::i32, 8, 
    7363             : /* 15834*/                      OPC_EmitInteger, MVT::i1, 0, 
    7364             : /* 15837*/                      OPC_EmitInteger, MVT::i32, 0, 
    7365             : /* 15840*/                      OPC_EmitInteger, MVT::i32, 0, 
    7366             : /* 15843*/                      OPC_EmitInteger, MVT::i32, 0, 
    7367             : /* 15846*/                      OPC_EmitInteger, MVT::i32, 0, 
    7368             : /* 15849*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7369             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7370             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7371             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7372             : /* 15866*/                    /*Scope*/ 77, /*->15944*/
    7373             : /* 15867*/                      OPC_CheckChild0Same, 1,
    7374             : /* 15869*/                      OPC_CheckChild1Integer, 16, 
    7375             : /* 15871*/                      OPC_CheckChild1Type, MVT::i32,
    7376             : /* 15873*/                      OPC_MoveParent,
    7377             : /* 15874*/                      OPC_MoveParent,
    7378             : /* 15875*/                      OPC_MoveChild1,
    7379             : /* 15876*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7380             : /* 15879*/                      OPC_MoveChild0,
    7381             : /* 15880*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7382             : /* 15883*/                      OPC_CheckChild0Same, 0,
    7383             : /* 15885*/                      OPC_CheckChild1Integer, 16, 
    7384             : /* 15887*/                      OPC_CheckChild1Type, MVT::i32,
    7385             : /* 15889*/                      OPC_MoveParent,
    7386             : /* 15890*/                      OPC_MoveParent,
    7387             : /* 15891*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7388             : /* 15893*/                      OPC_MoveParent,
    7389             : /* 15894*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7390             : /* 15896*/                      OPC_MoveParent,
    7391             : /* 15897*/                      OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7392             : /* 15899*/                      OPC_CheckType, MVT::i32,
    7393             : /* 15901*/                      OPC_CheckPatternPredicate, 0, // (Subtarget->hasDLInsts()) && (true)
    7394             : /* 15903*/                      OPC_EmitInteger, MVT::i32, 8, 
    7395             : /* 15906*/                      OPC_EmitInteger, MVT::i32, 8, 
    7396             : /* 15909*/                      OPC_EmitInteger, MVT::i32, 8, 
    7397             : /* 15912*/                      OPC_EmitInteger, MVT::i1, 0, 
    7398             : /* 15915*/                      OPC_EmitInteger, MVT::i32, 0, 
    7399             : /* 15918*/                      OPC_EmitInteger, MVT::i32, 0, 
    7400             : /* 15921*/                      OPC_EmitInteger, MVT::i32, 0, 
    7401             : /* 15924*/                      OPC_EmitInteger, MVT::i32, 0, 
    7402             : /* 15927*/                      OPC_MorphNodeTo1, TARGET_VAL(AMDGPU::V_DOT4_U32_U8), 0,
    7403             :                                     MVT::i32, 11/*#Ops*/, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 10, 
    7404             :                                 // Src: (add:{ *:[i32] } (AMDGPUmul_u24:{ *:[i32] } (srl:{ *:[i32] } i32:{ *:[i32] }:$src0, 24:{ *:[i32] }), (srl:{ *:[i32] } i32:{ *:[i32] }:$src1, 24:{ *:[i32] }))<<P:Predicate_AMDGPUmul_u24_oneuse>>, (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>>)<<P:Predicate_add_oneuse>> - Complexity = 128
    7405             :                                 // Dst: (V_DOT4_U32_U8:{ *:[i32] } 8:{ *:[i32] }, ?:{ *:[i32] }:$src0, 8:{ *:[i32] }, ?:{ *:[i32] }:$src1, 8:{ *:[i32] }, ?:{ *:[i32] }:$src2, 0:{ *:[i1] })
    7406             : /* 15944*/                    0, /*End of Scope*/
    7407             : /* 15945*/                  /*Scope*/ 72|128,1/*200*/, /*->16147*/
    7408             : /* 15947*/                    OPC_CheckChild0Same, 1,
    7409             : /* 15949*/                    OPC_CheckChild1Integer, 8, 
    7410             : /* 15951*/                    OPC_CheckChild1Type, MVT::i32,
    7411             : /* 15953*/                    OPC_MoveParent,
    7412             : /* 15954*/                    OPC_MoveParent,
    7413             : /* 15955*/                    OPC_MoveChild1,
    7414             : /* 15956*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7415             : /* 15959*/                    OPC_MoveChild0,
    7416             : /* 15960*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7417             : /* 15963*/                    OPC_CheckChild0Same, 0,
    7418             : /* 15965*/                    OPC_CheckChild1Integer, 8, 
    7419             : /* 15967*/                    OPC_CheckChild1Type, MVT::i32,
    7420             : /* 15969*/                    OPC_MoveParent,
    7421             : /* 15970*/                    OPC_MoveParent,
    7422             : /* 15971*/                    OPC_CheckPredicate, 0, // Predicate_AMDGPUmul_u24_oneuse
    7423             : /* 15973*/                    OPC_MoveParent,
    7424             : /* 15974*/                    OPC_CheckPredicate, 0, // Predicate_add_oneuse
    7425             : /* 15976*/                    OPC_MoveParent,
    7426             : /* 15977*/                    OPC_MoveChild1,
    7427             : /* 15978*/                    OPC_CheckOpcode, TARGET_VAL(AMDGPUISD::MUL_U24),
    7428             : /* 15981*/                    OPC_MoveChild0,
    7429             : /* 15982*/                    OPC_CheckAndImm, 127|128,1/*255*/, 
    7430             : /* 15985*/                    OPC_MoveChild0,
    7431             : /* 15986*/                    OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7432             : /* 15989*/                    OPC_Scope, 77, /*->16068*/ // 2 children in Scope
    7433             : /* 15991*/                      OPC_CheckChild0Same, 0,
    7434             : /* 15993*/                      OPC_CheckChild1Integer, 16, 
    7435             : /* 15995*/                      OPC_CheckChild1Type, MVT::i32,
    7436             : /* 15997*/                      OPC_MoveParent,
    7437             : /* 15998*/                      OPC_MoveParent,
    7438             : /* 15999*/                      OPC_MoveChild1,
    7439             : /* 16000*/                      OPC_CheckAndImm, 127|128,1/*255*/, 
    7440             : /* 16003*/                      OPC_MoveChild0,
    7441             : /* 16004*/                      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
    7442             : /* 16007*/                      OPC_CheckChild0Same, 1,
    7443             : /* 16009*/                      OPC_CheckChild1Integer, 16, 
    7444             : /* 16011*/                      OPC_CheckChild1Type, MVT::i32,
    7445             : /* 16013*/                      OPC_MoveParent,
    7446             : /* 16014*/                      OPC_MoveParent,
    7447             : /* 16015*/                      OPC_CheckPredicate, 0, // Predicate_AMDGPUm