| ; 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 | |
| } |