Author: theRonShark
Date: 2026-10-05T11:48:52Z
New Revision: 4ab5e4e472cd6aca4b89993d2a6db6c5197f7365

URL: 
https://github.com/llvm/llvm-project/commit/4ab5e4e472cd6aca4b89993d2a6db6c5197f7365
DIFF: 
https://github.com/llvm/llvm-project/commit/4ab5e4e472cd6aca4b89993d2a6db6c5197f7365.diff

LOG: Revert "Revert "[AMDGPU] Disable V_WMMA_F{16|32}_16X16X128_[BF]P8_[BF]P8 
on gfx1250-strict"" (#229044)

Reverts llvm/llvm-project#228932

apologies, this was not the problematic commit, restoring

Added: 
    

Modified: 
    clang/include/clang/Basic/BuiltinsAMDGPU.td
    clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl
    llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    llvm/lib/Target/AMDGPU/AMDGPU.td
    llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    llvm/test/MC/AMDGPU/gfx1250-strict_err.s

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/BuiltinsAMDGPU.td 
b/clang/include/clang/Basic/BuiltinsAMDGPU.td
index c66f8c10a84c7..483df0561fc20 100644
--- a/clang/include/clang/Basic/BuiltinsAMDGPU.td
+++ b/clang/include/clang/Basic/BuiltinsAMDGPU.td
@@ -1236,19 +1236,19 @@ def __builtin_amdgcn_wmma_i32_16x16x64_iu8 : 
AMDGPUBuiltin<"_ExtVector<8, int>(_
   let Documentation = [DocWMMA_i32_16x16x64_iu8_GFX1250];
   let ArgNames = ["a_sign", "a", "b_sign", "b", "c", "matrix_a_reuse", 
"matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
_Float16>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, 
_ExtVector<8, _Float16>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
@@ -1256,19 +1256,19 @@ def __builtin_amdgcn_wmma_f32_16x16x128_f8f6f4 : 
AMDGPUBuiltin<"_ExtVector<8, fl
   let Documentation = [DocWMMA_f8f6f4_GFX1250];
   let ArgNames = ["matrix_a_fmt", "a", "matrix_b_fmt", "b", "c_mod", "c"];
 }
-def __builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }
-def __builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-n16-insts,wavefrontsize32"> {
+def __builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8 : AMDGPUBuiltin<"_ExtVector<8, 
float>(_ExtVector<16, int>, _ExtVector<16, int>, _Constant short, _ExtVector<8, 
float>, _Constant bool, _Constant bool)", [Const], 
"wmma-16x16x128fp8-insts,wavefrontsize32"> {
   let Documentation = [DocWMMA_fp8_16x16x128_GFX1250];
   let ArgNames = ["a", "b", "c_mod", "c", "matrix_a_reuse", "matrix_b_reuse"];
 }

diff  --git a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl 
b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl
index 2e031975f09c1..e80de1ab6dd34 100644
--- a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl
+++ b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl
@@ -6,12 +6,22 @@ typedef unsigned int __attribute__((ext_vector_type(2))) 
uint2;
 typedef unsigned int __attribute__((ext_vector_type(3))) uint3;
 typedef float  v16f  __attribute__((ext_vector_type(16)));
 typedef float  v8f   __attribute__((ext_vector_type(8)));
+typedef half   v8h   __attribute__((ext_vector_type(8)));
 typedef int    v16i   __attribute__((ext_vector_type(16)));
 typedef int    v8i   __attribute__((ext_vector_type(8)));
 
-void test(global v16f* out, v16i a, v8i b, v16f c, int scale_src0, int 
scale_src1, uint scale, uint src1, uint2 src2, uint3 src3)
+void test(global v16f* out, v16i a, v8i b, v16f c, int scale_src0, int 
scale_src1, uint scale, uint src1, uint2 src2, uint3 src3,
+          global v8h* out8h, global v8f* out8f, v16i a16i, v16i b16i, v8h c8h, 
v8f c8f)
 {
   *out = __builtin_amdgcn_wmma_f32_32x16x128_f4(a, b, false, c); // 
expected-error {{'__builtin_amdgcn_wmma_f32_32x16x128_f4' needs target feature 
wmma-f4-insts}}
   *out = __builtin_amdgcn_wmma_scale_f32_32x16x128_f4(a, b, false, c, 1, 0, 
scale_src0, 2, 0, scale_src1, 1, 0); // expected-error 
{{'__builtin_amdgcn_wmma_scale_f32_32x16x128_f4' needs target feature 
wmma-f4-insts}}
   *out = __builtin_amdgcn_wmma_scale16_f32_32x16x128_f4(a, b, false, c, 1, 0, 
scale_src0, 2, 0, scale_src1, 1, 0); // expected-error 
{{'__builtin_amdgcn_wmma_scale16_f32_32x16x128_f4' needs target feature 
wmma-f4-insts}}
+  *out8h = __builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8(a16i, b16i, 0, c8h, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f16_16x16x128_fp8_fp8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8h = __builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8(a16i, b16i, 0, c8h, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f16_16x16x128_fp8_bf8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8h = __builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8(a16i, b16i, 0, c8h, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f16_16x16x128_bf8_fp8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8h = __builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8(a16i, b16i, 0, c8h, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f16_16x16x128_bf8_bf8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8f = __builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8(a16i, b16i, 0, c8f, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f32_16x16x128_fp8_fp8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8f = __builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8(a16i, b16i, 0, c8f, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f32_16x16x128_fp8_bf8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8f = __builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8(a16i, b16i, 0, c8f, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f32_16x16x128_bf8_fp8' 
needs target feature wmma-16x16x128fp8-insts}}
+  *out8f = __builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8(a16i, b16i, 0, c8f, 
false, true); // expected-error {{'__builtin_amdgcn_wmma_f32_16x16x128_bf8_bf8' 
needs target feature wmma-16x16x128fp8-insts}}
 }

diff  --git a/llvm/include/llvm/IR/IntrinsicsAMDGPU.td 
b/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
index 623e8b7f0647c..fa29d08c91d7b 100644
--- a/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+++ b/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
@@ -4327,6 +4327,13 @@ let TargetFeatures = "wmma-n16-insts" in {
   def int_amdgcn_wmma_f16_16x16x64_fp8_bf8  : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f16_16x16x64_bf8_fp8  : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f16_16x16x64_bf8_bf8  : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
+  def int_amdgcn_wmma_i32_16x16x64_iu8      : 
AMDGPUWmmaIntrinsicModsABClamp<llvm_anyint_ty, llvm_anyint_ty>;
+  def int_amdgcn_wmma_f32_16x16x128_f8f6f4  : 
AMDGPUWmmaIntrinsicModsC_MatrixFMT;
+  def int_amdgcn_wmma_scale_f32_16x16x128_f8f6f4   : 
AMDGPUWmmaScaleIntrinsicModsC<llvm_i32_ty>;
+  def int_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4 : 
AMDGPUWmmaScaleIntrinsicModsC<llvm_i64_ty>;
+} // End TargetFeatures = "wmma-n16-insts"
+
+let TargetFeatures = "wmma-16x16x128fp8-insts" in {
   def int_amdgcn_wmma_f16_16x16x128_fp8_fp8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f16_16x16x128_fp8_bf8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f16_16x16x128_bf8_fp8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
@@ -4335,11 +4342,7 @@ let TargetFeatures = "wmma-n16-insts" in {
   def int_amdgcn_wmma_f32_16x16x128_fp8_bf8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f32_16x16x128_bf8_fp8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
   def int_amdgcn_wmma_f32_16x16x128_bf8_bf8 : 
AMDGPUWmmaIntrinsicModsC<llvm_anyint_ty, llvm_anyfloat_ty>;
-  def int_amdgcn_wmma_i32_16x16x64_iu8      : 
AMDGPUWmmaIntrinsicModsABClamp<llvm_anyint_ty, llvm_anyint_ty>;
-  def int_amdgcn_wmma_f32_16x16x128_f8f6f4  : 
AMDGPUWmmaIntrinsicModsC_MatrixFMT;
-  def int_amdgcn_wmma_scale_f32_16x16x128_f8f6f4   : 
AMDGPUWmmaScaleIntrinsicModsC<llvm_i32_ty>;
-  def int_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4 : 
AMDGPUWmmaScaleIntrinsicModsC<llvm_i64_ty>;
-} // End TargetFeatures = "wmma-n16-insts"
+}
 
 let TargetFeatures = "wmma-f4-insts" in {
   def int_amdgcn_wmma_f32_32x16x128_f4       : 
AMDGPUWmmaIntrinsicF4ModsC<llvm_anyint_ty, llvm_anyint_ty, llvm_anyfloat_ty>;

diff  --git a/llvm/lib/Target/AMDGPU/AMDGPU.td 
b/llvm/lib/Target/AMDGPU/AMDGPU.td
index 90a0871ff3669..d552eae9c08d3 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPU.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPU.td
@@ -1003,6 +1003,10 @@ defm WMMAF4Insts : 
AMDGPUSubtargetFeature<"wmma-f4-insts",
   "Has WMMA_*_F4 instructions"
 >;
 
+defm WMMA16x16x128FP8Insts : AMDGPUSubtargetFeature<"wmma-16x16x128fp8-insts",
+  "Has 16x16x128 FP8/BF8 WMMA instructions"
+>;
+
 defm SWMMACGfx1200Insts : AMDGPUSubtargetFeature<"swmmac-gfx1200-insts",
   "Has GFX1200 SWMMAC instructions"
 >;
@@ -2598,6 +2602,7 @@ def FeatureISAVersion12_50 : FeatureSet<
    FeatureLDSBankCount64,
    FeatureWMMAN16Insts,
    FeatureWMMAF4Insts,
+   FeatureWMMA16x16x128FP8Insts,
    FeatureVOP3PX2IncrementsVaVdstTwice,
    FeatureSetregVGPRMSBFixup,
    FeatureCubeInsts,
@@ -2634,6 +2639,7 @@ def FeatureISAVersion12_51 : FeatureSet<
    FeatureLDSBankCount64,
    FeatureWMMAN16Insts,
    FeatureWMMAF4Insts,
+   FeatureWMMA16x16x128FP8Insts,
    FeatureFullRate64Ops,
    FeatureVOP3PX2IncrementsVaVdstTwice,
    FeatureDPALU_DPP,
@@ -3385,7 +3391,7 @@ def AMDGPUFrontendVisibleFeatures {
   FeatureTDMInsts, FeatureTanhInsts, FeatureTensorCvtLutInsts,
   FeatureTransposeLoadF4F6Insts, FeatureVMemToLDSLoad, FeatureVmemPrefInsts,
   FeatureWaveMatchInsts, FeatureWMMA128bInsts, FeatureWMMA256bInsts,
-  FeatureWMMAN16Insts, FeatureWMMAF4Insts, FeatureXF32Insts,
+  FeatureWMMAN16Insts, FeatureWMMAF4Insts, FeatureWMMA16x16x128FP8Insts, 
FeatureXF32Insts,
   FeatureWavefrontSize32, FeatureWavefrontSize64, FeatureSupportsWGP,
   FeatureSupportsWave32, FeatureFastFMAF32, FeatureFastDenormalF32,
   FeatureSupportsXNACK, FeatureSupportsSRAMECC, FeatureXNACKOnOffModes,

diff  --git a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td 
b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
index 7d73bb328c590..7a0f162242e1c 100644
--- a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+++ b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
@@ -2243,6 +2243,13 @@ let WaveSizePredicate = isWave32 in {
       defm V_WMMA_I32_16X16X64_IU8_w32      : 
WMMAInstGFX12<"v_wmma_i32_16x16x64_iu8",      I32_IU8X64_WMMA_w32, "_w32">;
       defm V_WMMA_F32_16X16X32_F16_w32      : 
WMMAInstGFX12<"v_wmma_f32_16x16x32_f16",      F32_F16X32_WMMA_w32, "_w32">;
       defm V_WMMA_F16_16X16X32_F16_w32      : 
WMMAInstGFX12<"v_wmma_f16_16x16x32_f16",      F16_F16X32_WMMA_w32, "_w32">;
+
+      defm V_WMMA_F32_16X16X128_F8F6F4         : 
WMMAInst_SrcFormats_mc<"v_wmma_f32_16x16x128_f8f6f4", "F32_16X16X128_F8F6F4">;
+      defm V_WMMA_SCALE_F32_16X16X128_F8F6F4   : 
WMMAInst_SrcFormats_mc<"v_wmma_scale_f32_16x16x128_f8f6f4", 
"F32_16X16X128_F8F6F4_SCALE">;
+      defm V_WMMA_SCALE16_F32_16X16X128_F8F6F4 : 
WMMAInst_SrcFormats_mc<"v_wmma_scale16_f32_16x16x128_f8f6f4", 
"F32_16X16X128_F8F6F4_SCALE16">;
+    } // End SubtargetPredicate = HasWMMAN16Insts
+
+    let SubtargetPredicate = HasWMMA16x16x128FP8Insts in {
       defm V_WMMA_F16_16X16X128_FP8_FP8_w32 : 
WMMAInstGFX12<"v_wmma_f16_16x16x128_fp8_fp8", F16_FP8BF8X128_WMMA_w32, "_w32">;
       defm V_WMMA_F16_16X16X128_FP8_BF8_w32 : 
WMMAInstGFX12<"v_wmma_f16_16x16x128_fp8_bf8", F16_FP8BF8X128_WMMA_w32, "_w32">;
       defm V_WMMA_F16_16X16X128_BF8_FP8_w32 : 
WMMAInstGFX12<"v_wmma_f16_16x16x128_bf8_fp8", F16_FP8BF8X128_WMMA_w32, "_w32">;
@@ -2251,11 +2258,7 @@ let WaveSizePredicate = isWave32 in {
       defm V_WMMA_F32_16X16X128_FP8_BF8_w32 : 
WMMAInstGFX12<"v_wmma_f32_16x16x128_fp8_bf8", F32_FP8BF8X128_WMMA_w32, "_w32">;
       defm V_WMMA_F32_16X16X128_BF8_FP8_w32 : 
WMMAInstGFX12<"v_wmma_f32_16x16x128_bf8_fp8", F32_FP8BF8X128_WMMA_w32, "_w32">;
       defm V_WMMA_F32_16X16X128_BF8_BF8_w32 : 
WMMAInstGFX12<"v_wmma_f32_16x16x128_bf8_bf8", F32_FP8BF8X128_WMMA_w32, "_w32">;
-
-      defm V_WMMA_F32_16X16X128_F8F6F4         : 
WMMAInst_SrcFormats_mc<"v_wmma_f32_16x16x128_f8f6f4", "F32_16X16X128_F8F6F4">;
-      defm V_WMMA_SCALE_F32_16X16X128_F8F6F4   : 
WMMAInst_SrcFormats_mc<"v_wmma_scale_f32_16x16x128_f8f6f4", 
"F32_16X16X128_F8F6F4_SCALE">;
-      defm V_WMMA_SCALE16_F32_16X16X128_F8F6F4 : 
WMMAInst_SrcFormats_mc<"v_wmma_scale16_f32_16x16x128_f8f6f4", 
"F32_16X16X128_F8F6F4_SCALE16">;
-    } // End SubtargetPredicate = HasWMMAN16Insts
+    } // End SubtargetPredicate = HasWMMA16x16x128FP8Insts
 
     let SubtargetPredicate = HasWMMAF4Insts in {
       defm V_WMMA_F32_32X16X128_F4_w32      : 
WMMAInstGFX12<"v_wmma_f32_32x16x128_f4",      F32_32X16X128_F4_WMMA_w32, 
"_w32">;
@@ -2445,6 +2448,15 @@ let SubtargetPredicate = HasWMMAN16Insts in {
   defm : WMMAPat<"V_WMMA_I32_16X16X64_IU8_w32",         
int_amdgcn_wmma_i32_16x16x64_iu8,         I32_IU8X64_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F32_16X16X32_F16_w32",         
int_amdgcn_wmma_f32_16x16x32_f16,         F32_F16X32_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F16_16X16X32_F16_w32",         
int_amdgcn_wmma_f16_16x16x32_f16,         F16_F16X32_WMMA_w32>;
+
+  foreach I = ["f8_f8", "f8_f6", "f8_f4", "f6_f8", "f6_f6", "f6_f4", "f4_f8", 
"f4_f6", "f4_f4"] in {
+    defm : WMMAPat<"V_WMMA_F32_16X16X128_F8F6F4_" # I # "_w32",         
int_amdgcn_wmma_f32_16x16x128_f8f6f4,         
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_" # I # "_w32")>;
+    defm : WMMAPat<"V_WMMA_SCALE_F32_16X16X128_F8F6F4_" # I # "_w32",   
int_amdgcn_wmma_scale_f32_16x16x128_f8f6f4,   
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_SCALE_" # I # "_w32")>;
+    defm : WMMAPat<"V_WMMA_SCALE16_F32_16X16X128_F8F6F4_" # I # "_w32", 
int_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4, 
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_SCALE16_" # I # "_w32")>;
+  }
+} // End SubtargetPredicate = HasWMMAN16Insts
+
+let SubtargetPredicate = HasWMMA16x16x128FP8Insts in {
   defm : WMMAPat<"V_WMMA_F16_16X16X128_FP8_FP8_w32",    
int_amdgcn_wmma_f16_16x16x128_fp8_fp8,    F16_FP8BF8X128_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F16_16X16X128_FP8_BF8_w32",    
int_amdgcn_wmma_f16_16x16x128_fp8_bf8,    F16_FP8BF8X128_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F16_16X16X128_BF8_FP8_w32",    
int_amdgcn_wmma_f16_16x16x128_bf8_fp8,    F16_FP8BF8X128_WMMA_w32>;
@@ -2453,13 +2465,7 @@ let SubtargetPredicate = HasWMMAN16Insts in {
   defm : WMMAPat<"V_WMMA_F32_16X16X128_FP8_BF8_w32",    
int_amdgcn_wmma_f32_16x16x128_fp8_bf8,    F32_FP8BF8X128_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F32_16X16X128_BF8_FP8_w32",    
int_amdgcn_wmma_f32_16x16x128_bf8_fp8,    F32_FP8BF8X128_WMMA_w32>;
   defm : WMMAPat<"V_WMMA_F32_16X16X128_BF8_BF8_w32",    
int_amdgcn_wmma_f32_16x16x128_bf8_bf8,    F32_FP8BF8X128_WMMA_w32>;
-
-  foreach I = ["f8_f8", "f8_f6", "f8_f4", "f6_f8", "f6_f6", "f6_f4", "f4_f8", 
"f4_f6", "f4_f4"] in {
-    defm : WMMAPat<"V_WMMA_F32_16X16X128_F8F6F4_" # I # "_w32",         
int_amdgcn_wmma_f32_16x16x128_f8f6f4,         
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_" # I # "_w32")>;
-    defm : WMMAPat<"V_WMMA_SCALE_F32_16X16X128_F8F6F4_" # I # "_w32",   
int_amdgcn_wmma_scale_f32_16x16x128_f8f6f4,   
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_SCALE_" # I # "_w32")>;
-    defm : WMMAPat<"V_WMMA_SCALE16_F32_16X16X128_F8F6F4_" # I # "_w32", 
int_amdgcn_wmma_scale16_f32_16x16x128_f8f6f4, 
!cast<VOP3PWMMA_Profile>("F32_16X16X128_F8F6F4_SCALE16_" # I # "_w32")>;
-  }
-} // End SubtargetPredicate = HasWMMAN16Insts
+} // End SubtargetPredicate = HasWMMA16x16x128FP8Insts
 
 let SubtargetPredicate = HasWMMAF4Insts in {
   defm : WMMAPat<"V_WMMA_F32_32X16X128_F4_w32",         
int_amdgcn_wmma_f32_32x16x128_f4,         F32_32X16X128_F4_WMMA_w32>;

diff  --git a/llvm/test/MC/AMDGPU/gfx1250-strict_err.s 
b/llvm/test/MC/AMDGPU/gfx1250-strict_err.s
index ab0f05818a5f3..17c7337c8cb25 100644
--- a/llvm/test/MC/AMDGPU/gfx1250-strict_err.s
+++ b/llvm/test/MC/AMDGPU/gfx1250-strict_err.s
@@ -11,6 +11,30 @@ v_wmma_scale_f32_32x16x128_f4 v[0:15], v[8:23], v[0:7], 
v[0:15], s0, s0
 v_wmma_scale16_f32_32x16x128_f4 v[0:15], v[8:23], v[0:7], v[0:15], s[0:1], 
s[0:1]
 // GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_scale16_f32_32x16x128_f4
 
+v_wmma_f16_16x16x128_fp8_fp8 v[16:19], v[0:15], v[8:23], v[16:19]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f16_16x16x128_fp8_fp8
+
+v_wmma_f16_16x16x128_fp8_bf8 v[16:19], v[0:15], v[8:23], v[16:19]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f16_16x16x128_fp8_bf8
+
+v_wmma_f16_16x16x128_bf8_fp8 v[16:19], v[0:15], v[8:23], v[16:19]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f16_16x16x128_bf8_fp8
+
+v_wmma_f16_16x16x128_bf8_bf8 v[16:19], v[0:15], v[8:23], v[16:19]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f16_16x16x128_bf8_bf8
+
+v_wmma_f32_16x16x128_fp8_fp8 v[16:23], v[0:15], v[8:23], v[16:23]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f32_16x16x128_fp8_fp8
+
+v_wmma_f32_16x16x128_fp8_bf8 v[16:23], v[0:15], v[8:23], v[16:23]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f32_16x16x128_fp8_bf8
+
+v_wmma_f32_16x16x128_bf8_fp8 v[16:23], v[0:15], v[8:23], v[16:23]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f32_16x16x128_bf8_fp8
+
+v_wmma_f32_16x16x128_bf8_bf8 v[16:23], v[0:15], v[8:23], v[16:23]
+// GFX1250S-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU 
(gfx1250-strict): v_wmma_f32_16x16x128_bf8_bf8
+
 v_cvt_scale_pk16_f16_fp6 v[10:17], v[20:22], v8 scale_sel:8
 // GFX1250-ERR: :[[@LINE-1]]:49: error: scale_sel maximum supported value is 7
 // GFX1250S-ERR: :[[@LINE-2]]:49: error: scale_sel maximum supported value is 3


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to