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

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

Issue 2448193008: Subzero, MIPS32: Enable MIPS support in lit tests (Closed)
Patch Set: Addressed review comments Created 4 years, 1 month 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
« no previous file with comments | « tests_lit/llvm2ice_tests/vector-arg.ll ('k') | tests_lit/llvm2ice_tests/vector-cast.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This test checks support for vector arithmetic. 1 ; This test checks support for vector arithmetic.
2 2
3 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 \ 3 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 \
4 ; RUN: | FileCheck %s 4 ; RUN: | FileCheck %s
5 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 \ 5 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 \
6 ; RUN: | FileCheck %s 6 ; RUN: | FileCheck %s
7 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 -mattr=sse4.1 \ 7 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 -mattr=sse4.1 \
8 ; RUN: | FileCheck --check-prefix=SSE41 %s 8 ; RUN: | FileCheck --check-prefix=SSE41 %s
9 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 -mattr=sse4.1 \ 9 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 -mattr=sse4.1 \
10 ; RUN: | FileCheck --check-prefix=SSE41 %s 10 ; RUN: | FileCheck --check-prefix=SSE41 %s
11 11
12 ; RUN: %if --need=target_MIPS32 --need=allow_dump \
13 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target \
14 ; RUN: mips32 -i %s --args -O2 -allow-externally-defined-symbols \
15 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \
16 ; RUN: --command FileCheck --check-prefix MIPS32 %s
17
12 define internal <4 x float> @test_fadd(<4 x float> %arg0, <4 x float> %arg1) { 18 define internal <4 x float> @test_fadd(<4 x float> %arg0, <4 x float> %arg1) {
13 entry: 19 entry:
14 %res = fadd <4 x float> %arg0, %arg1 20 %res = fadd <4 x float> %arg0, %arg1
15 ret <4 x float> %res 21 ret <4 x float> %res
16 ; CHECK-LABEL: test_fadd 22 ; CHECK-LABEL: test_fadd
17 ; CHECK: addps 23 ; CHECK: addps
24 ; MIPS32-LABEL: test_fadd
25 ; MIPS32: add.s
26 ; MIPS32: add.s
27 ; MIPS32: add.s
28 ; MIPS32: add.s
18 } 29 }
19 30
20 define internal <4 x float> @test_fsub(<4 x float> %arg0, <4 x float> %arg1) { 31 define internal <4 x float> @test_fsub(<4 x float> %arg0, <4 x float> %arg1) {
21 entry: 32 entry:
22 %res = fsub <4 x float> %arg0, %arg1 33 %res = fsub <4 x float> %arg0, %arg1
23 ret <4 x float> %res 34 ret <4 x float> %res
24 ; CHECK-LABEL: test_fsub 35 ; CHECK-LABEL: test_fsub
25 ; CHECK: subps 36 ; CHECK: subps
37 ; MIPS32-LABEL: test_fsub
38 ; MIPS32: sub.s
39 ; MIPS32: sub.s
40 ; MIPS32: sub.s
41 ; MIPS32: sub.s
26 } 42 }
27 43
28 define internal <4 x float> @test_fmul(<4 x float> %arg0, <4 x float> %arg1) { 44 define internal <4 x float> @test_fmul(<4 x float> %arg0, <4 x float> %arg1) {
29 entry: 45 entry:
30 %res = fmul <4 x float> %arg0, %arg1 46 %res = fmul <4 x float> %arg0, %arg1
31 ret <4 x float> %res 47 ret <4 x float> %res
32 ; CHECK-LABEL: test_fmul 48 ; CHECK-LABEL: test_fmul
33 ; CHECK: mulps 49 ; CHECK: mulps
50 ; MIPS32-LABEL: test_fmul
51 ; MIPS32: mul.s
52 ; MIPS32: mul.s
53 ; MIPS32: mul.s
54 ; MIPS32: mul.s
34 } 55 }
35 56
36 define internal <4 x float> @test_fdiv(<4 x float> %arg0, <4 x float> %arg1) { 57 define internal <4 x float> @test_fdiv(<4 x float> %arg0, <4 x float> %arg1) {
37 entry: 58 entry:
38 %res = fdiv <4 x float> %arg0, %arg1 59 %res = fdiv <4 x float> %arg0, %arg1
39 ret <4 x float> %res 60 ret <4 x float> %res
40 ; CHECK-LABEL: test_fdiv 61 ; CHECK-LABEL: test_fdiv
41 ; CHECK: divps 62 ; CHECK: divps
63 ; MIPS32-LABEL: test_fdiv
64 ; MIPS32: div.s
65 ; MIPS32: div.s
66 ; MIPS32: div.s
67 ; MIPS32: div.s
42 } 68 }
43 69
44 define internal <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) { 70 define internal <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) {
45 entry: 71 entry:
46 %res = frem <4 x float> %arg0, %arg1 72 %res = frem <4 x float> %arg0, %arg1
47 ret <4 x float> %res 73 ret <4 x float> %res
48 ; CHECK-LABEL: test_frem 74 ; CHECK-LABEL: test_frem
49 ; CHECK: fmodf 75 ; CHECK: fmodf
50 ; CHECK: fmodf 76 ; CHECK: fmodf
51 ; CHECK: fmodf 77 ; CHECK: fmodf
52 ; CHECK: fmodf 78 ; CHECK: fmodf
53 } 79 }
54 80
55 define internal <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 81 define internal <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
56 entry: 82 entry:
57 %res = add <16 x i8> %arg0, %arg1 83 %res = add <16 x i8> %arg0, %arg1
58 ret <16 x i8> %res 84 ret <16 x i8> %res
59 ; CHECK-LABEL: test_add_v16i8 85 ; CHECK-LABEL: test_add_v16i8
60 ; CHECK: paddb 86 ; CHECK: paddb
87 ; MIPS32-LABEL: test_add_v16i8
88 ; MIPS32: addu
89 ; MIPS32: addu
90 ; MIPS32: addu
91 ; MIPS32: addu
92 ; MIPS32: addu
93 ; MIPS32: addu
94 ; MIPS32: addu
95 ; MIPS32: addu
96 ; MIPS32: addu
97 ; MIPS32: addu
98 ; MIPS32: addu
99 ; MIPS32: addu
100 ; MIPS32: addu
101 ; MIPS32: addu
102 ; MIPS32: addu
103 ; MIPS32: addu
61 } 104 }
62 105
63 define internal <16 x i8> @test_and_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 106 define internal <16 x i8> @test_and_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
64 entry: 107 entry:
65 %res = and <16 x i8> %arg0, %arg1 108 %res = and <16 x i8> %arg0, %arg1
66 ret <16 x i8> %res 109 ret <16 x i8> %res
67 ; CHECK-LABEL: test_and_v16i8 110 ; CHECK-LABEL: test_and_v16i8
68 ; CHECK: pand 111 ; CHECK: pand
112 ; MIPS32-LABEL: test_and_v16i8
113 ; MIPS32: and
114 ; MIPS32: and
115 ; MIPS32: and
116 ; MIPS32: and
117 ; MIPS32: and
118 ; MIPS32: and
119 ; MIPS32: and
120 ; MIPS32: and
121 ; MIPS32: and
122 ; MIPS32: and
123 ; MIPS32: and
124 ; MIPS32: and
125 ; MIPS32: and
126 ; MIPS32: and
127 ; MIPS32: and
128 ; MIPS32: and
69 } 129 }
70 130
71 define internal <16 x i8> @test_or_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 131 define internal <16 x i8> @test_or_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
72 entry: 132 entry:
73 %res = or <16 x i8> %arg0, %arg1 133 %res = or <16 x i8> %arg0, %arg1
74 ret <16 x i8> %res 134 ret <16 x i8> %res
75 ; CHECK-LABEL: test_or_v16i8 135 ; CHECK-LABEL: test_or_v16i8
76 ; CHECK: por 136 ; CHECK: por
137 ; MIPS32-LABEL: test_or_v16i8
138 ; MIPS32: or
139 ; MIPS32: or
140 ; MIPS32: or
141 ; MIPS32: or
142 ; MIPS32: or
143 ; MIPS32: or
144 ; MIPS32: or
145 ; MIPS32: or
146 ; MIPS32: or
147 ; MIPS32: or
148 ; MIPS32: or
149 ; MIPS32: or
150 ; MIPS32: or
151 ; MIPS32: or
152 ; MIPS32: or
153 ; MIPS32: or
77 } 154 }
78 155
79 define internal <16 x i8> @test_xor_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 156 define internal <16 x i8> @test_xor_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
80 entry: 157 entry:
81 %res = xor <16 x i8> %arg0, %arg1 158 %res = xor <16 x i8> %arg0, %arg1
82 ret <16 x i8> %res 159 ret <16 x i8> %res
83 ; CHECK-LABEL: test_xor_v16i8 160 ; CHECK-LABEL: test_xor_v16i8
84 ; CHECK: pxor 161 ; CHECK: pxor
162 ; MIPS32-LABEL: test_xor_v16i8
163 ; MIPS32: xor
164 ; MIPS32: xor
165 ; MIPS32: xor
166 ; MIPS32: xor
167 ; MIPS32: xor
168 ; MIPS32: xor
169 ; MIPS32: xor
170 ; MIPS32: xor
171 ; MIPS32: xor
172 ; MIPS32: xor
173 ; MIPS32: xor
174 ; MIPS32: xor
175 ; MIPS32: xor
176 ; MIPS32: xor
177 ; MIPS32: xor
178 ; MIPS32: xor
85 } 179 }
86 180
87 define internal <16 x i8> @test_sub_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 181 define internal <16 x i8> @test_sub_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
88 entry: 182 entry:
89 %res = sub <16 x i8> %arg0, %arg1 183 %res = sub <16 x i8> %arg0, %arg1
90 ret <16 x i8> %res 184 ret <16 x i8> %res
91 ; CHECK-LABEL: test_sub_v16i8 185 ; CHECK-LABEL: test_sub_v16i8
92 ; CHECK: psubb 186 ; CHECK: psubb
187 ; MIPS32-LABEL: test_sub_v16i8
188 ; MIPS32: subu
189 ; MIPS32: subu
190 ; MIPS32: subu
191 ; MIPS32: subu
192 ; MIPS32: subu
193 ; MIPS32: subu
194 ; MIPS32: subu
195 ; MIPS32: subu
196 ; MIPS32: subu
197 ; MIPS32: subu
198 ; MIPS32: subu
199 ; MIPS32: subu
200 ; MIPS32: subu
201 ; MIPS32: subu
202 ; MIPS32: subu
203 ; MIPS32: subu
93 } 204 }
94 205
95 define internal <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 206 define internal <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
96 entry: 207 entry:
97 %res = mul <16 x i8> %arg0, %arg1 208 %res = mul <16 x i8> %arg0, %arg1
98 ret <16 x i8> %res 209 ret <16 x i8> %res
99 ; CHECK-LABEL: test_mul_v16i8 210 ; CHECK-LABEL: test_mul_v16i8
100 ; CHECK: imul 211 ; CHECK: imul
101 ; CHECK: imul 212 ; CHECK: imul
102 ; CHECK: imul 213 ; CHECK: imul
103 ; CHECK: imul 214 ; CHECK: imul
104 ; CHECK: imul 215 ; CHECK: imul
105 ; CHECK: imul 216 ; CHECK: imul
106 ; CHECK: imul 217 ; CHECK: imul
107 ; CHECK: imul 218 ; CHECK: imul
108 ; CHECK: imul 219 ; CHECK: imul
109 ; CHECK: imul 220 ; CHECK: imul
110 ; CHECK: imul 221 ; CHECK: imul
111 ; CHECK: imul 222 ; CHECK: imul
112 ; CHECK: imul 223 ; CHECK: imul
113 ; CHECK: imul 224 ; CHECK: imul
114 ; CHECK: imul 225 ; CHECK: imul
115 ; CHECK: imul 226 ; CHECK: imul
227 ; MIPS32-LABEL: test_mul_v16i8
228 ; MIPS32: mul
229 ; MIPS32: mul
230 ; MIPS32: mul
231 ; MIPS32: mul
232 ; MIPS32: mul
233 ; MIPS32: mul
234 ; MIPS32: mul
235 ; MIPS32: mul
236 ; MIPS32: mul
237 ; MIPS32: mul
238 ; MIPS32: mul
239 ; MIPS32: mul
240 ; MIPS32: mul
241 ; MIPS32: mul
242 ; MIPS32: mul
243 ; MIPS32: mul
116 } 244 }
117 245
118 define internal <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 246 define internal <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
119 entry: 247 entry:
120 %res = shl <16 x i8> %arg0, %arg1 248 %res = shl <16 x i8> %arg0, %arg1
121 ret <16 x i8> %res 249 ret <16 x i8> %res
122 ; CHECK-LABEL: test_shl_v16i8 250 ; CHECK-LABEL: test_shl_v16i8
123 ; CHECK: shl 251 ; CHECK: shl
124 ; CHECK: shl 252 ; CHECK: shl
125 ; CHECK: shl 253 ; CHECK: shl
126 ; CHECK: shl 254 ; CHECK: shl
127 ; CHECK: shl 255 ; CHECK: shl
128 ; CHECK: shl 256 ; CHECK: shl
129 ; CHECK: shl 257 ; CHECK: shl
130 ; CHECK: shl 258 ; CHECK: shl
131 ; CHECK: shl 259 ; CHECK: shl
132 ; CHECK: shl 260 ; CHECK: shl
133 ; CHECK: shl 261 ; CHECK: shl
134 ; CHECK: shl 262 ; CHECK: shl
135 ; CHECK: shl 263 ; CHECK: shl
136 ; CHECK: shl 264 ; CHECK: shl
137 ; CHECK: shl 265 ; CHECK: shl
138 ; CHECK: shl 266 ; CHECK: shl
267 ; MIPS32-LABEL: test_shl_v16i8
268 ; MIPS32: sllv
269 ; MIPS32: sllv
270 ; MIPS32: sllv
271 ; MIPS32: sllv
272 ; MIPS32: sllv
273 ; MIPS32: sllv
274 ; MIPS32: sllv
275 ; MIPS32: sllv
276 ; MIPS32: sllv
277 ; MIPS32: sllv
278 ; MIPS32: sllv
279 ; MIPS32: sllv
280 ; MIPS32: sllv
281 ; MIPS32: sllv
282 ; MIPS32: sllv
283 ; MIPS32: sllv
139 } 284 }
140 285
141 define internal <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 286 define internal <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
142 entry: 287 entry:
143 %res = lshr <16 x i8> %arg0, %arg1 288 %res = lshr <16 x i8> %arg0, %arg1
144 ret <16 x i8> %res 289 ret <16 x i8> %res
145 ; CHECK-LABEL: test_lshr_v16i8 290 ; CHECK-LABEL: test_lshr_v16i8
146 ; CHECK: shr 291 ; CHECK: shr
147 ; CHECK: shr 292 ; CHECK: shr
148 ; CHECK: shr 293 ; CHECK: shr
149 ; CHECK: shr 294 ; CHECK: shr
150 ; CHECK: shr 295 ; CHECK: shr
151 ; CHECK: shr 296 ; CHECK: shr
152 ; CHECK: shr 297 ; CHECK: shr
153 ; CHECK: shr 298 ; CHECK: shr
154 ; CHECK: shr 299 ; CHECK: shr
155 ; CHECK: shr 300 ; CHECK: shr
156 ; CHECK: shr 301 ; CHECK: shr
157 ; CHECK: shr 302 ; CHECK: shr
158 ; CHECK: shr 303 ; CHECK: shr
159 ; CHECK: shr 304 ; CHECK: shr
160 ; CHECK: shr 305 ; CHECK: shr
161 ; CHECK: shr 306 ; CHECK: shr
307 ; MIPS32-LABEL: test_lshr_v16i8
308 ; MIPS32: srlv
309 ; MIPS32: srlv
310 ; MIPS32: srlv
311 ; MIPS32: srlv
312 ; MIPS32: srlv
313 ; MIPS32: srlv
314 ; MIPS32: srlv
315 ; MIPS32: srlv
316 ; MIPS32: srlv
317 ; MIPS32: srlv
318 ; MIPS32: srlv
319 ; MIPS32: srlv
320 ; MIPS32: srlv
321 ; MIPS32: srlv
322 ; MIPS32: srlv
323 ; MIPS32: srlv
162 } 324 }
163 325
164 define internal <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 326 define internal <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
165 entry: 327 entry:
166 %res = ashr <16 x i8> %arg0, %arg1 328 %res = ashr <16 x i8> %arg0, %arg1
167 ret <16 x i8> %res 329 ret <16 x i8> %res
168 ; CHECK-LABEL: test_ashr_v16i8 330 ; CHECK-LABEL: test_ashr_v16i8
169 ; CHECK: sar 331 ; CHECK: sar
170 ; CHECK: sar 332 ; CHECK: sar
171 ; CHECK: sar 333 ; CHECK: sar
172 ; CHECK: sar 334 ; CHECK: sar
173 ; CHECK: sar 335 ; CHECK: sar
174 ; CHECK: sar 336 ; CHECK: sar
175 ; CHECK: sar 337 ; CHECK: sar
176 ; CHECK: sar 338 ; CHECK: sar
177 ; CHECK: sar 339 ; CHECK: sar
178 ; CHECK: sar 340 ; CHECK: sar
179 ; CHECK: sar 341 ; CHECK: sar
180 ; CHECK: sar 342 ; CHECK: sar
181 ; CHECK: sar 343 ; CHECK: sar
182 ; CHECK: sar 344 ; CHECK: sar
183 ; CHECK: sar 345 ; CHECK: sar
184 ; CHECK: sar 346 ; CHECK: sar
347 ; MIPS32-LABEL: test_ashr_v16i8
348 ; MIPS32: srav
349 ; MIPS32: srav
350 ; MIPS32: srav
351 ; MIPS32: srav
352 ; MIPS32: srav
353 ; MIPS32: srav
354 ; MIPS32: srav
355 ; MIPS32: srav
356 ; MIPS32: srav
357 ; MIPS32: srav
358 ; MIPS32: srav
359 ; MIPS32: srav
360 ; MIPS32: srav
361 ; MIPS32: srav
362 ; MIPS32: srav
363 ; MIPS32: srav
185 } 364 }
186 365
187 define internal <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 366 define internal <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
188 entry: 367 entry:
189 %res = udiv <16 x i8> %arg0, %arg1 368 %res = udiv <16 x i8> %arg0, %arg1
190 ret <16 x i8> %res 369 ret <16 x i8> %res
191 ; CHECK-LABEL: test_udiv_v16i8 370 ; CHECK-LABEL: test_udiv_v16i8
192 ; CHECK: div 371 ; CHECK: div
193 ; CHECK: div 372 ; CHECK: div
194 ; CHECK: div 373 ; CHECK: div
195 ; CHECK: div 374 ; CHECK: div
196 ; CHECK: div 375 ; CHECK: div
197 ; CHECK: div 376 ; CHECK: div
198 ; CHECK: div 377 ; CHECK: div
199 ; CHECK: div 378 ; CHECK: div
200 ; CHECK: div 379 ; CHECK: div
201 ; CHECK: div 380 ; CHECK: div
202 ; CHECK: div 381 ; CHECK: div
203 ; CHECK: div 382 ; CHECK: div
204 ; CHECK: div 383 ; CHECK: div
205 ; CHECK: div 384 ; CHECK: div
206 ; CHECK: div 385 ; CHECK: div
207 ; CHECK: div 386 ; CHECK: div
387 ; MIPS32-LABEL: test_udiv_v16i8
388 ; MIPS32: divu
389 ; MIPS32: divu
390 ; MIPS32: divu
391 ; MIPS32: divu
392 ; MIPS32: divu
393 ; MIPS32: divu
394 ; MIPS32: divu
395 ; MIPS32: divu
396 ; MIPS32: divu
397 ; MIPS32: divu
398 ; MIPS32: divu
399 ; MIPS32: divu
400 ; MIPS32: divu
401 ; MIPS32: divu
402 ; MIPS32: divu
403 ; MIPS32: divu
208 } 404 }
209 405
210 define internal <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 406 define internal <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
211 entry: 407 entry:
212 %res = sdiv <16 x i8> %arg0, %arg1 408 %res = sdiv <16 x i8> %arg0, %arg1
213 ret <16 x i8> %res 409 ret <16 x i8> %res
214 ; CHECK-LABEL: test_sdiv_v16i8 410 ; CHECK-LABEL: test_sdiv_v16i8
215 ; CHECK: idiv 411 ; CHECK: idiv
216 ; CHECK: idiv 412 ; CHECK: idiv
217 ; CHECK: idiv 413 ; CHECK: idiv
218 ; CHECK: idiv 414 ; CHECK: idiv
219 ; CHECK: idiv 415 ; CHECK: idiv
220 ; CHECK: idiv 416 ; CHECK: idiv
221 ; CHECK: idiv 417 ; CHECK: idiv
222 ; CHECK: idiv 418 ; CHECK: idiv
223 ; CHECK: idiv 419 ; CHECK: idiv
224 ; CHECK: idiv 420 ; CHECK: idiv
225 ; CHECK: idiv 421 ; CHECK: idiv
226 ; CHECK: idiv 422 ; CHECK: idiv
227 ; CHECK: idiv 423 ; CHECK: idiv
228 ; CHECK: idiv 424 ; CHECK: idiv
229 ; CHECK: idiv 425 ; CHECK: idiv
230 ; CHECK: idiv 426 ; CHECK: idiv
427 ; MIPS32-LABEL: test_sdiv_v16i8
428 ; MIPS32: div
429 ; MIPS32: div
430 ; MIPS32: div
431 ; MIPS32: div
432 ; MIPS32: div
433 ; MIPS32: div
434 ; MIPS32: div
435 ; MIPS32: div
436 ; MIPS32: div
437 ; MIPS32: div
438 ; MIPS32: div
439 ; MIPS32: div
440 ; MIPS32: div
441 ; MIPS32: div
442 ; MIPS32: div
443 ; MIPS32: div
231 } 444 }
232 445
233 define internal <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 446 define internal <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
234 entry: 447 entry:
235 %res = urem <16 x i8> %arg0, %arg1 448 %res = urem <16 x i8> %arg0, %arg1
236 ret <16 x i8> %res 449 ret <16 x i8> %res
237 ; CHECK-LABEL: test_urem_v16i8 450 ; CHECK-LABEL: test_urem_v16i8
238 ; CHECK: div 451 ; CHECK: div
239 ; CHECK: div 452 ; CHECK: div
240 ; CHECK: div 453 ; CHECK: div
241 ; CHECK: div 454 ; CHECK: div
242 ; CHECK: div 455 ; CHECK: div
243 ; CHECK: div 456 ; CHECK: div
244 ; CHECK: div 457 ; CHECK: div
245 ; CHECK: div 458 ; CHECK: div
246 ; CHECK: div 459 ; CHECK: div
247 ; CHECK: div 460 ; CHECK: div
248 ; CHECK: div 461 ; CHECK: div
249 ; CHECK: div 462 ; CHECK: div
250 ; CHECK: div 463 ; CHECK: div
251 ; CHECK: div 464 ; CHECK: div
252 ; CHECK: div 465 ; CHECK: div
253 ; CHECK: div 466 ; CHECK: div
467 ; MIPS32-LABEL: test_urem_v16i8
468 ; MIPS32: divu
469 ; MIPS32: divu
470 ; MIPS32: divu
471 ; MIPS32: divu
472 ; MIPS32: divu
473 ; MIPS32: divu
474 ; MIPS32: divu
475 ; MIPS32: divu
476 ; MIPS32: divu
477 ; MIPS32: divu
478 ; MIPS32: divu
479 ; MIPS32: divu
480 ; MIPS32: divu
481 ; MIPS32: divu
482 ; MIPS32: divu
483 ; MIPS32: divu
254 } 484 }
255 485
256 define internal <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { 486 define internal <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
257 entry: 487 entry:
258 %res = srem <16 x i8> %arg0, %arg1 488 %res = srem <16 x i8> %arg0, %arg1
259 ret <16 x i8> %res 489 ret <16 x i8> %res
260 ; CHECK-LABEL: test_srem_v16i8 490 ; CHECK-LABEL: test_srem_v16i8
261 ; CHECK: idiv 491 ; CHECK: idiv
262 ; CHECK: idiv 492 ; CHECK: idiv
263 ; CHECK: idiv 493 ; CHECK: idiv
264 ; CHECK: idiv 494 ; CHECK: idiv
265 ; CHECK: idiv 495 ; CHECK: idiv
266 ; CHECK: idiv 496 ; CHECK: idiv
267 ; CHECK: idiv 497 ; CHECK: idiv
268 ; CHECK: idiv 498 ; CHECK: idiv
269 ; CHECK: idiv 499 ; CHECK: idiv
270 ; CHECK: idiv 500 ; CHECK: idiv
271 ; CHECK: idiv 501 ; CHECK: idiv
272 ; CHECK: idiv 502 ; CHECK: idiv
273 ; CHECK: idiv 503 ; CHECK: idiv
274 ; CHECK: idiv 504 ; CHECK: idiv
275 ; CHECK: idiv 505 ; CHECK: idiv
276 ; CHECK: idiv 506 ; CHECK: idiv
507 ; MIPS32-LABEL: test_srem_v16i8
508 ; MIPS32: div
509 ; MIPS32: div
510 ; MIPS32: div
511 ; MIPS32: div
512 ; MIPS32: div
513 ; MIPS32: div
514 ; MIPS32: div
515 ; MIPS32: div
516 ; MIPS32: div
517 ; MIPS32: div
518 ; MIPS32: div
519 ; MIPS32: div
520 ; MIPS32: div
521 ; MIPS32: div
522 ; MIPS32: div
523 ; MIPS32: div
277 } 524 }
278 525
279 define internal <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 526 define internal <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
280 entry: 527 entry:
281 %res = add <8 x i16> %arg0, %arg1 528 %res = add <8 x i16> %arg0, %arg1
282 ret <8 x i16> %res 529 ret <8 x i16> %res
283 ; CHECK-LABEL: test_add_v8i16 530 ; CHECK-LABEL: test_add_v8i16
284 ; CHECK: paddw 531 ; CHECK: paddw
532 ; MIPS32-LABEL: test_add_v8i16
533 ; MIPS32: addu
534 ; MIPS32: addu
535 ; MIPS32: addu
536 ; MIPS32: addu
537 ; MIPS32: addu
538 ; MIPS32: addu
539 ; MIPS32: addu
540 ; MIPS32: addu
285 } 541 }
286 542
287 define internal <8 x i16> @test_and_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 543 define internal <8 x i16> @test_and_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
288 entry: 544 entry:
289 %res = and <8 x i16> %arg0, %arg1 545 %res = and <8 x i16> %arg0, %arg1
290 ret <8 x i16> %res 546 ret <8 x i16> %res
291 ; CHECK-LABEL: test_and_v8i16 547 ; CHECK-LABEL: test_and_v8i16
292 ; CHECK: pand 548 ; CHECK: pand
549 ; MIPS32-LABEL: test_and_v8i16
550 ; MIPS32: andi
551 ; MIPS32: andi
552 ; MIPS32: andi
553 ; MIPS32: andi
554 ; MIPS32: andi
555 ; MIPS32: andi
556 ; MIPS32: andi
557 ; MIPS32: andi
293 } 558 }
294 559
295 define internal <8 x i16> @test_or_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 560 define internal <8 x i16> @test_or_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
296 entry: 561 entry:
297 %res = or <8 x i16> %arg0, %arg1 562 %res = or <8 x i16> %arg0, %arg1
298 ret <8 x i16> %res 563 ret <8 x i16> %res
299 ; CHECK-LABEL: test_or_v8i16 564 ; CHECK-LABEL: test_or_v8i16
300 ; CHECK: por 565 ; CHECK: por
566 ; MIPS32-LABEL: test_or_v8i16
567 ; MIPS32: or
568 ; MIPS32: or
569 ; MIPS32: or
570 ; MIPS32: or
571 ; MIPS32: or
572 ; MIPS32: or
573 ; MIPS32: or
574 ; MIPS32: or
301 } 575 }
302 576
303 define internal <8 x i16> @test_xor_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 577 define internal <8 x i16> @test_xor_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
304 entry: 578 entry:
305 %res = xor <8 x i16> %arg0, %arg1 579 %res = xor <8 x i16> %arg0, %arg1
306 ret <8 x i16> %res 580 ret <8 x i16> %res
307 ; CHECK-LABEL: test_xor_v8i16 581 ; CHECK-LABEL: test_xor_v8i16
308 ; CHECK: pxor 582 ; CHECK: pxor
583 ; MIPS32-LABEL: test_xor_v8i16
584 ; MIPS32: xor
585 ; MIPS32: xor
586 ; MIPS32: xor
587 ; MIPS32: xor
588 ; MIPS32: xor
589 ; MIPS32: xor
590 ; MIPS32: xor
591 ; MIPS32: xor
309 } 592 }
310 593
311 define internal <8 x i16> @test_sub_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 594 define internal <8 x i16> @test_sub_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
312 entry: 595 entry:
313 %res = sub <8 x i16> %arg0, %arg1 596 %res = sub <8 x i16> %arg0, %arg1
314 ret <8 x i16> %res 597 ret <8 x i16> %res
315 ; CHECK-LABEL: test_sub_v8i16 598 ; CHECK-LABEL: test_sub_v8i16
316 ; CHECK: psubw 599 ; CHECK: psubw
600 ; MIPS32-LABEL: test_sub_v8i16
601 ; MIPS32: subu
602 ; MIPS32: subu
603 ; MIPS32: subu
604 ; MIPS32: subu
605 ; MIPS32: subu
606 ; MIPS32: subu
607 ; MIPS32: subu
608 ; MIPS32: subu
317 } 609 }
318 610
319 define internal <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 611 define internal <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
320 entry: 612 entry:
321 %res = mul <8 x i16> %arg0, %arg1 613 %res = mul <8 x i16> %arg0, %arg1
322 ret <8 x i16> %res 614 ret <8 x i16> %res
323 ; CHECK-LABEL: test_mul_v8i16 615 ; CHECK-LABEL: test_mul_v8i16
324 ; CHECK: pmullw 616 ; CHECK: pmullw
617 ; MIPS32-LABEL: test_mul_v8i16
618 ; MIPS32: mul
619 ; MIPS32: mul
620 ; MIPS32: mul
621 ; MIPS32: mul
622 ; MIPS32: mul
623 ; MIPS32: mul
624 ; MIPS32: mul
625 ; MIPS32: mul
325 } 626 }
326 627
327 define internal <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 628 define internal <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
328 entry: 629 entry:
329 %res = shl <8 x i16> %arg0, %arg1 630 %res = shl <8 x i16> %arg0, %arg1
330 ret <8 x i16> %res 631 ret <8 x i16> %res
331 ; CHECK-LABEL: test_shl_v8i16 632 ; CHECK-LABEL: test_shl_v8i16
332 ; CHECK: shl 633 ; CHECK: shl
333 ; CHECK: shl 634 ; CHECK: shl
334 ; CHECK: shl 635 ; CHECK: shl
335 ; CHECK: shl 636 ; CHECK: shl
336 ; CHECK: shl 637 ; CHECK: shl
337 ; CHECK: shl 638 ; CHECK: shl
338 ; CHECK: shl 639 ; CHECK: shl
339 ; CHECK: shl 640 ; CHECK: shl
641 ; MIPS32-LABEL: test_shl_v8i16
642 ; MIPS32: sllv
643 ; MIPS32: sllv
644 ; MIPS32: sllv
645 ; MIPS32: sllv
646 ; MIPS32: sllv
647 ; MIPS32: sllv
648 ; MIPS32: sllv
649 ; MIPS32: sllv
340 } 650 }
341 651
342 define internal <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 652 define internal <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
343 entry: 653 entry:
344 %res = lshr <8 x i16> %arg0, %arg1 654 %res = lshr <8 x i16> %arg0, %arg1
345 ret <8 x i16> %res 655 ret <8 x i16> %res
346 ; CHECK-LABEL: test_lshr_v8i16 656 ; CHECK-LABEL: test_lshr_v8i16
347 ; CHECK: shr 657 ; CHECK: shr
348 ; CHECK: shr 658 ; CHECK: shr
349 ; CHECK: shr 659 ; CHECK: shr
350 ; CHECK: shr 660 ; CHECK: shr
351 ; CHECK: shr 661 ; CHECK: shr
352 ; CHECK: shr 662 ; CHECK: shr
353 ; CHECK: shr 663 ; CHECK: shr
354 ; CHECK: shr 664 ; CHECK: shr
665 ; MIPS32-LABEL: test_lshr_v8i16
666 ; MIPS32: srlv
667 ; MIPS32: srlv
668 ; MIPS32: srlv
669 ; MIPS32: srlv
670 ; MIPS32: srlv
671 ; MIPS32: srlv
672 ; MIPS32: srlv
673 ; MIPS32: srlv
355 } 674 }
356 675
357 define internal <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 676 define internal <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
358 entry: 677 entry:
359 %res = ashr <8 x i16> %arg0, %arg1 678 %res = ashr <8 x i16> %arg0, %arg1
360 ret <8 x i16> %res 679 ret <8 x i16> %res
361 ; CHECK-LABEL: test_ashr_v8i16 680 ; CHECK-LABEL: test_ashr_v8i16
362 ; CHECK: sar 681 ; CHECK: sar
363 ; CHECK: sar 682 ; CHECK: sar
364 ; CHECK: sar 683 ; CHECK: sar
365 ; CHECK: sar 684 ; CHECK: sar
366 ; CHECK: sar 685 ; CHECK: sar
367 ; CHECK: sar 686 ; CHECK: sar
368 ; CHECK: sar 687 ; CHECK: sar
369 ; CHECK: sar 688 ; CHECK: sar
689 ; MIPS32-LABEL: test_ashr_v8i16
690 ; MIPS32: srav
691 ; MIPS32: srav
692 ; MIPS32: srav
693 ; MIPS32: srav
694 ; MIPS32: srav
695 ; MIPS32: srav
696 ; MIPS32: srav
697 ; MIPS32: srav
370 } 698 }
371 699
372 define internal <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 700 define internal <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
373 entry: 701 entry:
374 %res = udiv <8 x i16> %arg0, %arg1 702 %res = udiv <8 x i16> %arg0, %arg1
375 ret <8 x i16> %res 703 ret <8 x i16> %res
376 ; CHECK-LABEL: test_udiv_v8i16 704 ; CHECK-LABEL: test_udiv_v8i16
377 ; CHECK: div 705 ; CHECK: div
378 ; CHECK: div 706 ; CHECK: div
379 ; CHECK: div 707 ; CHECK: div
380 ; CHECK: div 708 ; CHECK: div
381 ; CHECK: div 709 ; CHECK: div
382 ; CHECK: div 710 ; CHECK: div
383 ; CHECK: div 711 ; CHECK: div
384 ; CHECK: div 712 ; CHECK: div
713 ; MIPS32-LABEL: test_udiv_v8i16
714 ; MIPS32: divu
715 ; MIPS32: divu
716 ; MIPS32: divu
717 ; MIPS32: divu
718 ; MIPS32: divu
719 ; MIPS32: divu
720 ; MIPS32: divu
721 ; MIPS32: divu
385 } 722 }
386 723
387 define internal <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 724 define internal <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
388 entry: 725 entry:
389 %res = sdiv <8 x i16> %arg0, %arg1 726 %res = sdiv <8 x i16> %arg0, %arg1
390 ret <8 x i16> %res 727 ret <8 x i16> %res
391 ; CHECK-LABEL: test_sdiv_v8i16 728 ; CHECK-LABEL: test_sdiv_v8i16
392 ; CHECK: idiv 729 ; CHECK: idiv
393 ; CHECK: idiv 730 ; CHECK: idiv
394 ; CHECK: idiv 731 ; CHECK: idiv
395 ; CHECK: idiv 732 ; CHECK: idiv
396 ; CHECK: idiv 733 ; CHECK: idiv
397 ; CHECK: idiv 734 ; CHECK: idiv
398 ; CHECK: idiv 735 ; CHECK: idiv
399 ; CHECK: idiv 736 ; CHECK: idiv
737 ; MIPS32-LABEL: test_sdiv_v8i16
738 ; MIPS32: div
739 ; MIPS32: div
740 ; MIPS32: div
741 ; MIPS32: div
742 ; MIPS32: div
743 ; MIPS32: div
744 ; MIPS32: div
745 ; MIPS32: div
400 } 746 }
401 747
402 define internal <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 748 define internal <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
403 entry: 749 entry:
404 %res = urem <8 x i16> %arg0, %arg1 750 %res = urem <8 x i16> %arg0, %arg1
405 ret <8 x i16> %res 751 ret <8 x i16> %res
406 ; CHECK-LABEL: test_urem_v8i16 752 ; CHECK-LABEL: test_urem_v8i16
407 ; CHECK: div 753 ; CHECK: div
408 ; CHECK: div 754 ; CHECK: div
409 ; CHECK: div 755 ; CHECK: div
410 ; CHECK: div 756 ; CHECK: div
411 ; CHECK: div 757 ; CHECK: div
412 ; CHECK: div 758 ; CHECK: div
413 ; CHECK: div 759 ; CHECK: div
414 ; CHECK: div 760 ; CHECK: div
761 ; MIPS32-LABEL: test_urem_v8i16
762 ; MIPS32: divu
763 ; MIPS32: divu
764 ; MIPS32: divu
765 ; MIPS32: divu
766 ; MIPS32: divu
767 ; MIPS32: divu
768 ; MIPS32: divu
769 ; MIPS32: divu
415 } 770 }
416 771
417 define internal <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 772 define internal <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
418 entry: 773 entry:
419 %res = srem <8 x i16> %arg0, %arg1 774 %res = srem <8 x i16> %arg0, %arg1
420 ret <8 x i16> %res 775 ret <8 x i16> %res
421 ; CHECK-LABEL: test_srem_v8i16 776 ; CHECK-LABEL: test_srem_v8i16
422 ; CHECK: idiv 777 ; CHECK: idiv
423 ; CHECK: idiv 778 ; CHECK: idiv
424 ; CHECK: idiv 779 ; CHECK: idiv
425 ; CHECK: idiv 780 ; CHECK: idiv
426 ; CHECK: idiv 781 ; CHECK: idiv
427 ; CHECK: idiv 782 ; CHECK: idiv
428 ; CHECK: idiv 783 ; CHECK: idiv
429 ; CHECK: idiv 784 ; CHECK: idiv
785 ; MIPS32-LABEL: test_srem_v8i16
786 ; MIPS32: div
787 ; MIPS32: div
788 ; MIPS32: div
789 ; MIPS32: div
790 ; MIPS32: div
791 ; MIPS32: div
792 ; MIPS32: div
793 ; MIPS32: div
430 } 794 }
431 795
432 define internal <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 796 define internal <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
433 entry: 797 entry:
434 %res = add <4 x i32> %arg0, %arg1 798 %res = add <4 x i32> %arg0, %arg1
435 ret <4 x i32> %res 799 ret <4 x i32> %res
436 ; CHECK-LABEL: test_add_v4i32 800 ; CHECK-LABEL: test_add_v4i32
437 ; CHECK: paddd 801 ; CHECK: paddd
802 ; MIPS32-LABEL: test_add_v4i32
803 ; MIPS32: addu
804 ; MIPS32: addu
805 ; MIPS32: addu
806 ; MIPS32: addu
438 } 807 }
439 808
440 define internal <4 x i32> @test_and_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 809 define internal <4 x i32> @test_and_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
441 entry: 810 entry:
442 %res = and <4 x i32> %arg0, %arg1 811 %res = and <4 x i32> %arg0, %arg1
443 ret <4 x i32> %res 812 ret <4 x i32> %res
444 ; CHECK-LABEL: test_and_v4i32 813 ; CHECK-LABEL: test_and_v4i32
445 ; CHECK: pand 814 ; CHECK: pand
815 ; MIPS32-LABEL: test_and_v4i32
816 ; MIPS32: and
817 ; MIPS32: and
818 ; MIPS32: and
819 ; MIPS32: and
446 } 820 }
447 821
448 define internal <4 x i32> @test_or_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 822 define internal <4 x i32> @test_or_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
449 entry: 823 entry:
450 %res = or <4 x i32> %arg0, %arg1 824 %res = or <4 x i32> %arg0, %arg1
451 ret <4 x i32> %res 825 ret <4 x i32> %res
452 ; CHECK-LABEL: test_or_v4i32 826 ; CHECK-LABEL: test_or_v4i32
453 ; CHECK: por 827 ; CHECK: por
828 ; MIPS32-LABEL: test_or_v4i32
829 ; MIPS32: or
830 ; MIPS32: or
831 ; MIPS32: or
832 ; MIPS32: or
454 } 833 }
455 834
456 define internal <4 x i32> @test_xor_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 835 define internal <4 x i32> @test_xor_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
457 entry: 836 entry:
458 %res = xor <4 x i32> %arg0, %arg1 837 %res = xor <4 x i32> %arg0, %arg1
459 ret <4 x i32> %res 838 ret <4 x i32> %res
460 ; CHECK-LABEL: test_xor_v4i32 839 ; CHECK-LABEL: test_xor_v4i32
461 ; CHECK: pxor 840 ; CHECK: pxor
841 ; MIPS32-LABEL: test_xor_v4i32
842 ; MIPS32: xor
843 ; MIPS32: xor
844 ; MIPS32: xor
845 ; MIPS32: xor
462 } 846 }
463 847
464 define internal <4 x i32> @test_sub_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 848 define internal <4 x i32> @test_sub_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
465 entry: 849 entry:
466 %res = sub <4 x i32> %arg0, %arg1 850 %res = sub <4 x i32> %arg0, %arg1
467 ret <4 x i32> %res 851 ret <4 x i32> %res
468 ; CHECK-LABEL: test_sub_v4i32 852 ; CHECK-LABEL: test_sub_v4i32
469 ; CHECK: psubd 853 ; CHECK: psubd
854 ; MIPS32-LABEL: test_sub_v4i32
855 ; MIPS32: subu
856 ; MIPS32: subu
857 ; MIPS32: subu
858 ; MIPS32: subu
470 } 859 }
471 860
472 define internal <4 x i32> @test_mul_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 861 define internal <4 x i32> @test_mul_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
473 entry: 862 entry:
474 %res = mul <4 x i32> %arg0, %arg1 863 %res = mul <4 x i32> %arg0, %arg1
475 ret <4 x i32> %res 864 ret <4 x i32> %res
476 ; CHECK-LABEL: test_mul_v4i32 865 ; CHECK-LABEL: test_mul_v4i32
477 ; CHECK: pmuludq 866 ; CHECK: pmuludq
478 ; CHECK: pmuludq 867 ; CHECK: pmuludq
479 ; 868 ;
480 ; SSE41-LABEL: test_mul_v4i32 869 ; SSE41-LABEL: test_mul_v4i32
481 ; SSE41: pmulld 870 ; SSE41: pmulld
871 ; MIPS32-LABEL: test_mul_v4i32
872 ; MIPS32: mul
873 ; MIPS32: mul
874 ; MIPS32: mul
875 ; MIPS32: mul
482 } 876 }
483 877
484 define internal <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 878 define internal <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
485 entry: 879 entry:
486 %res = shl <4 x i32> %arg0, %arg1 880 %res = shl <4 x i32> %arg0, %arg1
487 ret <4 x i32> %res 881 ret <4 x i32> %res
488 ; CHECK-LABEL: test_shl_v4i32 882 ; CHECK-LABEL: test_shl_v4i32
489 ; CHECK: shl 883 ; CHECK: shl
490 ; CHECK: shl 884 ; CHECK: shl
491 ; CHECK: shl 885 ; CHECK: shl
492 ; CHECK: shl 886 ; CHECK: shl
493 887
494 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above. 888 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above.
495 ; SSE41-LABEL: test_shl_v4i32 889 ; SSE41-LABEL: test_shl_v4i32
890 ; MIPS32-LABEL: test_shl_v4i32
891 ; MIPS32: sllv
892 ; MIPS32: sllv
893 ; MIPS32: sllv
894 ; MIPS32: sllv
496 } 895 }
497 896
498 define internal <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 897 define internal <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
499 entry: 898 entry:
500 %res = lshr <4 x i32> %arg0, %arg1 899 %res = lshr <4 x i32> %arg0, %arg1
501 ret <4 x i32> %res 900 ret <4 x i32> %res
502 ; CHECK-LABEL: test_lshr_v4i32 901 ; CHECK-LABEL: test_lshr_v4i32
503 ; CHECK: shr 902 ; CHECK: shr
504 ; CHECK: shr 903 ; CHECK: shr
505 ; CHECK: shr 904 ; CHECK: shr
506 ; CHECK: shr 905 ; CHECK: shr
906 ; MIPS32-LABEL: test_lshr_v4i32
907 ; MIPS32: srlv
908 ; MIPS32: srlv
909 ; MIPS32: srlv
910 ; MIPS32: srlv
507 } 911 }
508 912
509 define internal <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 913 define internal <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
510 entry: 914 entry:
511 %res = ashr <4 x i32> %arg0, %arg1 915 %res = ashr <4 x i32> %arg0, %arg1
512 ret <4 x i32> %res 916 ret <4 x i32> %res
513 ; CHECK-LABEL: test_ashr_v4i32 917 ; CHECK-LABEL: test_ashr_v4i32
514 ; CHECK: sar 918 ; CHECK: sar
515 ; CHECK: sar 919 ; CHECK: sar
516 ; CHECK: sar 920 ; CHECK: sar
517 ; CHECK: sar 921 ; CHECK: sar
922 ; MIPS32-LABEL: test_ashr_v4i32
923 ; MIPS32: srav
924 ; MIPS32: srav
925 ; MIPS32: srav
926 ; MIPS32: srav
518 } 927 }
519 928
520 define internal <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 929 define internal <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
521 entry: 930 entry:
522 %res = udiv <4 x i32> %arg0, %arg1 931 %res = udiv <4 x i32> %arg0, %arg1
523 ret <4 x i32> %res 932 ret <4 x i32> %res
524 ; CHECK-LABEL: test_udiv_v4i32 933 ; CHECK-LABEL: test_udiv_v4i32
525 ; CHECK: div 934 ; CHECK: div
526 ; CHECK: div 935 ; CHECK: div
527 ; CHECK: div 936 ; CHECK: div
528 ; CHECK: div 937 ; CHECK: div
938 ; MIPS32-LABEL: test_udiv_v4i32
939 ; MIPS32: divu
940 ; MIPS32: divu
941 ; MIPS32: divu
942 ; MIPS32: divu
529 } 943 }
530 944
531 define internal <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 945 define internal <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
532 entry: 946 entry:
533 %res = sdiv <4 x i32> %arg0, %arg1 947 %res = sdiv <4 x i32> %arg0, %arg1
534 ret <4 x i32> %res 948 ret <4 x i32> %res
535 ; CHECK-LABEL: test_sdiv_v4i32 949 ; CHECK-LABEL: test_sdiv_v4i32
536 ; CHECK: idiv 950 ; CHECK: idiv
537 ; CHECK: idiv 951 ; CHECK: idiv
538 ; CHECK: idiv 952 ; CHECK: idiv
539 ; CHECK: idiv 953 ; CHECK: idiv
954 ; MIPS32-LABEL: test_sdiv_v4i32
955 ; MIPS32: div
956 ; MIPS32: div
957 ; MIPS32: div
958 ; MIPS32: div
540 } 959 }
541 960
542 define internal <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 961 define internal <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
543 entry: 962 entry:
544 %res = urem <4 x i32> %arg0, %arg1 963 %res = urem <4 x i32> %arg0, %arg1
545 ret <4 x i32> %res 964 ret <4 x i32> %res
546 ; CHECK-LABEL: test_urem_v4i32 965 ; CHECK-LABEL: test_urem_v4i32
547 ; CHECK: div 966 ; CHECK: div
548 ; CHECK: div 967 ; CHECK: div
549 ; CHECK: div 968 ; CHECK: div
550 ; CHECK: div 969 ; CHECK: div
970 ; MIPS32-LABEL: test_urem_v4i32
971 ; MIPS32: divu
972 ; MIPS32: divu
973 ; MIPS32: divu
974 ; MIPS32: divu
551 } 975 }
552 976
553 define internal <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { 977 define internal <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
554 entry: 978 entry:
555 %res = srem <4 x i32> %arg0, %arg1 979 %res = srem <4 x i32> %arg0, %arg1
556 ret <4 x i32> %res 980 ret <4 x i32> %res
557 ; CHECK-LABEL: test_srem_v4i32 981 ; CHECK-LABEL: test_srem_v4i32
558 ; CHECK: idiv 982 ; CHECK: idiv
559 ; CHECK: idiv 983 ; CHECK: idiv
560 ; CHECK: idiv 984 ; CHECK: idiv
561 ; CHECK: idiv 985 ; CHECK: idiv
986 ; MIPS32-LABEL: test_srem_v4i32
987 ; MIPS32: div
988 ; MIPS32: div
989 ; MIPS32: div
990 ; MIPS32: div
562 } 991 }
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/vector-arg.ll ('k') | tests_lit/llvm2ice_tests/vector-cast.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698