[llvm] [AMDGPU] Fix regclass for a true16 pattern. NFCI. (PR #206513)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 29 08:53:04 PDT 2026
https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/206513
Add an EXTRACT_SUBREG to make it clear that the result of the pattern is
only the low 16 bits of the result of the V_BFI_B32. This does not seem
to affect codegen, presumably because we are lax about allowing COPY
between VGPR_16 and VGPR_32.
>From b344a00618593fd6c019d7a5976f0d43f3d2ea63 Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Mon, 29 Jun 2026 16:49:39 +0100
Subject: [PATCH] [AMDGPU] Fix regclass for a true16 pattern. NFCI.
Add an EXTRACT_SUBREG to make it clear that the result of the pattern is
only the low 16 bits of the result of the V_BFI_B32. This does not seem
to affect codegen, presumably because we are lax about allowing COPY
between VGPR_16 and VGPR_32.
---
llvm/lib/Target/AMDGPU/SIInstructions.td | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td
index 750cb1973e21f..831278ec2a23a 100644
--- a/llvm/lib/Target/AMDGPU/SIInstructions.td
+++ b/llvm/lib/Target/AMDGPU/SIInstructions.td
@@ -2528,9 +2528,9 @@ def : GCNPat <
def : GCNPat <
(fcopysign fp16vt:$src0, f64:$src1),
- (V_BFI_B32_e64 (S_MOV_B32 (i32 0x00007fff)),
+ (EXTRACT_SUBREG (V_BFI_B32_e64 (S_MOV_B32 (i32 0x00007fff)),
(REG_SEQUENCE VGPR_32, $src0, lo16, (i16 (IMPLICIT_DEF)), hi16),
- (V_LSHRREV_B32_e64 (i32 16), (EXTRACT_SUBREG $src1, sub1)))
+ (V_LSHRREV_B32_e64 (i32 16), (EXTRACT_SUBREG $src1, sub1))), lo16)
>;
}
} // End foreach fp16vt = [f16, bf16]
More information about the llvm-commits
mailing list