R600 -> AMDGPU rename
[oota-llvm.git] / test / CodeGen / AMDGPU / llvm.SI.image.sample.o.ll
1 ;RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck %s
2 ;RUN: llc < %s -march=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck %s
3
4 ;CHECK-LABEL: {{^}}sample:
5 ;CHECK: s_wqm
6 ;CHECK: image_sample_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
7 define void @sample() #0 {
8 main_body:
9   %r = call <4 x float> @llvm.SI.image.sample.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
10   %r0 = extractelement <4 x float> %r, i32 0
11   %r1 = extractelement <4 x float> %r, i32 1
12   %r2 = extractelement <4 x float> %r, i32 2
13   %r3 = extractelement <4 x float> %r, i32 3
14   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
15   ret void
16 }
17
18 ;CHECK-LABEL: {{^}}sample_cl:
19 ;CHECK: s_wqm
20 ;CHECK: image_sample_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
21 define void @sample_cl() #0 {
22 main_body:
23   %r = call <4 x float> @llvm.SI.image.sample.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
24   %r0 = extractelement <4 x float> %r, i32 0
25   %r1 = extractelement <4 x float> %r, i32 1
26   %r2 = extractelement <4 x float> %r, i32 2
27   %r3 = extractelement <4 x float> %r, i32 3
28   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
29   ret void
30 }
31
32 ;CHECK-LABEL: {{^}}sample_d:
33 ;CHECK-NOT: s_wqm
34 ;CHECK: image_sample_d_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
35 define void @sample_d() #0 {
36 main_body:
37   %r = call <4 x float> @llvm.SI.image.sample.d.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
38   %r0 = extractelement <4 x float> %r, i32 0
39   %r1 = extractelement <4 x float> %r, i32 1
40   %r2 = extractelement <4 x float> %r, i32 2
41   %r3 = extractelement <4 x float> %r, i32 3
42   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
43   ret void
44 }
45
46 ;CHECK-LABEL: {{^}}sample_d_cl:
47 ;CHECK-NOT: s_wqm
48 ;CHECK: image_sample_d_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
49 define void @sample_d_cl() #0 {
50 main_body:
51   %r = call <4 x float> @llvm.SI.image.sample.d.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
52   %r0 = extractelement <4 x float> %r, i32 0
53   %r1 = extractelement <4 x float> %r, i32 1
54   %r2 = extractelement <4 x float> %r, i32 2
55   %r3 = extractelement <4 x float> %r, i32 3
56   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
57   ret void
58 }
59
60 ;CHECK-LABEL: {{^}}sample_l:
61 ;CHECK-NOT: s_wqm
62 ;CHECK: image_sample_l_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
63 define void @sample_l() #0 {
64 main_body:
65   %r = call <4 x float> @llvm.SI.image.sample.l.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
66   %r0 = extractelement <4 x float> %r, i32 0
67   %r1 = extractelement <4 x float> %r, i32 1
68   %r2 = extractelement <4 x float> %r, i32 2
69   %r3 = extractelement <4 x float> %r, i32 3
70   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
71   ret void
72 }
73
74 ;CHECK-LABEL: {{^}}sample_b:
75 ;CHECK: s_wqm
76 ;CHECK: image_sample_b_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
77 define void @sample_b() #0 {
78 main_body:
79   %r = call <4 x float> @llvm.SI.image.sample.b.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
80   %r0 = extractelement <4 x float> %r, i32 0
81   %r1 = extractelement <4 x float> %r, i32 1
82   %r2 = extractelement <4 x float> %r, i32 2
83   %r3 = extractelement <4 x float> %r, i32 3
84   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
85   ret void
86 }
87
88 ;CHECK-LABEL: {{^}}sample_b_cl:
89 ;CHECK: s_wqm
90 ;CHECK: image_sample_b_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
91 define void @sample_b_cl() #0 {
92 main_body:
93   %r = call <4 x float> @llvm.SI.image.sample.b.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
94   %r0 = extractelement <4 x float> %r, i32 0
95   %r1 = extractelement <4 x float> %r, i32 1
96   %r2 = extractelement <4 x float> %r, i32 2
97   %r3 = extractelement <4 x float> %r, i32 3
98   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
99   ret void
100 }
101
102 ;CHECK-LABEL: {{^}}sample_lz:
103 ;CHECK-NOT: s_wqm
104 ;CHECK: image_sample_lz_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
105 define void @sample_lz() #0 {
106 main_body:
107   %r = call <4 x float> @llvm.SI.image.sample.lz.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
108   %r0 = extractelement <4 x float> %r, i32 0
109   %r1 = extractelement <4 x float> %r, i32 1
110   %r2 = extractelement <4 x float> %r, i32 2
111   %r3 = extractelement <4 x float> %r, i32 3
112   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
113   ret void
114 }
115
116 ;CHECK-LABEL: {{^}}sample_cd:
117 ;CHECK-NOT: s_wqm
118 ;CHECK: image_sample_cd_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
119 define void @sample_cd() #0 {
120 main_body:
121   %r = call <4 x float> @llvm.SI.image.sample.cd.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
122   %r0 = extractelement <4 x float> %r, i32 0
123   %r1 = extractelement <4 x float> %r, i32 1
124   %r2 = extractelement <4 x float> %r, i32 2
125   %r3 = extractelement <4 x float> %r, i32 3
126   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
127   ret void
128 }
129
130 ;CHECK-LABEL: {{^}}sample_cd_cl:
131 ;CHECK-NOT: s_wqm
132 ;CHECK: image_sample_cd_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
133 define void @sample_cd_cl() #0 {
134 main_body:
135   %r = call <4 x float> @llvm.SI.image.sample.cd.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
136   %r0 = extractelement <4 x float> %r, i32 0
137   %r1 = extractelement <4 x float> %r, i32 1
138   %r2 = extractelement <4 x float> %r, i32 2
139   %r3 = extractelement <4 x float> %r, i32 3
140   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
141   ret void
142 }
143
144 ;CHECK-LABEL: {{^}}sample_c:
145 ;CHECK: s_wqm
146 ;CHECK: image_sample_c_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
147 define void @sample_c() #0 {
148 main_body:
149   %r = call <4 x float> @llvm.SI.image.sample.c.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
150   %r0 = extractelement <4 x float> %r, i32 0
151   %r1 = extractelement <4 x float> %r, i32 1
152   %r2 = extractelement <4 x float> %r, i32 2
153   %r3 = extractelement <4 x float> %r, i32 3
154   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
155   ret void
156 }
157
158 ;CHECK-LABEL: {{^}}sample_c_cl:
159 ;CHECK: s_wqm
160 ;CHECK: image_sample_c_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
161 define void @sample_c_cl() #0 {
162 main_body:
163   %r = call <4 x float> @llvm.SI.image.sample.c.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
164   %r0 = extractelement <4 x float> %r, i32 0
165   %r1 = extractelement <4 x float> %r, i32 1
166   %r2 = extractelement <4 x float> %r, i32 2
167   %r3 = extractelement <4 x float> %r, i32 3
168   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
169   ret void
170 }
171
172 ;CHECK-LABEL: {{^}}sample_c_d:
173 ;CHECK-NOT: s_wqm
174 ;CHECK: image_sample_c_d_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
175 define void @sample_c_d() #0 {
176 main_body:
177   %r = call <4 x float> @llvm.SI.image.sample.c.d.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
178   %r0 = extractelement <4 x float> %r, i32 0
179   %r1 = extractelement <4 x float> %r, i32 1
180   %r2 = extractelement <4 x float> %r, i32 2
181   %r3 = extractelement <4 x float> %r, i32 3
182   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
183   ret void
184 }
185
186 ;CHECK-LABEL: {{^}}sample_c_d_cl:
187 ;CHECK-NOT: s_wqm
188 ;CHECK: image_sample_c_d_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
189 define void @sample_c_d_cl() #0 {
190 main_body:
191   %r = call <4 x float> @llvm.SI.image.sample.c.d.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
192   %r0 = extractelement <4 x float> %r, i32 0
193   %r1 = extractelement <4 x float> %r, i32 1
194   %r2 = extractelement <4 x float> %r, i32 2
195   %r3 = extractelement <4 x float> %r, i32 3
196   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
197   ret void
198 }
199
200 ;CHECK-LABEL: {{^}}sample_c_l:
201 ;CHECK-NOT: s_wqm
202 ;CHECK: image_sample_c_l_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
203 define void @sample_c_l() #0 {
204 main_body:
205   %r = call <4 x float> @llvm.SI.image.sample.c.l.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
206   %r0 = extractelement <4 x float> %r, i32 0
207   %r1 = extractelement <4 x float> %r, i32 1
208   %r2 = extractelement <4 x float> %r, i32 2
209   %r3 = extractelement <4 x float> %r, i32 3
210   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
211   ret void
212 }
213
214 ;CHECK-LABEL: {{^}}sample_c_b:
215 ;CHECK: s_wqm
216 ;CHECK: image_sample_c_b_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
217 define void @sample_c_b() #0 {
218 main_body:
219   %r = call <4 x float> @llvm.SI.image.sample.c.b.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
220   %r0 = extractelement <4 x float> %r, i32 0
221   %r1 = extractelement <4 x float> %r, i32 1
222   %r2 = extractelement <4 x float> %r, i32 2
223   %r3 = extractelement <4 x float> %r, i32 3
224   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
225   ret void
226 }
227
228 ;CHECK-LABEL: {{^}}sample_c_b_cl:
229 ;CHECK: s_wqm
230 ;CHECK: image_sample_c_b_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
231 define void @sample_c_b_cl() #0 {
232 main_body:
233   %r = call <4 x float> @llvm.SI.image.sample.c.b.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
234   %r0 = extractelement <4 x float> %r, i32 0
235   %r1 = extractelement <4 x float> %r, i32 1
236   %r2 = extractelement <4 x float> %r, i32 2
237   %r3 = extractelement <4 x float> %r, i32 3
238   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
239   ret void
240 }
241
242 ;CHECK-LABEL: {{^}}sample_c_lz:
243 ;CHECK-NOT: s_wqm
244 ;CHECK: image_sample_c_lz_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
245 define void @sample_c_lz() #0 {
246 main_body:
247   %r = call <4 x float> @llvm.SI.image.sample.c.lz.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
248   %r0 = extractelement <4 x float> %r, i32 0
249   %r1 = extractelement <4 x float> %r, i32 1
250   %r2 = extractelement <4 x float> %r, i32 2
251   %r3 = extractelement <4 x float> %r, i32 3
252   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
253   ret void
254 }
255
256 ;CHECK-LABEL: {{^}}sample_c_cd:
257 ;CHECK-NOT: s_wqm
258 ;CHECK: image_sample_c_cd_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
259 define void @sample_c_cd() #0 {
260 main_body:
261   %r = call <4 x float> @llvm.SI.image.sample.c.cd.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
262   %r0 = extractelement <4 x float> %r, i32 0
263   %r1 = extractelement <4 x float> %r, i32 1
264   %r2 = extractelement <4 x float> %r, i32 2
265   %r3 = extractelement <4 x float> %r, i32 3
266   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
267   ret void
268 }
269
270 ;CHECK-LABEL: {{^}}sample_c_cd_cl:
271 ;CHECK-NOT: s_wqm
272 ;CHECK: image_sample_c_cd_cl_o {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
273 define void @sample_c_cd_cl() #0 {
274 main_body:
275   %r = call <4 x float> @llvm.SI.image.sample.c.cd.cl.o.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
276   %r0 = extractelement <4 x float> %r, i32 0
277   %r1 = extractelement <4 x float> %r, i32 1
278   %r2 = extractelement <4 x float> %r, i32 2
279   %r3 = extractelement <4 x float> %r, i32 3
280   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
281   ret void
282 }
283
284
285 declare <4 x float> @llvm.SI.image.sample.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
286 declare <4 x float> @llvm.SI.image.sample.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
287 declare <4 x float> @llvm.SI.image.sample.d.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
288 declare <4 x float> @llvm.SI.image.sample.d.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
289 declare <4 x float> @llvm.SI.image.sample.l.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
290 declare <4 x float> @llvm.SI.image.sample.b.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
291 declare <4 x float> @llvm.SI.image.sample.b.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
292 declare <4 x float> @llvm.SI.image.sample.lz.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
293 declare <4 x float> @llvm.SI.image.sample.cd.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
294 declare <4 x float> @llvm.SI.image.sample.cd.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
295
296 declare <4 x float> @llvm.SI.image.sample.c.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
297 declare <4 x float> @llvm.SI.image.sample.c.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
298 declare <4 x float> @llvm.SI.image.sample.c.d.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
299 declare <4 x float> @llvm.SI.image.sample.c.d.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
300 declare <4 x float> @llvm.SI.image.sample.c.l.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
301 declare <4 x float> @llvm.SI.image.sample.c.b.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
302 declare <4 x float> @llvm.SI.image.sample.c.b.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
303 declare <4 x float> @llvm.SI.image.sample.c.lz.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
304 declare <4 x float> @llvm.SI.image.sample.c.cd.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
305 declare <4 x float> @llvm.SI.image.sample.c.cd.cl.o.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
306
307 declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
308
309 attributes #0 = { "ShaderType"="0" }
310 attributes #1 = { nounwind readnone }