CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
707 lines
66 KiB
YAML
707 lines
66 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+block-vgpr-csr,+wavefrontsize32,-wavefrontsize64 -start-before=si-lower-sgpr-spills -stop-after=prologepilog -verify-machineinstrs -o - %s | FileCheck %s --check-prefixes=CHECK,W32
|
|
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+block-vgpr-csr,-wavefrontsize32,+wavefrontsize64 -start-before=si-lower-sgpr-spills -stop-after=prologepilog -verify-machineinstrs -o - %s | FileCheck %s --check-prefixes=CHECK,W64
|
|
|
|
--- |
|
|
define void @one_block() #0 { ret void }
|
|
define void @one_block_csr_only() #0 { ret void }
|
|
define void @multiple_blocks() #0 { ret void }
|
|
define void @reg_tuples() #0 { ret void }
|
|
define void @locals() #0 { ret void }
|
|
define void @other_regs() #0 { ret void }
|
|
define amdgpu_kernel void @entry_func() #0 { ret void }
|
|
define void @multiple_basic_blocks() #0 { ret void }
|
|
|
|
attributes #0 = { nounwind }
|
|
...
|
|
|
|
# Block load/store v42 and v45. The mask should be 0x9.
|
|
|
|
---
|
|
name: one_block
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31
|
|
; W32-LABEL: name: one_block
|
|
; W32: liveins: $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 9
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec_lo, 32, 96
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr72
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr73
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
; W32-NEXT: $m0 = S_MOV_B32 9
|
|
; W32-NEXT: $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr43, implicit $vgpr44, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63, implicit $vgpr72, implicit $vgpr73 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: one_block
|
|
; W64: liveins: $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 9
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec, 64, 192
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr72
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr73
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
; W64-NEXT: $m0 = S_MOV_B32 9
|
|
; W64-NEXT: $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr43, implicit $vgpr44, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63, implicit $vgpr72, implicit $vgpr73 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Block load/store v40-47 and v56-63 (v48-55 and v64-71 are caller-saved). The
|
|
# mask should be 0x00FF00FF.
|
|
|
|
---
|
|
name: one_block_csr_only
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31
|
|
; W32-LABEL: name: one_block_csr_only
|
|
; W32: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 16711935
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec_lo, 32, 32
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec_lo, 32, 64
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec_lo, 32, 96
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr44, 32, $exec_lo, 32, 128
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec_lo, 32, 160
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr46, 32, $exec_lo, 32, 192
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr47, 32, $exec_lo, 32, 224
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr56, 32, $exec_lo, 32, 512
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr57, 32, $exec_lo, 32, 544
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr58, 32, $exec_lo, 32, 576
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr59, 32, $exec_lo, 32, 608
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr60, 32, $exec_lo, 32, 640
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr61, 32, $exec_lo, 32, 672
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr62, 32, $exec_lo, 32, 704
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr63, 32, $exec_lo, 32, 736
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr42, implicit-def $vgpr43, implicit-def $vgpr44, implicit-def $vgpr45, implicit-def $vgpr46, implicit-def $vgpr47, implicit-def $vgpr48, implicit-def $vgpr49, implicit-def $vgpr50, implicit-def $vgpr51, implicit-def $vgpr52, implicit-def $vgpr53, implicit-def $vgpr54, implicit-def $vgpr55, implicit-def $vgpr56, implicit-def $vgpr57, implicit-def $vgpr58, implicit-def $vgpr59, implicit-def $vgpr60, implicit-def $vgpr61, implicit-def $vgpr62, implicit-def $vgpr63, implicit-def $vgpr64, implicit-def $vgpr65, implicit-def $vgpr66
|
|
; W32-NEXT: $m0 = S_MOV_B32 16711935
|
|
; W32-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: one_block_csr_only
|
|
; W64: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 16711935
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec, 64, 64
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec, 64, 128
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec, 64, 192
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr44, 32, $exec, 64, 256
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec, 64, 320
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr46, 32, $exec, 64, 384
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr47, 32, $exec, 64, 448
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr56, 32, $exec, 64, 1024
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr57, 32, $exec, 64, 1088
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr58, 32, $exec, 64, 1152
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr59, 32, $exec, 64, 1216
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr60, 32, $exec, 64, 1280
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr61, 32, $exec, 64, 1344
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr62, 32, $exec, 64, 1408
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr63, 32, $exec, 64, 1472
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr42, implicit-def $vgpr43, implicit-def $vgpr44, implicit-def $vgpr45, implicit-def $vgpr46, implicit-def $vgpr47, implicit-def $vgpr48, implicit-def $vgpr49, implicit-def $vgpr50, implicit-def $vgpr51, implicit-def $vgpr52, implicit-def $vgpr53, implicit-def $vgpr54, implicit-def $vgpr55, implicit-def $vgpr56, implicit-def $vgpr57, implicit-def $vgpr58, implicit-def $vgpr59, implicit-def $vgpr60, implicit-def $vgpr61, implicit-def $vgpr62, implicit-def $vgpr63, implicit-def $vgpr64, implicit-def $vgpr65, implicit-def $vgpr66
|
|
; W64-NEXT: $m0 = S_MOV_B32 16711935
|
|
; W64-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr42, implicit-def $vgpr43, implicit-def $vgpr44, implicit-def $vgpr45, implicit-def $vgpr46, implicit-def $vgpr47, implicit-def $vgpr48, implicit-def $vgpr49, implicit-def $vgpr50, implicit-def $vgpr51, implicit-def $vgpr52, implicit-def $vgpr53, implicit-def $vgpr54, implicit-def $vgpr55, implicit-def $vgpr56, implicit-def $vgpr57, implicit-def $vgpr58, implicit-def $vgpr59, implicit-def $vgpr60, implicit-def $vgpr61, implicit-def $vgpr62, implicit-def $vgpr63, implicit-def $vgpr64, implicit-def $vgpr65, implicit-def $vgpr66
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Block load/store to/from different blocks.
|
|
# Note the mask for storing v232, which is 0x100 because we have to start the
|
|
# block at v224 (since the upper limit is 255). For the same reason, the first
|
|
# stack slot will be 36 bytes long (the first 32 will be empty, since the memory
|
|
# will not get compacted). The second slot, which will hold registers v104 and
|
|
# v110, will be 28 bytes long, and finally the third, holding registers v40 and
|
|
# v41, will be 8 bytes long.
|
|
---
|
|
name: multiple_blocks
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31
|
|
; W32-LABEL: name: multiple_blocks
|
|
; W32: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135, $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 3
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 32, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec_lo, 32, 1024
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec_lo, 32, 1056
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: $m0 = S_MOV_B32 65
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.1, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr104, 32, $exec_lo, 32, 128
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr105
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr106
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr107
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr108
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr109
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr110, 32, $exec_lo, 32, 320
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr111
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr120
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr121
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr122
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr123
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr124
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr125
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr126
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr127
|
|
; W32-NEXT: $m0 = S_MOV_B32 1
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.2, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr232, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr233
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr234
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr235
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr236
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr237
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr238
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr239
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr248
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr249
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr250
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr251
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr252
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr253
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr254
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr255
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr104, implicit-def $vgpr110, implicit-def $vgpr232
|
|
; W32-NEXT: $m0 = S_MOV_B32 1
|
|
; W32-NEXT: $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr233, implicit $vgpr234, implicit $vgpr235, implicit $vgpr236, implicit $vgpr237, implicit $vgpr238, implicit $vgpr239, implicit $vgpr248, implicit $vgpr249, implicit $vgpr250, implicit $vgpr251, implicit $vgpr252, implicit $vgpr253, implicit $vgpr254, implicit $vgpr255 :: ("amdgpu-thread-private" load (s1024) from %stack.2, align 4, addrspace 5)
|
|
; W32-NEXT: $m0 = S_MOV_B32 65
|
|
; W32-NEXT: $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 4, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr105, implicit $vgpr106, implicit $vgpr107, implicit $vgpr108, implicit $vgpr109, implicit $vgpr111, implicit $vgpr120, implicit $vgpr121, implicit $vgpr122, implicit $vgpr123, implicit $vgpr124, implicit $vgpr125, implicit $vgpr126, implicit $vgpr127 :: ("amdgpu-thread-private" load (s1024) from %stack.1, align 4, addrspace 5)
|
|
; W32-NEXT: $m0 = S_MOV_B32 3
|
|
; W32-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 32, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr42, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: multiple_blocks
|
|
; W64: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135, $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 3
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 32, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec, 64, 2048
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec, 64, 2112
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: $m0 = S_MOV_B32 65
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.1, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr104, 32, $exec, 64, 256
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr105
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr106
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr107
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr108
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr109
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr110, 32, $exec, 64, 640
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr111
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr120
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr121
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr122
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr123
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr124
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr125
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr126
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr127
|
|
; W64-NEXT: $m0 = S_MOV_B32 1
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.2, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr232, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr233
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr234
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr235
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr236
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr237
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr238
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr239
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr248
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr249
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr250
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr251
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr252
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr253
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr254
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr255
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr104, implicit-def $vgpr110, implicit-def $vgpr232
|
|
; W64-NEXT: $m0 = S_MOV_B32 1
|
|
; W64-NEXT: $vgpr232_vgpr233_vgpr234_vgpr235_vgpr236_vgpr237_vgpr238_vgpr239_vgpr240_vgpr241_vgpr242_vgpr243_vgpr244_vgpr245_vgpr246_vgpr247_vgpr248_vgpr249_vgpr250_vgpr251_vgpr252_vgpr253_vgpr254_vgpr255_vgpr256_vgpr257_vgpr258_vgpr259_vgpr260_vgpr261_vgpr262_vgpr263 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr233, implicit $vgpr234, implicit $vgpr235, implicit $vgpr236, implicit $vgpr237, implicit $vgpr238, implicit $vgpr239, implicit $vgpr248, implicit $vgpr249, implicit $vgpr250, implicit $vgpr251, implicit $vgpr252, implicit $vgpr253, implicit $vgpr254, implicit $vgpr255 :: ("amdgpu-thread-private" load (s1024) from %stack.2, align 4, addrspace 5)
|
|
; W64-NEXT: $m0 = S_MOV_B32 65
|
|
; W64-NEXT: $vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111_vgpr112_vgpr113_vgpr114_vgpr115_vgpr116_vgpr117_vgpr118_vgpr119_vgpr120_vgpr121_vgpr122_vgpr123_vgpr124_vgpr125_vgpr126_vgpr127_vgpr128_vgpr129_vgpr130_vgpr131_vgpr132_vgpr133_vgpr134_vgpr135 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 4, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr105, implicit $vgpr106, implicit $vgpr107, implicit $vgpr108, implicit $vgpr109, implicit $vgpr111, implicit $vgpr120, implicit $vgpr121, implicit $vgpr122, implicit $vgpr123, implicit $vgpr124, implicit $vgpr125, implicit $vgpr126, implicit $vgpr127 :: ("amdgpu-thread-private" load (s1024) from %stack.1, align 4, addrspace 5)
|
|
; W64-NEXT: $m0 = S_MOV_B32 3
|
|
; W64-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 32, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr42, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr104, implicit-def $vgpr110, implicit-def $vgpr232
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Make sure we handle register tuples correctly, even when they're straddling
|
|
# the boundary between blocks. The first mask should be 0x00000007 (the bottom
|
|
# 2 registers from the second tuple are not callee saves), the second
|
|
# 0x00000003.
|
|
|
|
---
|
|
name: reg_tuples
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31
|
|
; W32-LABEL: name: reg_tuples
|
|
; W32: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 7
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec_lo, 32, 256
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec_lo, 32, 288
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec_lo, 32, 320
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: $m0 = S_MOV_B32 3
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.1, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr72, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr73, 32, $exec_lo, 32, 32
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr74
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr75
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr76
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr77
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr78
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr79
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr88
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr89
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr90
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr91
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr92
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr93
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr94
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr95
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr40_vgpr41_vgpr42, implicit-def $vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W32-NEXT: $m0 = S_MOV_B32 3
|
|
; W32-NEXT: $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr74, implicit $vgpr75, implicit $vgpr76, implicit $vgpr77, implicit $vgpr78, implicit $vgpr79, implicit $vgpr88, implicit $vgpr89, implicit $vgpr90, implicit $vgpr91, implicit $vgpr92, implicit $vgpr93, implicit $vgpr94, implicit $vgpr95 :: ("amdgpu-thread-private" load (s1024) from %stack.1, align 4, addrspace 5)
|
|
; W32-NEXT: $m0 = S_MOV_B32 7
|
|
; W32-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 8, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: reg_tuples
|
|
; W64: liveins: $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 7
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec, 64, 512
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec, 64, 576
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec, 64, 640
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: $m0 = S_MOV_B32 3
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.1, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr72, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr73, 32, $exec, 64, 64
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr74
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr75
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr76
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr77
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr78
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr79
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr88
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr89
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr90
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr91
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr92
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr93
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr94
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr95
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr40_vgpr41_vgpr42, implicit-def $vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W64-NEXT: $m0 = S_MOV_B32 3
|
|
; W64-NEXT: $vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79_vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95_vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr74, implicit $vgpr75, implicit $vgpr76, implicit $vgpr77, implicit $vgpr78, implicit $vgpr79, implicit $vgpr88, implicit $vgpr89, implicit $vgpr90, implicit $vgpr91, implicit $vgpr92, implicit $vgpr93, implicit $vgpr94, implicit $vgpr95 :: ("amdgpu-thread-private" load (s1024) from %stack.1, align 4, addrspace 5)
|
|
; W64-NEXT: $m0 = S_MOV_B32 7
|
|
; W64-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 8, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr40_vgpr41_vgpr42, implicit-def $vgpr70_vgpr71_vgpr72_vgpr73
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Make sure we don't overwrite any stack variables.
|
|
|
|
---
|
|
name: locals
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
stack:
|
|
- { id: 0, type: default, offset: 0, size: 12, alignment: 4,
|
|
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
|
|
local-offset: 0, debug-info-variable: '', debug-info-expression: '',
|
|
debug-info-location: '' }
|
|
- { id: 1, type: default, offset: 12, size: 20, alignment: 4,
|
|
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
|
|
local-offset: 0, debug-info-variable: '', debug-info-expression: '',
|
|
debug-info-location: '' }
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31, $vgpr48
|
|
; W32-LABEL: name: locals
|
|
; W32: liveins: $vgpr48, $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 1
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.2, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr41
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr48, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
|
|
; W32-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr48, $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr40
|
|
; W32-NEXT: $m0 = S_MOV_B32 1
|
|
; W32-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr41, implicit $vgpr42, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.2, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: locals
|
|
; W64: liveins: $vgpr48, $sgpr30_sgpr31, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 1
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.2, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr41
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr43
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr48, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
|
|
; W64-NEXT: SCRATCH_STORE_DWORD_SADDR $vgpr48, $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr40
|
|
; W64-NEXT: $m0 = S_MOV_B32 1
|
|
; W64-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr41, implicit $vgpr42, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.2, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)
|
|
SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.1, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5)
|
|
S_NOP 0, implicit-def $vgpr40
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Make sure we don't break SGPR or WWM handling, and also that we don't
|
|
# block-spill WWM VGPRs that have already been spilled (the mask for the block
|
|
# load/store should be 0x9 because we don't want to include v41 or v42).
|
|
# Use all VGPRs up to v40, so the WWM registers v41 and v42 and the VGPR used
|
|
# for SGPR spills remain within the block.
|
|
|
|
---
|
|
name: other_regs
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
wwmReservedRegs:
|
|
- '$vgpr41'
|
|
- '$vgpr42'
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40
|
|
; W32-LABEL: name: other_regs
|
|
; W32: liveins: $sgpr48, $sgpr30_sgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $sgpr0 = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
|
|
; W32-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr41, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.1, addrspace 5)
|
|
; W32-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr42, $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.2, addrspace 5)
|
|
; W32-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr44, $sgpr32, 24, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.3, addrspace 5)
|
|
; W32-NEXT: $exec_lo = S_MOV_B32 killed $sgpr0
|
|
; W32-NEXT: $m0 = S_MOV_B32 9
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.4, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr41
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec_lo, 32, 96
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: $vgpr44 = SI_SPILL_S32_TO_VGPR $sgpr48, 0, $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_registers $sgpr48, $vgpr44, 0, 32
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr43, implicit-def $sgpr22, implicit-def $sgpr48, implicit-def $m0, implicit-def $exec
|
|
; W32-NEXT: S_NOP 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, implicit $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, implicit $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40
|
|
; W32-NEXT: $sgpr48 = SI_RESTORE_S32_FROM_VGPR $vgpr44, 0
|
|
; W32-NEXT: $m0 = S_MOV_B32 9
|
|
; W32-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr41, implicit $vgpr42, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.4, align 4, addrspace 5)
|
|
; W32-NEXT: $sgpr0 = S_OR_SAVEEXEC_B32 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
|
|
; W32-NEXT: $vgpr41 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 16, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.1, addrspace 5)
|
|
; W32-NEXT: $vgpr42 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.2, addrspace 5)
|
|
; W32-NEXT: $vgpr44 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 24, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.3, addrspace 5)
|
|
; W32-NEXT: $exec_lo = S_MOV_B32 killed $sgpr0
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: other_regs
|
|
; W64: liveins: $sgpr48, $sgpr30_sgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40, $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $sgpr0_sgpr1 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
|
|
; W64-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr41, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.1, addrspace 5)
|
|
; W64-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr42, $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.2, addrspace 5)
|
|
; W64-NEXT: SCRATCH_STORE_DWORD_SADDR killed $vgpr44, $sgpr32, 24, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" store (s32) into %stack.3, addrspace 5)
|
|
; W64-NEXT: $exec = S_MOV_B64 killed $sgpr0_sgpr1
|
|
; W64-NEXT: $m0 = S_MOV_B32 9
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.4, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr40, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr41
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr42
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec, 64, 192
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr45
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: $vgpr44 = SI_SPILL_S32_TO_VGPR $sgpr48, 0, $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_registers $sgpr48, $vgpr44, 0, 32
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr43, implicit-def $sgpr22, implicit-def $sgpr48, implicit-def $m0, implicit-def $exec
|
|
; W64-NEXT: S_NOP 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, implicit $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, implicit $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40
|
|
; W64-NEXT: $sgpr48 = SI_RESTORE_S32_FROM_VGPR $vgpr44, 0
|
|
; W64-NEXT: $m0 = S_MOV_B32 9
|
|
; W64-NEXT: $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr41, implicit $vgpr42, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63 :: ("amdgpu-thread-private" load (s1024) from %stack.4, align 4, addrspace 5)
|
|
; W64-NEXT: $sgpr0_sgpr1 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
|
|
; W64-NEXT: $vgpr41 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 16, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.1, addrspace 5)
|
|
; W64-NEXT: $vgpr42 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 20, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.2, addrspace 5)
|
|
; W64-NEXT: $vgpr44 = SCRATCH_LOAD_DWORD_SADDR $sgpr32, 24, 0, implicit $exec, implicit $flat_scr :: ("amdgpu-thread-private" load (s32) from %stack.3, addrspace 5)
|
|
; W64-NEXT: $exec = S_MOV_B64 killed $sgpr0_sgpr1
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr41, implicit-def $vgpr43, implicit-def $sgpr22, implicit-def $sgpr48, implicit-def $m0, implicit-def $exec
|
|
S_NOP 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, implicit $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, implicit $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, implicit $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40
|
|
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
# Make sure we don't break anything for entry functions.
|
|
|
|
---
|
|
name: entry_func
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31
|
|
; CHECK-LABEL: name: entry_func
|
|
; CHECK: liveins: $sgpr30_sgpr31
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45, implicit-def $vgpr51
|
|
; CHECK-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45, implicit-def $vgpr51
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|
|
|
|
---
|
|
name: multiple_basic_blocks
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
stackPtrOffsetReg: $sgpr32
|
|
body: |
|
|
; W32-LABEL: name: multiple_basic_blocks
|
|
; W32: bb.0:
|
|
; W32-NEXT: successors: %bb.1(0x80000000)
|
|
; W32-NEXT: liveins: $vgpr44, $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 11
|
|
; W32-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec_lo, 32, 0
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec_lo, 32, 32
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec_lo, 32, 96
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr72
|
|
; W32-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr73
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
; W32-NEXT: S_BRANCH %bb.1
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: bb.1:
|
|
; W32-NEXT: successors: %bb.2(0x80000000)
|
|
; W32-NEXT: liveins: $vgpr44, $sgpr30_sgpr31
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: S_NOP 0, implicit-def $vgpr43, implicit $vgpr44
|
|
; W32-NEXT: S_BRANCH %bb.2
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: bb.2:
|
|
; W32-NEXT: liveins: $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W32-NEXT: {{ $}}
|
|
; W32-NEXT: $m0 = S_MOV_B32 11
|
|
; W32-NEXT: $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr44, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63, implicit $vgpr72, implicit $vgpr73 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W32-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
;
|
|
; W64-LABEL: name: multiple_basic_blocks
|
|
; W64: bb.0:
|
|
; W64-NEXT: successors: %bb.1(0x80000000)
|
|
; W64-NEXT: liveins: $vgpr44, $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 11
|
|
; W64-NEXT: SCRATCH_STORE_BLOCK_SADDR $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0 :: ("amdgpu-thread-private" store (s1024) into %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec, 64, 0
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec, 64, 64
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr44
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec, 64, 192
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr46
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr47
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr56
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr57
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr58
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr59
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr60
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr61
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr62
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr63
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr72
|
|
; W64-NEXT: frame-setup CFI_INSTRUCTION same_value $vgpr73
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
; W64-NEXT: S_BRANCH %bb.1
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: bb.1:
|
|
; W64-NEXT: successors: %bb.2(0x80000000)
|
|
; W64-NEXT: liveins: $vgpr44, $sgpr30_sgpr31
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: S_NOP 0, implicit-def $vgpr43, implicit $vgpr44
|
|
; W64-NEXT: S_BRANCH %bb.2
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: bb.2:
|
|
; W64-NEXT: liveins: $sgpr30_sgpr31, $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73
|
|
; W64-NEXT: {{ $}}
|
|
; W64-NEXT: $m0 = S_MOV_B32 11
|
|
; W64-NEXT: $vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73 = SCRATCH_LOAD_BLOCK_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr, implicit $m0, implicit $vgpr44, implicit $vgpr46, implicit $vgpr47, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61, implicit $vgpr62, implicit $vgpr63, implicit $vgpr72, implicit $vgpr73 :: ("amdgpu-thread-private" load (s1024) from %stack.0, align 4, addrspace 5)
|
|
; W64-NEXT: S_SETPC_B64_return $sgpr30_sgpr31
|
|
bb.0:
|
|
liveins: $sgpr30_sgpr31, $vgpr44
|
|
S_NOP 0, implicit-def $vgpr42, implicit-def $vgpr45
|
|
S_BRANCH %bb.1
|
|
|
|
bb.1:
|
|
liveins: $sgpr30_sgpr31, $vgpr44
|
|
S_NOP 0, implicit-def $vgpr43, implicit $vgpr44
|
|
S_BRANCH %bb.2
|
|
|
|
bb.2:
|
|
liveins: $sgpr30_sgpr31
|
|
S_SETPC_B64_return $sgpr30_sgpr31
|
|
...
|