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

Side by Side Diff: tests_lit/llvm2ice_tests/branch-opt.ll

Issue 1151663004: Subzero ARM: do lowerIcmp, lowerBr, and a bit of lowerCall. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: fix Created 5 years, 7 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/64bit.pnacl.ll ('k') | tests_lit/llvm2ice_tests/int-arg.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Tests the branch optimizations under O2 (against a lack of 1 ; Tests the branch optimizations under O2 (against a lack of
2 ; optimizations under Om1). 2 ; optimizations under Om1).
3 3
4 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ 4 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
5 ; RUN: | FileCheck --check-prefix=O2 %s 5 ; RUN: --target x8632 -i %s --args -O2 \
6 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ 6 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=O2 %s
7 ; RUN: | FileCheck --check-prefix=OM1 %s 7
8 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
9 ; RUN: --target x8632 -i %s --args -Om1 \
10 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OM1 %s
11
12 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented)
13 ; once enough infrastructure is in. Also, switch to --filetype=obj
14 ; when possible.
15 ; Also test Om1 when addProlog is done.
16 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \
17 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \
18 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32O2 %s
8 19
9 declare void @dummy() 20 declare void @dummy()
10 21
11 ; An unconditional branch to the next block should be removed. 22 ; An unconditional branch to the next block should be removed.
12 define void @testUncondToNextBlock() { 23 define void @testUncondToNextBlock() {
13 entry: 24 entry:
14 call void @dummy() 25 call void @dummy()
15 br label %next 26 br label %next
16 next: 27 next:
17 call void @dummy() 28 call void @dummy()
18 ret void 29 ret void
19 } 30 }
20 ; O2-LABEL: testUncondToNextBlock 31 ; O2-LABEL: testUncondToNextBlock
21 ; O2: call 32 ; O2: call
22 ; There will be nops for bundle align to end (for NaCl), but there should 33 ; There will be nops for bundle align to end (for NaCl), but there should
23 ; not be a branch. 34 ; not be a branch.
24 ; O2-NOT: j 35 ; O2-NOT: j
25 ; O2: call 36 ; O2: call
26 37
27 ; OM1-LABEL: testUncondToNextBlock 38 ; OM1-LABEL: testUncondToNextBlock
28 ; OM1: call 39 ; OM1: call
29 ; OM1-NEXT: jmp 40 ; OM1-NEXT: jmp
30 ; OM1: call 41 ; OM1: call
31 42
43 ; ARM32O2-LABEL: testUncondToNextBlock
44 ; ARM32O2: bl {{.*}} dummy
45 ; ARM32O2-NEXT: bl {{.*}} dummy
46
32 ; For a conditional branch with a fallthrough to the next block, the 47 ; For a conditional branch with a fallthrough to the next block, the
33 ; fallthrough branch should be removed. 48 ; fallthrough branch should be removed.
34 define void @testCondFallthroughToNextBlock(i32 %arg) { 49 define void @testCondFallthroughToNextBlock(i32 %arg) {
35 entry: 50 entry:
36 %cmp = icmp sge i32 %arg, 123 51 %cmp = icmp sge i32 %arg, 123
37 br i1 %cmp, label %target, label %fallthrough 52 br i1 %cmp, label %target, label %fallthrough
38 fallthrough: 53 fallthrough:
39 call void @dummy() 54 call void @dummy()
40 ret void 55 ret void
41 target: 56 target:
(...skipping 13 matching lines...) Expand all
55 ; OM1: cmp {{.*}},0x7b 70 ; OM1: cmp {{.*}},0x7b
56 ; OM1: setge 71 ; OM1: setge
57 ; OM1: cmp 72 ; OM1: cmp
58 ; OM1: jne 73 ; OM1: jne
59 ; OM1: jmp 74 ; OM1: jmp
60 ; OM1: call 75 ; OM1: call
61 ; OM1: ret 76 ; OM1: ret
62 ; OM1: call 77 ; OM1: call
63 ; OM1: ret 78 ; OM1: ret
64 79
80 ; Note that compare and branch folding isn't implemented yet (unlike x86-32).
81 ; ARM32O2-LABEL: testCondFallthroughToNextBlock
82 ; ARM32O2: cmp {{.*}}, #123
83 ; ARM32O2-NEXT: movge {{.*}}, #1
84 ; ARM32O2-NEXT: cmp {{.*}}, #0
85 ; ARM32O2-NEXT: bne
86 ; ARM32O2-NEXT: bl
87 ; ARM32O2-NEXT: bx lr
88 ; ARM32O2-NEXT: bl
89 ; ARM32O2-NEXT: bx lr
90
65 ; For a conditional branch with the next block as the target and a 91 ; For a conditional branch with the next block as the target and a
66 ; different block as the fallthrough, the branch condition should be 92 ; different block as the fallthrough, the branch condition should be
67 ; inverted, the fallthrough block changed to the target, and the 93 ; inverted, the fallthrough block changed to the target, and the
68 ; branch to the next block removed. 94 ; branch to the next block removed.
69 define void @testCondTargetNextBlock(i32 %arg) { 95 define void @testCondTargetNextBlock(i32 %arg) {
70 entry: 96 entry:
71 %cmp = icmp sge i32 %arg, 123 97 %cmp = icmp sge i32 %arg, 123
72 br i1 %cmp, label %fallthrough, label %target 98 br i1 %cmp, label %fallthrough, label %target
73 fallthrough: 99 fallthrough:
74 call void @dummy() 100 call void @dummy()
(...skipping 14 matching lines...) Expand all
89 ; OM1-LABEL: testCondTargetNextBlock 115 ; OM1-LABEL: testCondTargetNextBlock
90 ; OM1: cmp {{.*}},0x7b 116 ; OM1: cmp {{.*}},0x7b
91 ; OM1: setge 117 ; OM1: setge
92 ; OM1: cmp 118 ; OM1: cmp
93 ; OM1: jne 119 ; OM1: jne
94 ; OM1: jmp 120 ; OM1: jmp
95 ; OM1: call 121 ; OM1: call
96 ; OM1: ret 122 ; OM1: ret
97 ; OM1: call 123 ; OM1: call
98 ; OM1: ret 124 ; OM1: ret
125
126 ; Note that compare and branch folding isn't implemented yet
127 ; (compared to x86-32).
128 ; ARM32O2-LABEL: testCondTargetNextBlock
129 ; ARM32O2: cmp {{.*}}, #123
130 ; ARM32O2-NEXT: movge {{.*}}, #1
131 ; ARM32O2-NEXT: cmp {{.*}}, #0
132 ; ARM32O2-NEXT: beq
133 ; ARM32O2-NEXT: bl
134 ; ARM32O2-NEXT: bx lr
135 ; ARM32O2-NEXT: bl
136 ; ARM32O2-NEXT: bx lr
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/64bit.pnacl.ll ('k') | tests_lit/llvm2ice_tests/int-arg.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698