; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1030 | FileCheck %s -check-prefixes=GFX10 ; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1100 | FileCheck %s -check-prefix=GFX11 ; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1200 | FileCheck %s -check-prefix=GFX12 ;; Check that consecutive store operations are grouped greedily into ;; hard clauses of the appropriate length for each target. ;; This test uses <4 x i32> stores in order to prevent the stores from ;; being combined into larger operations due to their adjecency. define amdgpu_kernel void @long_store_chain(ptr addrspace(1) %p) { ; GFX10-LABEL: long_store_chain: ; GFX10: ; %bb.0: ; GFX10-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x24 ; GFX10-NEXT: s_mov_b32 s0, 0 ; GFX10-NEXT: v_mov_b32_e32 v4, 0 ; GFX10-NEXT: s_mov_b32 s1, s0 ; GFX10-NEXT: s_mov_b32 s2, s0 ; GFX10-NEXT: s_mov_b32 s3, s0 ; GFX10-NEXT: v_mov_b32_e32 v0, s0 ; GFX10-NEXT: v_mov_b32_e32 v1, s1 ; GFX10-NEXT: v_mov_b32_e32 v2, s2 ; GFX10-NEXT: v_mov_b32_e32 v3, s3 ; GFX10-NEXT: s_waitcnt lgkmcnt(0) ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:16 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:32 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:48 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:64 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:80 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:96 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:112 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:128 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:144 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:160 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:176 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:192 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:208 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:224 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:240 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:256 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:272 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:288 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:304 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:320 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:336 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:352 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:368 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:384 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:400 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:416 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:432 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:448 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:464 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:480 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:496 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:512 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:528 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:544 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:560 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:576 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:592 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:608 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:624 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:640 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:656 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:672 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:688 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:704 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:720 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:736 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:752 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:768 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:784 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:800 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:816 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:832 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:848 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:864 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:880 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:896 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:912 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:928 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:944 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:960 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:976 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:992 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:1008 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:1024 ; GFX10-NEXT: global_store_dwordx4 v4, v[0:3], s[4:5] offset:1040 ; GFX10-NEXT: s_endpgm ; ; GFX11-LABEL: long_store_chain: ; GFX11: ; %bb.0: ; GFX11-NEXT: s_load_b64 s[4:5], s[4:5], 0x24 ; GFX11-NEXT: s_mov_b32 s0, 0 ; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) ; GFX11-NEXT: s_mov_b32 s1, s0 ; GFX11-NEXT: s_mov_b32 s2, s0 ; GFX11-NEXT: s_mov_b32 s3, s0 ; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v3, s3 ; GFX11-NEXT: v_dual_mov_b32 v4, 0 :: v_dual_mov_b32 v1, s1 ; GFX11-NEXT: v_mov_b32_e32 v2, s2 ; GFX11-NEXT: s_waitcnt lgkmcnt(0) ; GFX11-NEXT: s_clause 0x1f ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:16 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:32 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:48 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:64 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:80 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:96 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:112 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:128 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:144 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:160 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:176 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:192 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:208 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:224 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:240 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:256 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:272 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:288 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:304 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:320 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:336 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:352 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:368 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:384 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:400 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:416 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:432 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:448 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:464 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:480 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:496 ; GFX11-NEXT: s_clause 0x1f ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:512 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:528 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:544 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:560 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:576 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:592 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:608 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:624 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:640 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:656 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:672 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:688 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:704 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:720 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:736 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:752 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:768 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:784 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:800 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:816 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:832 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:848 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:864 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:880 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:896 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:912 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:928 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:944 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:960 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:976 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:992 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1008 ; GFX11-NEXT: s_clause 0x1 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1024 ; GFX11-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1040 ; GFX11-NEXT: s_endpgm ; ; GFX12-LABEL: long_store_chain: ; GFX12: ; %bb.0: ; GFX12-NEXT: s_load_b64 s[4:5], s[4:5], 0x24 ; GFX12-NEXT: s_mov_b32 s0, 0 ; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) ; GFX12-NEXT: s_mov_b32 s1, s0 ; GFX12-NEXT: s_mov_b32 s2, s0 ; GFX12-NEXT: s_mov_b32 s3, s0 ; GFX12-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v3, s3 ; GFX12-NEXT: v_dual_mov_b32 v4, 0 :: v_dual_mov_b32 v1, s1 ; GFX12-NEXT: v_mov_b32_e32 v2, s2 ; GFX12-NEXT: s_wait_kmcnt 0x0 ; GFX12-NEXT: s_clause 0x1f ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:16 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:32 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:48 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:64 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:80 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:96 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:112 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:128 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:144 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:160 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:176 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:192 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:208 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:224 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:240 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:256 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:272 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:288 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:304 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:320 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:336 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:352 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:368 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:384 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:400 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:416 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:432 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:448 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:464 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:480 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:496 ; GFX12-NEXT: s_clause 0x1f ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:512 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:528 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:544 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:560 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:576 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:592 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:608 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:624 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:640 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:656 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:672 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:688 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:704 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:720 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:736 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:752 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:768 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:784 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:800 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:816 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:832 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:848 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:864 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:880 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:896 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:912 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:928 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:944 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:960 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:976 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:992 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1008 ; GFX12-NEXT: s_clause 0x1 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1024 ; GFX12-NEXT: global_store_b128 v4, v[0:3], s[4:5] offset:1040 ; GFX12-NEXT: s_endpgm store <4 x i32> zeroinitializer, ptr addrspace(1) %p %ptr1 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 1 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr1 %ptr2 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 2 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr2 %ptr3 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 3 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr3 %ptr4 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 4 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr4 %ptr5 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 5 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr5 %ptr6 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 6 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr6 %ptr7 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 7 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr7 %ptr8 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 8 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr8 %ptr9 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 9 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr9 %ptr10 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 10 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr10 %ptr11 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 11 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr11 %ptr12 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 12 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr12 %ptr13 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 13 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr13 %ptr14 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 14 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr14 %ptr15 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 15 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr15 %ptr16 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 16 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr16 %ptr17 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 17 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr17 %ptr18 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 18 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr18 %ptr19 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 19 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr19 %ptr20 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 20 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr20 %ptr21 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 21 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr21 %ptr22 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 22 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr22 %ptr23 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 23 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr23 %ptr24 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 24 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr24 %ptr25 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 25 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr25 %ptr26 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 26 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr26 %ptr27 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 27 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr27 %ptr28 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 28 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr28 %ptr29 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 29 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr29 %ptr30 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 30 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr30 %ptr31 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 31 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr31 %ptr32 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 32 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr32 %ptr33 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 33 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr33 %ptr34 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 34 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr34 %ptr35 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 35 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr35 %ptr36 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 36 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr36 %ptr37 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 37 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr37 %ptr38 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 38 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr38 %ptr39 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 39 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr39 %ptr40 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 40 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr40 %ptr41 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 41 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr41 %ptr42 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 42 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr42 %ptr43 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 43 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr43 %ptr44 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 44 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr44 %ptr45 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 45 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr45 %ptr46 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 46 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr46 %ptr47 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 47 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr47 %ptr48 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 48 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr48 %ptr49 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 49 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr49 %ptr50 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 50 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr50 %ptr51 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 51 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr51 %ptr52 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 52 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr52 %ptr53 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 53 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr53 %ptr54 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 54 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr54 %ptr55 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 55 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr55 %ptr56 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 56 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr56 %ptr57 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 57 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr57 %ptr58 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 58 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr58 %ptr59 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 59 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr59 %ptr60 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 60 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr60 %ptr61 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 61 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr61 %ptr62 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 62 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr62 %ptr63 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 63 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr63 %ptr64 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 64 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr64 %ptr65 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 65 store <4 x i32> zeroinitializer, ptr addrspace(1) %ptr65 ret void } ;; Long chain of loads since gfx10 doesn't cluster stores. ;; Use i32 loads to save on register pressure define amdgpu_kernel void @long_load_chain(ptr addrspace(1) %p) { ; GFX10-LABEL: long_load_chain: ; GFX10: ; %bb.0: ; GFX10-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 ; GFX10-NEXT: s_waitcnt lgkmcnt(0) ; GFX10-NEXT: s_clause 0x3e ; GFX10-NEXT: s_load_dword s2, s[0:1], 0x0 ; GFX10-NEXT: s_load_dword s3, s[0:1], 0x10 ; GFX10-NEXT: s_load_dword s4, s[0:1], 0x20 ; GFX10-NEXT: s_load_dword s5, s[0:1], 0x30 ; GFX10-NEXT: s_load_dword s6, s[0:1], 0x40 ; GFX10-NEXT: s_load_dword s7, s[0:1], 0x50 ; GFX10-NEXT: s_load_dword s8, s[0:1], 0x60 ; GFX10-NEXT: s_load_dword s9, s[0:1], 0x70 ; GFX10-NEXT: s_load_dword s10, s[0:1], 0x80 ; GFX10-NEXT: s_load_dword s11, s[0:1], 0x90 ; GFX10-NEXT: s_load_dword s12, s[0:1], 0xa0 ; GFX10-NEXT: s_load_dword s13, s[0:1], 0xb0 ; GFX10-NEXT: s_load_dword s14, s[0:1], 0xc0 ; GFX10-NEXT: s_load_dword s15, s[0:1], 0xd0 ; GFX10-NEXT: s_load_dword s16, s[0:1], 0xe0 ; GFX10-NEXT: s_load_dword s17, s[0:1], 0xf0 ; GFX10-NEXT: s_load_dword s18, s[0:1], 0x100 ; GFX10-NEXT: s_load_dword s19, s[0:1], 0x110 ; GFX10-NEXT: s_load_dword s20, s[0:1], 0x120 ; GFX10-NEXT: s_load_dword s21, s[0:1], 0x130 ; GFX10-NEXT: s_load_dword s22, s[0:1], 0x140 ; GFX10-NEXT: s_load_dword s23, s[0:1], 0x150 ; GFX10-NEXT: s_load_dword s24, s[0:1], 0x160 ; GFX10-NEXT: s_load_dword s25, s[0:1], 0x170 ; GFX10-NEXT: s_load_dword s26, s[0:1], 0x180 ; GFX10-NEXT: s_load_dword s27, s[0:1], 0x190 ; GFX10-NEXT: s_load_dword s28, s[0:1], 0x1a0 ; GFX10-NEXT: s_load_dword s29, s[0:1], 0x1b0 ; GFX10-NEXT: s_load_dword s30, s[0:1], 0x1c0 ; GFX10-NEXT: s_load_dword s31, s[0:1], 0x1d0 ; GFX10-NEXT: s_load_dword s33, s[0:1], 0x1e0 ; GFX10-NEXT: s_load_dword s34, s[0:1], 0x1f0 ; GFX10-NEXT: s_load_dword s35, s[0:1], 0x200 ; GFX10-NEXT: s_load_dword s36, s[0:1], 0x210 ; GFX10-NEXT: s_load_dword s37, s[0:1], 0x220 ; GFX10-NEXT: s_load_dword s38, s[0:1], 0x230 ; GFX10-NEXT: s_load_dword s39, s[0:1], 0x240 ; GFX10-NEXT: s_load_dword s40, s[0:1], 0x250 ; GFX10-NEXT: s_load_dword s41, s[0:1], 0x260 ; GFX10-NEXT: s_load_dword s42, s[0:1], 0x270 ; GFX10-NEXT: s_load_dword s43, s[0:1], 0x280 ; GFX10-NEXT: s_load_dword s44, s[0:1], 0x290 ; GFX10-NEXT: s_load_dword s45, s[0:1], 0x2a0 ; GFX10-NEXT: s_load_dword s46, s[0:1], 0x2b0 ; GFX10-NEXT: s_load_dword s47, s[0:1], 0x2c0 ; GFX10-NEXT: s_load_dword s48, s[0:1], 0x2d0 ; GFX10-NEXT: s_load_dword s49, s[0:1], 0x2e0 ; GFX10-NEXT: s_load_dword s50, s[0:1], 0x2f0 ; GFX10-NEXT: s_load_dword s51, s[0:1], 0x300 ; GFX10-NEXT: s_load_dword s52, s[0:1], 0x310 ; GFX10-NEXT: s_load_dword s53, s[0:1], 0x320 ; GFX10-NEXT: s_load_dword s54, s[0:1], 0x330 ; GFX10-NEXT: s_load_dword s55, s[0:1], 0x340 ; GFX10-NEXT: s_load_dword s56, s[0:1], 0x350 ; GFX10-NEXT: s_load_dword s57, s[0:1], 0x360 ; GFX10-NEXT: s_load_dword s58, s[0:1], 0x370 ; GFX10-NEXT: s_load_dword s59, s[0:1], 0x380 ; GFX10-NEXT: s_load_dword s60, s[0:1], 0x390 ; GFX10-NEXT: s_load_dword s61, s[0:1], 0x3a0 ; GFX10-NEXT: s_load_dword s62, s[0:1], 0x3b0 ; GFX10-NEXT: s_load_dword s63, s[0:1], 0x3c0 ; GFX10-NEXT: s_load_dword s64, s[0:1], 0x3d0 ; GFX10-NEXT: s_load_dword s65, s[0:1], 0x3e0 ; GFX10-NEXT: s_clause 0x2 ; GFX10-NEXT: s_load_dword s66, s[0:1], 0x3f0 ; GFX10-NEXT: s_load_dword s67, s[0:1], 0x400 ; GFX10-NEXT: s_load_dword s0, s[0:1], 0x410 ; GFX10-NEXT: s_waitcnt lgkmcnt(0) ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s2 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s3 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s4 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s5 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s6 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s7 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s8 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s9 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s10 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s11 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s12 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s13 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s14 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s15 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s16 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s17 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s18 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s19 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s20 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s21 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s22 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s23 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s24 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s25 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s26 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s27 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s28 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s29 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s30 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s31 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s33 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s34 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s35 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s36 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s37 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s38 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s39 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s40 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s41 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s42 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s43 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s44 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s45 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s46 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s47 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s48 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s49 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s50 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s51 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s52 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s53 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s54 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s55 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s56 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s57 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s58 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s59 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s60 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s61 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s62 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s63 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s64 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s65 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s66 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s67 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: ;;#ASMSTART ; GFX10-NEXT: ; use s0 ; GFX10-NEXT: ;;#ASMEND ; GFX10-NEXT: s_endpgm ; ; GFX11-LABEL: long_load_chain: ; GFX11: ; %bb.0: ; GFX11-NEXT: s_load_b64 s[0:1], s[4:5], 0x24 ; GFX11-NEXT: s_waitcnt lgkmcnt(0) ; GFX11-NEXT: s_clause 0x1f ; GFX11-NEXT: s_load_b32 s2, s[0:1], 0x0 ; GFX11-NEXT: s_load_b32 s3, s[0:1], 0x10 ; GFX11-NEXT: s_load_b32 s4, s[0:1], 0x20 ; GFX11-NEXT: s_load_b32 s5, s[0:1], 0x30 ; GFX11-NEXT: s_load_b32 s6, s[0:1], 0x40 ; GFX11-NEXT: s_load_b32 s7, s[0:1], 0x50 ; GFX11-NEXT: s_load_b32 s8, s[0:1], 0x60 ; GFX11-NEXT: s_load_b32 s9, s[0:1], 0x70 ; GFX11-NEXT: s_load_b32 s10, s[0:1], 0x80 ; GFX11-NEXT: s_load_b32 s11, s[0:1], 0x90 ; GFX11-NEXT: s_load_b32 s12, s[0:1], 0xa0 ; GFX11-NEXT: s_load_b32 s13, s[0:1], 0xb0 ; GFX11-NEXT: s_load_b32 s14, s[0:1], 0xc0 ; GFX11-NEXT: s_load_b32 s15, s[0:1], 0xd0 ; GFX11-NEXT: s_load_b32 s16, s[0:1], 0xe0 ; GFX11-NEXT: s_load_b32 s17, s[0:1], 0xf0 ; GFX11-NEXT: s_load_b32 s18, s[0:1], 0x100 ; GFX11-NEXT: s_load_b32 s19, s[0:1], 0x110 ; GFX11-NEXT: s_load_b32 s20, s[0:1], 0x120 ; GFX11-NEXT: s_load_b32 s21, s[0:1], 0x130 ; GFX11-NEXT: s_load_b32 s22, s[0:1], 0x140 ; GFX11-NEXT: s_load_b32 s23, s[0:1], 0x150 ; GFX11-NEXT: s_load_b32 s24, s[0:1], 0x160 ; GFX11-NEXT: s_load_b32 s25, s[0:1], 0x170 ; GFX11-NEXT: s_load_b32 s26, s[0:1], 0x180 ; GFX11-NEXT: s_load_b32 s27, s[0:1], 0x190 ; GFX11-NEXT: s_load_b32 s28, s[0:1], 0x1a0 ; GFX11-NEXT: s_load_b32 s29, s[0:1], 0x1b0 ; GFX11-NEXT: s_load_b32 s30, s[0:1], 0x1c0 ; GFX11-NEXT: s_load_b32 s31, s[0:1], 0x1d0 ; GFX11-NEXT: s_load_b32 s33, s[0:1], 0x1e0 ; GFX11-NEXT: s_load_b32 s34, s[0:1], 0x1f0 ; GFX11-NEXT: s_clause 0x1f ; GFX11-NEXT: s_load_b32 s35, s[0:1], 0x200 ; GFX11-NEXT: s_load_b32 s36, s[0:1], 0x210 ; GFX11-NEXT: s_load_b32 s37, s[0:1], 0x220 ; GFX11-NEXT: s_load_b32 s38, s[0:1], 0x230 ; GFX11-NEXT: s_load_b32 s39, s[0:1], 0x240 ; GFX11-NEXT: s_load_b32 s40, s[0:1], 0x250 ; GFX11-NEXT: s_load_b32 s41, s[0:1], 0x260 ; GFX11-NEXT: s_load_b32 s42, s[0:1], 0x270 ; GFX11-NEXT: s_load_b32 s43, s[0:1], 0x280 ; GFX11-NEXT: s_load_b32 s44, s[0:1], 0x290 ; GFX11-NEXT: s_load_b32 s45, s[0:1], 0x2a0 ; GFX11-NEXT: s_load_b32 s46, s[0:1], 0x2b0 ; GFX11-NEXT: s_load_b32 s47, s[0:1], 0x2c0 ; GFX11-NEXT: s_load_b32 s48, s[0:1], 0x2d0 ; GFX11-NEXT: s_load_b32 s49, s[0:1], 0x2e0 ; GFX11-NEXT: s_load_b32 s50, s[0:1], 0x2f0 ; GFX11-NEXT: s_load_b32 s51, s[0:1], 0x300 ; GFX11-NEXT: s_load_b32 s52, s[0:1], 0x310 ; GFX11-NEXT: s_load_b32 s53, s[0:1], 0x320 ; GFX11-NEXT: s_load_b32 s54, s[0:1], 0x330 ; GFX11-NEXT: s_load_b32 s55, s[0:1], 0x340 ; GFX11-NEXT: s_load_b32 s56, s[0:1], 0x350 ; GFX11-NEXT: s_load_b32 s57, s[0:1], 0x360 ; GFX11-NEXT: s_load_b32 s58, s[0:1], 0x370 ; GFX11-NEXT: s_load_b32 s59, s[0:1], 0x380 ; GFX11-NEXT: s_load_b32 s60, s[0:1], 0x390 ; GFX11-NEXT: s_load_b32 s61, s[0:1], 0x3a0 ; GFX11-NEXT: s_load_b32 s62, s[0:1], 0x3b0 ; GFX11-NEXT: s_load_b32 s63, s[0:1], 0x3c0 ; GFX11-NEXT: s_load_b32 s64, s[0:1], 0x3d0 ; GFX11-NEXT: s_load_b32 s65, s[0:1], 0x3e0 ; GFX11-NEXT: s_load_b32 s66, s[0:1], 0x3f0 ; GFX11-NEXT: s_clause 0x1 ; GFX11-NEXT: s_load_b32 s67, s[0:1], 0x400 ; GFX11-NEXT: s_load_b32 s0, s[0:1], 0x410 ; GFX11-NEXT: s_waitcnt lgkmcnt(0) ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s2 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s3 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s4 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s5 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s6 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s7 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s8 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s9 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s10 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s11 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s12 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s13 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s14 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s15 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s16 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s17 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s18 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s19 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s20 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s21 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s22 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s23 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s24 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s25 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s26 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s27 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s28 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s29 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s30 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s31 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s33 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s34 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s35 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s36 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s37 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s38 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s39 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s40 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s41 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s42 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s43 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s44 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s45 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s46 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s47 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s48 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s49 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s50 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s51 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s52 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s53 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s54 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s55 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s56 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s57 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s58 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s59 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s60 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s61 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s62 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s63 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s64 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s65 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s66 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s67 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: ;;#ASMSTART ; GFX11-NEXT: ; use s0 ; GFX11-NEXT: ;;#ASMEND ; GFX11-NEXT: s_endpgm ; ; GFX12-LABEL: long_load_chain: ; GFX12: ; %bb.0: ; GFX12-NEXT: s_load_b64 s[0:1], s[4:5], 0x24 ; GFX12-NEXT: s_wait_kmcnt 0x0 ; GFX12-NEXT: s_clause 0x1f ; GFX12-NEXT: s_load_b32 s2, s[0:1], 0x0 ; GFX12-NEXT: s_load_b32 s3, s[0:1], 0x10 ; GFX12-NEXT: s_load_b32 s4, s[0:1], 0x20 ; GFX12-NEXT: s_load_b32 s5, s[0:1], 0x30 ; GFX12-NEXT: s_load_b32 s6, s[0:1], 0x40 ; GFX12-NEXT: s_load_b32 s7, s[0:1], 0x50 ; GFX12-NEXT: s_load_b32 s8, s[0:1], 0x60 ; GFX12-NEXT: s_load_b32 s9, s[0:1], 0x70 ; GFX12-NEXT: s_load_b32 s10, s[0:1], 0x80 ; GFX12-NEXT: s_load_b32 s11, s[0:1], 0x90 ; GFX12-NEXT: s_load_b32 s12, s[0:1], 0xa0 ; GFX12-NEXT: s_load_b32 s13, s[0:1], 0xb0 ; GFX12-NEXT: s_load_b32 s14, s[0:1], 0xc0 ; GFX12-NEXT: s_load_b32 s15, s[0:1], 0xd0 ; GFX12-NEXT: s_load_b32 s16, s[0:1], 0xe0 ; GFX12-NEXT: s_load_b32 s17, s[0:1], 0xf0 ; GFX12-NEXT: s_load_b32 s18, s[0:1], 0x100 ; GFX12-NEXT: s_load_b32 s19, s[0:1], 0x110 ; GFX12-NEXT: s_load_b32 s20, s[0:1], 0x120 ; GFX12-NEXT: s_load_b32 s21, s[0:1], 0x130 ; GFX12-NEXT: s_load_b32 s22, s[0:1], 0x140 ; GFX12-NEXT: s_load_b32 s23, s[0:1], 0x150 ; GFX12-NEXT: s_load_b32 s24, s[0:1], 0x160 ; GFX12-NEXT: s_load_b32 s25, s[0:1], 0x170 ; GFX12-NEXT: s_load_b32 s26, s[0:1], 0x180 ; GFX12-NEXT: s_load_b32 s27, s[0:1], 0x190 ; GFX12-NEXT: s_load_b32 s28, s[0:1], 0x1a0 ; GFX12-NEXT: s_load_b32 s29, s[0:1], 0x1b0 ; GFX12-NEXT: s_load_b32 s30, s[0:1], 0x1c0 ; GFX12-NEXT: s_load_b32 s31, s[0:1], 0x1d0 ; GFX12-NEXT: s_load_b32 s33, s[0:1], 0x1e0 ; GFX12-NEXT: s_load_b32 s34, s[0:1], 0x1f0 ; GFX12-NEXT: s_clause 0x1f ; GFX12-NEXT: s_load_b32 s35, s[0:1], 0x200 ; GFX12-NEXT: s_load_b32 s36, s[0:1], 0x210 ; GFX12-NEXT: s_load_b32 s37, s[0:1], 0x220 ; GFX12-NEXT: s_load_b32 s38, s[0:1], 0x230 ; GFX12-NEXT: s_load_b32 s39, s[0:1], 0x240 ; GFX12-NEXT: s_load_b32 s40, s[0:1], 0x250 ; GFX12-NEXT: s_load_b32 s41, s[0:1], 0x260 ; GFX12-NEXT: s_load_b32 s42, s[0:1], 0x270 ; GFX12-NEXT: s_load_b32 s43, s[0:1], 0x280 ; GFX12-NEXT: s_load_b32 s44, s[0:1], 0x290 ; GFX12-NEXT: s_load_b32 s45, s[0:1], 0x2a0 ; GFX12-NEXT: s_load_b32 s46, s[0:1], 0x2b0 ; GFX12-NEXT: s_load_b32 s47, s[0:1], 0x2c0 ; GFX12-NEXT: s_load_b32 s48, s[0:1], 0x2d0 ; GFX12-NEXT: s_load_b32 s49, s[0:1], 0x2e0 ; GFX12-NEXT: s_load_b32 s50, s[0:1], 0x2f0 ; GFX12-NEXT: s_load_b32 s51, s[0:1], 0x300 ; GFX12-NEXT: s_load_b32 s52, s[0:1], 0x310 ; GFX12-NEXT: s_load_b32 s53, s[0:1], 0x320 ; GFX12-NEXT: s_load_b32 s54, s[0:1], 0x330 ; GFX12-NEXT: s_load_b32 s55, s[0:1], 0x340 ; GFX12-NEXT: s_load_b32 s56, s[0:1], 0x350 ; GFX12-NEXT: s_load_b32 s57, s[0:1], 0x360 ; GFX12-NEXT: s_load_b32 s58, s[0:1], 0x370 ; GFX12-NEXT: s_load_b32 s59, s[0:1], 0x380 ; GFX12-NEXT: s_load_b32 s60, s[0:1], 0x390 ; GFX12-NEXT: s_load_b32 s61, s[0:1], 0x3a0 ; GFX12-NEXT: s_load_b32 s62, s[0:1], 0x3b0 ; GFX12-NEXT: s_load_b32 s63, s[0:1], 0x3c0 ; GFX12-NEXT: s_load_b32 s64, s[0:1], 0x3d0 ; GFX12-NEXT: s_load_b32 s65, s[0:1], 0x3e0 ; GFX12-NEXT: s_load_b32 s66, s[0:1], 0x3f0 ; GFX12-NEXT: s_clause 0x1 ; GFX12-NEXT: s_load_b32 s67, s[0:1], 0x400 ; GFX12-NEXT: s_load_b32 s0, s[0:1], 0x410 ; GFX12-NEXT: s_wait_kmcnt 0x0 ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s2 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s3 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s4 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s5 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s6 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s7 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s8 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s9 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s10 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s11 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s12 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s13 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s14 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s15 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s16 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s17 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s18 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s19 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s20 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s21 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s22 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s23 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s24 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s25 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s26 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s27 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s28 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s29 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s30 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s31 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s33 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s34 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s35 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s36 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s37 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s38 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s39 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s40 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s41 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s42 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s43 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s44 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s45 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s46 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s47 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s48 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s49 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s50 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s51 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s52 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s53 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s54 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s55 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s56 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s57 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s58 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s59 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s60 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s61 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s62 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s63 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s64 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s65 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s66 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s67 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: ;;#ASMSTART ; GFX12-NEXT: ; use s0 ; GFX12-NEXT: ;;#ASMEND ; GFX12-NEXT: s_endpgm %v0 = load i32, ptr addrspace(1) %p %ptr1 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 1 %v1 = load i32, ptr addrspace(1) %ptr1 %ptr2 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 2 %v2 = load i32, ptr addrspace(1) %ptr2 %ptr3 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 3 %v3 = load i32, ptr addrspace(1) %ptr3 %ptr4 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 4 %v4 = load i32, ptr addrspace(1) %ptr4 %ptr5 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 5 %v5 = load i32, ptr addrspace(1) %ptr5 %ptr6 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 6 %v6 = load i32, ptr addrspace(1) %ptr6 %ptr7 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 7 %v7 = load i32, ptr addrspace(1) %ptr7 %ptr8 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 8 %v8 = load i32, ptr addrspace(1) %ptr8 %ptr9 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 9 %v9 = load i32, ptr addrspace(1) %ptr9 %ptr10 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 10 %v10 = load i32, ptr addrspace(1) %ptr10 %ptr11 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 11 %v11 = load i32, ptr addrspace(1) %ptr11 %ptr12 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 12 %v12 = load i32, ptr addrspace(1) %ptr12 %ptr13 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 13 %v13 = load i32, ptr addrspace(1) %ptr13 %ptr14 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 14 %v14 = load i32, ptr addrspace(1) %ptr14 %ptr15 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 15 %v15 = load i32, ptr addrspace(1) %ptr15 %ptr16 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 16 %v16 = load i32, ptr addrspace(1) %ptr16 %ptr17 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 17 %v17 = load i32, ptr addrspace(1) %ptr17 %ptr18 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 18 %v18 = load i32, ptr addrspace(1) %ptr18 %ptr19 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 19 %v19 = load i32, ptr addrspace(1) %ptr19 %ptr20 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 20 %v20 = load i32, ptr addrspace(1) %ptr20 %ptr21 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 21 %v21 = load i32, ptr addrspace(1) %ptr21 %ptr22 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 22 %v22 = load i32, ptr addrspace(1) %ptr22 %ptr23 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 23 %v23 = load i32, ptr addrspace(1) %ptr23 %ptr24 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 24 %v24 = load i32, ptr addrspace(1) %ptr24 %ptr25 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 25 %v25 = load i32, ptr addrspace(1) %ptr25 %ptr26 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 26 %v26 = load i32, ptr addrspace(1) %ptr26 %ptr27 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 27 %v27 = load i32, ptr addrspace(1) %ptr27 %ptr28 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 28 %v28 = load i32, ptr addrspace(1) %ptr28 %ptr29 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 29 %v29 = load i32, ptr addrspace(1) %ptr29 %ptr30 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 30 %v30 = load i32, ptr addrspace(1) %ptr30 %ptr31 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 31 %v31 = load i32, ptr addrspace(1) %ptr31 %ptr32 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 32 %v32 = load i32, ptr addrspace(1) %ptr32 %ptr33 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 33 %v33 = load i32, ptr addrspace(1) %ptr33 %ptr34 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 34 %v34 = load i32, ptr addrspace(1) %ptr34 %ptr35 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 35 %v35 = load i32, ptr addrspace(1) %ptr35 %ptr36 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 36 %v36 = load i32, ptr addrspace(1) %ptr36 %ptr37 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 37 %v37 = load i32, ptr addrspace(1) %ptr37 %ptr38 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 38 %v38 = load i32, ptr addrspace(1) %ptr38 %ptr39 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 39 %v39 = load i32, ptr addrspace(1) %ptr39 %ptr40 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 40 %v40 = load i32, ptr addrspace(1) %ptr40 %ptr41 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 41 %v41 = load i32, ptr addrspace(1) %ptr41 %ptr42 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 42 %v42 = load i32, ptr addrspace(1) %ptr42 %ptr43 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 43 %v43 = load i32, ptr addrspace(1) %ptr43 %ptr44 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 44 %v44 = load i32, ptr addrspace(1) %ptr44 %ptr45 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 45 %v45 = load i32, ptr addrspace(1) %ptr45 %ptr46 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 46 %v46 = load i32, ptr addrspace(1) %ptr46 %ptr47 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 47 %v47 = load i32, ptr addrspace(1) %ptr47 %ptr48 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 48 %v48 = load i32, ptr addrspace(1) %ptr48 %ptr49 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 49 %v49 = load i32, ptr addrspace(1) %ptr49 %ptr50 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 50 %v50 = load i32, ptr addrspace(1) %ptr50 %ptr51 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 51 %v51 = load i32, ptr addrspace(1) %ptr51 %ptr52 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 52 %v52 = load i32, ptr addrspace(1) %ptr52 %ptr53 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 53 %v53 = load i32, ptr addrspace(1) %ptr53 %ptr54 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 54 %v54 = load i32, ptr addrspace(1) %ptr54 %ptr55 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 55 %v55 = load i32, ptr addrspace(1) %ptr55 %ptr56 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 56 %v56 = load i32, ptr addrspace(1) %ptr56 %ptr57 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 57 %v57 = load i32, ptr addrspace(1) %ptr57 %ptr58 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 58 %v58 = load i32, ptr addrspace(1) %ptr58 %ptr59 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 59 %v59 = load i32, ptr addrspace(1) %ptr59 %ptr60 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 60 %v60 = load i32, ptr addrspace(1) %ptr60 %ptr61 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 61 %v61 = load i32, ptr addrspace(1) %ptr61 %ptr62 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 62 %v62 = load i32, ptr addrspace(1) %ptr62 %ptr63 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 63 %v63 = load i32, ptr addrspace(1) %ptr63 %ptr64 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 64 %v64 = load i32, ptr addrspace(1) %ptr64 %ptr65 = getelementptr <4 x i32>, ptr addrspace(1) %p, i64 65 %v65 = load i32, ptr addrspace(1) %ptr65 call void asm sideeffect "; use $0", "s"(i32 %v0) call void asm sideeffect "; use $0", "s"(i32 %v1) call void asm sideeffect "; use $0", "s"(i32 %v2) call void asm sideeffect "; use $0", "s"(i32 %v3) call void asm sideeffect "; use $0", "s"(i32 %v4) call void asm sideeffect "; use $0", "s"(i32 %v5) call void asm sideeffect "; use $0", "s"(i32 %v6) call void asm sideeffect "; use $0", "s"(i32 %v7) call void asm sideeffect "; use $0", "s"(i32 %v8) call void asm sideeffect "; use $0", "s"(i32 %v9) call void asm sideeffect "; use $0", "s"(i32 %v10) call void asm sideeffect "; use $0", "s"(i32 %v11) call void asm sideeffect "; use $0", "s"(i32 %v12) call void asm sideeffect "; use $0", "s"(i32 %v13) call void asm sideeffect "; use $0", "s"(i32 %v14) call void asm sideeffect "; use $0", "s"(i32 %v15) call void asm sideeffect "; use $0", "s"(i32 %v16) call void asm sideeffect "; use $0", "s"(i32 %v17) call void asm sideeffect "; use $0", "s"(i32 %v18) call void asm sideeffect "; use $0", "s"(i32 %v19) call void asm sideeffect "; use $0", "s"(i32 %v20) call void asm sideeffect "; use $0", "s"(i32 %v21) call void asm sideeffect "; use $0", "s"(i32 %v22) call void asm sideeffect "; use $0", "s"(i32 %v23) call void asm sideeffect "; use $0", "s"(i32 %v24) call void asm sideeffect "; use $0", "s"(i32 %v25) call void asm sideeffect "; use $0", "s"(i32 %v26) call void asm sideeffect "; use $0", "s"(i32 %v27) call void asm sideeffect "; use $0", "s"(i32 %v28) call void asm sideeffect "; use $0", "s"(i32 %v29) call void asm sideeffect "; use $0", "s"(i32 %v30) call void asm sideeffect "; use $0", "s"(i32 %v31) call void asm sideeffect "; use $0", "s"(i32 %v32) call void asm sideeffect "; use $0", "s"(i32 %v33) call void asm sideeffect "; use $0", "s"(i32 %v34) call void asm sideeffect "; use $0", "s"(i32 %v35) call void asm sideeffect "; use $0", "s"(i32 %v36) call void asm sideeffect "; use $0", "s"(i32 %v37) call void asm sideeffect "; use $0", "s"(i32 %v38) call void asm sideeffect "; use $0", "s"(i32 %v39) call void asm sideeffect "; use $0", "s"(i32 %v40) call void asm sideeffect "; use $0", "s"(i32 %v41) call void asm sideeffect "; use $0", "s"(i32 %v42) call void asm sideeffect "; use $0", "s"(i32 %v43) call void asm sideeffect "; use $0", "s"(i32 %v44) call void asm sideeffect "; use $0", "s"(i32 %v45) call void asm sideeffect "; use $0", "s"(i32 %v46) call void asm sideeffect "; use $0", "s"(i32 %v47) call void asm sideeffect "; use $0", "s"(i32 %v48) call void asm sideeffect "; use $0", "s"(i32 %v49) call void asm sideeffect "; use $0", "s"(i32 %v50) call void asm sideeffect "; use $0", "s"(i32 %v51) call void asm sideeffect "; use $0", "s"(i32 %v52) call void asm sideeffect "; use $0", "s"(i32 %v53) call void asm sideeffect "; use $0", "s"(i32 %v54) call void asm sideeffect "; use $0", "s"(i32 %v55) call void asm sideeffect "; use $0", "s"(i32 %v56) call void asm sideeffect "; use $0", "s"(i32 %v57) call void asm sideeffect "; use $0", "s"(i32 %v58) call void asm sideeffect "; use $0", "s"(i32 %v59) call void asm sideeffect "; use $0", "s"(i32 %v60) call void asm sideeffect "; use $0", "s"(i32 %v61) call void asm sideeffect "; use $0", "s"(i32 %v62) call void asm sideeffect "; use $0", "s"(i32 %v63) call void asm sideeffect "; use $0", "s"(i32 %v64) call void asm sideeffect "; use $0", "s"(i32 %v65) ret void }