aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/CorrelatedExprs/switch.ll
blob: 8bf89649201863cc0ce5850ebfbbb7d1a749247d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
; RUN: llvm-as < %s | opt -cee -constprop -instcombine -dce | llvm-dis | not grep 'REMOVE'

int %test_case_values_should_propagate(int %A) {
    switch int %A, label %D [
        int 40, label %C1
        int 41, label %C2
        int 42, label %C3
    ]
C1:
    %REMOVE1 = add int %A, 2     ; Should be 42.
    ret int %REMOVE1
C2:
    %REMOVE2 = add int %A, 3     ; Should be 44.
    ret int %REMOVE2
C3:
    %REMOVE3 = add int %A, 4     ; Should be 46.
    ret int %REMOVE3
D:
    ret int 10
}