From 929f438a3114ea782d0662391cb78ef4b9788074 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Mon, 20 May 2024 15:58:48 +0100 Subject: [PATCH] [AMDGPU] Refactor int_amdgcn_mov_dpp8 patterns. NFC. I still don't see why we need to select to different Real instructions on different targets, but at least this is less verbose. --- llvm/lib/Target/AMDGPU/VOP1Instructions.td | 40 ++++------------------ 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/VOP1Instructions.td b/llvm/lib/Target/AMDGPU/VOP1Instructions.td index b875ddc62a7a0e..586a4a74ec3472 100644 --- a/llvm/lib/Target/AMDGPU/VOP1Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP1Instructions.td @@ -1431,38 +1431,12 @@ defm V_CVT_F32_BF8 : VOP1_Real_NoDstSel_SDWA_gfx9<0x55>; defm V_CVT_PK_F32_FP8 : VOP1_Real_NoDstSel_SDWA_gfx9<0x56>; defm V_CVT_PK_F32_BF8 : VOP1_Real_NoDstSel_SDWA_gfx9<0x57>; -//===----------------------------------------------------------------------===// -// GFX10 -//===----------------------------------------------------------------------===// - -let OtherPredicates = [isGFX10Only] in { -def : GCNPat < +class MovDPP8Pattern : GCNPat < (i32 (int_amdgcn_mov_dpp8 i32:$src, timm:$dpp8)), - (V_MOV_B32_dpp8_gfx10 VGPR_32:$src, VGPR_32:$src, - (as_i32timm $dpp8), (i32 DPP8Mode.FI_0)) ->; -} // End OtherPredicates = [isGFX10Only] - -//===----------------------------------------------------------------------===// -// GFX11 -//===----------------------------------------------------------------------===// - -let OtherPredicates = [isGFX11Only] in { -def : GCNPat < - (i32 (int_amdgcn_mov_dpp8 i32:$src, timm:$dpp8)), - (V_MOV_B32_dpp8_gfx11 VGPR_32:$src, VGPR_32:$src, - (as_i32timm $dpp8), (i32 DPP8Mode.FI_0)) ->; -} // End OtherPredicates = [isGFX11Only] - -//===----------------------------------------------------------------------===// -// GFX12 -//===----------------------------------------------------------------------===// + (Inst VGPR_32:$src, VGPR_32:$src, (as_i32timm $dpp8), (i32 DPP8Mode.FI_0))> { + let OtherPredicates = [Pred]; +} -let OtherPredicates = [isGFX12Only] in { -def : GCNPat < - (i32 (int_amdgcn_mov_dpp8 i32:$src, timm:$dpp8)), - (V_MOV_B32_dpp8_gfx12 VGPR_32:$src, VGPR_32:$src, - (as_i32timm $dpp8), (i32 DPP8Mode.FI_0)) ->; -} // End OtherPredicates = [isGFX12Only] +def : MovDPP8Pattern; +def : MovDPP8Pattern; +def : MovDPP8Pattern;