1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -lowerswitch -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i32 @test(i32 %arg) #0 { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test 5*9880d681SAndroid Build Coastguard Worker; CHECK: ; <label>:2 6*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %res.0 = phi i32 [ 1, %NodeBlock ], [ 2, %1 ] 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: br label %3 8*9880d681SAndroid Build Coastguard Worker; CHECK: ; <label>:5 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %res.3 = phi i32 [ 0, %NewDefault ], [ %res.2, %4 ] 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %6 = add nsw i32 %res.3, 1 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret i32 %6 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker switch i32 %arg, label %5 [ 14*9880d681SAndroid Build Coastguard Worker i32 1, label %1 15*9880d681SAndroid Build Coastguard Worker i32 2, label %2 16*9880d681SAndroid Build Coastguard Worker i32 3, label %3 17*9880d681SAndroid Build Coastguard Worker i32 4, label %4 18*9880d681SAndroid Build Coastguard Worker ] 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; <label>:1 21*9880d681SAndroid Build Coastguard Worker br label %2 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; <label>:2 24*9880d681SAndroid Build Coastguard Worker %res.0 = phi i32 [ 1, %0 ], [ 2, %1 ] 25*9880d681SAndroid Build Coastguard Worker br label %3 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; <label>:3 28*9880d681SAndroid Build Coastguard Worker %res.1 = phi i32 [ 0, %0 ], [ %res.0, %2 ] 29*9880d681SAndroid Build Coastguard Worker %phitmp = add nsw i32 %res.1, 2 30*9880d681SAndroid Build Coastguard Worker br label %4 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; <label>:4 33*9880d681SAndroid Build Coastguard Worker %res.2 = phi i32 [ 1, %0 ], [ %phitmp, %3 ] 34*9880d681SAndroid Build Coastguard Worker br label %5 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker; <label>:5 37*9880d681SAndroid Build Coastguard Worker %res.3 = phi i32 [ 0, %0 ], [ %res.2, %4 ] 38*9880d681SAndroid Build Coastguard Worker %6 = add nsw i32 %res.3, 1 39*9880d681SAndroid Build Coastguard Worker ret i32 %6 40*9880d681SAndroid Build Coastguard Worker} 41