98 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=lower-switch -S | FileCheck %s3define void @i3_range_4(i3 %0) {4; CHECK-LABEL: define void @i3_range_4(5; CHECK-SAME: i3 [[TMP0:%.*]]) {6; CHECK-NEXT: [[BB_0:.*:]]7; CHECK-NEXT: br label %[[LEAFBLOCK:.*]]8; CHECK: [[LEAFBLOCK]]:9; CHECK-NEXT: [[DOTOFF:%.*]] = add i3 [[TMP0]], 210; CHECK-NEXT: [[SWITCHLEAF:%.*]] = icmp ule i3 [[DOTOFF]], -411; CHECK-NEXT: br i1 [[SWITCHLEAF]], label %[[BB_1:.*]], label %[[BB_2:.*]]12; CHECK: [[BB_1]]:13; CHECK-NEXT: [[TMP:%.*]] = phi i3 [ 0, %[[LEAFBLOCK]] ]14; CHECK-NEXT: br label %[[BB_2]]15; CHECK: [[BB_2]]:16; CHECK-NEXT: ret void17;18bb.0:19 switch i3 %0, label %bb.2 [20 i3 -1, label %bb.121 i3 -2, label %bb.122 i3 2, label %bb.123 i3 1, label %bb.124 i3 0, label %bb.125 ]26 27bb.1: ; preds = %bb.0, %bb.0, %bb.0, %bb.0, %bb.028 %tmp = phi i3 [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ]29 br label %bb.230 31bb.2: ; preds = %bb.1, %bb.032 ret void33}34 35define void @i3_range_6(i3 %0) {36; CHECK-LABEL: define void @i3_range_6(37; CHECK-SAME: i3 [[TMP0:%.*]]) {38; CHECK-NEXT: [[BB_0:.*:]]39; CHECK-NEXT: br label %[[LEAFBLOCK:.*]]40; CHECK: [[LEAFBLOCK]]:41; CHECK-NEXT: [[SWITCHLEAF:%.*]] = icmp sge i3 [[TMP0]], -342; CHECK-NEXT: br i1 [[SWITCHLEAF]], label %[[BB_1:.*]], label %[[BB_2:.*]]43; CHECK: [[BB_1]]:44; CHECK-NEXT: [[TMP:%.*]] = phi i3 [ 0, %[[LEAFBLOCK]] ]45; CHECK-NEXT: br label %[[BB_2]]46; CHECK: [[BB_2]]:47; CHECK-NEXT: ret void48;49bb.0:50 switch i3 %0, label %bb.2 [51 i3 -1, label %bb.152 i3 -2, label %bb.153 i3 -3, label %bb.154 i3 3, label %bb.155 i3 2, label %bb.156 i3 1, label %bb.157 i3 0, label %bb.158 ]59 60bb.1: ; preds = %bb.0, %bb.0, %bb.0, %bb.0, %bb.061 %tmp = phi i3 [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ]62 br label %bb.263 64bb.2: ; preds = %bb.1, %bb.065 ret void66}67 68 69define void @i3_range_7(i3 %0) {70; CHECK-LABEL: define void @i3_range_7(71; CHECK-SAME: i3 [[TMP0:%.*]]) {72; CHECK-NEXT: [[BB_0:.*:]]73; CHECK-NEXT: br label %[[BB_1:.*]]74; CHECK: [[BB_1]]:75; CHECK-NEXT: br label %[[BB_2:.*]]76; CHECK: [[BB_2]]:77; CHECK-NEXT: ret void78;79bb.0:80 switch i3 %0, label %bb.2 [81 i3 -1, label %bb.182 i3 -2, label %bb.183 i3 -3, label %bb.184 i3 -4, label %bb.185 i3 3, label %bb.186 i3 2, label %bb.187 i3 1, label %bb.188 i3 0, label %bb.189 ]90 91bb.1: ; preds = %bb.0, %bb.0, %bb.0, %bb.0, %bb.092 %tmp = phi i3 [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ], [ 0, %bb.0 ]93 br label %bb.294 95bb.2: ; preds = %bb.1, %bb.096 ret void97}98