| 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 385 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 396 ; CHECK-LABEL: test_ctlz_32 | 396 ; CHECK-LABEL: test_ctlz_32 | 
| 397 ; TODO(jvoung): If we detect that LZCNT is supported, then use that | 397 ; TODO(jvoung): If we detect that LZCNT is supported, then use that | 
| 398 ; and avoid the need to do the cmovne and xor stuff to guarantee that | 398 ; and avoid the need to do the cmovne and xor stuff to guarantee that | 
| 399 ; the result is well-defined w/ input == 0. | 399 ; the result is well-defined w/ input == 0. | 
| 400 ; CHECK: bsr [[REG_TMP:e.*]],{{.*}} | 400 ; CHECK: bsr [[REG_TMP:e.*]],{{.*}} | 
| 401 ; CHECK: mov [[REG_RES:e.*]],0x3f | 401 ; CHECK: mov [[REG_RES:e.*]],0x3f | 
| 402 ; CHECK: cmovne [[REG_RES]],[[REG_TMP]] | 402 ; CHECK: cmovne [[REG_RES]],[[REG_TMP]] | 
| 403 ; CHECK: xor [[REG_RES]],0x1f | 403 ; CHECK: xor [[REG_RES]],0x1f | 
| 404 ; ARM32-LABEL: test_ctlz_32 | 404 ; ARM32-LABEL: test_ctlz_32 | 
| 405 ; ARM32: clz | 405 ; ARM32: clz | 
|  | 406 ; MIPS32-LABEL: test_ctlz_32 | 
|  | 407 ; MIPS32: clz | 
| 406 | 408 | 
| 407 define internal i32 @test_ctlz_32_const() { | 409 define internal i32 @test_ctlz_32_const() { | 
| 408 entry: | 410 entry: | 
| 409   %r = call i32 @llvm.ctlz.i32(i32 123456, i1 false) | 411   %r = call i32 @llvm.ctlz.i32(i32 123456, i1 false) | 
| 410   ret i32 %r | 412   ret i32 %r | 
| 411 } | 413 } | 
| 412 ; Could potentially constant fold this, but the front-end should have done that. | 414 ; Could potentially constant fold this, but the front-end should have done that. | 
| 413 ; The dest operand must be a register and the source operand must be a register | 415 ; The dest operand must be a register and the source operand must be a register | 
| 414 ; or memory. | 416 ; or memory. | 
| 415 ; CHECK-LABEL: test_ctlz_32_const | 417 ; CHECK-LABEL: test_ctlz_32_const | 
| (...skipping 184 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 | 
|---|