Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: tests_lit/llvm2ice_tests/nacl-other-intrinsics.ll

Issue 2317653004: Subzero, MIPS32: Introduction of genTargetHelperCallFor (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: FREM resolved Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/llvm2ice_tests/nacl-mem-intrinsics.ll ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 16 matching lines...) Expand all
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 --need=allow_dump \
31 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \ 31 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \
32 ; RUN: -i %s --args -O2 --skip-unimplemented \ 32 ; RUN: -i %s --args -O2 --skip-unimplemented \
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 --need=allow_dump \
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 \
38 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\
39 ; RUN: -i %s --args -Om1 --skip-unimplemented \
40 ; RUN: -allow-externally-defined-symbols \
41 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \
42 ; RUN: --command FileCheck --check-prefix MIPS32 %s
43
37 declare i8* @llvm.nacl.read.tp() 44 declare i8* @llvm.nacl.read.tp()
38 declare void @llvm.nacl.longjmp(i8*, i32) 45 declare void @llvm.nacl.longjmp(i8*, i32)
39 declare i32 @llvm.nacl.setjmp(i8*) 46 declare i32 @llvm.nacl.setjmp(i8*)
40 declare float @llvm.sqrt.f32(float) 47 declare float @llvm.sqrt.f32(float)
41 declare double @llvm.sqrt.f64(double) 48 declare double @llvm.sqrt.f64(double)
42 declare float @llvm.fabs.f32(float) 49 declare float @llvm.fabs.f32(float)
43 declare double @llvm.fabs.f64(double) 50 declare double @llvm.fabs.f64(double)
44 declare <4 x float> @llvm.fabs.v4f32(<4 x float>) 51 declare <4 x float> @llvm.fabs.v4f32(<4 x float>)
45 declare void @llvm.trap() 52 declare void @llvm.trap()
46 declare i16 @llvm.bswap.i16(i16) 53 declare i16 @llvm.bswap.i16(i16)
(...skipping 13 matching lines...) Expand all
60 %ptr = call i8* @llvm.nacl.read.tp() 67 %ptr = call i8* @llvm.nacl.read.tp()
61 %__1 = ptrtoint i8* %ptr to i32 68 %__1 = ptrtoint i8* %ptr to i32
62 ret i32 %__1 69 ret i32 %__1
63 } 70 }
64 ; CHECK-LABEL: test_nacl_read_tp 71 ; CHECK-LABEL: test_nacl_read_tp
65 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 72 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
66 ; CHECKO2REM-LABEL: test_nacl_read_tp 73 ; CHECKO2REM-LABEL: test_nacl_read_tp
67 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 74 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
68 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp 75 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp
69 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp 76 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp
77 ; MIPS32-LABEL: test_nacl_read_tp
78 ; MIPS32: jal {{.*}} __nacl_read_tp
70 79
71 define internal i32 @test_nacl_read_tp_more_addressing() { 80 define internal i32 @test_nacl_read_tp_more_addressing() {
72 entry: 81 entry:
73 %ptr = call i8* @llvm.nacl.read.tp() 82 %ptr = call i8* @llvm.nacl.read.tp()
74 %__1 = ptrtoint i8* %ptr to i32 83 %__1 = ptrtoint i8* %ptr to i32
75 %x = add i32 %__1, %__1 84 %x = add i32 %__1, %__1
76 %__3 = inttoptr i32 %x to i32* 85 %__3 = inttoptr i32 %x to i32*
77 %v = load i32, i32* %__3, align 1 86 %v = load i32, i32* %__3, align 1
78 %v_add = add i32 %v, 1 87 %v_add = add i32 %v, 1
79 88
80 %ptr2 = call i8* @llvm.nacl.read.tp() 89 %ptr2 = call i8* @llvm.nacl.read.tp()
81 %__6 = ptrtoint i8* %ptr2 to i32 90 %__6 = ptrtoint i8* %ptr2 to i32
82 %y = add i32 %__6, 4 91 %y = add i32 %__6, 4
83 %__8 = inttoptr i32 %y to i32* 92 %__8 = inttoptr i32 %y to i32*
84 %v_add2 = add i32 %v, 4 93 %v_add2 = add i32 %v, 4
85 store i32 %v_add2, i32* %__8, align 1 94 store i32 %v_add2, i32* %__8, align 1
86 ret i32 %v 95 ret i32 %v
87 } 96 }
88 ; CHECK-LABEL: test_nacl_read_tp_more_addressing 97 ; CHECK-LABEL: test_nacl_read_tp_more_addressing
89 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 98 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
90 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 99 ; CHECK: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
91 ; CHECKO2REM-LABEL: test_nacl_read_tp_more_addressing 100 ; CHECKO2REM-LABEL: test_nacl_read_tp_more_addressing
92 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 101 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
93 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0 102 ; CHECKO2REM: mov e{{.*}},{{(DWORD PTR )?}}gs:0x0
94 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp_more_addressing 103 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp_more_addressing
95 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp 104 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp
96 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp 105 ; CHECKO2UNSANDBOXEDREM: call {{.*}} R_{{.*}} __nacl_read_tp
106 ; MIPS32-LABEL: test_nacl_read_tp_more_addressing
107 ; MIPS32: jal {{.*}} __nacl_read_tp
97 108
98 define internal i32 @test_nacl_read_tp_dead(i32 %a) { 109 define internal i32 @test_nacl_read_tp_dead(i32 %a) {
99 entry: 110 entry:
100 %ptr = call i8* @llvm.nacl.read.tp() 111 %ptr = call i8* @llvm.nacl.read.tp()
101 ; Not actually using the result of nacl read tp call. 112 ; Not actually using the result of nacl read tp call.
102 ; In O2 mode this should be DCE'ed. 113 ; In O2 mode this should be DCE'ed.
103 ret i32 %a 114 ret i32 %a
104 } 115 }
105 ; Consider nacl.read.tp side-effect free, so it can be eliminated. 116 ; Consider nacl.read.tp side-effect free, so it can be eliminated.
106 ; CHECKO2REM-LABEL: test_nacl_read_tp_dead 117 ; CHECKO2REM-LABEL: test_nacl_read_tp_dead
107 ; CHECKO2REM-NOT: mov e{{.*}}, DWORD PTR gs:0x0 118 ; CHECKO2REM-NOT: mov e{{.*}}, DWORD PTR gs:0x0
108 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp_dead 119 ; CHECKO2UNSANDBOXEDREM-LABEL: test_nacl_read_tp_dead
109 ; CHECKO2UNSANDBOXEDREM-NOT: call {{.*}} R_{{.*}} __nacl_read_tp 120 ; CHECKO2UNSANDBOXEDREM-NOT: call {{.*}} R_{{.*}} __nacl_read_tp
121 ; MIPS32-LABEL: test_nacl_read_tp_dead
122 ; MIPS32: jal {{.*}} __nacl_read_tp
110 123
111 define internal i32 @test_setjmplongjmp(i32 %iptr_env) { 124 define internal i32 @test_setjmplongjmp(i32 %iptr_env) {
112 entry: 125 entry:
113 %env = inttoptr i32 %iptr_env to i8* 126 %env = inttoptr i32 %iptr_env to i8*
114 %i = call i32 @llvm.nacl.setjmp(i8* %env) 127 %i = call i32 @llvm.nacl.setjmp(i8* %env)
115 %r1 = icmp eq i32 %i, 0 128 %r1 = icmp eq i32 %i, 0
116 br i1 %r1, label %Zero, label %NonZero 129 br i1 %r1, label %Zero, label %NonZero
117 Zero: 130 Zero:
118 ; Redundant inttoptr, to make --pnacl cast-eliding/re-insertion happy. 131 ; Redundant inttoptr, to make --pnacl cast-eliding/re-insertion happy.
119 %env2 = inttoptr i32 %iptr_env to i8* 132 %env2 = inttoptr i32 %iptr_env to i8*
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 ; CHECK: lea {{.*}},[esp+0x10] 560 ; CHECK: lea {{.*}},[esp+0x10]
548 ; CHECK: lea {{.*}},[esp+0x10] 561 ; CHECK: lea {{.*}},[esp+0x10]
549 ; CHECK: call 562 ; CHECK: call
550 ; CHECK: mov esp,{{.*}} 563 ; CHECK: mov esp,{{.*}}
551 ; CHECK: mov esp,ebp 564 ; CHECK: mov esp,ebp
552 ; ARM32-LABEL: test_stacksave_multiple 565 ; ARM32-LABEL: test_stacksave_multiple
553 ; ARM32: mov {{.*}}, sp 566 ; ARM32: mov {{.*}}, sp
554 ; ARM32: mov {{.*}}, sp 567 ; ARM32: mov {{.*}}, sp
555 ; ARM32: mov {{.*}}, sp 568 ; ARM32: mov {{.*}}, sp
556 ; ARM32: mov sp, {{.*}} 569 ; ARM32: mov sp, {{.*}}
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/nacl-mem-intrinsics.ll ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698