brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · e56f54a Raw
92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=dse -S %s | FileCheck %s3 4@b = local_unnamed_addr global i32 0, align 45 6; Reduced test case for PR47285.7 8; `store i32 9, ptr @b` in %interesting is not killed by `store i32 23, ptr @b`9; in %killer, because it is not overwritten before reaching the end of the10; function via %bb.2 -> %no.overwrite.exit.11 12define void @test(i1 %c.0, i1 %c.2, i1 %c.3, i1 %c.4, i1 %c.5, i1 %c.6) {13; CHECK-LABEL: @test(14; CHECK-NEXT:  entry:15; CHECK-NEXT:    br label [[BB_2:%.*]]16; CHECK:       bb.2:17; CHECK-NEXT:    br i1 [[C_0:%.*]], label [[BB_3:%.*]], label [[NO_OVERWRITE_EXIT:%.*]]18; CHECK:       no.overwrite.exit:19; CHECK-NEXT:    ret void20; CHECK:       bb.3:21; CHECK-NEXT:    br i1 [[C_2:%.*]], label [[BB_4:%.*]], label [[BB_7:%.*]]22; CHECK:       bb.4:23; CHECK-NEXT:    br i1 [[C_4:%.*]], label [[BB_5:%.*]], label [[BB_6:%.*]]24; CHECK:       bb.5:25; CHECK-NEXT:    store i32 99, ptr @b, align 426; CHECK-NEXT:    br i1 [[C_3:%.*]], label [[BB_5]], label [[BB_2]]27; CHECK:       bb.6:28; CHECK-NEXT:    store i32 91, ptr @b, align 429; CHECK-NEXT:    br i1 [[C_5:%.*]], label [[SPLIT_CRIT_EDGE_2:%.*]], label [[BB_2]]30; CHECK:       split_crit_edge.2:31; CHECK-NEXT:    store i32 27, ptr @b, align 432; CHECK-NEXT:    br label [[EXIT:%.*]]33; CHECK:       bb.7:34; CHECK-NEXT:    br i1 [[C_4]], label [[INTERESTING:%.*]], label [[BB_8:%.*]]35; CHECK:       interesting:36; CHECK-NEXT:    store i32 9, ptr @b, align 437; CHECK-NEXT:    br i1 [[C_6:%.*]], label [[KILLER:%.*]], label [[BB_2]]38; CHECK:       killer:39; CHECK-NEXT:    store i32 23, ptr @b, align 440; CHECK-NEXT:    ret void41; CHECK:       bb.8:42; CHECK-NEXT:    store i32 19, ptr @b, align 443; CHECK-NEXT:    br i1 [[C_4]], label [[EXIT]], label [[BB_2]]44; CHECK:       exit:45; CHECK-NEXT:    ret void46;47entry:48  br label %bb.249 50bb.2:                                             ; preds = %bb.8, %interesting, %bb.6, %bb.5, %entry51  br i1 %c.0, label %bb.3, label %no.overwrite.exit52 53no.overwrite.exit:                                ; preds = %bb.254  ret void55 56bb.3:                                             ; preds = %bb.257  br i1 %c.2, label %bb.4, label %bb.758 59bb.4:                                             ; preds = %bb.360  br i1 %c.4, label %bb.5, label %bb.661 62bb.5:                                             ; preds = %bb.5, %bb.463  store i32 99, ptr @b, align 464  br i1 %c.3, label %bb.5, label %bb.265 66bb.6:                                             ; preds = %bb.467  store i32 91, ptr @b, align 468  br i1 %c.5, label %split_crit_edge.2, label %bb.269 70split_crit_edge.2:                                ; preds = %bb.671  store i32 27, ptr @b, align 472  br label %exit73 74bb.7:                                             ; preds = %bb.375  br i1 %c.4, label %interesting, label %bb.876 77interesting:                                      ; preds = %bb.778  store i32 9, ptr @b, align 479  br i1 %c.6, label %killer, label %bb.280 81killer:                                           ; preds = %interesting82  store i32 23, ptr @b, align 483  ret void84 85bb.8:                                             ; preds = %bb.786  store i32 19, ptr @b, align 487  br i1 %c.4, label %exit, label %bb.288 89exit:                                             ; preds = %bb.8, %split_crit_edge.290  ret void91}92