annotate test/CodeGen/AMDGPU/r600.work-item-intrinsics.ll @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 ; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
3 ; FUNC-LABEL: {{^}}tgid_x:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4 ; EG: MEM_RAT_CACHELESS STORE_RAW T1.X
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
5 define amdgpu_kernel void @tgid_x(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7 %0 = call i32 @llvm.r600.read.tgid.x() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 ; FUNC-LABEL: {{^}}tgid_y:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
13 ; EG: MEM_RAT_CACHELESS STORE_RAW T1.Y
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
14 define amdgpu_kernel void @tgid_y(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16 %0 = call i32 @llvm.r600.read.tgid.y() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
20
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 ; FUNC-LABEL: {{^}}tgid_z:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22 ; EG: MEM_RAT_CACHELESS STORE_RAW T1.Z
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
23 define amdgpu_kernel void @tgid_z(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25 %0 = call i32 @llvm.r600.read.tgid.z() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30 ; FUNC-LABEL: {{^}}tidig_x:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31 ; EG: MEM_RAT_CACHELESS STORE_RAW T0.X
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
32 define amdgpu_kernel void @tidig_x(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34 %0 = call i32 @llvm.r600.read.tidig.x() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39 ; FUNC-LABEL: {{^}}tidig_y:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 ; EG: MEM_RAT_CACHELESS STORE_RAW T0.Y
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
41 define amdgpu_kernel void @tidig_y(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43 %0 = call i32 @llvm.r600.read.tidig.y() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48 ; FUNC-LABEL: {{^}}tidig_z:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 ; EG: MEM_RAT_CACHELESS STORE_RAW T0.Z
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
50 define amdgpu_kernel void @tidig_z(i32 addrspace(1)* %out) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 %0 = call i32 @llvm.r600.read.tidig.z() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 store i32 %0, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 ; FUNC-LABEL: {{^}}test_implicit:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58 ; 36 prepended implicit bytes + 4(out pointer) + 4*4 = 56
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59 ; EG: VTX_READ_32 {{T[0-9]+\.[XYZW]}}, {{T[0-9]+\.[XYZW]}}, 56
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
60 define amdgpu_kernel void @test_implicit(i32 addrspace(1)* %out) #1 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61 %implicitarg.ptr = call noalias i8 addrspace(7)* @llvm.r600.implicitarg.ptr()
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 %header.ptr = bitcast i8 addrspace(7)* %implicitarg.ptr to i32 addrspace(7)*
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
63 %gep = getelementptr i32, i32 addrspace(7)* %header.ptr, i32 4
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
64 %value = load i32, i32 addrspace(7)* %gep
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
65 store i32 %value, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
66 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
67 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
68
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
69 ; FUNC-LABEL: {{^}}test_implicit_dyn:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
70 ; 36 prepended implicit bytes + 8(out pointer + in) = 44
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
71 ; EG: VTX_READ_32 {{T[0-9]+\.[XYZW]}}, {{T[0-9]+\.[XYZW]}}, 44
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
72 define amdgpu_kernel void @test_implicit_dyn(i32 addrspace(1)* %out, i32 %in) #1 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
73 %implicitarg.ptr = call noalias i8 addrspace(7)* @llvm.r600.implicitarg.ptr()
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
74 %header.ptr = bitcast i8 addrspace(7)* %implicitarg.ptr to i32 addrspace(7)*
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
75 %gep = getelementptr i32, i32 addrspace(7)* %header.ptr, i32 %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
76 %value = load i32, i32 addrspace(7)* %gep
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
77 store i32 %value, i32 addrspace(1)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
78 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
79 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
80
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
81 declare i8 addrspace(7)* @llvm.r600.implicitarg.ptr() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
82
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
83 declare i32 @llvm.r600.read.tgid.x() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
84 declare i32 @llvm.r600.read.tgid.y() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
85 declare i32 @llvm.r600.read.tgid.z() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
86
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
87 declare i32 @llvm.r600.read.tidig.x() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
88 declare i32 @llvm.r600.read.tidig.y() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
89 declare i32 @llvm.r600.read.tidig.z() #0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
90
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
91 attributes #0 = { readnone }