| 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 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 4 ; RUN: --target x8632 --sandbox -i %s --args -O2 \ | 4 ; RUN: --target x8632 --sandbox -i %s --args -O2 \ |
| 5 ; RUN: -allow-externally-defined-symbols \ | 5 ; RUN: -allow-externally-defined-symbols \ |
| 6 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 6 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 8 ; RUN: --target x8632 --sandbox -i %s --args -Om1 \ | 8 ; RUN: --target x8632 --sandbox -i %s --args -Om1 \ |
| 9 ; RUN: -allow-externally-defined-symbols \ | 9 ; RUN: -allow-externally-defined-symbols \ |
| 10 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 10 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 %r = call i32 @llvm.cttz.i32(i32 %x, i1 false) | 475 %r = call i32 @llvm.cttz.i32(i32 %x, i1 false) |
| 476 ret i32 %r | 476 ret i32 %r |
| 477 } | 477 } |
| 478 ; CHECK-LABEL: test_cttz_32 | 478 ; CHECK-LABEL: test_cttz_32 |
| 479 ; CHECK: bsf [[REG_IF_NOTZERO:e.*]],{{.*}} | 479 ; CHECK: bsf [[REG_IF_NOTZERO:e.*]],{{.*}} |
| 480 ; CHECK: mov [[REG_IF_ZERO:e.*]],0x20 | 480 ; CHECK: mov [[REG_IF_ZERO:e.*]],0x20 |
| 481 ; CHECK: cmovne [[REG_IF_ZERO]],[[REG_IF_NOTZERO]] | 481 ; CHECK: cmovne [[REG_IF_ZERO]],[[REG_IF_NOTZERO]] |
| 482 ; ARM32-LABEL: test_cttz_32 | 482 ; ARM32-LABEL: test_cttz_32 |
| 483 ; ARM32: rbit | 483 ; ARM32: rbit |
| 484 ; ARM32: clz | 484 ; ARM32: clz |
| 485 ; MIPS32-LABEL: test_cttz_32 |
| 486 ; MIPS32: clz |
| 485 | 487 |
| 486 define internal i64 @test_cttz_64(i64 %x) { | 488 define internal i64 @test_cttz_64(i64 %x) { |
| 487 entry: | 489 entry: |
| 488 %r = call i64 @llvm.cttz.i64(i64 %x, i1 false) | 490 %r = call i64 @llvm.cttz.i64(i64 %x, i1 false) |
| 489 ret i64 %r | 491 ret i64 %r |
| 490 } | 492 } |
| 491 ; CHECK-LABEL: test_cttz_64 | 493 ; CHECK-LABEL: test_cttz_64 |
| 492 ; CHECK: bsf [[REG_IF_NOTZERO:e.*]],{{.*}} | 494 ; CHECK: bsf [[REG_IF_NOTZERO:e.*]],{{.*}} |
| 493 ; CHECK: mov [[REG_RES1:e.*]],0x20 | 495 ; CHECK: mov [[REG_RES1:e.*]],0x20 |
| 494 ; CHECK: cmovne [[REG_RES1]],[[REG_IF_NOTZERO]] | 496 ; CHECK: cmovne [[REG_RES1]],[[REG_IF_NOTZERO]] |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 ; CHECK: lea {{.*}},[esp+0x10] | 602 ; CHECK: lea {{.*}},[esp+0x10] |
| 601 ; CHECK: lea {{.*}},[esp+0x10] | 603 ; CHECK: lea {{.*}},[esp+0x10] |
| 602 ; CHECK: call | 604 ; CHECK: call |
| 603 ; CHECK: mov esp,{{.*}} | 605 ; CHECK: mov esp,{{.*}} |
| 604 ; CHECK: mov esp,ebp | 606 ; CHECK: mov esp,ebp |
| 605 ; ARM32-LABEL: test_stacksave_multiple | 607 ; ARM32-LABEL: test_stacksave_multiple |
| 606 ; ARM32: mov {{.*}}, sp | 608 ; ARM32: mov {{.*}}, sp |
| 607 ; ARM32: mov {{.*}}, sp | 609 ; ARM32: mov {{.*}}, sp |
| 608 ; ARM32: mov {{.*}}, sp | 610 ; ARM32: mov {{.*}}, sp |
| 609 ; ARM32: mov sp, {{.*}} | 611 ; ARM32: mov sp, {{.*}} |
| OLD | NEW |