[llvm] [AMDGPU][True16][CodeGen] fix flat_d16 saddr true16 lowering (PR #166603)
Brox Chen via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 5 10:08:19 PST 2025
https://github.com/broxigarchen created https://github.com/llvm/llvm-project/pull/166603
None
>From 449bb6ae17b9597d07a3bbd5cffd6c7fbdb8dc01 Mon Sep 17 00:00:00 2001
From: guochen2 <guochen2 at amd.com>
Date: Wed, 5 Nov 2025 13:07:10 -0500
Subject: [PATCH] fix flat saddr d16T16 lowering
---
llvm/lib/Target/AMDGPU/FLATInstructions.td | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/FLATInstructions.td b/llvm/lib/Target/AMDGPU/FLATInstructions.td
index 8ea64d17417f7..ee8bc770afe23 100644
--- a/llvm/lib/Target/AMDGPU/FLATInstructions.td
+++ b/llvm/lib/Target/AMDGPU/FLATInstructions.td
@@ -262,8 +262,16 @@ multiclass FLAT_Flat_Load_Pseudo<string opName, RegisterOperand regClass = AVLdS
multiclass FLAT_Flat_Load_Pseudo_t16<string opName> {
defm "" : FLAT_Flat_Load_Pseudo<opName, AVLdSt_32, 1>;
- let True16Predicate = UseRealTrue16Insts in
- defm _t16 : FLAT_Flat_Load_Pseudo<opName#"_t16", VGPROp_16>, True16D16Table<NAME#"_HI", NAME>;
+
+ defvar Name16 = opName#"_t16";
+ let OtherPredicates = [HasFlatGVSMode, HasTrue16BitInsts] in {
+ def _t16 : FLAT_Load_Pseudo<Name16, VGPROp_16>,
+ GlobalSaddrTable<0, Name16>,
+ True16D16Table<NAME#"_HI", NAME>;
+ def _t16_SADDR : FLAT_Load_Pseudo<Name16, VGPROp_16, 0, 1, 1>,
+ GlobalSaddrTable<1, Name16>,
+ True16D16Table<NAME#"_HI_SADDR", NAME#"_SADDR">;
+ }
}
class FLAT_Store_Pseudo <string opName, RegisterOperand vdataClass,
More information about the llvm-commits
mailing list