brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 254fb11 Raw
68 lines · plain
1; RUN: opt -disable-output -aa-pipeline=basic-aa -passes='loop-mssa(licm),print<memoryssa>' < %s 2>&1 | FileCheck %s2 3; CHECK-LABEL: @f(i1 %arg)4 5; CHECK: lbl1:6; CHECK-NEXT: ; [[NO4:.*]] = MemoryPhi({entry,liveOnEntry},{lbl1.backedge,[[NO9:.*]]})7; CHECK-NEXT: ; [[NO2:.*]] = MemoryDef([[NO4]])8; CHECK-NEXT:  call void @g()9; CHECK-NEXT:  br i1 %arg, label %for.end, label %if.else10 11; CHECK: for.end:12; CHECK-NEXT:  br i1 %arg, label %lbl3, label %lbl213 14; CHECK: lbl2:15; CHECK-NEXT: ; [[NO8:.*]] = MemoryPhi({lbl3,[[NO7:.*]]},{for.end,[[NO2]]})16; CHECK-NEXT:  br label %lbl317 18; CHECK: lbl3:19; CHECK-NEXT: [[NO7]] = MemoryPhi({lbl2,[[NO8]]},{for.end,2})20 21; CHECK: cleanup:22; CHECK-NEXT: MemoryUse([[NO2]])23; CHECK-NEXT:  %cleanup.dest = load i32, ptr undef, align 124 25; CHECK: lbl1.backedge:26; CHECK-NEXT:  [[NO9]] = MemoryPhi({cleanup,[[NO7]]},{if.else,2})27; CHECK-NEXT:   br label %lbl128 29; CHECK: cleanup.cont:30; CHECK-NEXT: ; [[NO6:.*]] = MemoryDef([[NO7]])31; CHECK-NEXT:   store i16 undef, ptr %e, align 132; CHECK-NEXT:  3 = MemoryDef([[NO6]])33; CHECK-NEXT:   call void @g()34 35define void @f(i1 %arg) {36entry:37  %e = alloca i16, align 138  br label %lbl139 40lbl1:                                             ; preds = %if.else, %cleanup, %entry41  store i16 undef, ptr %e, align 142  call void @g()43  br i1 %arg, label %for.end, label %if.else44 45for.end:                                          ; preds = %lbl146  br i1 %arg, label %lbl3, label %lbl247 48lbl2:                                             ; preds = %lbl3, %for.end49  br label %lbl350 51lbl3:                                             ; preds = %lbl2, %for.end52  br i1 %arg, label %lbl2, label %cleanup53 54cleanup:                                          ; preds = %lbl355  %cleanup.dest = load i32, ptr undef, align 156  %switch = icmp ult i32 %cleanup.dest, 157  br i1 %switch, label %cleanup.cont, label %lbl158 59cleanup.cont:                                     ; preds = %cleanup60  call void @g()61  ret void62 63if.else:                                          ; preds = %lbl164  br label %lbl165}66 67declare void @g()68