1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -basic-aa -dse -S | FileCheck %s 3 4target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" 5declare void @unknown_func() 6 7define void @test6(i32* noalias %P) { 8; CHECK-LABEL: @test6( 9; CHECK-NEXT: store i32 0, i32* [[P:%.*]] 10; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB2:%.*]] 11; CHECK: bb1: 12; CHECK-NEXT: br label [[BB3:%.*]] 13; CHECK: bb2: 14; CHECK-NEXT: call void @unknown_func() 15; CHECK-NEXT: br label [[BB3]] 16; CHECK: bb3: 17; CHECK-NEXT: store i32 0, i32* [[P]] 18; CHECK-NEXT: ret void 19; 20 store i32 0, i32* %P 21 br i1 true, label %bb1, label %bb2 22bb1: 23 br label %bb3 24bb2: 25 call void @unknown_func() 26 br label %bb3 27bb3: 28 store i32 0, i32* %P 29 ret void 30} 31 32define void @test23(i32* noalias %P) { 33; CHECK-LABEL: @test23( 34; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB2:%.*]] 35; CHECK: bb1: 36; CHECK-NEXT: br label [[BB3:%.*]] 37; CHECK: bb2: 38; CHECK-NEXT: call void @unknown_func() 39; CHECK-NEXT: br label [[BB3]] 40; CHECK: bb3: 41; CHECK-NEXT: store i32 0, i32* [[P:%.*]] 42; CHECK-NEXT: ret void 43; 44 br i1 true, label %bb1, label %bb2 45bb1: 46 store i32 0, i32* %P 47 br label %bb3 48bb2: 49 call void @unknown_func() 50 br label %bb3 51bb3: 52 store i32 0, i32* %P 53 ret void 54} 55 56 57define void @test24(i32* noalias %P) { 58; CHECK-LABEL: @test24( 59; CHECK-NEXT: br i1 true, label [[BB2:%.*]], label [[BB1:%.*]] 60; CHECK: bb1: 61; CHECK-NEXT: br label [[BB3:%.*]] 62; CHECK: bb2: 63; CHECK-NEXT: call void @unknown_func() 64; CHECK-NEXT: br label [[BB3]] 65; CHECK: bb3: 66; CHECK-NEXT: store i32 0, i32* [[P:%.*]] 67; CHECK-NEXT: ret void 68; 69 br i1 true, label %bb2, label %bb1 70bb1: 71 store i32 0, i32* %P 72 br label %bb3 73bb2: 74 call void @unknown_func() 75 br label %bb3 76bb3: 77 store i32 0, i32* %P 78 ret void 79} 80