Home | History | Annotate | Download | only in InstCombine
      1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
      2 ; RUN: opt < %s -instcombine -S | FileCheck %s
      3 
      4 @g = global i32 0
      5 
      6 ; PR30486
      7 define i32 @single_case() {
      8 ; CHECK-LABEL: @single_case(
      9 ; CHECK-NEXT:    switch i32 ptrtoint (i32* @g to i32), label %x [
     10 ; CHECK-NEXT:    ]
     11 ; CHECK:       x:
     12 ; CHECK-NEXT:    ret i32 0
     13 ;
     14   switch i32 add (i32 ptrtoint (i32* @g to i32), i32 -1), label %x []
     15 x:
     16   ret i32 0
     17 }
     18 
     19 define i32 @multiple_cases() {
     20 ; CHECK-LABEL: @multiple_cases(
     21 ; CHECK-NEXT:    switch i32 ptrtoint (i32* @g to i32), label %x [
     22 ; CHECK-NEXT:    i32 2, label %one
     23 ; CHECK-NEXT:    i32 3, 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
     31 ;
     32   switch i32 add (i32 ptrtoint (i32* @g to i32), i32 -1), label %x [
     33   i32 1, label %one
     34   i32 2, label %two
     35   ]
     36 x:
     37   ret i32 0
     38 
     39 one:
     40   ret i32 1
     41 
     42 two:
     43   ret i32 2
     44 }
     45