| 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 |