55; Test PTRADD handling in AMDGPUDAGToDAGISel::SelectMUBUF.
66
77define amdgpu_kernel void @v_add_i32 (ptr addrspace (1 ) %out , ptr addrspace (1 ) %in ) {
8- ; GFX6_PTRADD-LABEL: v_add_i32:
9- ; GFX6_PTRADD: ; %bb.0:
10- ; GFX6_PTRADD-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0
11- ; GFX6_PTRADD-NEXT: v_lshlrev_b32_e32 v0, 2, v0
12- ; GFX6_PTRADD-NEXT: s_mov_b32 s7, 0x100f000
13- ; GFX6_PTRADD-NEXT: s_mov_b32 s10, 0
14- ; GFX6_PTRADD-NEXT: s_mov_b32 s11, s7
15- ; GFX6_PTRADD-NEXT: s_waitcnt lgkmcnt(0)
16- ; GFX6_PTRADD-NEXT: v_mov_b32_e32 v1, s3
17- ; GFX6_PTRADD-NEXT: v_add_i32_e32 v0, vcc, s2, v0
18- ; GFX6_PTRADD-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc
19- ; GFX6_PTRADD-NEXT: s_mov_b32 s8, s10
20- ; GFX6_PTRADD-NEXT: s_mov_b32 s9, s10
21- ; GFX6_PTRADD-NEXT: buffer_load_dword v2, v[0:1], s[8:11], 0 addr64 glc
22- ; GFX6_PTRADD-NEXT: s_waitcnt vmcnt(0)
23- ; GFX6_PTRADD-NEXT: buffer_load_dword v0, v[0:1], s[8:11], 0 addr64 offset:4 glc
24- ; GFX6_PTRADD-NEXT: s_waitcnt vmcnt(0)
25- ; GFX6_PTRADD-NEXT: s_mov_b32 s6, -1
26- ; GFX6_PTRADD-NEXT: s_mov_b32 s4, s0
27- ; GFX6_PTRADD-NEXT: s_mov_b32 s5, s1
28- ; GFX6_PTRADD-NEXT: v_add_i32_e32 v0, vcc, v2, v0
29- ; GFX6_PTRADD-NEXT: buffer_store_dword v0, off, s[4:7], 0
30- ; GFX6_PTRADD-NEXT: s_endpgm
31- ;
32- ; GFX6_LEGACY-LABEL: v_add_i32:
33- ; GFX6_LEGACY: ; %bb.0:
34- ; GFX6_LEGACY-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0
35- ; GFX6_LEGACY-NEXT: s_mov_b32 s7, 0x100f000
36- ; GFX6_LEGACY-NEXT: s_mov_b32 s10, 0
37- ; GFX6_LEGACY-NEXT: s_mov_b32 s11, s7
38- ; GFX6_LEGACY-NEXT: v_lshlrev_b32_e32 v0, 2, v0
39- ; GFX6_LEGACY-NEXT: s_waitcnt lgkmcnt(0)
40- ; GFX6_LEGACY-NEXT: s_mov_b64 s[8:9], s[2:3]
41- ; GFX6_LEGACY-NEXT: v_mov_b32_e32 v1, 0
42- ; GFX6_LEGACY-NEXT: buffer_load_dword v2, v[0:1], s[8:11], 0 addr64 glc
43- ; GFX6_LEGACY-NEXT: s_waitcnt vmcnt(0)
44- ; GFX6_LEGACY-NEXT: buffer_load_dword v0, v[0:1], s[8:11], 0 addr64 offset:4 glc
45- ; GFX6_LEGACY-NEXT: s_waitcnt vmcnt(0)
46- ; GFX6_LEGACY-NEXT: s_mov_b32 s6, -1
47- ; GFX6_LEGACY-NEXT: s_mov_b32 s4, s0
48- ; GFX6_LEGACY-NEXT: s_mov_b32 s5, s1
49- ; GFX6_LEGACY-NEXT: v_add_i32_e32 v0, vcc, v2, v0
50- ; GFX6_LEGACY-NEXT: buffer_store_dword v0, off, s[4:7], 0
51- ; GFX6_LEGACY-NEXT: s_endpgm
8+ ; GFX6-LABEL: v_add_i32:
9+ ; GFX6: ; %bb.0:
10+ ; GFX6-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0
11+ ; GFX6-NEXT: s_mov_b32 s7, 0x100f000
12+ ; GFX6-NEXT: s_mov_b32 s10, 0
13+ ; GFX6-NEXT: s_mov_b32 s11, s7
14+ ; GFX6-NEXT: v_lshlrev_b32_e32 v0, 2, v0
15+ ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
16+ ; GFX6-NEXT: s_mov_b64 s[8:9], s[2:3]
17+ ; GFX6-NEXT: v_mov_b32_e32 v1, 0
18+ ; GFX6-NEXT: buffer_load_dword v2, v[0:1], s[8:11], 0 addr64 glc
19+ ; GFX6-NEXT: s_waitcnt vmcnt(0)
20+ ; GFX6-NEXT: buffer_load_dword v0, v[0:1], s[8:11], 0 addr64 offset:4 glc
21+ ; GFX6-NEXT: s_waitcnt vmcnt(0)
22+ ; GFX6-NEXT: s_mov_b32 s6, -1
23+ ; GFX6-NEXT: s_mov_b32 s4, s0
24+ ; GFX6-NEXT: s_mov_b32 s5, s1
25+ ; GFX6-NEXT: v_add_i32_e32 v0, vcc, v2, v0
26+ ; GFX6-NEXT: buffer_store_dword v0, off, s[4:7], 0
27+ ; GFX6-NEXT: s_endpgm
5228 %tid = call i32 @llvm.amdgcn.workitem.id.x ()
5329 %gep = getelementptr inbounds i32 , ptr addrspace (1 ) %in , i32 %tid
5430 %b_ptr = getelementptr i32 , ptr addrspace (1 ) %gep , i32 1
@@ -60,4 +36,5 @@ define amdgpu_kernel void @v_add_i32(ptr addrspace(1) %out, ptr addrspace(1) %in
6036}
6137
6238;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
63- ; GFX6: {{.*}}
39+ ; GFX6_LEGACY: {{.*}}
40+ ; GFX6_PTRADD: {{.*}}
0 commit comments