[llvm] [AMDGPU] Add inreg support for SGPR arguments (PR #67182)
Jun Wang via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 25 11:48:36 PDT 2023
================
@@ -133,15 +133,48 @@ l2:
; Omit the transformation if the s_and_saveexec instruction overwrites
; any of the v_cmp source operands.
+
; GCN-LABEL: check_saveexec_overwrites_vcmp_source:
-; GCN: .LBB7_3: ; %then
+; GCN: .LBB7_2: ; %then
+; GFX1010: v_cmp_eq_u32_e64 s[[C:[0-9]+]], s[[A:[0-9]+]], s[[B:[0-9]+]]
+; GFX1010-NEXT: s_cmp_ge_i32 s[[C]], s[[B]]
+; GFX1030: v_cmp_eq_u32_e64 s[[C:[0-9]+]], s[[A:[0-9]+]], s[[B:[0-9]+]]
+; GFX1030-NEXT: s_cmp_ge_i32 s[[C]], s[[B]]
+define i32 @check_saveexec_overwrites_vcmp_source(i32 inreg %a, i32 inreg %b) {
+entry:
+ %0 = icmp sge i32 %a, 0
+ br i1 %0, label %if, label %then
+
+if:
+ %1 = shl i32 %a, 2
+ %2 = or i32 %1, %b
+ ret i32 %2
+
+then:
+ %3 = call i64 @llvm.amdgcn.icmp.i32(i32 %a, i32 %b, i32 32)
----------------
jwanggit86 wrote:
In the 1st version of the patch, a testcase was added to this file. Now that a separate test file has been created, changes to this file are not necessary. Will revert.
https://github.com/llvm/llvm-project/pull/67182
More information about the llvm-commits
mailing list