blob: 3220fcca7e8beacf2773862ee5569bec0158b3a3 [file] [log] [blame]
Tom Stellard49f8bfd2015-01-06 18:00:21 +00001;RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck %s
Marek Olsak75170772015-01-27 17:27:15 +00002;RUN: llc < %s -march=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck %s
Marek Olsakd8ecaee2014-07-11 17:11:46 +00003
Tom Stellard79243d92014-10-01 17:15:17 +00004;CHECK-LABEL: {{^}}sample:
Michel Danzer494391b2015-02-06 02:51:20 +00005;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +00006;CHECK: image_sample {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +00007define void @sample() #0 {
8main_body:
Marek Olsakeac50622014-07-11 17:11:52 +00009 %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 +000010 %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
Tom Stellard79243d92014-10-01 17:15:17 +000018;CHECK-LABEL: {{^}}sample_cl:
Michel Danzer494391b2015-02-06 02:51:20 +000019;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000020;CHECK: image_sample_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000021define void @sample_cl() #0 {
22main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000023 %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 +000024 %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
Tom Stellard79243d92014-10-01 17:15:17 +000032;CHECK-LABEL: {{^}}sample_d:
Michel Danzer494391b2015-02-06 02:51:20 +000033;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000034;CHECK: image_sample_d {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000035define void @sample_d() #0 {
36main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000037 %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 +000038 %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
Tom Stellard79243d92014-10-01 17:15:17 +000046;CHECK-LABEL: {{^}}sample_d_cl:
Michel Danzer494391b2015-02-06 02:51:20 +000047;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000048;CHECK: image_sample_d_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000049define void @sample_d_cl() #0 {
50main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000051 %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 +000052 %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
Tom Stellard79243d92014-10-01 17:15:17 +000060;CHECK-LABEL: {{^}}sample_l:
Michel Danzer494391b2015-02-06 02:51:20 +000061;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000062;CHECK: image_sample_l {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000063define void @sample_l() #0 {
64main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000065 %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 +000066 %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
Tom Stellard79243d92014-10-01 17:15:17 +000074;CHECK-LABEL: {{^}}sample_b:
Michel Danzer494391b2015-02-06 02:51:20 +000075;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000076;CHECK: image_sample_b {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000077define void @sample_b() #0 {
78main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000079 %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 +000080 %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
Tom Stellard79243d92014-10-01 17:15:17 +000088;CHECK-LABEL: {{^}}sample_b_cl:
Michel Danzer494391b2015-02-06 02:51:20 +000089;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +000090;CHECK: image_sample_b_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +000091define void @sample_b_cl() #0 {
92main_body:
Marek Olsakeac50622014-07-11 17:11:52 +000093 %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 +000094 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000102;CHECK-LABEL: {{^}}sample_lz:
Michel Danzer494391b2015-02-06 02:51:20 +0000103;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000104;CHECK: image_sample_lz {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000105define void @sample_lz() #0 {
106main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000107 %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 +0000108 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000116;CHECK-LABEL: {{^}}sample_cd:
Michel Danzer494391b2015-02-06 02:51:20 +0000117;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000118;CHECK: image_sample_cd {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000119define void @sample_cd() #0 {
120main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000121 %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 +0000122 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000130;CHECK-LABEL: {{^}}sample_cd_cl:
Michel Danzer494391b2015-02-06 02:51:20 +0000131;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000132;CHECK: image_sample_cd_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000133define void @sample_cd_cl() #0 {
134main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000135 %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 +0000136 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000144;CHECK-LABEL: {{^}}sample_c:
Michel Danzer494391b2015-02-06 02:51:20 +0000145;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000146;CHECK: image_sample_c {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000147define void @sample_c() #0 {
148main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000149 %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 +0000150 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000158;CHECK-LABEL: {{^}}sample_c_cl:
Michel Danzer494391b2015-02-06 02:51:20 +0000159;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000160;CHECK: image_sample_c_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000161define void @sample_c_cl() #0 {
162main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000163 %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 +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:
Michel Danzer494391b2015-02-06 02:51:20 +0000173;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000174;CHECK: image_sample_c_d {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000175define void @sample_c_d() #0 {
176main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000177 %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 +0000178 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000186;CHECK-LABEL: {{^}}sample_c_d_cl:
Michel Danzer494391b2015-02-06 02:51:20 +0000187;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000188;CHECK: image_sample_c_d_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000189define void @sample_c_d_cl() #0 {
190main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000191 %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 +0000192 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000200;CHECK-LABEL: {{^}}sample_c_l:
Michel Danzer494391b2015-02-06 02:51:20 +0000201;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000202;CHECK: image_sample_c_l {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000203define void @sample_c_l() #0 {
204main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000205 %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 +0000206 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000214;CHECK-LABEL: {{^}}sample_c_b:
Michel Danzer494391b2015-02-06 02:51:20 +0000215;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000216;CHECK: image_sample_c_b {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000217define void @sample_c_b() #0 {
218main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000219 %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 +0000220 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000228;CHECK-LABEL: {{^}}sample_c_b_cl:
Michel Danzer494391b2015-02-06 02:51:20 +0000229;CHECK: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000230;CHECK: image_sample_c_b_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000231define void @sample_c_b_cl() #0 {
232main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000233 %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 +0000234 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000242;CHECK-LABEL: {{^}}sample_c_lz:
Michel Danzer494391b2015-02-06 02:51:20 +0000243;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000244;CHECK: image_sample_c_lz {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000245define void @sample_c_lz() #0 {
246main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000247 %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 +0000248 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000256;CHECK-LABEL: {{^}}sample_c_cd:
Michel Danzer494391b2015-02-06 02:51:20 +0000257;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000258;CHECK: image_sample_c_cd {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000259define void @sample_c_cd() #0 {
260main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000261 %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 +0000262 %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
Tom Stellard79243d92014-10-01 17:15:17 +0000270;CHECK-LABEL: {{^}}sample_c_cd_cl:
Michel Danzer494391b2015-02-06 02:51:20 +0000271;CHECK-NOT: s_wqm
Nikolay Haustov2f684f12016-02-26 09:51:05 +0000272;CHECK: image_sample_c_cd_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf
Marek Olsakd8ecaee2014-07-11 17:11:46 +0000273define void @sample_c_cd_cl() #0 {
274main_body:
Marek Olsakeac50622014-07-11 17:11:52 +0000275 %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 +0000276 %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
Marek Olsakeac50622014-07-11 17:11:52 +0000285declare <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
286declare <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
287declare <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
288declare <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
289declare <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
290declare <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
291declare <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
292declare <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
293declare <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
294declare <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 +0000295
Marek Olsakeac50622014-07-11 17:11:52 +0000296declare <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
297declare <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
298declare <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
299declare <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
300declare <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
301declare <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
302declare <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
303declare <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
304declare <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
305declare <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 +0000306
307declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
308
309attributes #0 = { "ShaderType"="0" }
310attributes #1 = { nounwind readnone }