From 1e75668821f7c2abfdb4a25af76239b9120ae0ca Mon Sep 17 00:00:00 2001 From: Dmitry Preobrazhensky Date: Thu, 8 Oct 2020 13:34:52 +0300 Subject: [PATCH] [AMDGPU][MC][GFX1030] Disabled v_mac_f32 See bug 47741 Reviewers: nhaehnle, rampitec Differential Revision: https://reviews.llvm.org/D89000 --- llvm/lib/Target/AMDGPU/VOP2Instructions.td | 7 +++++-- llvm/test/MC/AMDGPU/gfx1030_err.s | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/VOP2Instructions.td b/llvm/lib/Target/AMDGPU/VOP2Instructions.td index 3451c23..4c263de 100644 --- a/llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -92,6 +92,7 @@ class VOP2_Real : // copy relevant pseudo op flags let SubtargetPredicate = ps.SubtargetPredicate; + let OtherPredicates = ps.OtherPredicates; let AsmMatchConverter = ps.AsmMatchConverter; let AsmVariantName = ps.AsmVariantName; let Constraints = ps.Constraints; @@ -494,14 +495,14 @@ defm V_OR_B32 : VOP2Inst <"v_or_b32", VOP_PAT_GEN, or>; defm V_XOR_B32 : VOP2Inst <"v_xor_b32", VOP_PAT_GEN, xor>; let mayRaiseFPException = 0 in { -let SubtargetPredicate = HasMadMacF32Insts in { +let OtherPredicates = [HasMadMacF32Insts] in { let Constraints = "$vdst = $src2", DisableEncoding="$src2", isConvertibleToThreeAddress = 1 in { defm V_MAC_F32 : VOP2Inst <"v_mac_f32", VOP_MAC_F32>; } def V_MADAK_F32 : VOP2_Pseudo <"v_madak_f32", VOP_MADAK_F32, []>; -} // End SubtargetPredicate = HasMadMacF32Insts +} // End OtherPredicates = [HasMadMacF32Insts] } // No patterns so that the scalar instructions are always selected. @@ -873,6 +874,7 @@ class Base_VOP2_DPP16 op, VOP2_DPP_Pseudo ps, VOP2_DPP { let AssemblerPredicate = HasDPP16; let SubtargetPredicate = HasDPP16; + let OtherPredicates = ps.OtherPredicates; } class VOP2_DPP16 op, VOP2_DPP_Pseudo ps, @@ -899,6 +901,7 @@ class VOP2_DPP8 op, VOP2_Pseudo ps, let AssemblerPredicate = HasDPP8; let SubtargetPredicate = HasDPP8; + let OtherPredicates = ps.OtherPredicates; } //===----------------------------------------------------------------------===// diff --git a/llvm/test/MC/AMDGPU/gfx1030_err.s b/llvm/test/MC/AMDGPU/gfx1030_err.s index 246548f..c6af173 100644 --- a/llvm/test/MC/AMDGPU/gfx1030_err.s +++ b/llvm/test/MC/AMDGPU/gfx1030_err.s @@ -26,7 +26,7 @@ s_getreg_b32 s2, hwreg(HW_REG_XNACK_MASK) // GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: specified hardware register is not supported on this GPU v_mac_f32 v0, v1, v2 -// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU v_mad_f32 v0, v1, v2, v3 // GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU -- 2.7.4