[llvm] [NFC][AMDGPU] Auto generate check lines for `schedule-regpressure-ilp-metric-spills.mir` (PR #139184)

via llvm-commits llvm-commits at lists.llvm.org
Thu May 8 17:51:11 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Shilei Tian (shiltian)

<details>
<summary>Changes</summary>



---

Patch is 217.37 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/139184.diff


1 Files Affected:

- (modified) llvm/test/CodeGen/AMDGPU/schedule-regpressure-ilp-metric-spills.mir (+1430) 


``````````diff
diff --git a/llvm/test/CodeGen/AMDGPU/schedule-regpressure-ilp-metric-spills.mir b/llvm/test/CodeGen/AMDGPU/schedule-regpressure-ilp-metric-spills.mir
index aa0d1fe45e9a8..9435792c93f1e 100644
--- a/llvm/test/CodeGen/AMDGPU/schedule-regpressure-ilp-metric-spills.mir
+++ b/llvm/test/CodeGen/AMDGPU/schedule-regpressure-ilp-metric-spills.mir
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
 # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -start-before=machine-scheduler -stop-after=greedy,2 -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
 # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -start-before=machine-scheduler -stop-after=greedy,2 -amdgpu-use-amdgpu-trackers=1 -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN-GCNTRACKER %s
 
@@ -36,6 +37,1435 @@ body:             |
   bb.0:
     liveins: $vgpr0, $sgpr0_sgpr1, $sgpr15
 
+    ; GCN-LABEL: name: no_sched_metric_due_to_spills
+    ; GCN: liveins: $sgpr15, $vgpr0, $sgpr0_sgpr1
+    ; GCN-NEXT: {{  $}}
+    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
+    ; GCN-NEXT: renamable $sgpr2_sgpr3 = S_LOAD_DWORDX2_IMM renamable $sgpr0_sgpr1, 216, 0 :: (dereferenceable invariant load (s64), addrspace 4)
+    ; GCN-NEXT: renamable $sgpr2 = S_ADD_I32 renamable $sgpr2, 127, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr3 = S_ADD_I32 killed renamable $sgpr3, 255, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_ASHR_I32 renamable $sgpr2, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_ASHR_I32 renamable $sgpr3, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_LSHR_B32 killed renamable $sgpr4, 25, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_LSHR_B32 killed renamable $sgpr5, 24, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_ADD_I32 killed renamable $sgpr2, killed renamable $sgpr4, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr3 = S_ADD_I32 killed renamable $sgpr3, killed renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_ASHR_I32 renamable $sgpr2, 7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr3 = S_ASHR_I32 killed renamable $sgpr3, 8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = nsw S_MUL_I32 renamable $sgpr3, renamable $sgpr4
+    ; GCN-NEXT: renamable $sgpr6 = S_ASHR_I32 renamable $sgpr5, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_ADD_I32 killed renamable $sgpr5, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_XOR_B32 killed renamable $sgpr5, killed renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 $sgpr5, 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_RCP_IFLAG_F32_e64_:%[0-9]+]]:vgpr_32 = V_RCP_IFLAG_F32_e64 0, [[V_CVT_F32_U32_e64_]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_MUL_F32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1333788670, 0, [[V_RCP_IFLAG_F32_e64_]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_CVT_U32_F32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_U32_F32_e64 0, [[V_MUL_F32_e64_]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: renamable $sgpr6 = V_READFIRSTLANE_B32 [[V_CVT_U32_F32_e64_]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 0, renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_ASHR_I32 renamable $sgpr15, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_MUL_I32 killed renamable $sgpr7, renamable $sgpr6
+    ; GCN-NEXT: renamable $sgpr9 = S_ADD_I32 killed renamable $sgpr15, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_MUL_HI_U32 renamable $sgpr6, killed renamable $sgpr7
+    ; GCN-NEXT: renamable $sgpr9 = S_XOR_B32 killed renamable $sgpr9, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ADD_I32 killed renamable $sgpr6, killed renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_MUL_HI_U32 renamable $sgpr9, killed renamable $sgpr6
+    ; GCN-NEXT: renamable $sgpr6 = S_MUL_I32 killed renamable $sgpr6, renamable $sgpr5
+    ; GCN-NEXT: renamable $sgpr6 = S_SUB_I32 killed renamable $sgpr9, killed renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr6, renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr6, renamable $sgpr5, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr6, implicit $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr6, renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr6, killed renamable $sgpr5, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr6, implicit $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ASHR_I32 renamable $sgpr3, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_ADD_I32 renamable $sgpr3, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_XOR_B32 killed renamable $sgpr7, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: [[V_CVT_F32_U32_e64_1:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 $sgpr7, 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_RCP_IFLAG_F32_e64_1:%[0-9]+]]:vgpr_32 = V_RCP_IFLAG_F32_e64 0, [[V_CVT_F32_U32_e64_1]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_MUL_F32_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1333788670, 0, [[V_RCP_IFLAG_F32_e64_1]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_CVT_U32_F32_e64_1:%[0-9]+]]:vgpr_32 = V_CVT_U32_F32_e64 0, [[V_MUL_F32_e64_1]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: renamable $sgpr5 = S_XOR_B32 killed renamable $sgpr5, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr9 = V_READFIRSTLANE_B32 [[V_CVT_U32_F32_e64_1]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr10 = S_LOAD_DWORD_IMM renamable $sgpr0_sgpr1, 192, 0 :: (dereferenceable invariant load (s32), align 8, addrspace 4)
+    ; GCN-NEXT: renamable $sgpr5 = S_SUB_I32 killed renamable $sgpr5, killed renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_SUB_I32 0, renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_ASHR_I32 renamable $sgpr5, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_MUL_I32 killed renamable $sgpr8, renamable $sgpr9
+    ; GCN-NEXT: renamable $sgpr12 = S_ADD_I32 renamable $sgpr5, renamable $sgpr11, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_MUL_HI_U32 renamable $sgpr9, killed renamable $sgpr8
+    ; GCN-NEXT: renamable $sgpr12 = S_XOR_B32 killed renamable $sgpr12, renamable $sgpr11, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_ADD_I32 killed renamable $sgpr9, killed renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_MUL_HI_U32 renamable $sgpr12, killed renamable $sgpr8
+    ; GCN-NEXT: renamable $sgpr9 = S_MUL_I32 renamable $sgpr8, renamable $sgpr7
+    ; GCN-NEXT: renamable $sgpr6 = S_XOR_B32 killed renamable $sgpr11, killed renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr9 = S_SUB_I32 killed renamable $sgpr12, killed renamable $sgpr9, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_ADD_I32 renamable $sgpr8, 1, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr12 = S_SUB_I32 renamable $sgpr9, renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr9, renamable $sgpr7, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_CSELECT_B32 killed renamable $sgpr11, killed renamable $sgpr8, implicit $scc
+    ; GCN-NEXT: renamable $sgpr9 = S_CSELECT_B32 killed renamable $sgpr12, killed renamable $sgpr9, implicit $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_ADD_I32 renamable $sgpr8, 1, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 killed renamable $sgpr9, killed renamable $sgpr7, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_CSELECT_B32 killed renamable $sgpr11, killed renamable $sgpr8, implicit $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_ASHR_I32 renamable $sgpr10, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr9 = S_ADD_I32 renamable $sgpr10, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_XOR_B32 killed renamable $sgpr9, killed renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: [[V_CVT_F32_U32_e64_2:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 $sgpr8, 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_RCP_IFLAG_F32_e64_2:%[0-9]+]]:vgpr_32 = V_RCP_IFLAG_F32_e64 0, [[V_CVT_F32_U32_e64_2]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_MUL_F32_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1333788670, 0, [[V_RCP_IFLAG_F32_e64_2]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_CVT_U32_F32_e64_2:%[0-9]+]]:vgpr_32 = V_CVT_U32_F32_e64 0, [[V_MUL_F32_e64_2]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: renamable $sgpr9 = V_READFIRSTLANE_B32 [[V_CVT_U32_F32_e64_2]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr11 = S_SUB_I32 0, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_ASHR_I32 killed renamable $sgpr2, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_MUL_I32 killed renamable $sgpr11, renamable $sgpr9
+    ; GCN-NEXT: renamable $sgpr12 = S_ADD_I32 renamable $sgpr4, renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_MUL_HI_U32 renamable $sgpr9, killed renamable $sgpr11
+    ; GCN-NEXT: renamable $sgpr12 = S_XOR_B32 killed renamable $sgpr12, renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr9 = S_ADD_I32 killed renamable $sgpr9, killed renamable $sgpr11, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_MUL_HI_U32 renamable $sgpr12, renamable $sgpr9
+    ; GCN-NEXT: renamable $sgpr11 = S_MUL_I32 killed renamable $sgpr11, renamable $sgpr8
+    ; GCN-NEXT: renamable $sgpr7 = S_XOR_B32 killed renamable $sgpr7, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr11 = S_SUB_I32 killed renamable $sgpr12, killed renamable $sgpr11, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr12 = S_SUB_I32 killed renamable $sgpr7, killed renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_SUB_I32 renamable $sgpr11, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr11, renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_CSELECT_B32 killed renamable $sgpr6, killed renamable $sgpr11, implicit $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr6, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr6, renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr6, implicit $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_XOR_B32 killed renamable $sgpr6, renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_SUB_I32 killed renamable $sgpr6, killed renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = nsw S_SUB_I32 killed renamable $sgpr4, renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_LT_I32 renamable $sgpr12, killed renamable $sgpr4, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_CSELECT_B32 killed renamable $sgpr10, killed renamable $sgpr2, implicit $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_ASHR_I32 renamable $sgpr12, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ADD_I32 renamable $sgpr12, renamable $sgpr4, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_XOR_B32 killed renamable $sgpr6, renamable $sgpr4, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_MUL_HI_U32 renamable $sgpr6, killed renamable $sgpr9
+    ; GCN-NEXT: renamable $sgpr7 = S_MUL_I32 killed renamable $sgpr7, renamable $sgpr8
+    ; GCN-NEXT: renamable $sgpr9 = S_MUL_I32 renamable $sgpr12, renamable $sgpr3
+    ; GCN-NEXT: renamable $sgpr6 = S_SUB_I32 killed renamable $sgpr6, killed renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_SUB_I32 killed renamable $sgpr5, killed renamable $sgpr9, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr6, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr6, renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr6, implicit $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr6, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr6, killed renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr6, implicit $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_ASHR_I32 renamable $sgpr2, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_ADD_I32 renamable $sgpr2, renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr8 = S_XOR_B32 killed renamable $sgpr8, renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: [[V_CVT_F32_U32_e64_3:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 $sgpr8, 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_RCP_IFLAG_F32_e64_3:%[0-9]+]]:vgpr_32 = V_RCP_IFLAG_F32_e64 0, [[V_CVT_F32_U32_e64_3]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: [[V_MUL_F32_e64_3:%[0-9]+]]:vgpr_32 = V_MUL_F32_e64 0, 1333788670, 0, [[V_RCP_IFLAG_F32_e64_3]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: renamable $sgpr6 = S_XOR_B32 killed renamable $sgpr6, renamable $sgpr4, implicit-def dead $scc
+    ; GCN-NEXT: [[V_CVT_U32_F32_e64_3:%[0-9]+]]:vgpr_32 = V_CVT_U32_F32_e64 0, [[V_MUL_F32_e64_3]], 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: renamable $sgpr9 = S_SUB_I32 killed renamable $sgpr6, killed renamable $sgpr4, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr3 = nsw S_MUL_I32 renamable $sgpr9, killed renamable $sgpr3
+    ; GCN-NEXT: renamable $sgpr4 = V_READFIRSTLANE_B32 [[V_CVT_U32_F32_e64_3]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr3 = nsw S_ADD_I32 killed renamable $sgpr3, killed renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_SUB_I32 0, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ASHR_I32 renamable $sgpr3, 31, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_MUL_I32 killed renamable $sgpr5, renamable $sgpr4
+    ; GCN-NEXT: renamable $sgpr10 = S_ADD_I32 renamable $sgpr3, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_MUL_HI_U32 renamable $sgpr4, killed renamable $sgpr5
+    ; GCN-NEXT: renamable $sgpr10 = S_XOR_B32 killed renamable $sgpr10, renamable $sgpr6, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_ADD_I32 killed renamable $sgpr4, killed renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr4 = S_MUL_HI_U32 renamable $sgpr10, killed renamable $sgpr4
+    ; GCN-NEXT: renamable $sgpr11 = S_LOAD_DWORD_IMM renamable $sgpr0_sgpr1, 32, 0 :: (dereferenceable invariant load (s32), align 8, addrspace 4)
+    ; GCN-NEXT: renamable $sgpr5 = S_MUL_I32 renamable $sgpr4, renamable $sgpr8
+    ; GCN-NEXT: renamable $sgpr13 = S_XOR_B32 killed renamable $sgpr6, killed renamable $sgpr7, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_SUB_I32 killed renamable $sgpr10, killed renamable $sgpr5, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ADD_I32 renamable $sgpr4, 1, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr7 = S_SUB_I32 renamable $sgpr5, renamable $sgpr8, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 renamable $sgpr5, renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: renamable $sgpr10 = S_LOAD_DWORD_IMM renamable $sgpr0_sgpr1, 64, 0 :: (dereferenceable invariant load (s32), align 8, addrspace 4)
+    ; GCN-NEXT: renamable $sgpr4 = S_CSELECT_B32 killed renamable $sgpr6, killed renamable $sgpr4, implicit $scc
+    ; GCN-NEXT: renamable $sgpr5 = S_CSELECT_B32 killed renamable $sgpr7, killed renamable $sgpr5, implicit $scc
+    ; GCN-NEXT: renamable $sgpr6 = S_ADD_I32 renamable $sgpr4, 1, implicit-def dead $scc
+    ; GCN-NEXT: S_CMP_GE_U32 killed renamable $sgpr5, killed renamable $sgpr8, implicit-def $scc
+    ; GCN-NEXT: [[V_LSHLREV_B32_e64_:%[0-9]+]]:vgpr_32 = nuw nsw V_LSHLREV_B32_e64 1, [[COPY]](s32), implicit $exec
+    ; GCN-NEXT: renamable $sgpr8 = S_CSELECT_B32 killed renamable $sgpr6, killed renamable $sgpr4, implicit $scc
+    ; GCN-NEXT: renamable $sgpr4_sgpr5_sgpr6_sgpr7 = S_LOAD_DWORDX4_IMM renamable $sgpr0_sgpr1, 0, 0 :: (dereferenceable invariant load (s128), addrspace 4)
+    ; GCN-NEXT: renamable $sgpr8 = S_XOR_B32 killed renamable $sgpr8, renamable $sgpr13, implicit-def dead $scc
+    ; GCN-NEXT: [[V_LSHRREV_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e64 1, [[COPY]](s32), implicit $exec
+    ; GCN-NEXT: renamable $sgpr8 = S_SUB_I32 killed renamable $sgpr8, killed renamable $sgpr13, implicit-def dead $scc
+    ; GCN-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 6, [[V_LSHLREV_B32_e64_]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr2 = S_MUL_I32 renamable $sgpr8, killed renamable $sgpr2
+    ; GCN-NEXT: renamable $sgpr9 = nsw S_SUB_I32 killed renamable $sgpr12, killed renamable $sgpr9, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_SUB_I32 killed renamable $sgpr3, killed renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: [[V_AND_B32_e64_1:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 126, [[V_LSHRREV_B32_e64_]], implicit $exec
+    ; GCN-NEXT: renamable $sgpr2 = S_ADD_I32 killed renamable $sgpr9, killed renamable $sgpr2, implicit-def dead $scc
+    ; GCN-NEXT: renamable $sgpr2 = S_LSHL_B32 killed renamable $sgpr2, 7, implicit-def dead $scc
+    ; GCN-NEXT: undef [[V_LSHLREV_B32_e64_1:%[0-9]+]].sub0:vreg_64 = nuw nsw V_LSHLREV_B32_e64 3, [[V_AND_B32_e64_]], implicit $exec
+    ; GCN-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = nsw V_ADD_U32_e64 $sgpr2, [[V_AND_B32_e64_1]], 0, implicit $exec
+    ; GCN-NEXT: early-clobber %157:vreg_64, $sgpr_null = V_MAD_U64_U32_gfx11_e64 [[V_ADD_U32_e64_]], $sgpr11, [[V_LSHLREV_B32_e64_1]], 0, implicit $exec
+    ; GCN-NEXT: renamable $sgpr15 = S_MOV_B32 268566528
+    ; GCN-NEXT: renamable $sgpr12 = COPY renamable $sgpr4
+    ; GCN-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 8, %157.sub0, 0, implicit $exec
+    ; GCN-NEXT: [[V_LSHLREV_B32_e64_2:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 1, %157.sub0, implicit $exec
+    ; GCN-NEXT: renamable $sgpr13 = COPY renamable $sgpr5
+    ; GCN-NEXT: renamable $sgpr14 = S_LSHL_B32 killed renamable $sgpr10, 1, implicit-def dead $scc
+    ; GCN-NEXT: [[V_ADD_LSHL_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_LSHL_U32_e64 %157.sub0, $sgpr11, 1, implicit $exec
+    ; GCN-NEXT: [[V_ADD_LSHL_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_LSHL_U32_e64 [[V_ADD_U32_e64_1]], killed $sgpr11, 1, implicit $exec
+    ; GCN-NEXT: [[BUFFER_LOAD_DWORDX4_OFFEN:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[V_LSHLREV_B32_e64_2]], renamable $sgpr12_sgpr13_sgpr14_sgpr15, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 7)
+    ; GCN-NEXT: [[V_LSHLREV_B32_e64_3:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e64 1, [[V_ADD_U32_e64_1]], implicit $exec
+    ; GCN-NEXT: [[BUFFER_LOAD_DWORDX4_OFFEN1:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[V_ADD_LSHL_U32_e64_]], renamable $sgpr12_sgpr13_sgpr14_sgpr15, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 7)
+    ; GCN-NEXT: [[BUFFER_LOAD_DWORDX4_OFFEN2:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[V_ADD_LSHL_U32_e64_1]], renamable $sgpr12_sgpr13_sgpr14_sgpr15, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 7)
+    ; GCN-NEXT: [[BUFFER_LOAD_DWORDX4_OFFEN3:%[0-9]+]]:vreg_128 = BUFFER_LOAD_DWORDX4_OFFEN [[V_LSHLREV_B32_e64_3]], renamable $sgpr12_sgpr13_sgpr14_sgpr15, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 7)
+    ; GCN-NEXT: renamable $sgpr4 = S_LOAD_DWORD_IMM renamable $sgpr0_sgpr1, 84, 0 :: (dereferenceable invariant load (s32), addrspace 4)
+    ; GCN-NEXT: [[V_AND_B32_e64_2:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 252, [[COPY]](s32), implicit $exec
+    ; GCN-NEXT...
[truncated]

``````````

</details>


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


More information about the llvm-commits mailing list