OLD | NEW |
1 ; This test checks support for vector arithmetic. | 1 ; This test checks support for vector arithmetic. |
2 | 2 |
3 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s | 3 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s |
4 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s | 4 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s |
5 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \ | 5 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \ |
6 ; RUN: | FileCheck %s --check-prefix=SSE41 | 6 ; RUN: | FileCheck %s --check-prefix=SSE41 |
7 ; RUN: %llvm2ice -Om1 -mattr=sse4.1 --verbose none %s \ | 7 ; RUN: %llvm2ice -Om1 -mattr=sse4.1 --verbose none %s \ |
8 ; RUN: | FileCheck %s --check-prefix=SSE41 | 8 ; RUN: | FileCheck %s --check-prefix=SSE41 |
9 ; RUN: %llvm2ice -O2 --verbose none %s \ | 9 ; RUN: %llvm2ice -O2 --verbose none %s \ |
10 ; RUN: | llvm-mc -arch=x86 -x86-asm-syntax=intel -filetype=obj | 10 ; RUN: | llvm-mc -arch=x86 -x86-asm-syntax=intel -filetype=obj |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 ret <4 x float> %res | 49 ret <4 x float> %res |
50 ; CHECK-LABEL: test_fdiv: | 50 ; CHECK-LABEL: test_fdiv: |
51 ; CHECK: divps | 51 ; CHECK: divps |
52 } | 52 } |
53 | 53 |
54 define <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) { | 54 define <4 x float> @test_frem(<4 x float> %arg0, <4 x float> %arg1) { |
55 entry: | 55 entry: |
56 %res = frem <4 x float> %arg0, %arg1 | 56 %res = frem <4 x float> %arg0, %arg1 |
57 ret <4 x float> %res | 57 ret <4 x float> %res |
58 ; CHECK-LABEL: test_frem: | 58 ; CHECK-LABEL: test_frem: |
59 ; CHECK: Sz_frem_v4f32 | 59 ; CHECK: fmodf |
| 60 ; CHECK: fmodf |
| 61 ; CHECK: fmodf |
| 62 ; CHECK: fmodf |
60 } | 63 } |
61 | 64 |
62 define <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 65 define <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
63 entry: | 66 entry: |
64 %res = add <16 x i8> %arg0, %arg1 | 67 %res = add <16 x i8> %arg0, %arg1 |
65 ret <16 x i8> %res | 68 ret <16 x i8> %res |
66 ; CHECK-LABEL: test_add_v16i8: | 69 ; CHECK-LABEL: test_add_v16i8: |
67 ; CHECK: paddb | 70 ; CHECK: paddb |
68 } | 71 } |
69 | 72 |
(...skipping 27 matching lines...) Expand all Loading... |
97 ret <16 x i8> %res | 100 ret <16 x i8> %res |
98 ; CHECK-LABEL: test_sub_v16i8: | 101 ; CHECK-LABEL: test_sub_v16i8: |
99 ; CHECK: psubb | 102 ; CHECK: psubb |
100 } | 103 } |
101 | 104 |
102 define <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 105 define <16 x i8> @test_mul_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
103 entry: | 106 entry: |
104 %res = mul <16 x i8> %arg0, %arg1 | 107 %res = mul <16 x i8> %arg0, %arg1 |
105 ret <16 x i8> %res | 108 ret <16 x i8> %res |
106 ; CHECK-LABEL: test_mul_v16i8: | 109 ; CHECK-LABEL: test_mul_v16i8: |
107 ; CHECK: Sz_mul_v16i8 | 110 ; CHECK: imul |
| 111 ; CHECK: imul |
| 112 ; CHECK: imul |
| 113 ; CHECK: imul |
| 114 ; CHECK: imul |
| 115 ; CHECK: imul |
| 116 ; CHECK: imul |
| 117 ; CHECK: imul |
| 118 ; CHECK: imul |
| 119 ; CHECK: imul |
| 120 ; CHECK: imul |
| 121 ; CHECK: imul |
| 122 ; CHECK: imul |
| 123 ; CHECK: imul |
| 124 ; CHECK: imul |
| 125 ; CHECK: imul |
108 } | 126 } |
109 | 127 |
110 define <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 128 define <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
111 entry: | 129 entry: |
112 %res = shl <16 x i8> %arg0, %arg1 | 130 %res = shl <16 x i8> %arg0, %arg1 |
113 ret <16 x i8> %res | 131 ret <16 x i8> %res |
114 ; CHECK-LABEL: test_shl_v16i8: | 132 ; CHECK-LABEL: test_shl_v16i8: |
115 ; CHECK: Sz_shl_v16i8 | 133 ; CHECK: shl |
| 134 ; CHECK: shl |
| 135 ; CHECK: shl |
| 136 ; CHECK: shl |
| 137 ; CHECK: shl |
| 138 ; CHECK: shl |
| 139 ; CHECK: shl |
| 140 ; CHECK: shl |
| 141 ; CHECK: shl |
| 142 ; CHECK: shl |
| 143 ; CHECK: shl |
| 144 ; CHECK: shl |
| 145 ; CHECK: shl |
| 146 ; CHECK: shl |
| 147 ; CHECK: shl |
| 148 ; CHECK: shl |
116 } | 149 } |
117 | 150 |
118 define <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 151 define <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
119 entry: | 152 entry: |
120 %res = lshr <16 x i8> %arg0, %arg1 | 153 %res = lshr <16 x i8> %arg0, %arg1 |
121 ret <16 x i8> %res | 154 ret <16 x i8> %res |
122 ; CHECK-LABEL: test_lshr_v16i8: | 155 ; CHECK-LABEL: test_lshr_v16i8: |
123 ; CHECK: Sz_lshr_v16i8 | 156 ; CHECK: shr |
| 157 ; CHECK: shr |
| 158 ; CHECK: shr |
| 159 ; CHECK: shr |
| 160 ; CHECK: shr |
| 161 ; CHECK: shr |
| 162 ; CHECK: shr |
| 163 ; CHECK: shr |
| 164 ; CHECK: shr |
| 165 ; CHECK: shr |
| 166 ; CHECK: shr |
| 167 ; CHECK: shr |
| 168 ; CHECK: shr |
| 169 ; CHECK: shr |
| 170 ; CHECK: shr |
| 171 ; CHECK: shr |
124 } | 172 } |
125 | 173 |
126 define <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 174 define <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
127 entry: | 175 entry: |
128 %res = ashr <16 x i8> %arg0, %arg1 | 176 %res = ashr <16 x i8> %arg0, %arg1 |
129 ret <16 x i8> %res | 177 ret <16 x i8> %res |
130 ; CHECK-LABEL: test_ashr_v16i8: | 178 ; CHECK-LABEL: test_ashr_v16i8: |
131 ; CHECK: Sz_ashr_v16i8 | 179 ; CHECK: sar |
| 180 ; CHECK: sar |
| 181 ; CHECK: sar |
| 182 ; CHECK: sar |
| 183 ; CHECK: sar |
| 184 ; CHECK: sar |
| 185 ; CHECK: sar |
| 186 ; CHECK: sar |
| 187 ; CHECK: sar |
| 188 ; CHECK: sar |
| 189 ; CHECK: sar |
| 190 ; CHECK: sar |
| 191 ; CHECK: sar |
| 192 ; CHECK: sar |
| 193 ; CHECK: sar |
| 194 ; CHECK: sar |
132 } | 195 } |
133 | 196 |
134 define <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 197 define <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
135 entry: | 198 entry: |
136 %res = udiv <16 x i8> %arg0, %arg1 | 199 %res = udiv <16 x i8> %arg0, %arg1 |
137 ret <16 x i8> %res | 200 ret <16 x i8> %res |
138 ; CHECK-LABEL: test_udiv_v16i8: | 201 ; CHECK-LABEL: test_udiv_v16i8: |
139 ; CHECK: Sz_udiv_v16i8 | 202 ; CHECK: div |
| 203 ; CHECK: div |
| 204 ; CHECK: div |
| 205 ; CHECK: div |
| 206 ; CHECK: div |
| 207 ; CHECK: div |
| 208 ; CHECK: div |
| 209 ; CHECK: div |
| 210 ; CHECK: div |
| 211 ; CHECK: div |
| 212 ; CHECK: div |
| 213 ; CHECK: div |
| 214 ; CHECK: div |
| 215 ; CHECK: div |
| 216 ; CHECK: div |
| 217 ; CHECK: div |
140 } | 218 } |
141 | 219 |
142 define <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 220 define <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
143 entry: | 221 entry: |
144 %res = sdiv <16 x i8> %arg0, %arg1 | 222 %res = sdiv <16 x i8> %arg0, %arg1 |
145 ret <16 x i8> %res | 223 ret <16 x i8> %res |
146 ; CHECK-LABEL: test_sdiv_v16i8: | 224 ; CHECK-LABEL: test_sdiv_v16i8: |
147 ; CHECK: Sz_sdiv_v16i8 | 225 ; CHECK: idiv |
| 226 ; CHECK: idiv |
| 227 ; CHECK: idiv |
| 228 ; CHECK: idiv |
| 229 ; CHECK: idiv |
| 230 ; CHECK: idiv |
| 231 ; CHECK: idiv |
| 232 ; CHECK: idiv |
| 233 ; CHECK: idiv |
| 234 ; CHECK: idiv |
| 235 ; CHECK: idiv |
| 236 ; CHECK: idiv |
| 237 ; CHECK: idiv |
| 238 ; CHECK: idiv |
| 239 ; CHECK: idiv |
| 240 ; CHECK: idiv |
148 } | 241 } |
149 | 242 |
150 define <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 243 define <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
151 entry: | 244 entry: |
152 %res = urem <16 x i8> %arg0, %arg1 | 245 %res = urem <16 x i8> %arg0, %arg1 |
153 ret <16 x i8> %res | 246 ret <16 x i8> %res |
154 ; CHECK-LABEL: test_urem_v16i8: | 247 ; CHECK-LABEL: test_urem_v16i8: |
155 ; CHECK: Sz_urem_v16i8 | 248 ; CHECK: div |
| 249 ; CHECK: div |
| 250 ; CHECK: div |
| 251 ; CHECK: div |
| 252 ; CHECK: div |
| 253 ; CHECK: div |
| 254 ; CHECK: div |
| 255 ; CHECK: div |
| 256 ; CHECK: div |
| 257 ; CHECK: div |
| 258 ; CHECK: div |
| 259 ; CHECK: div |
| 260 ; CHECK: div |
| 261 ; CHECK: div |
| 262 ; CHECK: div |
| 263 ; CHECK: div |
156 } | 264 } |
157 | 265 |
158 define <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { | 266 define <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) { |
159 entry: | 267 entry: |
160 %res = srem <16 x i8> %arg0, %arg1 | 268 %res = srem <16 x i8> %arg0, %arg1 |
161 ret <16 x i8> %res | 269 ret <16 x i8> %res |
162 ; CHECK-LABEL: test_srem_v16i8: | 270 ; CHECK-LABEL: test_srem_v16i8: |
163 ; CHECK: Sz_srem_v16i8 | 271 ; CHECK: idiv |
| 272 ; CHECK: idiv |
| 273 ; CHECK: idiv |
| 274 ; CHECK: idiv |
| 275 ; CHECK: idiv |
| 276 ; CHECK: idiv |
| 277 ; CHECK: idiv |
| 278 ; CHECK: idiv |
| 279 ; CHECK: idiv |
| 280 ; CHECK: idiv |
| 281 ; CHECK: idiv |
| 282 ; CHECK: idiv |
| 283 ; CHECK: idiv |
| 284 ; CHECK: idiv |
| 285 ; CHECK: idiv |
| 286 ; CHECK: idiv |
164 } | 287 } |
165 | 288 |
166 define <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 289 define <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
167 entry: | 290 entry: |
168 %res = add <8 x i16> %arg0, %arg1 | 291 %res = add <8 x i16> %arg0, %arg1 |
169 ret <8 x i16> %res | 292 ret <8 x i16> %res |
170 ; CHECK-LABEL: test_add_v8i16: | 293 ; CHECK-LABEL: test_add_v8i16: |
171 ; CHECK: paddw | 294 ; CHECK: paddw |
172 } | 295 } |
173 | 296 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 ret <8 x i16> %res | 332 ret <8 x i16> %res |
210 ; CHECK-LABEL: test_mul_v8i16: | 333 ; CHECK-LABEL: test_mul_v8i16: |
211 ; CHECK: pmullw | 334 ; CHECK: pmullw |
212 } | 335 } |
213 | 336 |
214 define <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 337 define <8 x i16> @test_shl_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
215 entry: | 338 entry: |
216 %res = shl <8 x i16> %arg0, %arg1 | 339 %res = shl <8 x i16> %arg0, %arg1 |
217 ret <8 x i16> %res | 340 ret <8 x i16> %res |
218 ; CHECK-LABEL: test_shl_v8i16: | 341 ; CHECK-LABEL: test_shl_v8i16: |
219 ; CHECK: Sz_shl_v8i16 | 342 ; CHECK: shl |
| 343 ; CHECK: shl |
| 344 ; CHECK: shl |
| 345 ; CHECK: shl |
| 346 ; CHECK: shl |
| 347 ; CHECK: shl |
| 348 ; CHECK: shl |
| 349 ; CHECK: shl |
220 } | 350 } |
221 | 351 |
222 define <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 352 define <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
223 entry: | 353 entry: |
224 %res = lshr <8 x i16> %arg0, %arg1 | 354 %res = lshr <8 x i16> %arg0, %arg1 |
225 ret <8 x i16> %res | 355 ret <8 x i16> %res |
226 ; CHECK-LABEL: test_lshr_v8i16: | 356 ; CHECK-LABEL: test_lshr_v8i16: |
227 ; CHECK: Sz_lshr_v8i16 | 357 ; CHECK: shr |
| 358 ; CHECK: shr |
| 359 ; CHECK: shr |
| 360 ; CHECK: shr |
| 361 ; CHECK: shr |
| 362 ; CHECK: shr |
| 363 ; CHECK: shr |
| 364 ; CHECK: shr |
228 } | 365 } |
229 | 366 |
230 define <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 367 define <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
231 entry: | 368 entry: |
232 %res = ashr <8 x i16> %arg0, %arg1 | 369 %res = ashr <8 x i16> %arg0, %arg1 |
233 ret <8 x i16> %res | 370 ret <8 x i16> %res |
234 ; CHECK-LABEL: test_ashr_v8i16: | 371 ; CHECK-LABEL: test_ashr_v8i16: |
235 ; CHECK: Sz_ashr_v8i16 | 372 ; CHECK: sar |
| 373 ; CHECK: sar |
| 374 ; CHECK: sar |
| 375 ; CHECK: sar |
| 376 ; CHECK: sar |
| 377 ; CHECK: sar |
| 378 ; CHECK: sar |
| 379 ; CHECK: sar |
236 } | 380 } |
237 | 381 |
238 define <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 382 define <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
239 entry: | 383 entry: |
240 %res = udiv <8 x i16> %arg0, %arg1 | 384 %res = udiv <8 x i16> %arg0, %arg1 |
241 ret <8 x i16> %res | 385 ret <8 x i16> %res |
242 ; CHECK-LABEL: test_udiv_v8i16: | 386 ; CHECK-LABEL: test_udiv_v8i16: |
243 ; CHECK: Sz_udiv_v8i16 | 387 ; CHECK: div |
| 388 ; CHECK: div |
| 389 ; CHECK: div |
| 390 ; CHECK: div |
| 391 ; CHECK: div |
| 392 ; CHECK: div |
| 393 ; CHECK: div |
| 394 ; CHECK: div |
244 } | 395 } |
245 | 396 |
246 define <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 397 define <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
247 entry: | 398 entry: |
248 %res = sdiv <8 x i16> %arg0, %arg1 | 399 %res = sdiv <8 x i16> %arg0, %arg1 |
249 ret <8 x i16> %res | 400 ret <8 x i16> %res |
250 ; CHECK-LABEL: test_sdiv_v8i16: | 401 ; CHECK-LABEL: test_sdiv_v8i16: |
251 ; CHECK: Sz_sdiv_v8i16 | 402 ; CHECK: idiv |
| 403 ; CHECK: idiv |
| 404 ; CHECK: idiv |
| 405 ; CHECK: idiv |
| 406 ; CHECK: idiv |
| 407 ; CHECK: idiv |
| 408 ; CHECK: idiv |
| 409 ; CHECK: idiv |
252 } | 410 } |
253 | 411 |
254 define <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 412 define <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
255 entry: | 413 entry: |
256 %res = urem <8 x i16> %arg0, %arg1 | 414 %res = urem <8 x i16> %arg0, %arg1 |
257 ret <8 x i16> %res | 415 ret <8 x i16> %res |
258 ; CHECK-LABEL: test_urem_v8i16: | 416 ; CHECK-LABEL: test_urem_v8i16: |
259 ; CHECK: Sz_urem_v8i16 | 417 ; CHECK: div |
| 418 ; CHECK: div |
| 419 ; CHECK: div |
| 420 ; CHECK: div |
| 421 ; CHECK: div |
| 422 ; CHECK: div |
| 423 ; CHECK: div |
| 424 ; CHECK: div |
260 } | 425 } |
261 | 426 |
262 define <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { | 427 define <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { |
263 entry: | 428 entry: |
264 %res = srem <8 x i16> %arg0, %arg1 | 429 %res = srem <8 x i16> %arg0, %arg1 |
265 ret <8 x i16> %res | 430 ret <8 x i16> %res |
266 ; CHECK-LABEL: test_srem_v8i16: | 431 ; CHECK-LABEL: test_srem_v8i16: |
267 ; CHECK: Sz_srem_v8i16 | 432 ; CHECK: idiv |
| 433 ; CHECK: idiv |
| 434 ; CHECK: idiv |
| 435 ; CHECK: idiv |
| 436 ; CHECK: idiv |
| 437 ; CHECK: idiv |
| 438 ; CHECK: idiv |
| 439 ; CHECK: idiv |
268 } | 440 } |
269 | 441 |
270 define <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 442 define <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
271 entry: | 443 entry: |
272 %res = add <4 x i32> %arg0, %arg1 | 444 %res = add <4 x i32> %arg0, %arg1 |
273 ret <4 x i32> %res | 445 ret <4 x i32> %res |
274 ; CHECK-LABEL: test_add_v4i32: | 446 ; CHECK-LABEL: test_add_v4i32: |
275 ; CHECK: paddd | 447 ; CHECK: paddd |
276 } | 448 } |
277 | 449 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 ; | 489 ; |
318 ; SSE41-LABEL: test_mul_v4i32: | 490 ; SSE41-LABEL: test_mul_v4i32: |
319 ; SSE41: pmulld | 491 ; SSE41: pmulld |
320 } | 492 } |
321 | 493 |
322 define <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 494 define <4 x i32> @test_shl_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
323 entry: | 495 entry: |
324 %res = shl <4 x i32> %arg0, %arg1 | 496 %res = shl <4 x i32> %arg0, %arg1 |
325 ret <4 x i32> %res | 497 ret <4 x i32> %res |
326 ; CHECK-LABEL: test_shl_v4i32: | 498 ; CHECK-LABEL: test_shl_v4i32: |
327 ; CHECK: Sz_shl_v4i32 | 499 ; CHECK: shl |
| 500 ; CHECK: shl |
| 501 ; CHECK: shl |
| 502 ; CHECK: shl |
328 | 503 |
329 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above. | 504 ; This line is to ensure that pmulld is generated in test_mul_v4i32 above. |
330 ; SSE41-LABEL: test_shl_v4i32: | 505 ; SSE41-LABEL: test_shl_v4i32: |
331 } | 506 } |
332 | 507 |
333 define <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 508 define <4 x i32> @test_lshr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
334 entry: | 509 entry: |
335 %res = lshr <4 x i32> %arg0, %arg1 | 510 %res = lshr <4 x i32> %arg0, %arg1 |
336 ret <4 x i32> %res | 511 ret <4 x i32> %res |
337 ; CHECK-LABEL: test_lshr_v4i32: | 512 ; CHECK-LABEL: test_lshr_v4i32: |
338 ; CHECK: Sz_lshr_v4i32 | 513 ; CHECK: shr |
| 514 ; CHECK: shr |
| 515 ; CHECK: shr |
| 516 ; CHECK: shr |
339 } | 517 } |
340 | 518 |
341 define <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 519 define <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
342 entry: | 520 entry: |
343 %res = ashr <4 x i32> %arg0, %arg1 | 521 %res = ashr <4 x i32> %arg0, %arg1 |
344 ret <4 x i32> %res | 522 ret <4 x i32> %res |
345 ; CHECK-LABEL: test_ashr_v4i32: | 523 ; CHECK-LABEL: test_ashr_v4i32: |
346 ; CHECK: Sz_ashr_v4i32 | 524 ; CHECK: sar |
| 525 ; CHECK: sar |
| 526 ; CHECK: sar |
| 527 ; CHECK: sar |
347 } | 528 } |
348 | 529 |
349 define <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 530 define <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
350 entry: | 531 entry: |
351 %res = udiv <4 x i32> %arg0, %arg1 | 532 %res = udiv <4 x i32> %arg0, %arg1 |
352 ret <4 x i32> %res | 533 ret <4 x i32> %res |
353 ; CHECK-LABEL: test_udiv_v4i32: | 534 ; CHECK-LABEL: test_udiv_v4i32: |
354 ; CHECK: Sz_udiv_v4i32 | 535 ; CHECK: div |
| 536 ; CHECK: div |
| 537 ; CHECK: div |
| 538 ; CHECK: div |
355 } | 539 } |
356 | 540 |
357 define <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 541 define <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
358 entry: | 542 entry: |
359 %res = sdiv <4 x i32> %arg0, %arg1 | 543 %res = sdiv <4 x i32> %arg0, %arg1 |
360 ret <4 x i32> %res | 544 ret <4 x i32> %res |
361 ; CHECK-LABEL: test_sdiv_v4i32: | 545 ; CHECK-LABEL: test_sdiv_v4i32: |
362 ; CHECK: Sz_sdiv_v4i32 | 546 ; CHECK: idiv |
| 547 ; CHECK: idiv |
| 548 ; CHECK: idiv |
| 549 ; CHECK: idiv |
363 } | 550 } |
364 | 551 |
365 define <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 552 define <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
366 entry: | 553 entry: |
367 %res = urem <4 x i32> %arg0, %arg1 | 554 %res = urem <4 x i32> %arg0, %arg1 |
368 ret <4 x i32> %res | 555 ret <4 x i32> %res |
369 ; CHECK-LABEL: test_urem_v4i32: | 556 ; CHECK-LABEL: test_urem_v4i32: |
370 ; CHECK: Sz_urem_v4i32 | 557 ; CHECK: div |
| 558 ; CHECK: div |
| 559 ; CHECK: div |
| 560 ; CHECK: div |
371 } | 561 } |
372 | 562 |
373 define <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { | 563 define <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) { |
374 entry: | 564 entry: |
375 %res = srem <4 x i32> %arg0, %arg1 | 565 %res = srem <4 x i32> %arg0, %arg1 |
376 ret <4 x i32> %res | 566 ret <4 x i32> %res |
377 ; CHECK-LABEL: test_srem_v4i32: | 567 ; CHECK-LABEL: test_srem_v4i32: |
378 ; CHECK: Sz_srem_v4i32 | 568 ; CHECK: idiv |
| 569 ; CHECK: idiv |
| 570 ; CHECK: idiv |
| 571 ; CHECK: idiv |
379 } | 572 } |
380 | 573 |
381 ; ERRORS-NOT: ICE translation error | 574 ; ERRORS-NOT: ICE translation error |
382 ; DUMP-NOT: SZ | 575 ; DUMP-NOT: SZ |
OLD | NEW |