OLD | NEW |
---|---|
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: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 4 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
5 ; RUN: --target x8632 -i %s --args -O2 \ | 5 ; RUN: --target x8632 -i %s --args -O2 \ |
6 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=O2 %s | 6 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=O2 %s |
7 | 7 |
8 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 8 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
9 ; RUN: --target x8632 -i %s --args -Om1 \ | 9 ; RUN: --target x8632 -i %s --args -Om1 \ |
10 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OM1 %s | 10 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OM1 %s |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
86 ; OM1: call | 86 ; OM1: call |
87 ; OM1: ret | 87 ; OM1: ret |
88 | 88 |
89 ; Note that compare and branch folding isn't implemented yet (unlike x86-32). | 89 ; Note that compare and branch folding isn't implemented yet (unlike x86-32). |
90 ; ARM32O2-LABEL: testCondFallthroughToNextBlock | 90 ; ARM32O2-LABEL: testCondFallthroughToNextBlock |
91 ; ARM32O2: cmp {{.*}}, #123 | 91 ; ARM32O2: cmp {{.*}}, #123 |
92 ; ARM32O2-NEXT: movge {{.*}}, #1 | 92 ; ARM32O2-NEXT: movge {{.*}}, #1 |
93 ; ARM32O2-NEXT: cmp {{.*}}, #0 | 93 ; ARM32O2-NEXT: cmp {{.*}}, #0 |
94 ; ARM32O2-NEXT: bne | 94 ; ARM32O2-NEXT: bne |
95 ; ARM32O2-NEXT: bl | 95 ; ARM32O2-NEXT: bl |
96 ; ARM32O2-NEXT: bx lr | 96 ; ARM32O2: bx lr |
jvoung (off chromium)
2015/05/29 15:34:44
there's some popping now so I took away the next
| |
97 ; ARM32O2-NEXT: bl | 97 ; ARM32O2: bl |
98 ; ARM32O2-NEXT: bx lr | 98 ; ARM32O2: bx lr |
99 | 99 |
100 ; ARM32OM1-LABEL: testCondFallthroughToNextBlock | 100 ; ARM32OM1-LABEL: testCondFallthroughToNextBlock |
101 ; ARM32OM1: cmp {{.*}}, #123 | 101 ; ARM32OM1: cmp {{.*}}, #123 |
102 ; ARM32OM1-NEXT: movge {{.*}}, #1 | 102 ; ARM32OM1-NEXT: movge {{.*}}, #1 |
103 ; ARM32OM1: cmp {{.*}}, #0 | 103 ; ARM32OM1: cmp {{.*}}, #0 |
104 ; ARM32OM1: bne | 104 ; ARM32OM1: bne |
105 ; ARM32OM1: b | 105 ; ARM32OM1: b |
106 ; ARM32OM1: bl | 106 ; ARM32OM1: bl |
107 ; ARM32OM1: bx lr | 107 ; ARM32OM1: bx lr |
108 ; ARM32OM1: bl | 108 ; ARM32OM1: bl |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 ; OM1: ret | 144 ; OM1: ret |
145 | 145 |
146 ; Note that compare and branch folding isn't implemented yet | 146 ; Note that compare and branch folding isn't implemented yet |
147 ; (compared to x86-32). | 147 ; (compared to x86-32). |
148 ; ARM32O2-LABEL: testCondTargetNextBlock | 148 ; ARM32O2-LABEL: testCondTargetNextBlock |
149 ; ARM32O2: cmp {{.*}}, #123 | 149 ; ARM32O2: cmp {{.*}}, #123 |
150 ; ARM32O2-NEXT: movge {{.*}}, #1 | 150 ; ARM32O2-NEXT: movge {{.*}}, #1 |
151 ; ARM32O2-NEXT: cmp {{.*}}, #0 | 151 ; ARM32O2-NEXT: cmp {{.*}}, #0 |
152 ; ARM32O2-NEXT: beq | 152 ; ARM32O2-NEXT: beq |
153 ; ARM32O2-NEXT: bl | 153 ; ARM32O2-NEXT: bl |
154 ; ARM32O2-NEXT: bx lr | 154 ; ARM32O2: bx lr |
155 ; ARM32O2-NEXT: bl | 155 ; ARM32O2: bl |
156 ; ARM32O2-NEXT: bx lr | 156 ; ARM32O2: bx lr |
157 | 157 |
158 ; ARM32OM1-LABEL: testCondTargetNextBlock | 158 ; ARM32OM1-LABEL: testCondTargetNextBlock |
159 ; ARM32OM1: cmp {{.*}}, #123 | 159 ; ARM32OM1: cmp {{.*}}, #123 |
160 ; ARM32OM1: movge {{.*}}, #1 | 160 ; ARM32OM1: movge {{.*}}, #1 |
161 ; ARM32OM1: cmp {{.*}}, #0 | 161 ; ARM32OM1: cmp {{.*}}, #0 |
162 ; ARM32OM1: bne | 162 ; ARM32OM1: bne |
163 ; ARM32OM1: b | 163 ; ARM32OM1: b |
164 ; ARM32OM1: bl | 164 ; ARM32OM1: bl |
165 ; ARM32OM1: bx lr | 165 ; ARM32OM1: bx lr |
166 ; ARM32OM1: bl | 166 ; ARM32OM1: bl |
167 ; ARM32OM1: bx lr | 167 ; ARM32OM1: bx lr |
OLD | NEW |