annotate llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.a16.dim.ll @ 221:79ff65ed7e25

LLVM12 Original
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Jun 2021 19:15:29 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
anatofuz
parents:
diff changeset
2 ; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9 %s
anatofuz
parents:
diff changeset
3 ; RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10 %s
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 define amdgpu_ps <4 x float> @load_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
6 ; GFX9-LABEL: load_1d:
anatofuz
parents:
diff changeset
7 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
8 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
9 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
10 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
11 ;
anatofuz
parents:
diff changeset
12 ; GFX10-LABEL: load_1d:
anatofuz
parents:
diff changeset
13 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
14 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
15 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
16 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
17 main_body:
anatofuz
parents:
diff changeset
18 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
19 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
20 ret <4 x float> %v
anatofuz
parents:
diff changeset
21 }
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 define amdgpu_ps <4 x float> @load_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
24 ; GFX9-LABEL: load_2d:
anatofuz
parents:
diff changeset
25 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
26 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
27 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
28 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
29 ;
anatofuz
parents:
diff changeset
30 ; GFX10-LABEL: load_2d:
anatofuz
parents:
diff changeset
31 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
32 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
33 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
34 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
35 main_body:
anatofuz
parents:
diff changeset
36 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
37 %t = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
38 %v = call <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
39 ret <4 x float> %v
anatofuz
parents:
diff changeset
40 }
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 define amdgpu_ps <4 x float> @load_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
43 ; GFX9-LABEL: load_3d:
anatofuz
parents:
diff changeset
44 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
45 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
46 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
47 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
48 ;
anatofuz
parents:
diff changeset
49 ; GFX10-LABEL: load_3d:
anatofuz
parents:
diff changeset
50 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
51 ; GFX10-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
52 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
53 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
54 main_body:
anatofuz
parents:
diff changeset
55 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
56 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
57 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
58 %v = call <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
59 ret <4 x float> %v
anatofuz
parents:
diff changeset
60 }
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 define amdgpu_ps <4 x float> @load_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
63 ; GFX9-LABEL: load_cube:
anatofuz
parents:
diff changeset
64 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
65 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
66 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
67 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
68 ;
anatofuz
parents:
diff changeset
69 ; GFX10-LABEL: load_cube:
anatofuz
parents:
diff changeset
70 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
71 ; GFX10-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
72 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
73 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
74 main_body:
anatofuz
parents:
diff changeset
75 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
76 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
77 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
78 %v = call <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
79 ret <4 x float> %v
anatofuz
parents:
diff changeset
80 }
anatofuz
parents:
diff changeset
81
anatofuz
parents:
diff changeset
82 define amdgpu_ps <4 x float> @load_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
83 ; GFX9-LABEL: load_1darray:
anatofuz
parents:
diff changeset
84 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
85 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
86 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
87 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
88 ;
anatofuz
parents:
diff changeset
89 ; GFX10-LABEL: load_1darray:
anatofuz
parents:
diff changeset
90 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
91 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
92 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
93 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
94 main_body:
anatofuz
parents:
diff changeset
95 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
96 %slice = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
97 %v = call <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
98 ret <4 x float> %v
anatofuz
parents:
diff changeset
99 }
anatofuz
parents:
diff changeset
100
anatofuz
parents:
diff changeset
101 define amdgpu_ps <4 x float> @load_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
102 ; GFX9-LABEL: load_2darray:
anatofuz
parents:
diff changeset
103 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
104 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
105 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
106 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
107 ;
anatofuz
parents:
diff changeset
108 ; GFX10-LABEL: load_2darray:
anatofuz
parents:
diff changeset
109 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
110 ; GFX10-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
111 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
112 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
113 main_body:
anatofuz
parents:
diff changeset
114 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
115 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
116 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
117 %v = call <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
118 ret <4 x float> %v
anatofuz
parents:
diff changeset
119 }
anatofuz
parents:
diff changeset
120
anatofuz
parents:
diff changeset
121 define amdgpu_ps <4 x float> @load_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
122 ; GFX9-LABEL: load_2dmsaa:
anatofuz
parents:
diff changeset
123 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
124 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
125 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
126 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
127 ;
anatofuz
parents:
diff changeset
128 ; GFX10-LABEL: load_2dmsaa:
anatofuz
parents:
diff changeset
129 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
130 ; GFX10-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
anatofuz
parents:
diff changeset
131 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
132 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
133 main_body:
anatofuz
parents:
diff changeset
134 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
135 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
136 %fragid = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
137 %v = call <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
138 ret <4 x float> %v
anatofuz
parents:
diff changeset
139 }
anatofuz
parents:
diff changeset
140
anatofuz
parents:
diff changeset
141 define amdgpu_ps <4 x float> @load_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
142 ; GFX9-LABEL: load_2darraymsaa:
anatofuz
parents:
diff changeset
143 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
144 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
145 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
146 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
147 ;
anatofuz
parents:
diff changeset
148 ; GFX10-LABEL: load_2darraymsaa:
anatofuz
parents:
diff changeset
149 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
150 ; GFX10-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
anatofuz
parents:
diff changeset
151 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
152 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
153 main_body:
anatofuz
parents:
diff changeset
154 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
155 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
156 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
157 %fragid = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
158 %v = call <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
159 ret <4 x float> %v
anatofuz
parents:
diff changeset
160 }
anatofuz
parents:
diff changeset
161
anatofuz
parents:
diff changeset
162 define amdgpu_ps <4 x float> @load_mip_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
163 ; GFX9-LABEL: load_mip_1d:
anatofuz
parents:
diff changeset
164 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
165 ; GFX9-NEXT: image_load_mip v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
166 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
167 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
168 ;
anatofuz
parents:
diff changeset
169 ; GFX10-LABEL: load_mip_1d:
anatofuz
parents:
diff changeset
170 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
171 ; GFX10-NEXT: image_load_mip v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
172 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
173 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
174 main_body:
anatofuz
parents:
diff changeset
175 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
176 %mip = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
177 %v = call <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
178 ret <4 x float> %v
anatofuz
parents:
diff changeset
179 }
anatofuz
parents:
diff changeset
180
anatofuz
parents:
diff changeset
181 define amdgpu_ps <4 x float> @load_mip_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
182 ; GFX9-LABEL: load_mip_2d:
anatofuz
parents:
diff changeset
183 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
184 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
185 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
186 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
187 ;
anatofuz
parents:
diff changeset
188 ; GFX10-LABEL: load_mip_2d:
anatofuz
parents:
diff changeset
189 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
190 ; GFX10-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
191 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
192 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
193 main_body:
anatofuz
parents:
diff changeset
194 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
195 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
196 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
197 %v = call <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
198 ret <4 x float> %v
anatofuz
parents:
diff changeset
199 }
anatofuz
parents:
diff changeset
200
anatofuz
parents:
diff changeset
201 define amdgpu_ps <4 x float> @load_mip_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
202 ; GFX9-LABEL: load_mip_3d:
anatofuz
parents:
diff changeset
203 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
204 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
205 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
206 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
207 ;
anatofuz
parents:
diff changeset
208 ; GFX10-LABEL: load_mip_3d:
anatofuz
parents:
diff changeset
209 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
210 ; GFX10-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
211 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
212 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
213 main_body:
anatofuz
parents:
diff changeset
214 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
215 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
216 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
217 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
218 %v = call <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
219 ret <4 x float> %v
anatofuz
parents:
diff changeset
220 }
anatofuz
parents:
diff changeset
221
anatofuz
parents:
diff changeset
222 define amdgpu_ps <4 x float> @load_mip_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
223 ; GFX9-LABEL: load_mip_cube:
anatofuz
parents:
diff changeset
224 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
225 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
226 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
227 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
228 ;
anatofuz
parents:
diff changeset
229 ; GFX10-LABEL: load_mip_cube:
anatofuz
parents:
diff changeset
230 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
231 ; GFX10-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
232 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
233 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
234 main_body:
anatofuz
parents:
diff changeset
235 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
236 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
237 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
238 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
239 %v = call <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
240 ret <4 x float> %v
anatofuz
parents:
diff changeset
241 }
anatofuz
parents:
diff changeset
242
anatofuz
parents:
diff changeset
243 define amdgpu_ps <4 x float> @load_mip_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
244 ; GFX9-LABEL: load_mip_1darray:
anatofuz
parents:
diff changeset
245 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
246 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
247 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
248 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
249 ;
anatofuz
parents:
diff changeset
250 ; GFX10-LABEL: load_mip_1darray:
anatofuz
parents:
diff changeset
251 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
252 ; GFX10-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
253 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
254 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
255 main_body:
anatofuz
parents:
diff changeset
256 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
257 %slice = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
258 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
259 %v = call <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
260 ret <4 x float> %v
anatofuz
parents:
diff changeset
261 }
anatofuz
parents:
diff changeset
262
anatofuz
parents:
diff changeset
263 define amdgpu_ps <4 x float> @load_mip_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
264 ; GFX9-LABEL: load_mip_2darray:
anatofuz
parents:
diff changeset
265 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
266 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
267 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
268 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
269 ;
anatofuz
parents:
diff changeset
270 ; GFX10-LABEL: load_mip_2darray:
anatofuz
parents:
diff changeset
271 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
272 ; GFX10-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
273 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
274 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
275 main_body:
anatofuz
parents:
diff changeset
276 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
277 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
278 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
279 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
280 %v = call <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
281 ret <4 x float> %v
anatofuz
parents:
diff changeset
282 }
anatofuz
parents:
diff changeset
283
anatofuz
parents:
diff changeset
284 define amdgpu_ps void @store_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
285 ; GFX9-LABEL: store_1d:
anatofuz
parents:
diff changeset
286 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
287 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
288 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
289 ;
anatofuz
parents:
diff changeset
290 ; GFX10-LABEL: store_1d:
anatofuz
parents:
diff changeset
291 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
292 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
293 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
294 main_body:
anatofuz
parents:
diff changeset
295 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
296 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
297 ret void
anatofuz
parents:
diff changeset
298 }
anatofuz
parents:
diff changeset
299
anatofuz
parents:
diff changeset
300 define amdgpu_ps void @store_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
301 ; GFX9-LABEL: store_2d:
anatofuz
parents:
diff changeset
302 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
303 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
304 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
305 ;
anatofuz
parents:
diff changeset
306 ; GFX10-LABEL: store_2d:
anatofuz
parents:
diff changeset
307 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
308 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
309 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
310 main_body:
anatofuz
parents:
diff changeset
311 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
312 %t = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
313 call void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
314 ret void
anatofuz
parents:
diff changeset
315 }
anatofuz
parents:
diff changeset
316
anatofuz
parents:
diff changeset
317 define amdgpu_ps void @store_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
318 ; GFX9-LABEL: store_3d:
anatofuz
parents:
diff changeset
319 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
320 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
321 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
322 ;
anatofuz
parents:
diff changeset
323 ; GFX10-LABEL: store_3d:
anatofuz
parents:
diff changeset
324 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
325 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
326 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
327 main_body:
anatofuz
parents:
diff changeset
328 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
329 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
330 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
331 call void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
332 ret void
anatofuz
parents:
diff changeset
333 }
anatofuz
parents:
diff changeset
334
anatofuz
parents:
diff changeset
335 define amdgpu_ps void @store_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
336 ; GFX9-LABEL: store_cube:
anatofuz
parents:
diff changeset
337 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
338 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
339 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
340 ;
anatofuz
parents:
diff changeset
341 ; GFX10-LABEL: store_cube:
anatofuz
parents:
diff changeset
342 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
343 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
344 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
345 main_body:
anatofuz
parents:
diff changeset
346 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
347 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
348 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
349 call void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
350 ret void
anatofuz
parents:
diff changeset
351 }
anatofuz
parents:
diff changeset
352
anatofuz
parents:
diff changeset
353 define amdgpu_ps void @store_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
354 ; GFX9-LABEL: store_1darray:
anatofuz
parents:
diff changeset
355 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
356 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
357 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
358 ;
anatofuz
parents:
diff changeset
359 ; GFX10-LABEL: store_1darray:
anatofuz
parents:
diff changeset
360 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
361 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
362 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
363 main_body:
anatofuz
parents:
diff changeset
364 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
365 %slice = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
366 call void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
367 ret void
anatofuz
parents:
diff changeset
368 }
anatofuz
parents:
diff changeset
369
anatofuz
parents:
diff changeset
370 define amdgpu_ps void @store_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
371 ; GFX9-LABEL: store_2darray:
anatofuz
parents:
diff changeset
372 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
373 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
374 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
375 ;
anatofuz
parents:
diff changeset
376 ; GFX10-LABEL: store_2darray:
anatofuz
parents:
diff changeset
377 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
378 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
379 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
380 main_body:
anatofuz
parents:
diff changeset
381 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
382 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
383 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
384 call void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
385 ret void
anatofuz
parents:
diff changeset
386 }
anatofuz
parents:
diff changeset
387
anatofuz
parents:
diff changeset
388 define amdgpu_ps void @store_2dmsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
389 ; GFX9-LABEL: store_2dmsaa:
anatofuz
parents:
diff changeset
390 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
391 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
392 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
393 ;
anatofuz
parents:
diff changeset
394 ; GFX10-LABEL: store_2dmsaa:
anatofuz
parents:
diff changeset
395 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
396 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
anatofuz
parents:
diff changeset
397 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
398 main_body:
anatofuz
parents:
diff changeset
399 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
400 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
401 %fragid = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
402 call void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
403 ret void
anatofuz
parents:
diff changeset
404 }
anatofuz
parents:
diff changeset
405
anatofuz
parents:
diff changeset
406 define amdgpu_ps void @store_2darraymsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
407 ; GFX9-LABEL: store_2darraymsaa:
anatofuz
parents:
diff changeset
408 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
409 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
410 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
411 ;
anatofuz
parents:
diff changeset
412 ; GFX10-LABEL: store_2darraymsaa:
anatofuz
parents:
diff changeset
413 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
414 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
anatofuz
parents:
diff changeset
415 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
416 main_body:
anatofuz
parents:
diff changeset
417 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
418 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
419 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
420 %fragid = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
421 call void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
422 ret void
anatofuz
parents:
diff changeset
423 }
anatofuz
parents:
diff changeset
424
anatofuz
parents:
diff changeset
425 define amdgpu_ps void @store_mip_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
426 ; GFX9-LABEL: store_mip_1d:
anatofuz
parents:
diff changeset
427 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
428 ; GFX9-NEXT: image_store_mip v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
429 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
430 ;
anatofuz
parents:
diff changeset
431 ; GFX10-LABEL: store_mip_1d:
anatofuz
parents:
diff changeset
432 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
433 ; GFX10-NEXT: image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
434 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
435 main_body:
anatofuz
parents:
diff changeset
436 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
437 %mip = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
438 call void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
439 ret void
anatofuz
parents:
diff changeset
440 }
anatofuz
parents:
diff changeset
441
anatofuz
parents:
diff changeset
442 define amdgpu_ps void @store_mip_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
443 ; GFX9-LABEL: store_mip_2d:
anatofuz
parents:
diff changeset
444 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
445 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
446 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
447 ;
anatofuz
parents:
diff changeset
448 ; GFX10-LABEL: store_mip_2d:
anatofuz
parents:
diff changeset
449 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
450 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
451 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
452 main_body:
anatofuz
parents:
diff changeset
453 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
454 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
455 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
456 call void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
457 ret void
anatofuz
parents:
diff changeset
458 }
anatofuz
parents:
diff changeset
459
anatofuz
parents:
diff changeset
460 define amdgpu_ps void @store_mip_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
461 ; GFX9-LABEL: store_mip_3d:
anatofuz
parents:
diff changeset
462 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
463 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
464 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
465 ;
anatofuz
parents:
diff changeset
466 ; GFX10-LABEL: store_mip_3d:
anatofuz
parents:
diff changeset
467 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
468 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
469 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
470 main_body:
anatofuz
parents:
diff changeset
471 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
472 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
473 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
474 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
475 call void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
476 ret void
anatofuz
parents:
diff changeset
477 }
anatofuz
parents:
diff changeset
478
anatofuz
parents:
diff changeset
479 define amdgpu_ps void @store_mip_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
480 ; GFX9-LABEL: store_mip_cube:
anatofuz
parents:
diff changeset
481 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
482 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
483 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
484 ;
anatofuz
parents:
diff changeset
485 ; GFX10-LABEL: store_mip_cube:
anatofuz
parents:
diff changeset
486 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
487 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
488 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
489 main_body:
anatofuz
parents:
diff changeset
490 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
491 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
492 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
493 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
494 call void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
495 ret void
anatofuz
parents:
diff changeset
496 }
anatofuz
parents:
diff changeset
497
anatofuz
parents:
diff changeset
498 define amdgpu_ps void @store_mip_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
499 ; GFX9-LABEL: store_mip_1darray:
anatofuz
parents:
diff changeset
500 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
501 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
502 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
503 ;
anatofuz
parents:
diff changeset
504 ; GFX10-LABEL: store_mip_1darray:
anatofuz
parents:
diff changeset
505 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
506 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
507 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
508 main_body:
anatofuz
parents:
diff changeset
509 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
510 %slice = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
511 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
512 call void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
513 ret void
anatofuz
parents:
diff changeset
514 }
anatofuz
parents:
diff changeset
515
anatofuz
parents:
diff changeset
516 define amdgpu_ps void @store_mip_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
517 ; GFX9-LABEL: store_mip_2darray:
anatofuz
parents:
diff changeset
518 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
519 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
520 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
521 ;
anatofuz
parents:
diff changeset
522 ; GFX10-LABEL: store_mip_2darray:
anatofuz
parents:
diff changeset
523 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
524 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
525 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
526 main_body:
anatofuz
parents:
diff changeset
527 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
528 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
529 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
530 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
531 call void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
532 ret void
anatofuz
parents:
diff changeset
533 }
anatofuz
parents:
diff changeset
534
anatofuz
parents:
diff changeset
535 define amdgpu_ps <4 x float> @getresinfo_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
536 ; GFX9-LABEL: getresinfo_1d:
anatofuz
parents:
diff changeset
537 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
538 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
539 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
540 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
541 ;
anatofuz
parents:
diff changeset
542 ; GFX10-LABEL: getresinfo_1d:
anatofuz
parents:
diff changeset
543 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
544 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
545 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
546 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
547 main_body:
anatofuz
parents:
diff changeset
548 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
549 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
550 ret <4 x float> %v
anatofuz
parents:
diff changeset
551 }
anatofuz
parents:
diff changeset
552
anatofuz
parents:
diff changeset
553 define amdgpu_ps <4 x float> @getresinfo_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
554 ; GFX9-LABEL: getresinfo_2d:
anatofuz
parents:
diff changeset
555 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
556 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
557 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
558 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
559 ;
anatofuz
parents:
diff changeset
560 ; GFX10-LABEL: getresinfo_2d:
anatofuz
parents:
diff changeset
561 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
562 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
563 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
564 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
565 main_body:
anatofuz
parents:
diff changeset
566 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
567 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
568 ret <4 x float> %v
anatofuz
parents:
diff changeset
569 }
anatofuz
parents:
diff changeset
570
anatofuz
parents:
diff changeset
571 define amdgpu_ps <4 x float> @getresinfo_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
572 ; GFX9-LABEL: getresinfo_3d:
anatofuz
parents:
diff changeset
573 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
574 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
575 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
576 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
577 ;
anatofuz
parents:
diff changeset
578 ; GFX10-LABEL: getresinfo_3d:
anatofuz
parents:
diff changeset
579 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
580 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
581 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
582 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
583 main_body:
anatofuz
parents:
diff changeset
584 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
585 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
586 ret <4 x float> %v
anatofuz
parents:
diff changeset
587 }
anatofuz
parents:
diff changeset
588
anatofuz
parents:
diff changeset
589 define amdgpu_ps <4 x float> @getresinfo_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
590 ; GFX9-LABEL: getresinfo_cube:
anatofuz
parents:
diff changeset
591 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
592 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
593 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
594 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
595 ;
anatofuz
parents:
diff changeset
596 ; GFX10-LABEL: getresinfo_cube:
anatofuz
parents:
diff changeset
597 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
598 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
599 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
600 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
601 main_body:
anatofuz
parents:
diff changeset
602 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
603 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
604 ret <4 x float> %v
anatofuz
parents:
diff changeset
605 }
anatofuz
parents:
diff changeset
606
anatofuz
parents:
diff changeset
607 define amdgpu_ps <4 x float> @getresinfo_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
608 ; GFX9-LABEL: getresinfo_1darray:
anatofuz
parents:
diff changeset
609 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
610 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
611 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
612 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
613 ;
anatofuz
parents:
diff changeset
614 ; GFX10-LABEL: getresinfo_1darray:
anatofuz
parents:
diff changeset
615 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
616 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
617 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
618 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
619 main_body:
anatofuz
parents:
diff changeset
620 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
621 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
622 ret <4 x float> %v
anatofuz
parents:
diff changeset
623 }
anatofuz
parents:
diff changeset
624
anatofuz
parents:
diff changeset
625 define amdgpu_ps <4 x float> @getresinfo_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
626 ; GFX9-LABEL: getresinfo_2darray:
anatofuz
parents:
diff changeset
627 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
628 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
629 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
630 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
631 ;
anatofuz
parents:
diff changeset
632 ; GFX10-LABEL: getresinfo_2darray:
anatofuz
parents:
diff changeset
633 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
634 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
635 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
636 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
637 main_body:
anatofuz
parents:
diff changeset
638 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
639 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
640 ret <4 x float> %v
anatofuz
parents:
diff changeset
641 }
anatofuz
parents:
diff changeset
642
anatofuz
parents:
diff changeset
643 define amdgpu_ps <4 x float> @getresinfo_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
644 ; GFX9-LABEL: getresinfo_2dmsaa:
anatofuz
parents:
diff changeset
645 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
646 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
647 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
648 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
649 ;
anatofuz
parents:
diff changeset
650 ; GFX10-LABEL: getresinfo_2dmsaa:
anatofuz
parents:
diff changeset
651 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
652 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
anatofuz
parents:
diff changeset
653 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
654 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
655 main_body:
anatofuz
parents:
diff changeset
656 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
657 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
658 ret <4 x float> %v
anatofuz
parents:
diff changeset
659 }
anatofuz
parents:
diff changeset
660
anatofuz
parents:
diff changeset
661 define amdgpu_ps <4 x float> @getresinfo_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
662 ; GFX9-LABEL: getresinfo_2darraymsaa:
anatofuz
parents:
diff changeset
663 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
664 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
665 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
666 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
667 ;
anatofuz
parents:
diff changeset
668 ; GFX10-LABEL: getresinfo_2darraymsaa:
anatofuz
parents:
diff changeset
669 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
670 ; GFX10-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
anatofuz
parents:
diff changeset
671 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
672 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
673 main_body:
anatofuz
parents:
diff changeset
674 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
675 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
676 ret <4 x float> %v
anatofuz
parents:
diff changeset
677 }
anatofuz
parents:
diff changeset
678
anatofuz
parents:
diff changeset
679 define amdgpu_ps float @load_1d_V1(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
680 ; GFX9-LABEL: load_1d_V1:
anatofuz
parents:
diff changeset
681 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
682 ; GFX9-NEXT: image_load v0, v0, s[0:7] dmask:0x8 unorm a16
anatofuz
parents:
diff changeset
683 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
684 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
685 ;
anatofuz
parents:
diff changeset
686 ; GFX10-LABEL: load_1d_V1:
anatofuz
parents:
diff changeset
687 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
688 ; GFX10-NEXT: image_load v0, v0, s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
689 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
690 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
691 main_body:
anatofuz
parents:
diff changeset
692 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
693 %v = call float @llvm.amdgcn.image.load.1d.f32.i16(i32 8, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
694 ret float %v
anatofuz
parents:
diff changeset
695 }
anatofuz
parents:
diff changeset
696
anatofuz
parents:
diff changeset
697 define amdgpu_ps <2 x float> @load_1d_V2(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
698 ; GFX9-LABEL: load_1d_V2:
anatofuz
parents:
diff changeset
699 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
700 ; GFX9-NEXT: image_load v[0:1], v0, s[0:7] dmask:0x9 unorm a16
anatofuz
parents:
diff changeset
701 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
702 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
703 ;
anatofuz
parents:
diff changeset
704 ; GFX10-LABEL: load_1d_V2:
anatofuz
parents:
diff changeset
705 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
706 ; GFX10-NEXT: image_load v[0:1], v0, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
707 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
708 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
709 main_body:
anatofuz
parents:
diff changeset
710 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
711 %v = call <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32 9, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
712 ret <2 x float> %v
anatofuz
parents:
diff changeset
713 }
anatofuz
parents:
diff changeset
714
anatofuz
parents:
diff changeset
715 define amdgpu_ps void @store_1d_V1(<8 x i32> inreg %rsrc, float %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
716 ; GFX9-LABEL: store_1d_V1:
anatofuz
parents:
diff changeset
717 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
718 ; GFX9-NEXT: image_store v0, v1, s[0:7] dmask:0x2 unorm a16
anatofuz
parents:
diff changeset
719 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
720 ;
anatofuz
parents:
diff changeset
721 ; GFX10-LABEL: store_1d_V1:
anatofuz
parents:
diff changeset
722 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
723 ; GFX10-NEXT: image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
724 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
725 main_body:
anatofuz
parents:
diff changeset
726 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
727 call void @llvm.amdgcn.image.store.1d.f32.i16(float %vdata, i32 2, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
728 ret void
anatofuz
parents:
diff changeset
729 }
anatofuz
parents:
diff changeset
730
anatofuz
parents:
diff changeset
731 define amdgpu_ps void @store_1d_V2(<8 x i32> inreg %rsrc, <2 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
732 ; GFX9-LABEL: store_1d_V2:
anatofuz
parents:
diff changeset
733 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
734 ; GFX9-NEXT: image_store v[0:1], v2, s[0:7] dmask:0xc unorm a16
anatofuz
parents:
diff changeset
735 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
736 ;
anatofuz
parents:
diff changeset
737 ; GFX10-LABEL: store_1d_V2:
anatofuz
parents:
diff changeset
738 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
739 ; GFX10-NEXT: image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
740 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
741 main_body:
anatofuz
parents:
diff changeset
742 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
743 call void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float> %vdata, i32 12, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
744 ret void
anatofuz
parents:
diff changeset
745 }
anatofuz
parents:
diff changeset
746
anatofuz
parents:
diff changeset
747 define amdgpu_ps <4 x float> @load_1d_glc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
748 ; GFX9-LABEL: load_1d_glc:
anatofuz
parents:
diff changeset
749 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
750 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc a16
anatofuz
parents:
diff changeset
751 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
752 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
753 ;
anatofuz
parents:
diff changeset
754 ; GFX10-LABEL: load_1d_glc:
anatofuz
parents:
diff changeset
755 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
756 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16
anatofuz
parents:
diff changeset
757 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
758 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
759 main_body:
anatofuz
parents:
diff changeset
760 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
761 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)
anatofuz
parents:
diff changeset
762 ret <4 x float> %v
anatofuz
parents:
diff changeset
763 }
anatofuz
parents:
diff changeset
764
anatofuz
parents:
diff changeset
765 define amdgpu_ps <4 x float> @load_1d_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
766 ; GFX9-LABEL: load_1d_slc:
anatofuz
parents:
diff changeset
767 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
768 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm slc a16
anatofuz
parents:
diff changeset
769 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
770 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
771 ;
anatofuz
parents:
diff changeset
772 ; GFX10-LABEL: load_1d_slc:
anatofuz
parents:
diff changeset
773 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
774 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16
anatofuz
parents:
diff changeset
775 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
776 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
777 main_body:
anatofuz
parents:
diff changeset
778 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
779 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)
anatofuz
parents:
diff changeset
780 ret <4 x float> %v
anatofuz
parents:
diff changeset
781 }
anatofuz
parents:
diff changeset
782
anatofuz
parents:
diff changeset
783 define amdgpu_ps <4 x float> @load_1d_glc_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
784 ; GFX9-LABEL: load_1d_glc_slc:
anatofuz
parents:
diff changeset
785 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
786 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc slc a16
anatofuz
parents:
diff changeset
787 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
788 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
789 ;
anatofuz
parents:
diff changeset
790 ; GFX10-LABEL: load_1d_glc_slc:
anatofuz
parents:
diff changeset
791 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
792 ; GFX10-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16
anatofuz
parents:
diff changeset
793 ; GFX10-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
794 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
795 main_body:
anatofuz
parents:
diff changeset
796 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
797 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)
anatofuz
parents:
diff changeset
798 ret <4 x float> %v
anatofuz
parents:
diff changeset
799 }
anatofuz
parents:
diff changeset
800
anatofuz
parents:
diff changeset
801 define amdgpu_ps void @store_1d_glc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
802 ; GFX9-LABEL: store_1d_glc:
anatofuz
parents:
diff changeset
803 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
804 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc a16
anatofuz
parents:
diff changeset
805 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
806 ;
anatofuz
parents:
diff changeset
807 ; GFX10-LABEL: store_1d_glc:
anatofuz
parents:
diff changeset
808 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
809 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16
anatofuz
parents:
diff changeset
810 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
811 main_body:
anatofuz
parents:
diff changeset
812 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
813 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)
anatofuz
parents:
diff changeset
814 ret void
anatofuz
parents:
diff changeset
815 }
anatofuz
parents:
diff changeset
816
anatofuz
parents:
diff changeset
817 define amdgpu_ps void @store_1d_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
818 ; GFX9-LABEL: store_1d_slc:
anatofuz
parents:
diff changeset
819 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
820 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm slc a16
anatofuz
parents:
diff changeset
821 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
822 ;
anatofuz
parents:
diff changeset
823 ; GFX10-LABEL: store_1d_slc:
anatofuz
parents:
diff changeset
824 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
825 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16
anatofuz
parents:
diff changeset
826 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
827 main_body:
anatofuz
parents:
diff changeset
828 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
829 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)
anatofuz
parents:
diff changeset
830 ret void
anatofuz
parents:
diff changeset
831 }
anatofuz
parents:
diff changeset
832
anatofuz
parents:
diff changeset
833 define amdgpu_ps void @store_1d_glc_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
834 ; GFX9-LABEL: store_1d_glc_slc:
anatofuz
parents:
diff changeset
835 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
836 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc slc a16
anatofuz
parents:
diff changeset
837 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
838 ;
anatofuz
parents:
diff changeset
839 ; GFX10-LABEL: store_1d_glc_slc:
anatofuz
parents:
diff changeset
840 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
841 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16
anatofuz
parents:
diff changeset
842 ; GFX10-NEXT: s_endpgm
anatofuz
parents:
diff changeset
843 main_body:
anatofuz
parents:
diff changeset
844 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
845 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)
anatofuz
parents:
diff changeset
846 ret void
anatofuz
parents:
diff changeset
847 }
anatofuz
parents:
diff changeset
848
anatofuz
parents:
diff changeset
849 define amdgpu_ps <4 x float> @getresinfo_dmask0(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) #0 {
anatofuz
parents:
diff changeset
850 ; GFX9-LABEL: getresinfo_dmask0:
anatofuz
parents:
diff changeset
851 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
852 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
853 ;
anatofuz
parents:
diff changeset
854 ; GFX10-LABEL: getresinfo_dmask0:
anatofuz
parents:
diff changeset
855 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
856 ; GFX10-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
857 main_body:
anatofuz
parents:
diff changeset
858 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
859 %r = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 0, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
860 ret <4 x float> %r
anatofuz
parents:
diff changeset
861 }
anatofuz
parents:
diff changeset
862
anatofuz
parents:
diff changeset
863 declare <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
864 declare <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
865 declare <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
866 declare <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
867 declare <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
868 declare <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
869 declare <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
870 declare <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
871
anatofuz
parents:
diff changeset
872 declare <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
873 declare <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
874 declare <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
875 declare <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
876 declare <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
877 declare <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
878
anatofuz
parents:
diff changeset
879 declare void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float>, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
880 declare void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
881 declare void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
882 declare void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
883 declare void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
884 declare void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
885 declare void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
886 declare void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
887
anatofuz
parents:
diff changeset
888 declare void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
889 declare void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
890 declare void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
891 declare void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
892 declare void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
893 declare void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
894
anatofuz
parents:
diff changeset
895 declare <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
896 declare <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
897 declare <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
898 declare <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
899 declare <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
900 declare <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
901 declare <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
902 declare <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
903
anatofuz
parents:
diff changeset
904 declare float @llvm.amdgcn.image.load.1d.f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
905 declare float @llvm.amdgcn.image.load.2d.f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
906 declare <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
907 declare void @llvm.amdgcn.image.store.1d.f32.i16(float, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
908 declare void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float>, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
909
anatofuz
parents:
diff changeset
910 attributes #0 = { nounwind }
anatofuz
parents:
diff changeset
911 attributes #1 = { nounwind readonly }
anatofuz
parents:
diff changeset
912 attributes #2 = { nounwind readnone }