Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(662)

Side by Side Diff: tests_lit/llvm2ice_tests/vector-arith.ll

Issue 914263005: Subzero: switch from llvm-objdump to objdump for lit tests (for LLVM merge) (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; This test checks support for vector arithmetic. 1 ; This test checks support for vector arithmetic.
2 2
3 ; RUN: %p2i -i %s -a -O2 --verbose none \ 3 ; RUN: %p2i -i %s --assemble --disassemble -a -O2 --verbose none \
4 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ 4 ; RUN: | FileCheck %s
5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s 5 ; RUN: %p2i -i %s --assemble --disassemble -a -Om1 --verbose none \
6 ; RUN: %p2i -i %s -a -Om1 --verbose none \ 6 ; RUN: | FileCheck %s
7 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ 7 ; RUN: %p2i -i %s --assemble --disassemble -a -O2 -mattr=sse4.1 --verbose none \
8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
9 ; RUN: %p2i -i %s -a -O2 -mattr=sse4.1 --verbose none \
10 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \
11 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \
12 ; RUN: | FileCheck --check-prefix=SSE41 %s 8 ; RUN: | FileCheck --check-prefix=SSE41 %s
13 ; RUN: %p2i -i %s -a -Om1 -mattr=sse4.1 --verbose none \ 9 ; RUN: %p2i -i %s --assemble --disassemble -a -Om1 -mattr=sse4.1 --verbose none \
14 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ 10 ; RUN: \
jvoung (off chromium) 2015/02/13 23:37:23 Hmm...
15 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \
16 ; RUN: | FileCheck --check-prefix=SSE41 %s 11 ; RUN: | FileCheck --check-prefix=SSE41 %s
17 12
18 define <4 x float> @test_fadd(<4 x float> %arg0, <4 x float> %arg1) { 13 define <4 x float> @test_fadd(<4 x float> %arg0, <4 x float> %arg1) {
19 entry: 14 entry:
20 %res = fadd <4 x float> %arg0, %arg1 15 %res = fadd <4 x float> %arg0, %arg1
21 ret <4 x float> %res 16 ret <4 x float> %res
22 ; CHECK-LABEL: test_fadd: 17 ; CHECK-LABEL: test_fadd
23 ; CHECK: addps 18 ; CHECK: addps
24 } 19 }
25 20
26 define <4 x float> @test_fsub(<4 x float> %arg0, <4 x float> %arg1) { 21 define <4 x float> @test_fsub(<4 x float> %arg0, <4 x float> %arg1) {
27 entry: 22 entry:
28 %res = fsub <4 x float> %arg0, %arg1 23 %res = fsub <4 x float> %arg0, %arg1
29 ret <4 x float> %res 24 ret <4 x float> %res
30 ; CHECK-LABEL: test_fsub: 25 ; CHECK-LABEL: test_fsub
31 ; CHECK: subps 26 ; CHECK: subps
32 } 27 }
33 28
34 define <4 x float> @test_fmul(<4 x float> %arg0, <4 x float> %arg1) { 29 define <4 x float> @test_fmul(<4 x float> %arg0, <4 x float> %arg1) {
35 entry: 30 entry:
36 %res = fmul <4 x float> %arg0, %arg1 31 %res = fmul <4 x float> %arg0, %arg1
37 ret <4 x float> %res 32 ret <4 x float> %res
38 ; CHECK-LABEL: test_fmul: 33 ; CHECK-LABEL: test_fmul
39 ; CHECK: mulps 34 ; CHECK: mulps
40 } 35 }
41 36
42 define <4 x float> @test_fdiv(<4 x float> %arg0, <4 x float> %arg1) { 37 define <4 x float> @test_fdiv(<4 x float> %arg0, <4 x float> %arg1) {
43 entry: 38 entry:
44 %res = fdiv <4 x float> %arg0, %arg1 39 %res = fdiv <4 x float> %arg0, %arg1
45 ret <4 x float> %res 40 ret <4 x float> %res
46 ; CHECK-LABEL: test_fdiv: 41 ; CHECK-LABEL: test_fdiv
47 ; CHECK: divps 42 ; CHECK: divps
48 } 43 }
49 44
50 define <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) { 45 define <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) {
51 entry: 46 entry:
52 %res = frem <4 x float> %arg0, %arg1 47 %res = frem <4 x float> %arg0, %arg1
53 ret <4 x float> %res 48 ret <4 x float> %res
54 ; CHECK-LABEL: test_frem: 49 ; CHECK-LABEL: test_frem
55 ; CHECK: fmodf 50 ; CHECK: fmodf
56 ; CHECK: fmodf 51 ; CHECK: fmodf
57 ; CHECK: fmodf 52 ; CHECK: fmodf
58 ; CHECK: fmodf 53 ; CHECK: fmodf
59 } 54 }
60 55
61 define <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 56 define <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
62 entry: 57 entry:
63 %res = add <16 x i8> %arg0, %arg1 58 %res = add <16 x i8> %arg0, %arg1
64 ret <16 x i8> %res 59 ret <16 x i8> %res
65 ; CHECK-LABEL: test_add_v16i8: 60 ; CHECK-LABEL: test_add_v16i8
66 ; CHECK: paddb 61 ; CHECK: paddb
67 } 62 }
68 63
69 define <16 x i8> @test_and_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 64 define <16 x i8> @test_and_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
70 entry: 65 entry:
71 %res = and <16 x i8> %arg0, %arg1 66 %res = and <16 x i8> %arg0, %arg1
72 ret <16 x i8> %res 67 ret <16 x i8> %res
73 ; CHECK-LABEL: test_and_v16i8: 68 ; CHECK-LABEL: test_and_v16i8
74 ; CHECK: pand 69 ; CHECK: pand
75 } 70 }
76 71
77 define <16 x i8> @test_or_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 72 define <16 x i8> @test_or_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
78 entry: 73 entry:
79 %res = or <16 x i8> %arg0, %arg1 74 %res = or <16 x i8> %arg0, %arg1
80 ret <16 x i8> %res 75 ret <16 x i8> %res
81 ; CHECK-LABEL: test_or_v16i8: 76 ; CHECK-LABEL: test_or_v16i8
82 ; CHECK: por 77 ; CHECK: por
83 } 78 }
84 79
85 define <16 x i8> @test_xor_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 80 define <16 x i8> @test_xor_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
86 entry: 81 entry:
87 %res = xor <16 x i8> %arg0, %arg1 82 %res = xor <16 x i8> %arg0, %arg1
88 ret <16 x i8> %res 83 ret <16 x i8> %res
89 ; CHECK-LABEL: test_xor_v16i8: 84 ; CHECK-LABEL: test_xor_v16i8
90 ; CHECK: pxor 85 ; CHECK: pxor
91 } 86 }
92 87
93 define <16 x i8> @test_sub_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 88 define <16 x i8> @test_sub_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
94 entry: 89 entry:
95 %res = sub <16 x i8> %arg0, %arg1 90 %res = sub <16 x i8> %arg0, %arg1
96 ret <16 x i8> %res 91 ret <16 x i8> %res
97 ; CHECK-LABEL: test_sub_v16i8: 92 ; CHECK-LABEL: test_sub_v16i8
98 ; CHECK: psubb 93 ; CHECK: psubb
99 } 94 }
100 95
101 define <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 96 define <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
102 entry: 97 entry:
103 %res = mul <16 x i8> %arg0, %arg1 98 %res = mul <16 x i8> %arg0, %arg1
104 ret <16 x i8> %res 99 ret <16 x i8> %res
105 ; CHECK-LABEL: test_mul_v16i8: 100 ; CHECK-LABEL: test_mul_v16i8
106 ; CHECK: imul 101 ; CHECK: imul
107 ; CHECK: imul 102 ; CHECK: imul
108 ; CHECK: imul 103 ; CHECK: imul
109 ; CHECK: imul 104 ; CHECK: imul
110 ; CHECK: imul 105 ; CHECK: imul
111 ; CHECK: imul 106 ; CHECK: imul
112 ; CHECK: imul 107 ; CHECK: imul
113 ; CHECK: imul 108 ; CHECK: imul
114 ; CHECK: imul 109 ; CHECK: imul
115 ; CHECK: imul 110 ; CHECK: imul
116 ; CHECK: imul 111 ; CHECK: imul
117 ; CHECK: imul 112 ; CHECK: imul
118 ; CHECK: imul 113 ; CHECK: imul
119 ; CHECK: imul 114 ; CHECK: imul
120 ; CHECK: imul 115 ; CHECK: imul
121 ; CHECK: imul 116 ; CHECK: imul
122 } 117 }
123 118
124 define <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 119 define <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
125 entry: 120 entry:
126 %res = shl <16 x i8> %arg0, %arg1 121 %res = shl <16 x i8> %arg0, %arg1
127 ret <16 x i8> %res 122 ret <16 x i8> %res
128 ; CHECK-LABEL: test_shl_v16i8: 123 ; CHECK-LABEL: test_shl_v16i8
129 ; CHECK: shl 124 ; CHECK: shl
130 ; CHECK: shl 125 ; CHECK: shl
131 ; CHECK: shl 126 ; CHECK: shl
132 ; CHECK: shl 127 ; CHECK: shl
133 ; CHECK: shl 128 ; CHECK: shl
134 ; CHECK: shl 129 ; CHECK: shl
135 ; CHECK: shl 130 ; CHECK: shl
136 ; CHECK: shl 131 ; CHECK: shl
137 ; CHECK: shl 132 ; CHECK: shl
138 ; CHECK: shl 133 ; CHECK: shl
139 ; CHECK: shl 134 ; CHECK: shl
140 ; CHECK: shl 135 ; CHECK: shl
141 ; CHECK: shl 136 ; CHECK: shl
142 ; CHECK: shl 137 ; CHECK: shl
143 ; CHECK: shl 138 ; CHECK: shl
144 ; CHECK: shl 139 ; CHECK: shl
145 } 140 }
146 141
147 define <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 142 define <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
148 entry: 143 entry:
149 %res = lshr <16 x i8> %arg0, %arg1 144 %res = lshr <16 x i8> %arg0, %arg1
150 ret <16 x i8> %res 145 ret <16 x i8> %res
151 ; CHECK-LABEL: test_lshr_v16i8: 146 ; CHECK-LABEL: test_lshr_v16i8
152 ; CHECK: shr 147 ; CHECK: shr
153 ; CHECK: shr 148 ; CHECK: shr
154 ; CHECK: shr 149 ; CHECK: shr
155 ; CHECK: shr 150 ; CHECK: shr
156 ; CHECK: shr 151 ; CHECK: shr
157 ; CHECK: shr 152 ; CHECK: shr
158 ; CHECK: shr 153 ; CHECK: shr
159 ; CHECK: shr 154 ; CHECK: shr
160 ; CHECK: shr 155 ; CHECK: shr
161 ; CHECK: shr 156 ; CHECK: shr
162 ; CHECK: shr 157 ; CHECK: shr
163 ; CHECK: shr 158 ; CHECK: shr
164 ; CHECK: shr 159 ; CHECK: shr
165 ; CHECK: shr 160 ; CHECK: shr
166 ; CHECK: shr 161 ; CHECK: shr
167 ; CHECK: shr 162 ; CHECK: shr
168 } 163 }
169 164
170 define <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 165 define <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
171 entry: 166 entry:
172 %res = ashr <16 x i8> %arg0, %arg1 167 %res = ashr <16 x i8> %arg0, %arg1
173 ret <16 x i8> %res 168 ret <16 x i8> %res
174 ; CHECK-LABEL: test_ashr_v16i8: 169 ; CHECK-LABEL: test_ashr_v16i8
175 ; CHECK: sar 170 ; CHECK: sar
176 ; CHECK: sar 171 ; CHECK: sar
177 ; CHECK: sar 172 ; CHECK: sar
178 ; CHECK: sar 173 ; CHECK: sar
179 ; CHECK: sar 174 ; CHECK: sar
180 ; CHECK: sar 175 ; CHECK: sar
181 ; CHECK: sar 176 ; CHECK: sar
182 ; CHECK: sar 177 ; CHECK: sar
183 ; CHECK: sar 178 ; CHECK: sar
184 ; CHECK: sar 179 ; CHECK: sar
185 ; CHECK: sar 180 ; CHECK: sar
186 ; CHECK: sar 181 ; CHECK: sar
187 ; CHECK: sar 182 ; CHECK: sar
188 ; CHECK: sar 183 ; CHECK: sar
189 ; CHECK: sar 184 ; CHECK: sar
190 ; CHECK: sar 185 ; CHECK: sar
191 } 186 }
192 187
193 define <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 188 define <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
194 entry: 189 entry:
195 %res = udiv <16 x i8> %arg0, %arg1 190 %res = udiv <16 x i8> %arg0, %arg1
196 ret <16 x i8> %res 191 ret <16 x i8> %res
197 ; CHECK-LABEL: test_udiv_v16i8: 192 ; CHECK-LABEL: test_udiv_v16i8
198 ; CHECK: div 193 ; CHECK: div
199 ; CHECK: div 194 ; CHECK: div
200 ; CHECK: div 195 ; CHECK: div
201 ; CHECK: div 196 ; CHECK: div
202 ; CHECK: div 197 ; CHECK: div
203 ; CHECK: div 198 ; CHECK: div
204 ; CHECK: div 199 ; CHECK: div
205 ; CHECK: div 200 ; CHECK: div
206 ; CHECK: div 201 ; CHECK: div
207 ; CHECK: div 202 ; CHECK: div
208 ; CHECK: div 203 ; CHECK: div
209 ; CHECK: div 204 ; CHECK: div
210 ; CHECK: div 205 ; CHECK: div
211 ; CHECK: div 206 ; CHECK: div
212 ; CHECK: div 207 ; CHECK: div
213 ; CHECK: div 208 ; CHECK: div
214 } 209 }
215 210
216 define <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 211 define <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
217 entry: 212 entry:
218 %res = sdiv <16 x i8> %arg0, %arg1 213 %res = sdiv <16 x i8> %arg0, %arg1
219 ret <16 x i8> %res 214 ret <16 x i8> %res
220 ; CHECK-LABEL: test_sdiv_v16i8: 215 ; CHECK-LABEL: test_sdiv_v16i8
221 ; CHECK: idiv 216 ; CHECK: idiv
222 ; CHECK: idiv 217 ; CHECK: idiv
223 ; CHECK: idiv 218 ; CHECK: idiv
224 ; CHECK: idiv 219 ; CHECK: idiv
225 ; CHECK: idiv 220 ; CHECK: idiv
226 ; CHECK: idiv 221 ; CHECK: idiv
227 ; CHECK: idiv 222 ; CHECK: idiv
228 ; CHECK: idiv 223 ; CHECK: idiv
229 ; CHECK: idiv 224 ; CHECK: idiv
230 ; CHECK: idiv 225 ; CHECK: idiv
231 ; CHECK: idiv 226 ; CHECK: idiv
232 ; CHECK: idiv 227 ; CHECK: idiv
233 ; CHECK: idiv 228 ; CHECK: idiv
234 ; CHECK: idiv 229 ; CHECK: idiv
235 ; CHECK: idiv 230 ; CHECK: idiv
236 ; CHECK: idiv 231 ; CHECK: idiv
237 } 232 }
238 233
239 define <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 234 define <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
240 entry: 235 entry:
241 %res = urem <16 x i8> %arg0, %arg1 236 %res = urem <16 x i8> %arg0, %arg1
242 ret <16 x i8> %res 237 ret <16 x i8> %res
243 ; CHECK-LABEL: test_urem_v16i8: 238 ; CHECK-LABEL: test_urem_v16i8
244 ; CHECK: div 239 ; CHECK: div
245 ; CHECK: div 240 ; CHECK: div
246 ; CHECK: div 241 ; CHECK: div
247 ; CHECK: div 242 ; CHECK: div
248 ; CHECK: div 243 ; CHECK: div
249 ; CHECK: div 244 ; CHECK: div
250 ; CHECK: div 245 ; CHECK: div
251 ; CHECK: div 246 ; CHECK: div
252 ; CHECK: div 247 ; CHECK: div
253 ; CHECK: div 248 ; CHECK: div
254 ; CHECK: div 249 ; CHECK: div
255 ; CHECK: div 250 ; CHECK: div
256 ; CHECK: div 251 ; CHECK: div
257 ; CHECK: div 252 ; CHECK: div
258 ; CHECK: div 253 ; CHECK: div
259 ; CHECK: div 254 ; CHECK: div
260 } 255 }
261 256
262 define <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 257 define <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
263 entry: 258 entry:
264 %res = srem <16 x i8> %arg0, %arg1 259 %res = srem <16 x i8> %arg0, %arg1
265 ret <16 x i8> %res 260 ret <16 x i8> %res
266 ; CHECK-LABEL: test_srem_v16i8: 261 ; CHECK-LABEL: test_srem_v16i8
267 ; CHECK: idiv 262 ; CHECK: idiv
268 ; CHECK: idiv 263 ; CHECK: idiv
269 ; CHECK: idiv 264 ; CHECK: idiv
270 ; CHECK: idiv 265 ; CHECK: idiv
271 ; CHECK: idiv 266 ; CHECK: idiv
272 ; CHECK: idiv 267 ; CHECK: idiv
273 ; CHECK: idiv 268 ; CHECK: idiv
274 ; CHECK: idiv 269 ; CHECK: idiv
275 ; CHECK: idiv 270 ; CHECK: idiv
276 ; CHECK: idiv 271 ; CHECK: idiv
277 ; CHECK: idiv 272 ; CHECK: idiv
278 ; CHECK: idiv 273 ; CHECK: idiv
279 ; CHECK: idiv 274 ; CHECK: idiv
280 ; CHECK: idiv 275 ; CHECK: idiv
281 ; CHECK: idiv 276 ; CHECK: idiv
282 ; CHECK: idiv 277 ; CHECK: idiv
283 } 278 }
284 279
285 define <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 280 define <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
286 entry: 281 entry:
287 %res = add <8 x i16> %arg0, %arg1 282 %res = add <8 x i16> %arg0, %arg1
288 ret <8 x i16> %res 283 ret <8 x i16> %res
289 ; CHECK-LABEL: test_add_v8i16: 284 ; CHECK-LABEL: test_add_v8i16
290 ; CHECK: paddw 285 ; CHECK: paddw
291 } 286 }
292 287
293 define <8 x i16> @test_and_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 288 define <8 x i16> @test_and_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
294 entry: 289 entry:
295 %res = and <8 x i16> %arg0, %arg1 290 %res = and <8 x i16> %arg0, %arg1
296 ret <8 x i16> %res 291 ret <8 x i16> %res
297 ; CHECK-LABEL: test_and_v8i16: 292 ; CHECK-LABEL: test_and_v8i16
298 ; CHECK: pand 293 ; CHECK: pand
299 } 294 }
300 295
301 define <8 x i16> @test_or_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 296 define <8 x i16> @test_or_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
302 entry: 297 entry:
303 %res = or <8 x i16> %arg0, %arg1 298 %res = or <8 x i16> %arg0, %arg1
304 ret <8 x i16> %res 299 ret <8 x i16> %res
305 ; CHECK-LABEL: test_or_v8i16: 300 ; CHECK-LABEL: test_or_v8i16
306 ; CHECK: por 301 ; CHECK: por
307 } 302 }
308 303
309 define <8 x i16> @test_xor_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 304 define <8 x i16> @test_xor_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
310 entry: 305 entry:
311 %res = xor <8 x i16> %arg0, %arg1 306 %res = xor <8 x i16> %arg0, %arg1
312 ret <8 x i16> %res 307 ret <8 x i16> %res
313 ; CHECK-LABEL: test_xor_v8i16: 308 ; CHECK-LABEL: test_xor_v8i16
314 ; CHECK: pxor 309 ; CHECK: pxor
315 } 310 }
316 311
317 define <8 x i16> @test_sub_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 312 define <8 x i16> @test_sub_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
318 entry: 313 entry:
319 %res = sub <8 x i16> %arg0, %arg1 314 %res = sub <8 x i16> %arg0, %arg1
320 ret <8 x i16> %res 315 ret <8 x i16> %res
321 ; CHECK-LABEL: test_sub_v8i16: 316 ; CHECK-LABEL: test_sub_v8i16
322 ; CHECK: psubw 317 ; CHECK: psubw
323 } 318 }
324 319
325 define <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 320 define <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
326 entry: 321 entry:
327 %res = mul <8 x i16> %arg0, %arg1 322 %res = mul <8 x i16> %arg0, %arg1
328 ret <8 x i16> %res 323 ret <8 x i16> %res
329 ; CHECK-LABEL: test_mul_v8i16: 324 ; CHECK-LABEL: test_mul_v8i16
330 ; CHECK: pmullw 325 ; CHECK: pmullw
331 } 326 }
332 327
333 define <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 328 define <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
334 entry: 329 entry:
335 %res = shl <8 x i16> %arg0, %arg1 330 %res = shl <8 x i16> %arg0, %arg1
336 ret <8 x i16> %res 331 ret <8 x i16> %res
337 ; CHECK-LABEL: test_shl_v8i16: 332 ; CHECK-LABEL: test_shl_v8i16
338 ; CHECK: shl 333 ; CHECK: shl
339 ; CHECK: shl 334 ; CHECK: shl
340 ; CHECK: shl 335 ; CHECK: shl
341 ; CHECK: shl 336 ; CHECK: shl
342 ; CHECK: shl 337 ; CHECK: shl
343 ; CHECK: shl 338 ; CHECK: shl
344 ; CHECK: shl 339 ; CHECK: shl
345 ; CHECK: shl 340 ; CHECK: shl
346 } 341 }
347 342
348 define <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 343 define <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
349 entry: 344 entry:
350 %res = lshr <8 x i16> %arg0, %arg1 345 %res = lshr <8 x i16> %arg0, %arg1
351 ret <8 x i16> %res 346 ret <8 x i16> %res
352 ; CHECK-LABEL: test_lshr_v8i16: 347 ; CHECK-LABEL: test_lshr_v8i16
353 ; CHECK: shr 348 ; CHECK: shr
354 ; CHECK: shr 349 ; CHECK: shr
355 ; CHECK: shr 350 ; CHECK: shr
356 ; CHECK: shr 351 ; CHECK: shr
357 ; CHECK: shr 352 ; CHECK: shr
358 ; CHECK: shr 353 ; CHECK: shr
359 ; CHECK: shr 354 ; CHECK: shr
360 ; CHECK: shr 355 ; CHECK: shr
361 } 356 }
362 357
363 define <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 358 define <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
364 entry: 359 entry:
365 %res = ashr <8 x i16> %arg0, %arg1 360 %res = ashr <8 x i16> %arg0, %arg1
366 ret <8 x i16> %res 361 ret <8 x i16> %res
367 ; CHECK-LABEL: test_ashr_v8i16: 362 ; CHECK-LABEL: test_ashr_v8i16
368 ; CHECK: sar 363 ; CHECK: sar
369 ; CHECK: sar 364 ; CHECK: sar
370 ; CHECK: sar 365 ; CHECK: sar
371 ; CHECK: sar 366 ; CHECK: sar
372 ; CHECK: sar 367 ; CHECK: sar
373 ; CHECK: sar 368 ; CHECK: sar
374 ; CHECK: sar 369 ; CHECK: sar
375 ; CHECK: sar 370 ; CHECK: sar
376 } 371 }
377 372
378 define <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 373 define <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
379 entry: 374 entry:
380 %res = udiv <8 x i16> %arg0, %arg1 375 %res = udiv <8 x i16> %arg0, %arg1
381 ret <8 x i16> %res 376 ret <8 x i16> %res
382 ; CHECK-LABEL: test_udiv_v8i16: 377 ; CHECK-LABEL: test_udiv_v8i16
383 ; CHECK: div 378 ; CHECK: div
384 ; CHECK: div 379 ; CHECK: div
385 ; CHECK: div 380 ; CHECK: div
386 ; CHECK: div 381 ; CHECK: div
387 ; CHECK: div 382 ; CHECK: div
388 ; CHECK: div 383 ; CHECK: div
389 ; CHECK: div 384 ; CHECK: div
390 ; CHECK: div 385 ; CHECK: div
391 } 386 }
392 387
393 define <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 388 define <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
394 entry: 389 entry:
395 %res = sdiv <8 x i16> %arg0, %arg1 390 %res = sdiv <8 x i16> %arg0, %arg1
396 ret <8 x i16> %res 391 ret <8 x i16> %res
397 ; CHECK-LABEL: test_sdiv_v8i16: 392 ; CHECK-LABEL: test_sdiv_v8i16
398 ; CHECK: idiv 393 ; CHECK: idiv
399 ; CHECK: idiv 394 ; CHECK: idiv
400 ; CHECK: idiv 395 ; CHECK: idiv
401 ; CHECK: idiv 396 ; CHECK: idiv
402 ; CHECK: idiv 397 ; CHECK: idiv
403 ; CHECK: idiv 398 ; CHECK: idiv
404 ; CHECK: idiv 399 ; CHECK: idiv
405 ; CHECK: idiv 400 ; CHECK: idiv
406 } 401 }
407 402
408 define <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 403 define <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
409 entry: 404 entry:
410 %res = urem <8 x i16> %arg0, %arg1 405 %res = urem <8 x i16> %arg0, %arg1
411 ret <8 x i16> %res 406 ret <8 x i16> %res
412 ; CHECK-LABEL: test_urem_v8i16: 407 ; CHECK-LABEL: test_urem_v8i16
413 ; CHECK: div 408 ; CHECK: div
414 ; CHECK: div 409 ; CHECK: div
415 ; CHECK: div 410 ; CHECK: div
416 ; CHECK: div 411 ; CHECK: div
417 ; CHECK: div 412 ; CHECK: div
418 ; CHECK: div 413 ; CHECK: div
419 ; CHECK: div 414 ; CHECK: div
420 ; CHECK: div 415 ; CHECK: div
421 } 416 }
422 417
423 define <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 418 define <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
424 entry: 419 entry:
425 %res = srem <8 x i16> %arg0, %arg1 420 %res = srem <8 x i16> %arg0, %arg1
426 ret <8 x i16> %res 421 ret <8 x i16> %res
427 ; CHECK-LABEL: test_srem_v8i16: 422 ; CHECK-LABEL: test_srem_v8i16
428 ; CHECK: idiv 423 ; CHECK: idiv
429 ; CHECK: idiv 424 ; CHECK: idiv
430 ; CHECK: idiv 425 ; CHECK: idiv
431 ; CHECK: idiv 426 ; CHECK: idiv
432 ; CHECK: idiv 427 ; CHECK: idiv
433 ; CHECK: idiv 428 ; CHECK: idiv
434 ; CHECK: idiv 429 ; CHECK: idiv
435 ; CHECK: idiv 430 ; CHECK: idiv
436 } 431 }
437 432
438 define <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 433 define <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
439 entry: 434 entry:
440 %res = add <4 x i32> %arg0, %arg1 435 %res = add <4 x i32> %arg0, %arg1
441 ret <4 x i32> %res 436 ret <4 x i32> %res
442 ; CHECK-LABEL: test_add_v4i32: 437 ; CHECK-LABEL: test_add_v4i32
443 ; CHECK: paddd 438 ; CHECK: paddd
444 } 439 }
445 440
446 define <4 x i32> @test_and_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 441 define <4 x i32> @test_and_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
447 entry: 442 entry:
448 %res = and <4 x i32> %arg0, %arg1 443 %res = and <4 x i32> %arg0, %arg1
449 ret <4 x i32> %res 444 ret <4 x i32> %res
450 ; CHECK-LABEL: test_and_v4i32: 445 ; CHECK-LABEL: test_and_v4i32
451 ; CHECK: pand 446 ; CHECK: pand
452 } 447 }
453 448
454 define <4 x i32> @test_or_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 449 define <4 x i32> @test_or_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
455 entry: 450 entry:
456 %res = or <4 x i32> %arg0, %arg1 451 %res = or <4 x i32> %arg0, %arg1
457 ret <4 x i32> %res 452 ret <4 x i32> %res
458 ; CHECK-LABEL: test_or_v4i32: 453 ; CHECK-LABEL: test_or_v4i32
459 ; CHECK: por 454 ; CHECK: por
460 } 455 }
461 456
462 define <4 x i32> @test_xor_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 457 define <4 x i32> @test_xor_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
463 entry: 458 entry:
464 %res = xor <4 x i32> %arg0, %arg1 459 %res = xor <4 x i32> %arg0, %arg1
465 ret <4 x i32> %res 460 ret <4 x i32> %res
466 ; CHECK-LABEL: test_xor_v4i32: 461 ; CHECK-LABEL: test_xor_v4i32
467 ; CHECK: pxor 462 ; CHECK: pxor
468 } 463 }
469 464
470 define <4 x i32> @test_sub_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 465 define <4 x i32> @test_sub_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
471 entry: 466 entry:
472 %res = sub <4 x i32> %arg0, %arg1 467 %res = sub <4 x i32> %arg0, %arg1
473 ret <4 x i32> %res 468 ret <4 x i32> %res
474 ; CHECK-LABEL: test_sub_v4i32: 469 ; CHECK-LABEL: test_sub_v4i32
475 ; CHECK: psubd 470 ; CHECK: psubd
476 } 471 }
477 472
478 define <4 x i32> @test_mul_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 473 define <4 x i32> @test_mul_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
479 entry: 474 entry:
480 %res = mul <4 x i32> %arg0, %arg1 475 %res = mul <4 x i32> %arg0, %arg1
481 ret <4 x i32> %res 476 ret <4 x i32> %res
482 ; CHECK-LABEL: test_mul_v4i32: 477 ; CHECK-LABEL: test_mul_v4i32
483 ; CHECK: pmuludq 478 ; CHECK: pmuludq
484 ; CHECK: pmuludq 479 ; CHECK: pmuludq
485 ; 480 ;
486 ; SSE41-LABEL: test_mul_v4i32: 481 ; SSE41-LABEL: test_mul_v4i32
487 ; SSE41: pmulld 482 ; SSE41: pmulld
488 } 483 }
489 484
490 define <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 485 define <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
491 entry: 486 entry:
492 %res = shl <4 x i32> %arg0, %arg1 487 %res = shl <4 x i32> %arg0, %arg1
493 ret <4 x i32> %res 488 ret <4 x i32> %res
494 ; CHECK-LABEL: test_shl_v4i32: 489 ; CHECK-LABEL: test_shl_v4i32
495 ; CHECK: shl 490 ; CHECK: shl
496 ; CHECK: shl 491 ; CHECK: shl
497 ; CHECK: shl 492 ; CHECK: shl
498 ; CHECK: shl 493 ; CHECK: shl
499 494
500 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above. 495 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above.
501 ; SSE41-LABEL: test_shl_v4i32: 496 ; SSE41-LABEL: test_shl_v4i32
502 } 497 }
503 498
504 define <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 499 define <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
505 entry: 500 entry:
506 %res = lshr <4 x i32> %arg0, %arg1 501 %res = lshr <4 x i32> %arg0, %arg1
507 ret <4 x i32> %res 502 ret <4 x i32> %res
508 ; CHECK-LABEL: test_lshr_v4i32: 503 ; CHECK-LABEL: test_lshr_v4i32
509 ; CHECK: shr 504 ; CHECK: shr
510 ; CHECK: shr 505 ; CHECK: shr
511 ; CHECK: shr 506 ; CHECK: shr
512 ; CHECK: shr 507 ; CHECK: shr
513 } 508 }
514 509
515 define <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 510 define <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
516 entry: 511 entry:
517 %res = ashr <4 x i32> %arg0, %arg1 512 %res = ashr <4 x i32> %arg0, %arg1
518 ret <4 x i32> %res 513 ret <4 x i32> %res
519 ; CHECK-LABEL: test_ashr_v4i32: 514 ; CHECK-LABEL: test_ashr_v4i32
520 ; CHECK: sar 515 ; CHECK: sar
521 ; CHECK: sar 516 ; CHECK: sar
522 ; CHECK: sar 517 ; CHECK: sar
523 ; CHECK: sar 518 ; CHECK: sar
524 } 519 }
525 520
526 define <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 521 define <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
527 entry: 522 entry:
528 %res = udiv <4 x i32> %arg0, %arg1 523 %res = udiv <4 x i32> %arg0, %arg1
529 ret <4 x i32> %res 524 ret <4 x i32> %res
530 ; CHECK-LABEL: test_udiv_v4i32: 525 ; CHECK-LABEL: test_udiv_v4i32
531 ; CHECK: div 526 ; CHECK: div
532 ; CHECK: div 527 ; CHECK: div
533 ; CHECK: div 528 ; CHECK: div
534 ; CHECK: div 529 ; CHECK: div
535 } 530 }
536 531
537 define <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 532 define <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
538 entry: 533 entry:
539 %res = sdiv <4 x i32> %arg0, %arg1 534 %res = sdiv <4 x i32> %arg0, %arg1
540 ret <4 x i32> %res 535 ret <4 x i32> %res
541 ; CHECK-LABEL: test_sdiv_v4i32: 536 ; CHECK-LABEL: test_sdiv_v4i32
542 ; CHECK: idiv 537 ; CHECK: idiv
543 ; CHECK: idiv 538 ; CHECK: idiv
544 ; CHECK: idiv 539 ; CHECK: idiv
545 ; CHECK: idiv 540 ; CHECK: idiv
546 } 541 }
547 542
548 define <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 543 define <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
549 entry: 544 entry:
550 %res = urem <4 x i32> %arg0, %arg1 545 %res = urem <4 x i32> %arg0, %arg1
551 ret <4 x i32> %res 546 ret <4 x i32> %res
552 ; CHECK-LABEL: test_urem_v4i32: 547 ; CHECK-LABEL: test_urem_v4i32
553 ; CHECK: div 548 ; CHECK: div
554 ; CHECK: div 549 ; CHECK: div
555 ; CHECK: div 550 ; CHECK: div
556 ; CHECK: div 551 ; CHECK: div
557 } 552 }
558 553
559 define <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 554 define <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
560 entry: 555 entry:
561 %res = srem <4 x i32> %arg0, %arg1 556 %res = srem <4 x i32> %arg0, %arg1
562 ret <4 x i32> %res 557 ret <4 x i32> %res
563 ; CHECK-LABEL: test_srem_v4i32: 558 ; CHECK-LABEL: test_srem_v4i32
564 ; CHECK: idiv 559 ; CHECK: idiv
565 ; CHECK: idiv 560 ; CHECK: idiv
566 ; CHECK: idiv 561 ; CHECK: idiv
567 ; CHECK: idiv 562 ; CHECK: idiv
568 } 563 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698