[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