blob: ebff39141832db221d4a10bd2a08b58961627758 [file] [log] [blame]
Marek Olsakd8ecaee2014-07-11 17:11:46 +00001;RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck %s
2
Tom Stellard79243d92014-10-01 17:15:17 +00003;CHECK-LABEL: {{^}}sample:
Tom Stellard326d6ec2014-11-05 14:50:53 +00004;CHECK: image_sample {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +00005define void @sample() #0 {
6main_body:
Marek Olsakeac50622014-07-11 17:11:52 +00007 %r = call <4 x float> @llvm.SI.image.sample.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +00008 %r0 = extractelement <4 x float> %r, i32 0
9 %r1 = extractelement <4 x float> %r, i32 1
10 %r2 = extractelement <4 x float> %r, i32 2
11 %r3 = extractelement <4 x float> %r, i32 3
12 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
13 ret void
14}
15
Tom Stellard79243d92014-10-01 17:15:17 +000016;CHECK-LABEL: {{^}}sample_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +000017;CHECK: image_sample_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000018define void @sample_cl() #0 {
19main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000020 %r = call <4 x float> @llvm.SI.image.sample.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000021 %r0 = extractelement <4 x float> %r, i32 0
22 %r1 = extractelement <4 x float> %r, i32 1
23 %r2 = extractelement <4 x float> %r, i32 2
24 %r3 = extractelement <4 x float> %r, i32 3
25 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
26 ret void
27}
28
Tom Stellard79243d92014-10-01 17:15:17 +000029;CHECK-LABEL: {{^}}sample_d:
Tom Stellard326d6ec2014-11-05 14:50:53 +000030;CHECK: image_sample_d {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000031define void @sample_d() #0 {
32main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000033 %r = call <4 x float> @llvm.SI.image.sample.d.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000034 %r0 = extractelement <4 x float> %r, i32 0
35 %r1 = extractelement <4 x float> %r, i32 1
36 %r2 = extractelement <4 x float> %r, i32 2
37 %r3 = extractelement <4 x float> %r, i32 3
38 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
39 ret void
40}
41
Tom Stellard79243d92014-10-01 17:15:17 +000042;CHECK-LABEL: {{^}}sample_d_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +000043;CHECK: image_sample_d_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000044define void @sample_d_cl() #0 {
45main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000046 %r = call <4 x float> @llvm.SI.image.sample.d.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000047 %r0 = extractelement <4 x float> %r, i32 0
48 %r1 = extractelement <4 x float> %r, i32 1
49 %r2 = extractelement <4 x float> %r, i32 2
50 %r3 = extractelement <4 x float> %r, i32 3
51 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
52 ret void
53}
54
Tom Stellard79243d92014-10-01 17:15:17 +000055;CHECK-LABEL: {{^}}sample_l:
Tom Stellard326d6ec2014-11-05 14:50:53 +000056;CHECK: image_sample_l {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000057define void @sample_l() #0 {
58main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000059 %r = call <4 x float> @llvm.SI.image.sample.l.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000060 %r0 = extractelement <4 x float> %r, i32 0
61 %r1 = extractelement <4 x float> %r, i32 1
62 %r2 = extractelement <4 x float> %r, i32 2
63 %r3 = extractelement <4 x float> %r, i32 3
64 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
65 ret void
66}
67
Tom Stellard79243d92014-10-01 17:15:17 +000068;CHECK-LABEL: {{^}}sample_b:
Tom Stellard326d6ec2014-11-05 14:50:53 +000069;CHECK: image_sample_b {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000070define void @sample_b() #0 {
71main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000072 %r = call <4 x float> @llvm.SI.image.sample.b.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000073 %r0 = extractelement <4 x float> %r, i32 0
74 %r1 = extractelement <4 x float> %r, i32 1
75 %r2 = extractelement <4 x float> %r, i32 2
76 %r3 = extractelement <4 x float> %r, i32 3
77 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
78 ret void
79}
80
Tom Stellard79243d92014-10-01 17:15:17 +000081;CHECK-LABEL: {{^}}sample_b_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +000082;CHECK: image_sample_b_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000083define void @sample_b_cl() #0 {
84main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000085 %r = call <4 x float> @llvm.SI.image.sample.b.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000086 %r0 = extractelement <4 x float> %r, i32 0
87 %r1 = extractelement <4 x float> %r, i32 1
88 %r2 = extractelement <4 x float> %r, i32 2
89 %r3 = extractelement <4 x float> %r, i32 3
90 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
91 ret void
92}
93
Tom Stellard79243d92014-10-01 17:15:17 +000094;CHECK-LABEL: {{^}}sample_lz:
Tom Stellard326d6ec2014-11-05 14:50:53 +000095;CHECK: image_sample_lz {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +000096define void @sample_lz() #0 {
97main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000098 %r = call <4 x float> @llvm.SI.image.sample.lz.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +000099 %r0 = extractelement <4 x float> %r, i32 0
100 %r1 = extractelement <4 x float> %r, i32 1
101 %r2 = extractelement <4 x float> %r, i32 2
102 %r3 = extractelement <4 x float> %r, i32 3
103 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
104 ret void
105}
106
Tom Stellard79243d92014-10-01 17:15:17 +0000107;CHECK-LABEL: {{^}}sample_cd:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000108;CHECK: image_sample_cd {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000109define void @sample_cd() #0 {
110main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000111 %r = call <4 x float> @llvm.SI.image.sample.cd.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000112 %r0 = extractelement <4 x float> %r, i32 0
113 %r1 = extractelement <4 x float> %r, i32 1
114 %r2 = extractelement <4 x float> %r, i32 2
115 %r3 = extractelement <4 x float> %r, i32 3
116 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
117 ret void
118}
119
Tom Stellard79243d92014-10-01 17:15:17 +0000120;CHECK-LABEL: {{^}}sample_cd_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000121;CHECK: image_sample_cd_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000122define void @sample_cd_cl() #0 {
123main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000124 %r = call <4 x float> @llvm.SI.image.sample.cd.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000125 %r0 = extractelement <4 x float> %r, i32 0
126 %r1 = extractelement <4 x float> %r, i32 1
127 %r2 = extractelement <4 x float> %r, i32 2
128 %r3 = extractelement <4 x float> %r, i32 3
129 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
130 ret void
131}
132
Tom Stellard79243d92014-10-01 17:15:17 +0000133;CHECK-LABEL: {{^}}sample_c:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000134;CHECK: image_sample_c {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000135define void @sample_c() #0 {
136main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000137 %r = call <4 x float> @llvm.SI.image.sample.c.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000138 %r0 = extractelement <4 x float> %r, i32 0
139 %r1 = extractelement <4 x float> %r, i32 1
140 %r2 = extractelement <4 x float> %r, i32 2
141 %r3 = extractelement <4 x float> %r, i32 3
142 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
143 ret void
144}
145
Tom Stellard79243d92014-10-01 17:15:17 +0000146;CHECK-LABEL: {{^}}sample_c_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000147;CHECK: image_sample_c_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000148define void @sample_c_cl() #0 {
149main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000150 %r = call <4 x float> @llvm.SI.image.sample.c.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000151 %r0 = extractelement <4 x float> %r, i32 0
152 %r1 = extractelement <4 x float> %r, i32 1
153 %r2 = extractelement <4 x float> %r, i32 2
154 %r3 = extractelement <4 x float> %r, i32 3
155 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
156 ret void
157}
158
Tom Stellard79243d92014-10-01 17:15:17 +0000159;CHECK-LABEL: {{^}}sample_c_d:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000160;CHECK: image_sample_c_d {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000161define void @sample_c_d() #0 {
162main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000163 %r = call <4 x float> @llvm.SI.image.sample.c.d.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000164 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000172;CHECK-LABEL: {{^}}sample_c_d_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000173;CHECK: image_sample_c_d_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000174define void @sample_c_d_cl() #0 {
175main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000176 %r = call <4 x float> @llvm.SI.image.sample.c.d.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000177 %r0 = extractelement <4 x float> %r, i32 0
178 %r1 = extractelement <4 x float> %r, i32 1
179 %r2 = extractelement <4 x float> %r, i32 2
180 %r3 = extractelement <4 x float> %r, i32 3
181 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
182 ret void
183}
184
Tom Stellard79243d92014-10-01 17:15:17 +0000185;CHECK-LABEL: {{^}}sample_c_l:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000186;CHECK: image_sample_c_l {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000187define void @sample_c_l() #0 {
188main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000189 %r = call <4 x float> @llvm.SI.image.sample.c.l.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000190 %r0 = extractelement <4 x float> %r, i32 0
191 %r1 = extractelement <4 x float> %r, i32 1
192 %r2 = extractelement <4 x float> %r, i32 2
193 %r3 = extractelement <4 x float> %r, i32 3
194 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
195 ret void
196}
197
Tom Stellard79243d92014-10-01 17:15:17 +0000198;CHECK-LABEL: {{^}}sample_c_b:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000199;CHECK: image_sample_c_b {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000200define void @sample_c_b() #0 {
201main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000202 %r = call <4 x float> @llvm.SI.image.sample.c.b.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000203 %r0 = extractelement <4 x float> %r, i32 0
204 %r1 = extractelement <4 x float> %r, i32 1
205 %r2 = extractelement <4 x float> %r, i32 2
206 %r3 = extractelement <4 x float> %r, i32 3
207 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
208 ret void
209}
210
Tom Stellard79243d92014-10-01 17:15:17 +0000211;CHECK-LABEL: {{^}}sample_c_b_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000212;CHECK: image_sample_c_b_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000213define void @sample_c_b_cl() #0 {
214main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000215 %r = call <4 x float> @llvm.SI.image.sample.c.b.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000216 %r0 = extractelement <4 x float> %r, i32 0
217 %r1 = extractelement <4 x float> %r, i32 1
218 %r2 = extractelement <4 x float> %r, i32 2
219 %r3 = extractelement <4 x float> %r, i32 3
220 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
221 ret void
222}
223
Tom Stellard79243d92014-10-01 17:15:17 +0000224;CHECK-LABEL: {{^}}sample_c_lz:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000225;CHECK: image_sample_c_lz {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000226define void @sample_c_lz() #0 {
227main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000228 %r = call <4 x float> @llvm.SI.image.sample.c.lz.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000229 %r0 = extractelement <4 x float> %r, i32 0
230 %r1 = extractelement <4 x float> %r, i32 1
231 %r2 = extractelement <4 x float> %r, i32 2
232 %r3 = extractelement <4 x float> %r, i32 3
233 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
234 ret void
235}
236
Tom Stellard79243d92014-10-01 17:15:17 +0000237;CHECK-LABEL: {{^}}sample_c_cd:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000238;CHECK: image_sample_c_cd {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000239define void @sample_c_cd() #0 {
240main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000241 %r = call <4 x float> @llvm.SI.image.sample.c.cd.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000242 %r0 = extractelement <4 x float> %r, i32 0
243 %r1 = extractelement <4 x float> %r, i32 1
244 %r2 = extractelement <4 x float> %r, i32 2
245 %r3 = extractelement <4 x float> %r, i32 3
246 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
247 ret void
248}
249
Tom Stellard79243d92014-10-01 17:15:17 +0000250;CHECK-LABEL: {{^}}sample_c_cd_cl:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000251;CHECK: image_sample_c_cd_cl {{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]+\]}}
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000252define void @sample_c_cd_cl() #0 {
253main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000254 %r = call <4 x float> @llvm.SI.image.sample.c.cd.cl.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)
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000255 %r0 = extractelement <4 x float> %r, i32 0
256 %r1 = extractelement <4 x float> %r, i32 1
257 %r2 = extractelement <4 x float> %r, i32 2
258 %r3 = extractelement <4 x float> %r, i32 3
259 call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
260 ret void
261}
262
263
Marek Olsakeac50622014-07-11 17:11:52 +0000264declare <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
265declare <4 x float> @llvm.SI.image.sample.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
266declare <4 x float> @llvm.SI.image.sample.d.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
267declare <4 x float> @llvm.SI.image.sample.d.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
268declare <4 x float> @llvm.SI.image.sample.l.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
269declare <4 x float> @llvm.SI.image.sample.b.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
270declare <4 x float> @llvm.SI.image.sample.b.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
271declare <4 x float> @llvm.SI.image.sample.lz.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
272declare <4 x float> @llvm.SI.image.sample.cd.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
273declare <4 x float> @llvm.SI.image.sample.cd.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000274
Marek Olsakeac50622014-07-11 17:11:52 +0000275declare <4 x float> @llvm.SI.image.sample.c.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
276declare <4 x float> @llvm.SI.image.sample.c.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
277declare <4 x float> @llvm.SI.image.sample.c.d.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
278declare <4 x float> @llvm.SI.image.sample.c.d.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
279declare <4 x float> @llvm.SI.image.sample.c.l.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
280declare <4 x float> @llvm.SI.image.sample.c.b.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
281declare <4 x float> @llvm.SI.image.sample.c.b.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
282declare <4 x float> @llvm.SI.image.sample.c.lz.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
283declare <4 x float> @llvm.SI.image.sample.c.cd.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
284declare <4 x float> @llvm.SI.image.sample.c.cd.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000285
286declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
287
288attributes #0 = { "ShaderType"="0" }
289attributes #1 = { nounwind readnone }