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 ; RUN: %llvm2ice --verbose inst %s | FileCheck %s | 5 ; RUN: %p2i -i %s -a --verbose inst | FileCheck %s |
6 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 6 ; RUN: %p2i -i %s -a --verbose none | FileCheck --check-prefix=ERRORS %s |
7 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 7 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s |
8 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | |
9 ; RUN: | FileCheck --check-prefix=DUMP %s | |
10 | 8 |
11 define i32 @testSwitch(i32 %a) { | 9 define i32 @testSwitch(i32 %a) { |
12 entry: | 10 entry: |
13 switch i32 %a, label %sw.default [ | 11 switch i32 %a, label %sw.default [ |
14 i32 1, label %sw.epilog | 12 i32 1, label %sw.epilog |
15 i32 2, label %sw.epilog | 13 i32 2, label %sw.epilog |
16 i32 3, label %sw.epilog | 14 i32 3, label %sw.epilog |
17 i32 7, label %sw.bb1 | 15 i32 7, label %sw.bb1 |
18 i32 8, label %sw.bb1 | 16 i32 8, label %sw.bb1 |
19 i32 15, label %sw.bb2 | 17 i32 15, label %sw.bb2 |
(...skipping 29 matching lines...) Expand all Loading... |
49 | 47 |
50 sw.default: | 48 sw.default: |
51 ret i32 20 | 49 ret i32 20 |
52 } | 50 } |
53 ; CHECK-LABEL: testSwitchImm | 51 ; CHECK-LABEL: testSwitchImm |
54 ; CHECK-NOT: cmp {{[0-9]*}}, | 52 ; CHECK-NOT: cmp {{[0-9]*}}, |
55 | 53 |
56 ; CHECK-NOT: ICE translation error | 54 ; CHECK-NOT: ICE translation error |
57 ; ERRORS-NOT: ICE translation error | 55 ; ERRORS-NOT: ICE translation error |
58 ; DUMP-NOT: SZ | 56 ; DUMP-NOT: SZ |
OLD | NEW |