brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 510a528 Raw
98 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2;RUN: opt -passes=mem2reg -S < %s | FileCheck %s3 4declare i1 @cond()5 6define i32 @foo() {7; CHECK-LABEL: @foo(8; CHECK-NEXT:  Entry:9; CHECK-NEXT:    [[C1:%.*]] = call i1 @cond()10; CHECK-NEXT:    br i1 [[C1]], label [[STORE1:%.*]], label [[STORE2:%.*]]11; CHECK:       Block1:12; CHECK-NEXT:    br label [[JOIN:%.*]]13; CHECK:       Block2:14; CHECK-NEXT:    br label [[JOIN]]15; CHECK:       Block3:16; CHECK-NEXT:    br label [[JOIN]]17; CHECK:       Block4:18; CHECK-NEXT:    br label [[JOIN]]19; CHECK:       Block5:20; CHECK-NEXT:    br label [[JOIN]]21; CHECK:       Store1:22; CHECK-NEXT:    br label [[JOIN]]23; CHECK:       Block6:24; CHECK-NEXT:    br label [[JOIN]]25; CHECK:       Block7:26; CHECK-NEXT:    br label [[JOIN]]27; CHECK:       Block8:28; CHECK-NEXT:    br label [[JOIN]]29; CHECK:       Block9:30; CHECK-NEXT:    br label [[JOIN]]31; CHECK:       Block10:32; CHECK-NEXT:    br label [[JOIN]]33; CHECK:       Store2:34; CHECK-NEXT:    br label [[JOIN]]35; CHECK:       Block11:36; CHECK-NEXT:    br label [[JOIN]]37; CHECK:       Block12:38; CHECK-NEXT:    br label [[JOIN]]39; CHECK:       Block13:40; CHECK-NEXT:    br label [[JOIN]]41; CHECK:       Block14:42; CHECK-NEXT:    br label [[JOIN]]43; CHECK:       Block15:44; CHECK-NEXT:    br label [[JOIN]]45; CHECK:       Block16:46; CHECK-NEXT:    br label [[JOIN]]47; CHECK:       Join:48; CHECK-NEXT:    [[VAL_0:%.*]] = phi i32 [ 1, [[STORE1]] ], [ 2, [[STORE2]] ], [ poison, [[BLOCK1:%.*]] ], [ poison, [[BLOCK2:%.*]] ], [ poison, [[BLOCK3:%.*]] ], [ poison, [[BLOCK4:%.*]] ], [ poison, [[BLOCK5:%.*]] ], [ poison, [[BLOCK6:%.*]] ], [ poison, [[BLOCK7:%.*]] ], [ poison, [[BLOCK8:%.*]] ], [ poison, [[BLOCK9:%.*]] ], [ poison, [[BLOCK10:%.*]] ], [ poison, [[BLOCK11:%.*]] ], [ poison, [[BLOCK12:%.*]] ], [ poison, [[BLOCK13:%.*]] ], [ poison, [[BLOCK14:%.*]] ], [ poison, [[BLOCK15:%.*]] ], [ poison, [[BLOCK16:%.*]] ]49; CHECK-NEXT:    ret i32 [[VAL_0]]50;51Entry:52  %val = alloca i3253  %c1 = call i1 @cond()54  br i1 %c1, label %Store1, label %Store255Block1:56  br label %Join57Block2:58  br label %Join59Block3:60  br label %Join61Block4:62  br label %Join63Block5:64  br label %Join65Store1:66  store i32 1, ptr %val67  br label %Join68Block6:69  br label %Join70Block7:71  br label %Join72Block8:73  br label %Join74Block9:75  br label %Join76Block10:77  br label %Join78Store2:79  store i32 2, ptr %val80  br label %Join81Block11:82  br label %Join83Block12:84  br label %Join85Block13:86  br label %Join87Block14:88  br label %Join89Block15:90  br label %Join91Block16:92  br label %Join93Join:94; Phi inserted here should have operands appended deterministically95  %result = load i32, ptr %val96  ret i32 %result97}98