; RUN: opt < %s -lowerswitch -S | FileCheck %s ; ; The switch is lowered with a single icmp. ; CHECK: icmp ; CHECK-NOT: icmp ; ;int foo(int a) { ; ; switch (a) { ; case 0: ; return 10; ; case 1: ; return 3; ; default: ; __builtin_unreachable(); ; } ; ;} define i32 @foo(i32 %a) { %1 = alloca i32, align 4 %2 = alloca i32, align 4 store i32 %a, i32* %2, align 4 %3 = load i32, i32* %2, align 4 switch i32 %3, label %6 [ i32 0, label %4 i32 1, label %5 ] ; <label>:4 store i32 10, i32* %1 br label %7 ; <label>:5 store i32 3, i32* %1 br label %7 ; <label>:6 unreachable ; <label>:7 %8 = load i32, i32* %1 ret i32 %8 }