[llvm] [AMDGPU] Generate s_lshl?_add_u32 (PR #167032)

via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 10 09:52:43 PST 2025


================
@@ -2012,6 +2012,14 @@ let AddedComplexity = 20 in {
   >;
 }
 
+let SubtargetPredicate = isGFX9Plus in
+foreach I = 1-4 in {
+def : GCNPat <
+  (i32 (UniformBinFrag<add> (shl_oneuse i32:$src0, (i32 I)), i32:$src1)),
+  (!cast<SOP2_Pseudo>("S_LSHL"#I#"_ADD_U32") $src0, $src1)
----------------
LU-JOHN wrote:

Removed new pattern and enabled old pattern for SelectionDAG.   Same results generated for shlN_add.ll with old and new patterns.  Enabling old pattern passes check-libc-amdgcn-amd-amdhsa target with this distribution of s_lshl?_add instructions generated:

    200 S_LSHL1_ADD_U32
     96 S_LSHL2_ADD_U32
    322 S_LSHL3_ADD_U32
     24 S_LSHL4_ADD_U32

https://github.com/llvm/llvm-project/pull/167032


More information about the llvm-commits mailing list