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 |
11 | 11 |
12 ; Do another run w/ O2 and a different check-prefix (otherwise O2 and Om1 | 12 ; Do another run w/ O2 and a different check-prefix (otherwise O2 and Om1 |
13 ; share the same "CHECK" prefix). This separate run helps check that | 13 ; share the same "CHECK" prefix). This separate run helps check that |
14 ; some code is optimized out. | 14 ; some code is optimized out. |
15 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 15 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
16 ; RUN: --target x8632 --sandbox -i %s --args -O2 \ | 16 ; RUN: --target x8632 --sandbox -i %s --args -O2 \ |
17 ; RUN: -allow-externally-defined-symbols \ | 17 ; RUN: -allow-externally-defined-symbols \ |
18 ; RUN: | %if --need=target_X8632 \ | 18 ; RUN: | %if --need=target_X8632 \ |
19 ; RUN: --command FileCheck --check-prefix=CHECKO2REM %s | 19 ; RUN: --command FileCheck --check-prefix=CHECKO2REM %s |
20 | 20 |
21 ; Do O2 runs without -sandbox to make sure llvm.nacl.read.tp gets | 21 ; Do O2 runs without -sandbox to make sure llvm.nacl.read.tp gets |
22 ; lowered to __nacl_read_tp instead of gs:0x0. | 22 ; lowered to __nacl_read_tp instead of gs:0x0. |
23 ; We also know that because it's O2, it'll have the O2REM optimizations. | 23 ; We also know that because it's O2, it'll have the O2REM optimizations. |
24 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 24 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
25 ; RUN: --target x8632 -i %s --args -O2 \ | 25 ; RUN: --target x8632 -i %s --args -O2 \ |
26 ; RUN: -allow-externally-defined-symbols \ | 26 ; RUN: -allow-externally-defined-symbols \ |
27 ; RUN: | %if --need=target_X8632 \ | 27 ; RUN: | %if --need=target_X8632 \ |
28 ; RUN: --command FileCheck --check-prefix=CHECKO2UNSANDBOXEDREM %s | 28 ; RUN: --command FileCheck --check-prefix=CHECKO2UNSANDBOXEDREM %s |
29 | 29 |
30 ; RUN: %if --need=target_ARM32 --need=allow_dump \ | 30 ; RUN: %if --need=target_ARM32 \ |
31 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \ | 31 ; RUN: --command %p2i --filetype=obj --disassemble --target arm32 \ |
32 ; RUN: -i %s --args -O2 --skip-unimplemented \ | 32 ; RUN: -i %s --args -O2 \ |
33 ; RUN: -allow-externally-defined-symbols \ | 33 ; RUN: -allow-externally-defined-symbols \ |
34 ; RUN: | %if --need=target_ARM32 --need=allow_dump \ | 34 ; RUN: | %if --need=target_ARM32 \ |
35 ; RUN: --command FileCheck --check-prefix ARM32 %s | 35 ; RUN: --command FileCheck --check-prefix ARM32 %s |
36 | 36 |
37 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ | 37 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ |
38 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ | 38 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ |
39 ; RUN: -i %s --args -Om1 --skip-unimplemented \ | 39 ; RUN: -i %s --args -Om1 --skip-unimplemented \ |
40 ; RUN: -allow-externally-defined-symbols \ | 40 ; RUN: -allow-externally-defined-symbols \ |
41 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ | 41 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ |
42 ; RUN: --command FileCheck --check-prefix MIPS32 %s | 42 ; RUN: --command FileCheck --check-prefix MIPS32 %s |
43 | 43 |
44 declare i8* @llvm.nacl.read.tp() | 44 declare i8* @llvm.nacl.read.tp() |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 br i1 %r1, label %Zero, label %NonZero | 328 br i1 %r1, label %Zero, label %NonZero |
329 Zero: | 329 Zero: |
330 call void @llvm.trap() | 330 call void @llvm.trap() |
331 unreachable | 331 unreachable |
332 NonZero: | 332 NonZero: |
333 ret i32 1 | 333 ret i32 1 |
334 } | 334 } |
335 ; CHECK-LABEL: test_trap | 335 ; CHECK-LABEL: test_trap |
336 ; CHECK: ud2 | 336 ; CHECK: ud2 |
337 ; ARM32-LABEL: test_trap | 337 ; ARM32-LABEL: test_trap |
338 ; ARM32: .word 0xe7fedef0 | 338 ; ARM32: udf |
339 ; MIPS32-LABEL: test_trap | 339 ; MIPS32-LABEL: test_trap |
340 ; MIPS32: teq zero,zero | 340 ; MIPS32: teq zero,zero |
341 | 341 |
342 define internal i32 @test_bswap_16(i32 %x) { | 342 define internal i32 @test_bswap_16(i32 %x) { |
343 entry: | 343 entry: |
344 %x_trunc = trunc i32 %x to i16 | 344 %x_trunc = trunc i32 %x to i16 |
345 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) | 345 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) |
346 %r_zext = zext i16 %r to i32 | 346 %r_zext = zext i16 %r to i32 |
347 ret i32 %r_zext | 347 ret i32 %r_zext |
348 } | 348 } |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 ; CHECK: lea {{.*}},[esp+0x10] | 695 ; CHECK: lea {{.*}},[esp+0x10] |
696 ; CHECK: lea {{.*}},[esp+0x10] | 696 ; CHECK: lea {{.*}},[esp+0x10] |
697 ; CHECK: call | 697 ; CHECK: call |
698 ; CHECK: mov esp,{{.*}} | 698 ; CHECK: mov esp,{{.*}} |
699 ; CHECK: mov esp,ebp | 699 ; CHECK: mov esp,ebp |
700 ; ARM32-LABEL: test_stacksave_multiple | 700 ; ARM32-LABEL: test_stacksave_multiple |
701 ; ARM32: mov {{.*}}, sp | 701 ; ARM32: mov {{.*}}, sp |
702 ; ARM32: mov {{.*}}, sp | 702 ; ARM32: mov {{.*}}, sp |
703 ; ARM32: mov {{.*}}, sp | 703 ; ARM32: mov {{.*}}, sp |
704 ; ARM32: mov sp, {{.*}} | 704 ; ARM32: mov sp, {{.*}} |
OLD | NEW |