1447 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s2 3# GCN-LABEL: name: valu_write_vgpr_sgemm_mfma_read4# GCN: V_MOV_B325# GCN: V_MOV_B326# GCN-NEXT: S_NOP 17# GCN-NEXT: V_MFMA8name: valu_write_vgpr_sgemm_mfma_read9body: |10 bb.0:11 $vgpr0 = V_MOV_B32_e32 1, implicit $exec12 $vgpr1 = V_MOV_B32_e32 1, implicit $exec13 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec14...15# GCN-LABEL: name: valu_write_agpr_sgemm_mfma_read16# GCN: V_ACCVGPR_WRITE_B32_e6417# GCN-NEXT: S_NOP 118# GCN-NEXT: V_MFMA19name: valu_write_agpr_sgemm_mfma_read20body: |21 bb.0:22 $vgpr0 = IMPLICIT_DEF23 $agpr4 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec24 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec25...26# GCN-LABEL: name: valu_write_vgpr_dgemm_mfma_read27# GCN: V_MOV_B3228# GCN: V_MOV_B3229# GCN-NEXT: S_NOP 130# GCN-NEXT: V_MFMA31name: valu_write_vgpr_dgemm_mfma_read32body: |33 bb.0:34 $vgpr0 = V_MOV_B32_e32 1, implicit $exec35 $vgpr1 = V_MOV_B32_e32 1, implicit $exec36 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec37...38# GCN-LABEL: name: accmov_write_agpr_sgemm_mfma_read39# GCN: V_ACCVGPR_MOV_B3240# GCN-NEXT: S_NOP 141# GCN-NEXT: V_MFMA42name: accmov_write_agpr_sgemm_mfma_read43body: |44 bb.0:45 $vgpr0 = IMPLICIT_DEF46 $agpr4 = V_ACCVGPR_MOV_B32 $agpr5, implicit $exec47 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec48...49# GCN-LABEL: name: sgemm_mfma_write_agpr_mfma_read_same_agpr_as_srcc50# GCN: V_MFMA51# GCN-NEXT: V_MFMA52name: sgemm_mfma_write_agpr_mfma_read_same_agpr_as_srcc53body: |54 bb.0:55 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec56 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec57...58# GCN-LABEL: name: sgemm_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc59# GCN: V_MFMA60# GCN-NEXT: V_MFMA61name: sgemm_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc62body: |63 bb.0:64 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec65 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr5, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec66...67# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc68# GCN: V_MFMA69# GCN-NEXT: V_MFMA70name: dgemm16x16_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc71body: |72 bb.0:73 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec74 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec75...76# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc77# GCN: V_MFMA78# GCN-NEXT: S_NOP 379# GCN-NEXT: V_MFMA80name: dgemm4x4_mfma_write_vgpr_mfma_read_same_vgpr_as_srcc81body: |82 bb.0:83 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec84 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec85...86# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_mfma_read_overlap87# GCN: V_MFMA88# GCN-NEXT: S_NOP 189# GCN-NEXT: V_MFMA90name: sgemm4x4_mfma_write_agpr_mfma_read_overlap91body: |92 bb.0:93 $agpr2_agpr3_agpr4_agpr5 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec94 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec95...96# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_mfma_read_overlap97# GCN: V_MFMA98# GCN-NEXT: S_NOP 199# GCN-NEXT: V_MFMA100name: sgemm4x4_mfma_write_vgpr_mfma_read_overlap101body: |102 bb.0:103 $vgpr2_vgpr3_vgpr4_vgpr5 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr6, $vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec104 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr6, $vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec105...106# GCN-LABEL: name: sgemm16x16_mfma_write_agpr_mfma_read_overlap107# GCN: V_MFMA108# GCN-NEXT: S_NOP 7109# GCN-NEXT: V_MFMA110name: sgemm16x16_mfma_write_agpr_mfma_read_overlap111body: |112 bb.0:113 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec114 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec115...116# GCN-LABEL: name: sgemm16x16_mfma_write_vgpr_mfma_read_overlap117# GCN: V_MFMA118# GCN-NEXT: S_NOP 7119# GCN-NEXT: V_MFMA120name: sgemm16x16_mfma_write_vgpr_mfma_read_overlap121body: |122 bb.0:123 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec124 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec125...126# GCN-LABEL: name: sgemm32x32_mfma_write_agpr_mfma_read_overlap127# GCN: V_MFMA128# GCN-NEXT: S_NOP 15129# GCN-NEXT: V_MFMA130name: sgemm32x32_mfma_write_agpr_mfma_read_overlap131body: |132 bb.0:133 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_32X32X2F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec134 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec135...136# GCN-LABEL: name: sgemm32x32_mfma_write_vgpr_mfma_read_overlap137# GCN: V_MFMA138# GCN-NEXT: S_NOP 15139# GCN-NEXT: V_MFMA140name: sgemm32x32_mfma_write_vgpr_mfma_read_overlap141body: |142 bb.0:143 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec144 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec145...146# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_read_overlap147# GCN: V_MFMA148# GCN-NEXT: S_NOP 8149# GCN-NEXT: V_MFMA150name: dgemm16x16_mfma_write_vgpr_mfma_read_overlap151body: |152 bb.0:153 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec154 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec155...156# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_read_overlap157# GCN: V_MFMA158# GCN-NEXT: S_NOP 3159# GCN-NEXT: V_MFMA160name: dgemm4x4_mfma_write_vgpr_mfma_read_overlap161body: |162 bb.0:163 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec164 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec165...166# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap167# GCN: V_MFMA168# GCN-NEXT: V_MFMA169name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap170body: |171 bb.0:172 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec173 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec174...175# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_read_overlap176# GCN: V_MFMA177# GCN-NEXT: V_MFMA178name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_read_overlap179body: |180 bb.0:181 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec182 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec183...184# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_dgemm_mfma_read_overlap185# GCN: V_MFMA186# GCN-NEXT: S_NOP 2187# GCN-NEXT: V_MFMA188name: sgemm4x4_mfma_write_vgpr_dgemm_mfma_read_overlap189body: |190 bb.0:191 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr10, $vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec192 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec193...194# GCN-LABEL: name: sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap195# GCN: V_MFMA196# GCN-NEXT: S_NOP 8197# GCN-NEXT: V_MFMA198name: sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap199body: |200 bb.0:201 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec202 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec203...204# GCN-LABEL: name: sgemm32x32_mfma_write_vgpr_dgemm_mfma_read_overlap205# GCN: V_MFMA206# GCN-NEXT: S_NOP 15207# GCN-NEXT: S_NOP 0208# GCN-NEXT: V_MFMA209name: sgemm32x32_mfma_write_vgpr_dgemm_mfma_read_overlap210body: |211 bb.0:212 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr26, $vgpr27, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec213 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec214...215# GCN-LABEL: name: sgemm16x16_mfma_write_agpr_mfma_read_partial216# GCN: V_MFMA217# GCN-NEXT: S_NOP 7218# GCN-NEXT: V_MFMA219name: sgemm16x16_mfma_write_agpr_mfma_read_partial220body: |221 bb.0:222 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec223 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec224...225# GCN-LABEL: name: sgemm16x16_mfma_write_vgpr_mfma_read_partial226# GCN: V_MFMA227# GCN-NEXT: S_NOP 7228# GCN-NEXT: V_MFMA229name: sgemm16x16_mfma_write_vgpr_mfma_read_partial230body: |231 bb.0:232 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec233 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec234...235# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap236# GCN: V_MFMA237# GCN-NEXT: S_NOP 4238# GCN-NEXT: V_MFMA239name: sgemm4x4_mfma_write_agpr_mfma_srca_read_overlap240body: |241 bb.0:242 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec243 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec244...245# GCN-LABEL: name: sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap246# GCN: V_MFMA247# GCN-NEXT: S_NOP 10248# GCN-NEXT: V_MFMA249name: sgemm16x16_mfma_write_agpr_mfma_srca_read_overlap250body: |251 bb.0:252 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec253 $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec254...255# GCN-LABEL: name: sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap256# GCN: V_MFMA257# GCN-NEXT: S_NOP 15258# GCN-NEXT: S_NOP 2259# GCN-NEXT: V_MFMA260name: sgemm32x32_mfma_write_agpr_mfma_srca_read_overlap261body: |262 bb.0:263 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec264 $agpr20_agpr21_agpr22_agpr23 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr20_agpr21_agpr22_agpr23, 0, 0, 0, implicit $mode, implicit $exec265...266# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap267# GCN: V_MFMA268# GCN-NEXT: S_NOP 4269# GCN-NEXT: V_MFMA270name: sgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap271body: |272 bb.0:273 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec274 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr0, $agpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec275...276# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_dmfma4x4_srca_read_overlap277# GCN: V_MFMA278# GCN-NEXT: S_NOP 4279# GCN-NEXT: V_MFMA280name: sgemm4x4_mfma_write_vgpr_dmfma4x4_srca_read_overlap281body: |282 bb.0:283 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec284 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec285...286# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_dmfma16x16_srca_read_overlap287# GCN: V_MFMA288# GCN-NEXT: S_NOP 4289# GCN-NEXT: V_MFMA290name: sgemm4x4_mfma_write_vgpr_dmfma16x16_srca_read_overlap291body: |292 bb.0:293 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec294 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec295...296# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap297# GCN: V_MFMA298# GCN-NEXT: S_NOP 5299# GCN-NEXT: V_MFMA300name: dgemm4x4_mfma_write_vgpr_mfma_srca_read_overlap301body: |302 bb.0:303 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec304 $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr2_vgpr3, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec305...306# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap307# GCN: V_MFMA308# GCN-NEXT: S_NOP 10309# GCN-NEXT: V_MFMA310name: dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap311body: |312 bb.0:313 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec314 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec315...316# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_srca_read_overlap317# GCN: V_MFMA318# GCN-NEXT: S_NOP 5319# GCN-NEXT: V_MFMA320name: dgemm4x4_mfma_write_vgpr_sgemm_mfma_srca_read_overlap321body: |322 bb.0:323 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec324 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec325...326# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap327# GCN: V_MFMA328# GCN-NEXT: S_NOP 10329# GCN-NEXT: V_MFMA330name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap331body: |332 bb.0:333 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec334 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec335...336# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_dgemm_mfma_srca_read_overlap337# GCN: V_MFMA338# GCN-NEXT: S_NOP 4339# GCN-NEXT: V_MFMA340name: sgemm4x4_mfma_write_vgpr_dgemm_mfma_srca_read_overlap341body: |342 bb.0:343 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec344 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec345...346# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap347# GCN: V_MFMA348# GCN-NEXT: S_NOP 4349# GCN-NEXT: V_MFMA350name: sgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap351body: |352 bb.0:353 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec354 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $agpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec355...356# GCN-LABEL: name: sgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap357# GCN: V_MFMA358# GCN-NEXT: S_NOP 4359# GCN-NEXT: V_MFMA360name: sgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap361body: |362 bb.0:363 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec364 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $agpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec365...366# GCN-LABEL: name: dgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap367# GCN: V_MFMA368# GCN-NEXT: S_NOP 5369# GCN-NEXT: V_MFMA370name: dgemm4x4_mfma_write_vgpr_mfma_srcb_read_overlap371body: |372 bb.0:373 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec374 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec375...376# GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap377# GCN: V_MFMA378# GCN-NEXT: S_NOP 10379# GCN-NEXT: V_MFMA380name: dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap381body: |382 bb.0:383 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec384 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr0_vgpr1, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec385...386# GCN-LABEL: name: smfma4x4_write_vgpr_vm_read387# GCN: V_MFMA388# GCN-NEXT: S_NOP 4389# GCN-NEXT: BUFFER_STORE_DWORD390name: smfma4x4_write_vgpr_vm_read391body: |392 bb.0:393 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec394 BUFFER_STORE_DWORD_OFFSET $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $mode, implicit $exec395...396# GCN-LABEL: name: smfma4x4_write_vgpr_flat_read397# GCN: V_MFMA398# GCN-NEXT: S_NOP 4399# GCN-NEXT: FLAT_STORE_DWORD400name: smfma4x4_write_vgpr_flat_read401body: |402 bb.0:403 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec404 FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr405...406# GCN-LABEL: name: smfma4x4_write_vgpr_lds_read407# GCN: V_MFMA408# GCN-NEXT: S_NOP 4409# GCN-NEXT: DS_WRITE_B32410name: smfma4x4_write_vgpr_lds_read411body: |412 bb.0:413 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec414 DS_WRITE_B32 $vgpr0, $vgpr4, 0, 0, implicit $m0, implicit $mode, implicit $exec415...416# GCN-LABEL: name: smfma4x4_write_vgpr_exp_read417# GCN: V_MFMA418# GCN-NEXT: S_NOP 4419# GCN-NEXT: EXP_DONE420name: smfma4x4_write_vgpr_exp_read421body: |422 bb.0:423 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec424 EXP_DONE 12, $vgpr4, $vgpr0, $vgpr0, $vgpr0, 0, 0, 15, implicit $exec425...426# GCN-LABEL: name: smfma16x16_write_vgpr_flat_read427# GCN: V_MFMA428# GCN-NEXT: S_NOP 10429# GCN-NEXT: FLAT_STORE_DWORD430name: smfma16x16_write_vgpr_flat_read431body: |432 bb.0:433 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec434 FLAT_STORE_DWORD $vgpr16_vgpr17, $vgpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr435...436# GCN-LABEL: name: smfma32x32_write_vgpr_flat_read437# GCN: V_MFMA438# GCN-NEXT: S_NOP 15439# GCN-NEXT: S_NOP 2440# GCN-NEXT: FLAT_STORE_DWORD441name: smfma32x32_write_vgpr_flat_read442body: |443 bb.0:444 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec445 FLAT_STORE_DWORD $vgpr16_vgpr17, $vgpr1, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr446...447# GCN-LABEL: name: dmfma4x4_write_vgpr_flat_read_overlap448# GCN: V_MFMA449# GCN-NEXT: S_NOP 8450# GCN-NEXT: FLAT_STORE_DWORD451name: dmfma4x4_write_vgpr_flat_read_overlap452body: |453 bb.0:454 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec455 FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr456...457# GCN-LABEL: name: dmfma4x4_write_vgpr_flat_read_full458# GCN: V_MFMA459# GCN-NEXT: S_NOP 8460# GCN-NEXT: FLAT_STORE_DWORD461name: dmfma4x4_write_vgpr_flat_read_full462body: |463 bb.0:464 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec465 FLAT_STORE_DWORDX2 $vgpr0_vgpr1, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr466...467# GCN-LABEL: name: dmfma16x16_write_vgpr_flat_read468# GCN: V_MFMA469# GCN-NEXT: S_NOP 15470# GCN-NEXT: S_NOP 1471# GCN-NEXT: FLAT_STORE_DWORD472name: dmfma16x16_write_vgpr_flat_read473body: |474 bb.0:475 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec476 FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr477...478# GCN-LABEL: name: smfma4x4_write_vgpr_valu_read479# GCN: V_MFMA480# GCN-NEXT: S_NOP 4481# GCN-NEXT: V_MOV_B32482name: smfma4x4_write_vgpr_valu_read483body: |484 bb.0:485 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec486 $vgpr4 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec487...488# GCN-LABEL: name: smfma16x16_write_vgpr_valu_read489# GCN: V_MFMA490# GCN-NEXT: S_NOP 10491# GCN-NEXT: V_MOV_B32492name: smfma16x16_write_vgpr_valu_read493body: |494 bb.0:495 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec496 $vgpr16 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec497...498# GCN-LABEL: name: smfma32x32_write_vgpr_valu_read499# GCN: V_MFMA500# GCN-NEXT: S_NOP 15501# GCN-NEXT: S_NOP 2502# GCN-NEXT: V_MOV_B32503name: smfma32x32_write_vgpr_valu_read504body: |505 bb.0:506 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec507 $vgpr16 = V_MOV_B32_e32 $vgpr0, implicit $mode, implicit $exec508...509# GCN-LABEL: name: dmfma4x4_write_vgpr_valu_read510# GCN: V_MFMA511# GCN-NEXT: S_NOP 5512# GCN-NEXT: V_MOV_B32513name: dmfma4x4_write_vgpr_valu_read514body: |515 bb.0:516 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec517 $vgpr6 = V_MOV_B32_e32 $vgpr5, implicit $exec518...519# GCN-LABEL: name: dmfma16x16_write_vgpr_valu_read520# GCN: V_MFMA521# GCN-NEXT: S_NOP 10522# GCN-NEXT: V_MOV_B32523name: dmfma16x16_write_vgpr_valu_read524body: |525 bb.0:526 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec527 $vgpr12 = V_MOV_B32_e32 $vgpr4, implicit $exec528...529# GCN-LABEL: name: smfma4x4_write_vgpr_accv_read530# GCN: V_MFMA531# GCN-NEXT: S_NOP 4532# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64533name: smfma4x4_write_vgpr_accv_read534body: |535 bb.0:536 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec537 $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec538...539# GCN-LABEL: name: smfma16x16_write_vgpr_accv_read540# GCN: V_MFMA541# GCN-NEXT: S_NOP 10542# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64543name: smfma16x16_write_vgpr_accv_read544body: |545 bb.0:546 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec547 $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec548...549# GCN-LABEL: name: smfma32x32_write_vgpr_accv_read550# GCN: V_MFMA551# GCN-NEXT: S_NOP 15552# GCN-NEXT: S_NOP 2553# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64554name: smfma32x32_write_vgpr_accv_read555body: |556 bb.0:557 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec558 $agpr0 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $mode, implicit $exec559...560# GCN-LABEL: name: smfma4x4_write_vgpr_dot_read561# GCN: V_MFMA562# GCN-NEXT: S_NOP 4563# GCN-NEXT: V_DOT564name: smfma4x4_write_vgpr_dot_read565body: |566 bb.0:567 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec568 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec569...570# GCN-LABEL: name: dmfma4x4_write_vgpr_dot_read571# GCN: V_MFMA572# GCN-NEXT: S_NOP 5573# GCN-NEXT: V_DOT574name: dmfma4x4_write_vgpr_dot_read575body: |576 bb.0:577 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec578 $vgpr1 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr5, $vgpr1, implicit $exec579...580# GCN-LABEL: name: dmfma16x16_write_vgpr_dot_read581# GCN: V_MFMA582# GCN-NEXT: S_NOP 10583# GCN-NEXT: V_DOT584name: dmfma16x16_write_vgpr_dot_read585body: |586 bb.0:587 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec588 $vgpr1 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr4, $vgpr1, implicit $exec589...590# GCN-LABEL: name: smfma4x4_write_vgpr_valu_write591# GCN: V_MFMA592# GCN-NEXT: S_NOP 4593# GCN-NEXT: V_MOV_B32594name: smfma4x4_write_vgpr_valu_write595body: |596 bb.0:597 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr4, $vgpr0, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec598 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec599...600# GCN-LABEL: name: smfma16x16_write_vgpr_valu_write601# GCN: V_MFMA602# GCN-NEXT: S_NOP 10603# GCN-NEXT: V_MOV_B32604name: smfma16x16_write_vgpr_valu_write605body: |606 bb.0:607 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec608 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec609...610# GCN-LABEL: name: smfma32x32_write_vgpr_valu_write611# GCN: V_MFMA612# GCN-NEXT: S_NOP 15613# GCN-NEXT: S_NOP 2614# GCN-NEXT: V_MOV_B32615name: smfma32x32_write_vgpr_valu_write616body: |617 bb.0:618 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec619 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec620...621# GCN-LABEL: name: smfma4x4_write_vgpr_valu_f16_write622# GCN: V_MFMA623# GCN-NEXT: S_NOP 4624# GCN-NEXT: V_FMA_F16_e64625name: smfma4x4_write_vgpr_valu_f16_write626body: |627 bb.0:628 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec629 $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec630...631# GCN-LABEL: name: smfma16x16_write_vgpr_valu_f16_write632# GCN: V_MFMA633# GCN-NEXT: S_NOP 10634# GCN-NEXT: V_FMA_F16_e64635name: smfma16x16_write_vgpr_valu_f16_write636body: |637 bb.0:638 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec639 $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec640...641# GCN-LABEL: name: smfma32x32_write_vgpr_valu_f16_write642# GCN: V_MFMA643# GCN-NEXT: S_NOP 15644# GCN-NEXT: S_NOP 2645# GCN-NEXT: V_FMA_F16_e64646name: smfma32x32_write_vgpr_valu_f16_write647body: |648 bb.0:649 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec650 $vgpr1 = V_FMA_F16_e64 0, 0, 0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec651...652# GCN-LABEL: name: smfma4x4_write_vgpr_valu_sdwa_write653# GCN: V_MFMA654# GCN-NEXT: S_NOP 4655# GCN-NEXT: V_MOV_B32_sdwa656name: smfma4x4_write_vgpr_valu_sdwa_write657body: |658 bb.0:659 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec660 $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)661...662# GCN-LABEL: name: smfma16x16_write_vgpr_valu_sdwa_write663# GCN: V_MFMA664# GCN-NEXT: S_NOP 10665# GCN-NEXT: V_MOV_B32_sdwa666name: smfma16x16_write_vgpr_valu_sdwa_write667body: |668 bb.0:669 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr16, $vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec670 $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)671...672# GCN-LABEL: name: smfma32x32_write_vgpr_valu_sdwa_write673# GCN: V_MFMA674# GCN-NEXT: S_NOP 15675# GCN-NEXT: S_NOP 2676# GCN-NEXT: V_MOV_B32_sdwa677name: smfma32x32_write_vgpr_valu_sdwa_write678body: |679 bb.0:680 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec681 $vgpr1 = V_MOV_B32_sdwa 0, $vgpr16, 0, 5, 2, 4, implicit $exec, implicit $vgpr1(tied-def 0)682...683# GCN-LABEL: name: dmfma4x4_write_vgpr_valu_write684# GCN: V_MFMA685# GCN-NEXT: S_NOP 5686# GCN-NEXT: V_MOV_B32687name: dmfma4x4_write_vgpr_valu_write688body: |689 bb.0:690 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec691 $vgpr4 = V_MOV_B32_e32 0, implicit $mode, implicit $exec692...693# GCN-LABEL: name: dmfma16x16_write_vgpr_valu_write694# GCN: V_MFMA695# GCN-NEXT: S_NOP 10696# GCN-NEXT: V_MOV_B32697name: dmfma16x16_write_vgpr_valu_write698body: |699 bb.0:700 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec701 $vgpr3 = V_MOV_B32_e32 0, implicit $mode, implicit $exec702...703# GCN-LABEL: name: smfma4x4_write_vgpr_accv_write704# GCN: V_MFMA705# GCN-NEXT: S_NOP 4706# GCN-NEXT: V_ACCVGPR_READ_B32_e64707name: smfma4x4_write_vgpr_accv_write708body: |709 bb.0:710 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec711 $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr0, implicit $mode, implicit $exec712...713# GCN-LABEL: name: smfma4x4_write_vgpr_dot_write714# GCN: V_MFMA715# GCN-NEXT: S_NOP 4716# GCN-NEXT: V_DOT717name: smfma4x4_write_vgpr_dot_write718body: |719 bb.0:720 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec721 $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec722...723# GCN-LABEL: name: smfma4x4_read_srcc_vgpr_valu_write724# GCN: V_MFMA725# GCN-NEXT: S_NOP 0726# GCN-NEXT: V_MOV_B32727name: smfma4x4_read_srcc_vgpr_valu_write728body: |729 bb.0:730 $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec731 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec732...733# GCN-LABEL: name: smfma16x16_read_srcc_vgpr_valu_write734# GCN: V_MFMA735# GCN-NEXT: S_NOP 6736# GCN-NEXT: V_MOV_B32737name: smfma16x16_read_srcc_vgpr_valu_write738body: |739 bb.0:740 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec741 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec742...743# GCN-LABEL: name: smfma32x32_read_srcc_vgpr_valu_write744# GCN: V_MFMA745# GCN-NEXT: S_NOP 14746# GCN-NEXT: V_MOV_B32747name: smfma32x32_read_srcc_vgpr_valu_write748body: |749 bb.0:750 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr0, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec751 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec752...753# GCN-LABEL: name: smfma4x4_read_srca_vgpr_valu_write754# GCN: V_MFMA755# GCN-NEXT: V_MOV_B32756name: smfma4x4_read_srca_vgpr_valu_write757body: |758 bb.0:759 $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec760 $vgpr8 = V_MOV_B32_e32 0, implicit $mode, implicit $exec761...762# GCN-LABEL: name: smfma16x16_read_srca_vgpr_valu_write763# GCN: V_MFMA764# GCN-NEXT: V_MOV_B32765name: smfma16x16_read_srca_vgpr_valu_write766body: |767 bb.0:768 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec769 $vgpr18 = V_MOV_B32_e32 0, implicit $mode, implicit $exec770...771# GCN-LABEL: name: smfma32x32_read_srca_vgpr_valu_write772# GCN: V_MFMA773# GCN-NEXT: V_MOV_B32774name: smfma32x32_read_srca_vgpr_valu_write775body: |776 bb.0:777 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec778 $vgpr18 = V_MOV_B32_e32 0, implicit $mode, implicit $exec779...780# GCN-LABEL: name: smfma4x4_read_srcb_vgpr_valu_write781# GCN: V_MFMA782# GCN-NEXT: V_MOV_B32783name: smfma4x4_read_srcb_vgpr_valu_write784body: |785 bb.0:786 $vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr9, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec787 $vgpr9 = V_MOV_B32_e32 0, implicit $mode, implicit $exec788...789# GCN-LABEL: name: smfma16x16_read_srcb_vgpr_valu_write790# GCN: V_MFMA791# GCN-NEXT: V_MOV_B32792name: smfma16x16_read_srcb_vgpr_valu_write793body: |794 bb.0:795 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_16X16X1F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec796 $vgpr19 = V_MOV_B32_e32 0, implicit $mode, implicit $exec797...798# GCN-LABEL: name: smfma32x32_read_srcb_vgpr_valu_write799# GCN: V_MFMA800# GCN-NEXT: V_MOV_B32801name: smfma32x32_read_srcb_vgpr_valu_write802body: |803 bb.0:804 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F32_32X32X2F32_vgprcd_e64 $vgpr18, $vgpr19, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec805 $vgpr19 = V_MOV_B32_e32 0, implicit $mode, implicit $exec806...807# GCN-LABEL: name: dmfma4x4_read_srcc_vgpr_valu_write808# GCN: V_MFMA809# GCN-NEXT: V_MOV_B32810name: dmfma4x4_read_srcc_vgpr_valu_write811body: |812 bb.0:813 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec814 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec815...816# GCN-LABEL: name: dmfma16x16_read_srcc_vgpr_valu_write817# GCN: V_MFMA818# GCN-NEXT: V_MOV_B32819name: dmfma16x16_read_srcc_vgpr_valu_write820body: |821 bb.0:822 $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, 0, 0, 0, implicit $mode, implicit $exec823 $vgpr1 = V_MOV_B32_e32 0, implicit $mode, implicit $exec824...825# GCN-LABEL: name: smfma16x16_read_srcc_vgpr_accv_write826# GCN: V_MFMA827# GCN-NEXT: S_NOP 6828# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64829name: smfma16x16_read_srcc_vgpr_accv_write830body: |831 bb.0:832 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17 = V_MFMA_F32_16X16X1F32_e64 $agpr18, $agpr19, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec833 $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec834...835# GCN-LABEL: name: sgemm_to_fma64836# GCN: V_MFMA837# GCN-NEXT: V_FMA_F64_e64838name: sgemm_to_fma64839body: |840 bb.0:841 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec842 $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec843...844# GCN-LABEL: name: dgemm_to_fma64845# GCN: V_MFMA846# GCN-NEXT: S_NOP 1847# GCN-NEXT: V_FMA_F64_e64848name: dgemm_to_fma64849body: |850 bb.0:851 $vgpr0_vgpr1 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec852 $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec853...854# GCN-LABEL: name: dgemm_to_fmac64855# GCN: V_MFMA856# GCN-NEXT: S_NOP 1857# GCN-NEXT: V_FMAC_F64858name: dgemm_to_fmac64859body: |860 bb.0:861 $vgpr0_vgpr1 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec862 $vgpr4_vgpr5 = V_FMAC_F64_e32 $vgpr4_vgpr5, $vgpr4_vgpr5, $vgpr4_vgpr5, implicit $mode, implicit $exec863...864# GCN-LABEL: name: flat_store_data_agpr_overwritten865# GCN: FLAT_STORE_DWORDX4866# GCN-NEXT: S_NOP 0867# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64868name: flat_store_data_agpr_overwritten869body: |870 bb.0:871 FLAT_STORE_DWORDX4 $vgpr4_vgpr5, $agpr0_agpr1_agpr2_agpr3, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr872 $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec873...874# GCN-LABEL: name: dot_write_vgpr_accv_read875# GCN: V_DOT876# GCN-NEXT: S_NOP 2877# GCN-NEXT: V_ACCVGPR_WRITE_B32_e64878name: dot_write_vgpr_accv_read879body: |880 bb.0:881 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec882 $agpr5 = V_ACCVGPR_WRITE_B32_e64 $vgpr4, implicit $exec883...884# GCN-LABEL: name: valu_write_vgpr_dot_read885# GCN: V_MOV_B32886# GCN-NEXT: V_DOT887name: valu_write_vgpr_dot_read888body: |889 bb.0:890 $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec891 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec892...893# GCN-LABEL: name: accv_write_vgpr_dot_read894# GCN: V_ACCVGPR_READ895# GCN-NEXT: V_DOT896name: accv_write_vgpr_dot_read897body: |898 bb.0:899 $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr1, implicit $exec900 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec901...902# GCN-LABEL: name: dot_write_vgpr_same_dot_read_srcc903# GCN: V_DOT904# GCN-NEXT: V_DOT905name: dot_write_vgpr_same_dot_read_srcc906body: |907 bb.0:908 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec909 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec910...911# GCN-LABEL: name: dot_write_vgpr_different_dot_read_srcc912# GCN: V_DOT913# GCN-NEXT: S_NOP 2914# GCN-NEXT: V_DOT915name: dot_write_vgpr_different_dot_read_srcc916body: |917 bb.0:918 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec919 $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec920...921# GCN-LABEL: name: dot_write_vgpr_different_dot_write922# GCN: V_DOT923# GCN-NEXT: S_NOP 2924# GCN-NEXT: V_DOT925name: dot_write_vgpr_different_dot_write926body: |927 bb.0:928 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec929 $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec930...931# GCN-LABEL: name: dot_write_vgpr_different_valu_read932# GCN: V_DOT933# GCN-NEXT: S_NOP 2934# GCN-NEXT: V_MOV_B32_e32935name: dot_write_vgpr_different_valu_read936body: |937 bb.0:938 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec939 $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec940...941# GCN-LABEL: name: dot_write_vgpr_different_valu_write942# GCN: V_DOT943# GCN-NEXT: S_NOP 2944# GCN-NEXT: V_MOV_B32_e32945name: dot_write_vgpr_different_valu_write946body: |947 bb.0:948 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec949 $vgpr4 = V_MOV_B32_e32 1, implicit $exec950...951# GCN-LABEL: name: dot_write_vgpr_same_dot_read_srca952# GCN: V_DOT953# GCN-NEXT: S_NOP 2954# GCN-NEXT: V_DOT955name: dot_write_vgpr_same_dot_read_srca956body: |957 bb.0:958 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec959 $vgpr0 = V_DOT4C_I32_I8_e32 $vgpr4, $vgpr1, $vgpr0, implicit $mode, implicit $exec960...961# GCN-LABEL: name: dot_write_vgpr_same_dot_read_srcb962# GCN: V_DOT963# GCN-NEXT: S_NOP 2964# GCN-NEXT: V_DOT965name: dot_write_vgpr_same_dot_read_srcb966body: |967 bb.0:968 $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec969 $vgpr0 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr4, $vgpr0, implicit $mode, implicit $exec970...971# GCN-LABEL: name: vcmpx_write_exec_mfma972# GCN: V_CMPX_EQ_I32_e32973# GCN-NEXT: S_NOP 3974# GCN-NEXT: V_MFMA975name: vcmpx_write_exec_mfma976body: |977 bb.0:978 implicit $exec, implicit $vcc = V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit $exec979 $agpr4_agpr5_agpr6_agpr7 = V_MFMA_F32_4X4X1F32_e64 killed $agpr8, killed $vgpr1, killed $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec980...981# GCN-LABEL: name: valu_write_agpr_dgemm_mfma_read982# GCN: V_ACCVGPR_WRITE_B32_e64983# GCN: V_ACCVGPR_WRITE_B32_e64984# GCN-NEXT: S_NOP 1985# GCN-NEXT: V_MFMA986name: valu_write_agpr_dgemm_mfma_read987body: |988 bb.0:989 $agpr0 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec990 $agpr1 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec991 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec992...993# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_read_same_agpr_as_srcc994# GCN: V_MFMA995# GCN-NEXT: V_MFMA996name: dgemm16x16_mfma_write_agpr_mfma_read_same_agpr_as_srcc997body: |998 bb.0:999 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $agpr10_agpr11, $agpr10_agpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1000 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $agpr10_agpr11, $agpr10_agpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1001...1002# GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc1003# GCN: V_MFMA1004# GCN-NEXT: S_NOP 31005# GCN-NEXT: V_MFMA1006name: dgemm4x4_mfma_write_agpr_mfma_read_same_agpr_as_srcc1007body: |1008 bb.0:1009 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1010 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1011...1012# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_read_overlap1013# GCN: V_MFMA1014# GCN-NEXT: S_NOP 81015# GCN-NEXT: V_MFMA1016name: dgemm16x16_mfma_write_agpr_mfma_read_overlap1017body: |1018 bb.0:1019 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1020 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1021...1022# GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_read_overlap1023# GCN: V_MFMA1024# GCN-NEXT: S_NOP 31025# GCN-NEXT: V_MFMA1026name: dgemm4x4_mfma_write_agpr_mfma_read_overlap1027body: |1028 bb.0:1029 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1030 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1031...1032# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap1033# GCN: V_MFMA1034# GCN-NEXT: V_MFMA1035name: dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap1036body: |1037 bb.0:1038 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1039 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr10, $vgpr11, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1040...1041# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_dgemm_mfma_read_overlap1042# GCN: V_MFMA1043# GCN-NEXT: S_NOP 21044# GCN-NEXT: V_MFMA1045name: sgemm4x4_mfma_write_agpr_dgemm_mfma_read_overlap1046body: |1047 bb.0:1048 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr10, $vgpr11, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1049 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1050...1051# GCN-LABEL: name: sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap1052# GCN: V_MFMA1053# GCN-NEXT: S_NOP 81054# GCN-NEXT: V_MFMA1055name: sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap1056body: |1057 bb.0:1058 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_16X16X1F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec1059 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1060...1061# GCN-LABEL: name: sgemm32x32_mfma_write_agpr_dgemm_mfma_read_overlap1062# GCN: V_MFMA1063# GCN-NEXT: S_NOP 151064# GCN-NEXT: S_NOP 01065# GCN-NEXT: V_MFMA1066name: sgemm32x32_mfma_write_agpr_dgemm_mfma_read_overlap1067body: |1068 bb.0:1069 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = V_MFMA_F32_32X32X2F32_e64 $vgpr26, $vgpr27, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, 0, 0, 0, implicit $mode, implicit $exec1070 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr20_vgpr21, $vgpr20_vgpr21, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1071...1072# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_dmfma4x4_srca_read_overlap1073# GCN: V_MFMA1074# GCN-NEXT: S_NOP 41075# GCN-NEXT: V_MFMA1076name: sgemm4x4_mfma_write_agpr_dmfma4x4_srca_read_overlap1077body: |1078 bb.0:1079 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1080 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec1081...1082# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_dmfma16x16_srca_read_overlap1083# GCN: V_MFMA1084# GCN-NEXT: S_NOP 41085# GCN-NEXT: V_MFMA1086name: sgemm4x4_mfma_write_agpr_dmfma16x16_srca_read_overlap1087body: |1088 bb.0:1089 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr1, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1090 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec1091...1092# GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_srca_read_overlap1093# GCN: V_MFMA1094# GCN-NEXT: S_NOP 51095# GCN-NEXT: V_MFMA1096name: dgemm4x4_mfma_write_agpr_mfma_srca_read_overlap1097body: |1098 bb.0:1099 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1100 $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $agpr2_agpr3, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec1101...1102# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap1103# GCN: V_MFMA1104# GCN-NEXT: S_NOP 101105# GCN-NEXT: V_MFMA1106name: dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap1107body: |1108 bb.0:1109 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec1110 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr10_vgpr11, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec1111...1112# GCN-LABEL: name: dgemm4x4_mfma_write_agpr_sgemm_mfma_srca_read_overlap1113# GCN: V_MFMA1114# GCN-NEXT: S_NOP 51115# GCN-NEXT: V_MFMA1116name: dgemm4x4_mfma_write_agpr_sgemm_mfma_srca_read_overlap1117body: |1118 bb.0:1119 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1120 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $agpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec1121...1122# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap1123# GCN: V_MFMA1124# GCN-NEXT: S_NOP 101125# GCN-NEXT: V_MFMA1126name: dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap1127body: |1128 bb.0:1129 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec1130 $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $agpr4, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec1131...1132# GCN-LABEL: name: sgemm4x4_mfma_write_agpr_dgemm_mfma_srca_read_overlap1133# GCN: V_MFMA1134# GCN-NEXT: S_NOP 41135# GCN-NEXT: V_MFMA1136name: sgemm4x4_mfma_write_agpr_dgemm_mfma_srca_read_overlap1137body: |1138 bb.0:1139 $agpr0_agpr1_agpr2_agpr3 = V_MFMA_F32_4X4X1F32_e64 $vgpr4, $vgpr0, $agpr0_agpr1_agpr2_agpr3, 0, 0, 0, implicit $mode, implicit $exec1140 $vgpr4_vgpr5 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $agpr0_agpr1, $vgpr4_vgpr5, $vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec1141...1142# GCN-LABEL: name: dgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap1143# GCN: V_MFMA1144# GCN-NEXT: S_NOP 51145# GCN-NEXT: V_MFMA1146name: dgemm4x4_mfma_write_agpr_mfma_srcb_read_overlap1147body: |1148 bb.0:1149 $agpr2_agpr3 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1150 $vgpr2_vgpr3 = V_MFMA_F64_4X4X4F64_vgprcd_e64 $vgpr0_vgpr1, $agpr2_agpr3, $vgpr0_vgpr1, 0, 0, 0, implicit $mode, implicit $exec1151...1152# GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap1153# GCN: V_MFMA1154# GCN-NEXT: S_NOP 101155# GCN-NEXT: V_MFMA1156name: dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap1157body: |1158 bb.0:1159 $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17, 0, 0, 0, implicit $mode, implicit $exec1160 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = V_MFMA_F64_16X16X4F64_vgprcd_e64 $vgpr10_vgpr11, $agpr0_agpr1, $vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, 0, implicit $mode, implicit $exec1161...1162# GCN-LABEL: name: dmfma4x4_write_agpr_flat_read_overlap1163# GCN: V_MFMA1164# GCN-NEXT: S_NOP 81165# GCN-NEXT: FLAT_STORE_DWORD1166name: dmfma4x4_write_agpr_flat_read_overlap1167body: |1168 bb.0:1169 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1170 FLAT_STORE_DWORD $vgpr0_vgpr1, $agpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr1171...1172# GCN-LABEL: name: dmfma4x4_write_agpr_flat_read_full1173# GCN: V_MFMA1174# GCN-NEXT: S_NOP 81175# GCN-NEXT: FLAT_STORE_DWORD1176name: dmfma4x4_write_agpr_flat_read_full1177body: |1178 bb.0:1179 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1180 FLAT_STORE_DWORDX2 $vgpr0_vgpr1, $agpr4_agpr5, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr1181...1182# GCN-LABEL: name: dmfma16x16_write_agpr_flat_read1183# GCN: V_MFMA1184# GCN-NEXT: S_NOP 151185# GCN-NEXT: S_NOP 11186# GCN-NEXT: FLAT_STORE_DWORD1187name: dmfma16x16_write_agpr_flat_read1188body: |1189 bb.0:1190 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1191 FLAT_STORE_DWORD $vgpr0_vgpr1, $agpr4, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr1192...1193# GCN-LABEL: name: dmfma4x4_write_agpr_valu_read1194# GCN: V_MFMA1195# GCN-NEXT: S_NOP 51196# GCN-NEXT: V_ACCVGPR_READ_B32_e641197name: dmfma4x4_write_agpr_valu_read1198body: |1199 bb.0:1200 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1201 $vgpr5 = V_ACCVGPR_READ_B32_e64 $agpr5, implicit $exec1202...1203# GCN-LABEL: name: dmfma16x16_write_agpr_valu_read1204# GCN: V_MFMA1205# GCN-NEXT: S_NOP 101206# GCN-NEXT: V_ACCVGPR_READ_B32_e641207name: dmfma16x16_write_agpr_valu_read1208body: |1209 bb.0:1210 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1211 $vgpr12 = V_ACCVGPR_READ_B32_e64 $agpr4, implicit $exec1212...1213# GCN-LABEL: name: dmfma4x4_write_agpr_valu_write1214# GCN: V_MFMA1215# GCN-NEXT: S_NOP 51216# GCN-NEXT: V_ACCVGPR_WRITE_B32_e641217name: dmfma4x4_write_agpr_valu_write1218body: |1219 bb.0:1220 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1221 $agpr4 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec1222...1223# GCN-LABEL: name: dmfma16x16_write_agpr_valu_write1224# GCN: V_MFMA1225# GCN-NEXT: S_NOP 101226# GCN-NEXT: V_ACCVGPR_WRITE_B32_e641227name: dmfma16x16_write_agpr_valu_write1228body: |1229 bb.0:1230 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1231 $agpr3 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec1232...1233# GCN-LABEL: name: dmfma4x4_read_srcc_agpr_valu_write1234# GCN: V_MFMA1235# GCN-NEXT: V_ACCVGPR_WRITE_B32_e641236name: dmfma4x4_read_srcc_agpr_valu_write1237body: |1238 bb.0:1239 $agpr4_agpr5 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1240 $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec1241...1242# GCN-LABEL: name: dmfma16x16_read_srcc_agpr_valu_write1243# GCN: V_MFMA1244# GCN-NEXT: V_ACCVGPR_WRITE_B32_e641245name: dmfma16x16_read_srcc_agpr_valu_write1246body: |1247 bb.0:1248 $agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9 = V_MFMA_F64_16X16X4F64_e64 $vgpr10_vgpr11, $vgpr10_vgpr11, $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, 0, 0, 0, implicit $mode, implicit $exec1249 $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $mode, implicit $exec1250...1251# GCN-LABEL: name: dgemm_accvgr_to_fma641252# GCN: V_MFMA1253# GCN-NEXT: S_NOP 11254# GCN-NEXT: V_FMA_F64_e641255name: dgemm_accvgr_to_fma641256body: |1257 bb.0:1258 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $vgpr0_vgpr1, $vgpr0_vgpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1259 $vgpr4_vgpr5 = V_FMA_F64_e64 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, $vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec1260...1261# GCN-LABEL: name: dgemm_accvgr_to_fmac641262# GCN: V_MFMA1263# GCN-NEXT: S_NOP 11264# GCN-NEXT: V_FMAC_F641265name: dgemm_accvgr_to_fmac641266body: |1267 bb.0:1268 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1269 $vgpr4_vgpr5 = V_FMAC_F64_e32 $vgpr4_vgpr5, $vgpr4_vgpr5, $vgpr4_vgpr5, implicit $mode, implicit $exec1270...1271# GCN-LABEL: name: dgemm_between_valu_write_buffer_store1272# GCN: V_MOV_B32_e321273# GCN-NEXT: V_MFMA1274# GCN-NEXT: S_NOP 01275# GCN-NEXT: BUFFER_STORE_DWORD1276name: dgemm_between_valu_write_buffer_store1277body: |1278 bb.0:1279 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1280 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1281 1282 BUFFER_STORE_DWORDX2_OFFEN_exact $vgpr2_vgpr3, $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec1283...1284# GCN-LABEL: name: dgemm_between_valu_write_buffer_load1285# GCN: V_MOV_B32_e321286# GCN-NEXT: V_MFMA1287# GCN-NEXT: S_NOP 01288# GCN-NEXT: BUFFER_LOAD_DWORD1289name: dgemm_between_valu_write_buffer_load1290body: |1291 bb.0:1292 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1293 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1294 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN killed $vgpr0, killed $sgpr8_sgpr9_sgpr10_sgpr11, $sgpr3, 0, 0, 0, implicit $exec1295...1296# GCN-LABEL: name: dgemm_between_valu_write_global_store1297# GCN: V_MOV_B32_e321298# GCN-NEXT: V_MFMA1299# GCN-NEXT: S_NOP 01300# GCN-NEXT: GLOBAL_STORE_DWORD1301 1302name: dgemm_between_valu_write_global_store1303body: |1304 bb.0:1305 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1306 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1307 GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, killed renamable $vgpr0, 0, 0, implicit $exec1308...1309# GCN-LABEL: name: dgemm_between_valu_write_global_load1310# GCN: V_MOV_B32_e321311# GCN-NEXT: V_MOV_B32_e321312# GCN-NEXT: V_MFMA1313# GCN-NEXT: S_NOP 01314# GCN-NEXT: GLOBAL_LOAD_DWORD1315name: dgemm_between_valu_write_global_load1316body: |1317 bb.0:1318 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1319 $vgpr1 = V_MOV_B32_e32 0, implicit $exec1320 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1321 $vgpr2 = GLOBAL_LOAD_DWORD undef $vgpr0_vgpr1, 0, 0, implicit $exec1322...1323# GCN-LABEL: name: dgemm_between_valu_write_ds_write1324# GCN: V_MOV_B32_e321325# GCN-NEXT: V_MFMA1326# GCN-NEXT: S_NOP 01327# GCN-NEXT: DS_WRITE_B321328name: dgemm_between_valu_write_ds_write1329body: |1330 bb.0:1331 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1332 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1333 DS_WRITE_B32 $vgpr1, $vgpr0, 0, 0, implicit $m0, implicit $mode, implicit $exec1334...1335# GCN-LABEL: name: dgemm_between_valu_write_ds_read1336# GCN: V_MOV_B32_e321337# GCN-NEXT: V_MFMA1338# GCN-NEXT: S_NOP 01339# GCN-NEXT: DS_READ_B32_gfx91340name: dgemm_between_valu_write_ds_read1341body: |1342 bb.0:1343 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1344 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1345 $vgpr1 = DS_READ_B32_gfx9 $vgpr0, 0, 0, implicit $exec1346...1347# GCN-LABEL: name: dgemm_between_valu_write_flat_store1348# GCN: V_MOV_B32_e321349# GCN-NEXT: V_MOV_B32_e321350# GCN-NEXT: V_MFMA1351# GCN-NEXT: S_NOP 01352# GCN-NEXT: FLAT_STORE_DWORD1353name: dgemm_between_valu_write_flat_store1354body: |1355 bb.0:1356 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1357 $vgpr1 = V_MOV_B32_e32 0, implicit $exec1358 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1359 FLAT_STORE_DWORD $vgpr0_vgpr1, $agpr2, 0, 0, implicit $mode, implicit $exec, implicit $flat_scr1360...1361# GCN-LABEL: name: dgemm_between_valu_write_flat_load1362# GCN: V_MOV_B32_e321363# GCN-NEXT: V_MOV_B32_e321364# GCN-NEXT: V_MFMA1365# GCN-NEXT: S_NOP 01366# GCN-NEXT: FLAT_LOAD_DWORD1367name: dgemm_between_valu_write_flat_load1368body: |1369 bb.0:1370 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1371 $vgpr1 = V_MOV_B32_e32 0, implicit $exec1372 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1373 $vgpr2 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr1374...1375# GCN-LABEL: name: dgemm_between_valu_write_scratch_store1376# GCN: V_MOV_B32_e321377# GCN-NEXT: V_MFMA1378# GCN-NEXT: S_NOP 01379# GCN-NEXT: SCRATCH_STORE_DWORD1380name: dgemm_between_valu_write_scratch_store1381body: |1382 bb.0:1383 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1384 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1385 SCRATCH_STORE_DWORD $vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr1386...1387# GCN-LABEL: name: dgemm_between_valu_write_scratch_load1388# GCN: V_MOV_B32_e321389# GCN-NEXT: V_MFMA1390# GCN-NEXT: S_NOP 01391# GCN-NEXT: SCRATCH_LOAD_DWORD1392name: dgemm_between_valu_write_scratch_load1393body: |1394 bb.0:1395 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1396 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1397 $vgpr1 = SCRATCH_LOAD_DWORD undef $vgpr0, 0, 0, implicit $exec, implicit $flat_scr1398...1399# GCN-LABEL: name: dgemm_between_valu_write_buffer_store_fallthrough11400# GCN: V_MOV_B32_e321401# GCN-NEXT: V_MFMA1402# GCN: bb.1:1403# GCN-NEXT: S_NOP1404# GCN-NEXT: BUFFER_STORE_DWORD1405name: dgemm_between_valu_write_buffer_store_fallthrough11406body: |1407 bb.0:1408 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1409 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1410 1411 bb.1:1412 BUFFER_STORE_DWORDX2_OFFEN_exact $vgpr2_vgpr3, $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec1413...1414# GCN-LABEL: name: dgemm_between_valu_write_buffer_store_fallthrough21415# GCN: V_MOV_B32_e321416# GCN: bb.1:1417# GCN-NEXT: V_MFMA1418# GCN-NEXT: S_NOP1419# GCN-NEXT: BUFFER_STORE_DWORD1420name: dgemm_between_valu_write_buffer_store_fallthrough21421body: |1422 bb.0:1423 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1424 1425 bb.1:1426 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1427 BUFFER_STORE_DWORDX2_OFFEN_exact $vgpr2_vgpr3, $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec1428...1429# GCN-LABEL: name: dgemm_between_valu_write_buffer_store_fallthrough31430# GCN: V_MOV_B32_e321431# GCN: bb.1:1432# GCN: bb.2:1433# GCN-NEXT: V_MFMA1434# GCN-NEXT: S_NOP1435# GCN-NEXT: BUFFER_STORE_DWORD1436name: dgemm_between_valu_write_buffer_store_fallthrough31437body: |1438 bb.0:1439 $vgpr0 = V_MOV_B32_e32 0, implicit $exec1440 1441 bb.1:1442 1443 bb.2:1444 $agpr0_agpr1 = V_MFMA_F64_4X4X4F64_e64 $agpr0_agpr1, $agpr0_agpr1, $agpr0_agpr1, 0, 0, 0, implicit $mode, implicit $exec1445 BUFFER_STORE_DWORDX2_OFFEN_exact $vgpr2_vgpr3, $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec1446...1447