[llvm] [AMDGPU][True16][CodeGen] use vgpr16 for zext patterns (reopen #153894) (PR #154211)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 20 08:46:48 PDT 2025
================
@@ -3070,7 +3072,28 @@ def : GCNPat<
def : GCNPat<
(i32 (zext (i16 (bitconvert fp16_zeros_high_16bits:$src)))),
- (COPY VSrc_b16:$src)>;
+ (COPY VSrc_b16:$src)
+>;
+}
+
+let True16Predicate = UseRealTrue16Insts in {
+def : GCNPat<
+ (i32 (DivergentUnaryFrag<zext> i16:$src)),
+ (REG_SEQUENCE VGPR_32, VGPR_16:$src, lo16, (V_MOV_B16_t16_e64 0, (i16 0), 0), hi16)
+>;
+
+def : GCNPat<
+ (i64 (DivergentUnaryFrag<zext> i16:$src)),
+ (REG_SEQUENCE VReg_64,
+ (INSERT_SUBREG (i32 (V_MOV_B32_e32 (i32 0))), VGPR_16:$src, lo16), sub0,
+ (S_MOV_B32 (i32 0)), sub1)
----------------
jayfoad wrote:
```
(REG_SEQUENCE VReg_64,
VGPR_16:$src, lo16,
(V_MOV_B16_t16_e64 0, (i16 0), 0), hi16,
(V_MOV_B32_e32 (i32 0)), sub1)
```
https://github.com/llvm/llvm-project/pull/154211
More information about the llvm-commits
mailing list