brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 0023254 Raw
93 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=lower-switch -S | FileCheck %s3 4define i64 @f(i1 %bool, i128 %i128) {5; CHECK-LABEL: @f(6; CHECK-NEXT:  BB:7; CHECK-NEXT:    br label [[NODEBLOCK1:%.*]]8; CHECK:       NodeBlock1:9; CHECK-NEXT:    [[PIVOT2:%.*]] = icmp slt i128 [[I128:%.*]], 1620131029101800844610; CHECK-NEXT:    br i1 [[PIVOT2]], label [[LEAFBLOCK:%.*]], label [[NODEBLOCK:%.*]]11; CHECK:       NodeBlock:12; CHECK-NEXT:    [[PIVOT:%.*]] = icmp slt i128 [[I128]], 1620131029101800844713; CHECK-NEXT:    br i1 [[PIVOT]], label [[SW_C3:%.*]], label [[SW_C2:%.*]]14; CHECK:       LeafBlock:15; CHECK-NEXT:    [[SWITCHLEAF:%.*]] = icmp eq i128 [[I128]], 1620131029101800844516; CHECK-NEXT:    br i1 [[SWITCHLEAF]], label [[SW_C4:%.*]], label [[SW_C1:%.*]]17; CHECK:       BB1:18; CHECK-NEXT:    unreachable19; CHECK:       SW_C1:20; CHECK-NEXT:    br i1 [[BOOL:%.*]], label [[BB1:%.*]], label [[SW_C1]]21; CHECK:       SW_C2:22; CHECK-NEXT:    ret i64 023; CHECK:       SW_C3:24; CHECK-NEXT:    ret i64 125; CHECK:       SW_C4:26; CHECK-NEXT:    ret i64 227;28BB:29  switch i128 %i128, label %BB1 [30  i128 627, label %SW_C131  i128 16201310291018008447, label %SW_C232  i128 16201310291018008446, label %SW_C333  i128 16201310291018008445, label %SW_C434  ]35 36BB1:                                              ; preds = %SW_C1, %BB37  unreachable38 39SW_C1:                                            ; preds = %SW_C1, %BB40  br i1 %bool, label %BB1, label %SW_C141 42SW_C2:                                            ; preds = %BB43  ret i64 044 45SW_C3:                                            ; preds = %BB46  ret i64 147 48SW_C4:                                            ; preds = %BB49  ret i64 250}51 52define i64 @f_empty(i1 %bool, i128 %i128) {53; CHECK-LABEL: @f_empty(54; CHECK-NEXT:  BB:55; CHECK-NEXT:    br label [[BB1:%.*]]56; CHECK:       BB1:57; CHECK-NEXT:    unreachable58;59BB:60  switch i128 %i128, label %BB1 []61 62BB1:                                              ; preds = %BB63  unreachable64}65 66define void @f_i1() {67entry:68  switch i1 false, label %sw.bb [69    i1 false, label %sw.bb1270  ]71 72sw.bb:                                            ; preds = %entry73  unreachable74 75sw.bb12:                                          ; preds = %entry76  unreachable77}78 79define void @f_i2(i2 %cond) {80entry:81  switch i2 %cond, label %sw.bb [82    i2 0, label %sw.bb1283    i2 1, label %sw.bb1284    i2 2, label %sw.bb1285    i2 3, label %sw.bb1286  ]87 88sw.bb:                                            ; preds = %entry89  unreachable90 91sw.bb12:                                          ; preds = %entry92  unreachable93}