; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s target triple = "dxil-unknown-shadermodel6.7-library" define i32 @test_switch(i32 %i, i32 %a, i32 %b) #0 { ; CHECK: define i32 @test_switch(i32 [[I:%.*]], i32 [[A:%.*]], i32 [[B:%.*]]) ; CHECK: [[ENTRY:.*]]: ; CHECK-NEXT: switch i32 [[I]], label %[[DEFAULT:.*]] [ ; CHECK-NEXT: i32 0, label %[[RETURN:.*]] ; CHECK-NEXT: i32 1, label %[[BB1:.*]] ; CHECK-NEXT: ] ; ; CHECK: [[BB1]]: ; CHECK-NEXT: br label %[[RETURN]] ; ; CHECK: [[DEFAULT]]: ; CHECK-NEXT: br label %[[RETURN]] ; ; CHECK: [[RETURN]] ; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ -1, %[[DEFAULT]] ], [ [[B]], %[[BB1]] ], [ [[A]], %[[ENTRY]] ] ; CHECK-NEXT: ret i32 [[RETVAL]] ; entry: switch i32 %i, label %sw.default [ i32 0, label %return i32 1, label %sw.bb1 ] sw.bb1: ; preds = %entry br label %return sw.default: ; preds = %entry br label %return return: ; preds = %entry, %sw.default, %sw.bb1 %retval.0 = phi i32 [ -1, %sw.default ], [ %b, %sw.bb1 ], [ %a, %entry ] ret i32 %retval.0 } attributes #0 = { nounwind memory(none) }