OLD | NEW |
1 ; This tests the NaCl intrinsics not related to atomic operations. | 1 ; This tests the NaCl intrinsics not related to atomic operations. |
2 | 2 |
3 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer | 3 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer |
4 ; doesn't know how to symbolize non-section-local functions. | 4 ; doesn't know how to symbolize non-section-local functions. |
5 ; The newer LLVM 3.6 one does work, but watch out for other bugs. | 5 ; The newer LLVM 3.6 one does work, but watch out for other bugs. |
6 | 6 |
7 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 7 ; RUN: %p2i -i %s --args -O2 --verbose none \ |
8 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s | 8 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s |
9 ; RUN: %p2i -i %s --args -O2 --verbose none -sandbox \ | 9 ; RUN: %p2i -i %s --args -O2 --verbose none -sandbox \ |
10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 ; CHECK: ud2 | 319 ; CHECK: ud2 |
320 | 320 |
321 define i32 @test_bswap_16(i32 %x) { | 321 define i32 @test_bswap_16(i32 %x) { |
322 entry: | 322 entry: |
323 %x_trunc = trunc i32 %x to i16 | 323 %x_trunc = trunc i32 %x to i16 |
324 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) | 324 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) |
325 %r_zext = zext i16 %r to i32 | 325 %r_zext = zext i16 %r to i32 |
326 ret i32 %r_zext | 326 ret i32 %r_zext |
327 } | 327 } |
328 ; CHECK-LABEL: test_bswap_16 | 328 ; CHECK-LABEL: test_bswap_16 |
329 ; CHECK: rol {{.*}}, 8 | 329 ; Make sure this is the right operand size so that the most significant bit |
| 330 ; to least significant bit rotation happens at the right boundary. |
| 331 ; CHECK: rol {{[abcd]x|si|di|bp|word ptr}}, 8 |
330 | 332 |
331 define i32 @test_bswap_32(i32 %x) { | 333 define i32 @test_bswap_32(i32 %x) { |
332 entry: | 334 entry: |
333 %r = call i32 @llvm.bswap.i32(i32 %x) | 335 %r = call i32 @llvm.bswap.i32(i32 %x) |
334 ret i32 %r | 336 ret i32 %r |
335 } | 337 } |
336 ; CHECK-LABEL: test_bswap_32 | 338 ; CHECK-LABEL: test_bswap_32 |
337 ; CHECK: bswap e{{.*}} | 339 ; CHECK: bswap e{{.*}} |
338 | 340 |
339 define i64 @test_bswap_64(i64 %x) { | 341 define i64 @test_bswap_64(i64 %x) { |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 ret void | 518 ret void |
517 } | 519 } |
518 ; CHECK-LABEL: test_stacksave_multiple | 520 ; CHECK-LABEL: test_stacksave_multiple |
519 ; At least 3 copies of esp, but probably more from having to do the allocas. | 521 ; At least 3 copies of esp, but probably more from having to do the allocas. |
520 ; CHECK: mov {{.*}}, esp | 522 ; CHECK: mov {{.*}}, esp |
521 ; CHECK: mov {{.*}}, esp | 523 ; CHECK: mov {{.*}}, esp |
522 ; CHECK: mov {{.*}}, esp | 524 ; CHECK: mov {{.*}}, esp |
523 ; CHECK: mov esp, {{.*}} | 525 ; CHECK: mov esp, {{.*}} |
524 | 526 |
525 ; ERRORS-NOT: ICE translation error | 527 ; ERRORS-NOT: ICE translation error |
OLD | NEW |