[llvm] e602cd1 - [AMDGPU] Add a few wmma co-execution hazard checks, NFC (#203658)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 12 19:07:28 PDT 2026
Author: Changpeng Fang
Date: 2026-06-12T19:07:24-07:00
New Revision: e602cd1acc04bd1a16a21d4d1d2d81037fa306f2
URL: https://github.com/llvm/llvm-project/commit/e602cd1acc04bd1a16a21d4d1d2d81037fa306f2
DIFF: https://github.com/llvm/llvm-project/commit/e602cd1acc04bd1a16a21d4d1d2d81037fa306f2.diff
LOG: [AMDGPU] Add a few wmma co-execution hazard checks, NFC (#203658)
This is to reflect the gfx1251 update regarding wmma*8f6f4 with
matrix format as F4.
Also fix a comment in GCNHazardRecognizer.cpp
Added:
Modified:
llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
index e2c6b25dc4319..25a7ca7d957b0 100644
--- a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
@@ -2099,7 +2099,7 @@ static bool isCoexecutableVALUInst(const MachineInstr &MI) {
// V_SWMMAC_*_16X16X64_{F16,BF16}
// V_SWMMAC_{F32,F16}_16X16X128_{FP8,BF8}*
//
-// Category: 32 Pass GFX1251 WMMA with latency 32
+// Category 5: 32 Pass GFX1251 WMMA with latency 32
// V_WMMA_F32_16x16x128_F8F6F4 (not all F4)
// V_WMMA_{F32,F16}_16X16X128_{FP8,BF8}*
// V_WMMA_F32_32X16X128_F4
diff --git a/llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir b/llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
index 990d218f8cf1d..993120d0a15c0 100644
--- a/llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
+++ b/llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
@@ -648,6 +648,368 @@ body: |
$vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
...
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_valus_in_between
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_valus_in_between
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ ; GFX1250-NEXT: $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ ; GFX1250-NEXT: $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ ; GFX1250-NEXT: $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_valus_in_between
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ ; GFX1251-NEXT: $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ ; GFX1251-NEXT: $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ ; GFX1251-NEXT: $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_salus_in_between
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_salus_in_between
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: $sgpr0 = S_MOV_B32 0
+ ; GFX1250-NEXT: $sgpr1 = S_MOV_B32 1
+ ; GFX1250-NEXT: $sgpr2 = S_MOV_B32 2
+ ; GFX1250-NEXT: $sgpr3 = S_MOV_B32 3
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_Use1_with_4_salus_in_between
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: $sgpr0 = S_MOV_B32 0
+ ; GFX1251-NEXT: $sgpr1 = S_MOV_B32 1
+ ; GFX1251-NEXT: $sgpr2 = S_MOV_B32 2
+ ; GFX1251-NEXT: $sgpr3 = S_MOV_B32 3
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ $sgpr0 = S_MOV_B32 0
+ $sgpr1 = S_MOV_B32 1
+ $sgpr2 = S_MOV_B32 2
+ $sgpr3 = S_MOV_B32 3
+ $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_D0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_A0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_A0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_A0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_B0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_B0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F8_F4_B0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 0, 4, 0, 0, implicit $exec
+ $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_valus_in_between
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_valus_in_between
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ ; GFX1250-NEXT: $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ ; GFX1250-NEXT: $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ ; GFX1250-NEXT: $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ ; GFX1250-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_valus_in_between
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ ; GFX1251-NEXT: $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ ; GFX1251-NEXT: $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ ; GFX1251-NEXT: $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr40 = V_MOV_B32_e32 40, implicit $exec
+ $vgpr41 = V_MOV_B32_e32 41, implicit $exec
+ $vgpr42 = V_MOV_B32_e32 42, implicit $exec
+ $vgpr43 = V_MOV_B32_e32 43, implicit $exec
+ $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_salus_in_between
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_salus_in_between
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: $sgpr0 = S_MOV_B32 0
+ ; GFX1250-NEXT: $sgpr1 = S_MOV_B32 1
+ ; GFX1250-NEXT: $sgpr2 = S_MOV_B32 2
+ ; GFX1250-NEXT: $sgpr3 = S_MOV_B32 3
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Use1_with_4_salus_in_between
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: $sgpr0 = S_MOV_B32 0
+ ; GFX1251-NEXT: $sgpr1 = S_MOV_B32 1
+ ; GFX1251-NEXT: $sgpr2 = S_MOV_B32 2
+ ; GFX1251-NEXT: $sgpr3 = S_MOV_B32 3
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $sgpr0 = S_MOV_B32 0
+ $sgpr1 = S_MOV_B32 1
+ $sgpr2 = S_MOV_B32 2
+ $sgpr3 = S_MOV_B32 3
+ $vgpr48 = V_ADD_F32_e32 $vgpr32, $vgpr47, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr32 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_A0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_A0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_A0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr0 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_B0_overlaps_D1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_B0_overlaps_D1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_B0_overlaps_D1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr16 = V_ADD_F32_e32 $vgpr47, $vgpr48, implicit $mode, implicit $exec
+...
+
---
name: test_wmma_I32_16x16x64_IU8_D0_overlaps_Use1
body: |
diff --git a/llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir b/llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
index 306ea07a19ad5..7c8c05e786dcd 100644
--- a/llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
+++ b/llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
@@ -1548,6 +1548,93 @@ body: |
$vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 = V_SWMMAC_F32_16X16X128_FP8_FP8_w32_twoaddr killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, killed $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55, killed $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33, 0, 0, 0, implicit $exec
...
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_A1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_A1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: early-clobber $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_A1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: early-clobber $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_B1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_B1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: early-clobber $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_B1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: early-clobber $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, 8, killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, 1, 2, 0, 0, implicit $exec
+...
+
+---
+name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Index1
+body: |
+ bb.0:
+ ; GFX1250-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Index1
+ ; GFX1250: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1250-NEXT: early-clobber $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 = V_SWMMAC_F32_16X16X128_FP8_FP8_w32_twoaddr killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, killed $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55, killed $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33, 0, 0, 0, implicit $exec
+ ;
+ ; GFX1251-LABEL: name: test_wmma_F32_16x16x128_F8F6F4_F4_D0_overlaps_Index1
+ ; GFX1251: early-clobber $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: V_NOP_e32 implicit $exec
+ ; GFX1251-NEXT: early-clobber $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 = V_SWMMAC_F32_16X16X128_FP8_FP8_w32_twoaddr killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, killed $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55, killed $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33, 0, 0, 0, implicit $exec
+ $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39 = V_WMMA_F32_16X16X128_F8F6F4_f8_f8_w32_twoaddr killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, 8, killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39, 4, 4, 0, 0, implicit $exec
+ $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 = V_SWMMAC_F32_16X16X128_FP8_FP8_w32_twoaddr killed $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, killed $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55, killed $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, killed $vgpr32_vgpr33, 0, 0, 0, implicit $exec
+...
+
---
name: test_wmma_scale_F32_16x16x128_F8F6F4_F8_D0_overlaps_A1
body: |
More information about the llvm-commits
mailing list