Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / InstCombine / switch-constant-expr.ll
blobe3a5e2ac8c117c17aa25cf7f53fc18267000b4b2
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=instcombine -S | FileCheck %s
4 @g = global i32 0
6 ; PR30486
7 define i32 @single_case() {
8 ; CHECK-LABEL: @single_case(
9 ; CHECK-NEXT:    switch i32 add (i32 ptrtoint (ptr @g to i32), i32 -1), label [[X:%.*]] [
10 ; CHECK-NEXT:    ]
11 ; CHECK:       x:
12 ; CHECK-NEXT:    ret i32 0
14   switch i32 add (i32 ptrtoint (ptr @g to i32), i32 -1), label %x []
16   ret i32 0
19 define i32 @multiple_cases() {
20 ; CHECK-LABEL: @multiple_cases(
21 ; CHECK-NEXT:    switch i32 add (i32 ptrtoint (ptr @g to i32), i32 -1), label [[X:%.*]] [
22 ; CHECK-NEXT:    i32 1, label [[ONE:%.*]]
23 ; CHECK-NEXT:    i32 2, label [[TWO:%.*]]
24 ; CHECK-NEXT:    ]
25 ; CHECK:       x:
26 ; CHECK-NEXT:    ret i32 0
27 ; CHECK:       one:
28 ; CHECK-NEXT:    ret i32 1
29 ; CHECK:       two:
30 ; CHECK-NEXT:    ret i32 2
32   switch i32 add (i32 ptrtoint (ptr @g to i32), i32 -1), label %x [
33   i32 1, label %one
34   i32 2, label %two
35   ]
37   ret i32 0
39 one:
40   ret i32 1
42 two:
43   ret i32 2