OLD | NEW |
1 ; This tests a switch statement, including multiple branches to the | 1 ; This tests a switch statement, including multiple branches to the |
2 ; same label which also results in phi instructions with multiple | 2 ; same label which also results in phi instructions with multiple |
3 ; entries for the same incoming edge. | 3 ; entries for the same incoming edge. |
4 | 4 |
5 ; For x86 see adv-switch-opt.ll | 5 ; For x86 see adv-switch-opt.ll |
6 | 6 |
7 ; TODO(jvoung): Update to -02 once the phi assignments is done for ARM | 7 ; TODO(jvoung): Update to -02 once the phi assignments is done for ARM |
8 ; RUN: %if --need=target_ARM32 \ | 8 ; RUN: %if --need=target_ARM32 \ |
9 ; RUN: --command %p2i --filetype=obj --disassemble \ | 9 ; RUN: --command %p2i --filetype=obj --disassemble \ |
10 ; RUN: --target arm32 -i %s --args -Om1 \ | 10 ; RUN: --target arm32 -i %s --args -Om1 \ |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 ; MIPS32: li {{.*}},7 | 59 ; MIPS32: li {{.*}},7 |
60 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB1:.*]]> | 60 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB1:.*]]> |
61 ; MIPS32: li {{.*}},8 | 61 ; MIPS32: li {{.*}},8 |
62 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB1]]> | 62 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB1]]> |
63 ; MIPS32: li {{.*}},15 | 63 ; MIPS32: li {{.*}},15 |
64 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB2:.*]]> | 64 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB2:.*]]> |
65 ; MIPS32: li {{.*}},14 | 65 ; MIPS32: li {{.*}},14 |
66 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB2]]> | 66 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <[[SW_BB2]]> |
67 ; MIPS32: b {{.*}} <[[SW_DEFAULT:.*]]> | 67 ; MIPS32: b {{.*}} <[[SW_DEFAULT:.*]]> |
68 ; MIPS32: <[[SW_DEFAULT]]> | 68 ; MIPS32: <[[SW_DEFAULT]]> |
69 ; MIPS32: li» {{.*}},27 | 69 ; MIPS32: addiu»{{.*}},27 |
70 ; MIPS32: b {{.*}} <[[SW_EPILOG]]> | 70 ; MIPS32: b {{.*}} <[[SW_EPILOG]]> |
71 ; MIPS32: <[[SW_BB1]]> | 71 ; MIPS32: <[[SW_BB1]]> |
72 ; MIPS32: li {{.*}},21 | 72 ; MIPS32: li {{.*}},21 |
73 ; MIPS32: b {{.*}} <[[SW_BB2]]> | 73 ; MIPS32: b {{.*}} <[[SW_BB2]]> |
74 ; MIPS32: <[[SW_BB2]]> | 74 ; MIPS32: <[[SW_BB2]]> |
75 ; MIPS32: b {{.*}} <[[SW_EPILOG]]> | 75 ; MIPS32: b {{.*}} <[[SW_EPILOG]]> |
76 ; MIPS32: <[[SW_EPILOG]]> | 76 ; MIPS32: <[[SW_EPILOG]]> |
77 ; MIPS32: jr ra | 77 ; MIPS32: jr ra |
78 | 78 |
79 ; Check for a valid addressing mode when the switch operand is an | 79 ; Check for a valid addressing mode when the switch operand is an |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 ; MIPS32: li {{.*}},0 | 232 ; MIPS32: li {{.*}},0 |
233 ; MIPS32: li {{.*}},0 | 233 ; MIPS32: li {{.*}},0 |
234 ; MIPS32: bne {{.*}},{{.*}},{{.*}} <.LtestSwitchUndef64$local$__0> | 234 ; MIPS32: bne {{.*}},{{.*}},{{.*}} <.LtestSwitchUndef64$local$__0> |
235 ; MIPS32: li {{.*}},1 | 235 ; MIPS32: li {{.*}},1 |
236 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <.LtestSwitchUndef64$sw.default> | 236 ; MIPS32: beq {{.*}},{{.*}},{{.*}} <.LtestSwitchUndef64$sw.default> |
237 ; MIPS32: .LtestSwitchUndef64$local$__0 | 237 ; MIPS32: .LtestSwitchUndef64$local$__0 |
238 ; MIPS32: b {{.*}} <.LtestSwitchUndef64$sw.default> | 238 ; MIPS32: b {{.*}} <.LtestSwitchUndef64$sw.default> |
239 ; MIPS32: .LtestSwitchUndef64$sw.default | 239 ; MIPS32: .LtestSwitchUndef64$sw.default |
240 ; MIPS32: li {{.*}},20 | 240 ; MIPS32: li {{.*}},20 |
241 ; MIPS32: jr ra | 241 ; MIPS32: jr ra |
OLD | NEW |