1 ; RUN: llc -march=amdgcn -mcpu=fiji -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefix=ALL -check-prefix=SGPR %s
3 ; Make sure this doesn't crash.
4 ; ALL-LABEL: {{^}}test:
5 ; ALL: s_mov_b32 s[[LO:[0-9]+]], SCRATCH_RSRC_DWORD0
6 ; ALL: s_mov_b32 s[[HI:[0-9]+]], 0xe80000
8 ; Make sure we are handling hazards correctly.
9 ; SGPR: buffer_load_dword [[VHI:v[0-9]+]], off, s[{{[0-9]+:[0-9]+}}], 0 offset:4
10 ; SGPR-NEXT: s_waitcnt vmcnt(0)
11 ; SGPR-NEXT: v_readlane_b32 s{{[0-9]+}}, [[VHI]], 0
12 ; SGPR-NEXT: v_readlane_b32 s{{[0-9]+}}, [[VHI]], 1
13 ; SGPR-NEXT: v_readlane_b32 s{{[0-9]+}}, [[VHI]], 2
14 ; SGPR-NEXT: v_readlane_b32 s[[HI:[0-9]+]], [[VHI]], 3
15 ; SGPR-NEXT: buffer_load_dword [[VHI]], off, s[96:99], 0
16 ; SGPR-NEXT: s_waitcnt vmcnt(0)
17 ; SGPR-NEXT: s_mov_b64 exec, s[4:5]
19 ; SGPR-NEXT: buffer_store_dword v0, off, s[0:3], 0
22 define amdgpu_kernel void @test(i32 addrspace(1)* %out, i32 %in) {
23 call void asm sideeffect "", "~{s[0:7]}" ()
24 call void asm sideeffect "", "~{s[8:15]}" ()
25 call void asm sideeffect "", "~{s[16:23]}" ()
26 call void asm sideeffect "", "~{s[24:31]}" ()
27 call void asm sideeffect "", "~{s[32:39]}" ()
28 call void asm sideeffect "", "~{s[40:47]}" ()
29 call void asm sideeffect "", "~{s[48:55]}" ()
30 call void asm sideeffect "", "~{s[56:63]}" ()
31 call void asm sideeffect "", "~{s[64:71]}" ()
32 call void asm sideeffect "", "~{s[72:79]}" ()
33 call void asm sideeffect "", "~{s[80:87]}" ()
34 call void asm sideeffect "", "~{s[88:95]}" ()
35 call void asm sideeffect "", "~{v[0:7]}" ()
36 call void asm sideeffect "", "~{v[8:15]}" ()
37 call void asm sideeffect "", "~{v[16:23]}" ()
38 call void asm sideeffect "", "~{v[24:31]}" ()
39 call void asm sideeffect "", "~{v[32:39]}" ()
40 call void asm sideeffect "", "~{v[40:47]}" ()
41 call void asm sideeffect "", "~{v[48:55]}" ()
42 call void asm sideeffect "", "~{v[56:63]}" ()
43 call void asm sideeffect "", "~{v[64:71]}" ()
44 call void asm sideeffect "", "~{v[72:79]}" ()
45 call void asm sideeffect "", "~{v[80:87]}" ()
46 call void asm sideeffect "", "~{v[88:95]}" ()
47 call void asm sideeffect "", "~{v[96:103]}" ()
48 call void asm sideeffect "", "~{v[104:111]}" ()
49 call void asm sideeffect "", "~{v[112:119]}" ()
50 call void asm sideeffect "", "~{v[120:127]}" ()
51 call void asm sideeffect "", "~{v[128:135]}" ()
52 call void asm sideeffect "", "~{v[136:143]}" ()
53 call void asm sideeffect "", "~{v[144:151]}" ()
54 call void asm sideeffect "", "~{v[152:159]}" ()
55 call void asm sideeffect "", "~{v[160:167]}" ()
56 call void asm sideeffect "", "~{v[168:175]}" ()
57 call void asm sideeffect "", "~{v[176:183]}" ()
58 call void asm sideeffect "", "~{v[184:191]}" ()
59 call void asm sideeffect "", "~{v[192:199]}" ()
60 call void asm sideeffect "", "~{v[200:207]}" ()
61 call void asm sideeffect "", "~{v[208:215]}" ()
62 call void asm sideeffect "", "~{v[216:223]}" ()
63 call void asm sideeffect "", "~{v[224:231]}" ()
64 call void asm sideeffect "", "~{v[232:239]}" ()
65 call void asm sideeffect "", "~{v[240:247]}" ()
66 call void asm sideeffect "", "~{v[248:255]}" ()
68 store i32 %in, i32 addrspace(1)* %out