49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S -passes="default<O3>" < %s | FileCheck %s3 4define i8 @test_switch_with_sext_phi(i8 %code) {5; CHECK-LABEL: define noundef i8 @test_switch_with_sext_phi(6; CHECK-SAME: i8 [[CODE:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: entry:8; CHECK-NEXT: switch i8 [[CODE]], label [[SW_EPILOG:%.*]] [9; CHECK-NEXT: i8 108, label [[SW_BB2:%.*]]10; CHECK-NEXT: i8 76, label [[SW_BB3:%.*]]11; CHECK-NEXT: ]12; CHECK: sw.bb2:13; CHECK-NEXT: br label [[SW_EPILOG]]14; CHECK: sw.bb3:15; CHECK-NEXT: br label [[SW_EPILOG]]16; CHECK: sw.epilog:17; CHECK-NEXT: [[PEP_CODE:%.*]] = phi i8 [ 81, [[SW_BB3]] ], [ 113, [[SW_BB2]] ], [ [[CODE]], [[ENTRY:%.*]] ]18; CHECK-NEXT: ret i8 [[PEP_CODE]]19;20entry:21 %conv = sext i8 %code to i3222 switch i32 %conv, label %sw.default [23 i32 105, label %sw.epilog24 i32 73, label %sw.bb125 i32 108, label %sw.bb226 i32 76, label %sw.bb327 i32 63, label %sw.bb428 ]29 30sw.bb1:31 br label %sw.epilog32 33sw.bb2:34 br label %sw.epilog35 36sw.bb3:37 br label %sw.epilog38 39sw.bb4:40 br label %sw.epilog41 42sw.default:43 br label %sw.epilog44 45sw.epilog:46 %pep_code = phi i8 [ %code, %sw.default ], [ 63, %sw.bb4 ], [ 81, %sw.bb3 ], [ 113, %sw.bb2 ], [ 73, %sw.bb1 ], [ 105, %entry ]47 ret i8 %pep_code48}49