brintos

brintos / llvm-project-archived public Read only

0
0
Text · 960 B · 4ed4e82 Raw
38 lines · plain
1; RUN: opt -disable-output -passes="loop-mssa(loop-rotate),print<memoryssa>" -verify-memoryssa < %s 2>&1 | FileCheck %s2 3; CHECK: entry:4; CHECK-NEXT: 3 = MemoryDef(liveOnEntry)5; CHECK-NEXT: store ptr null, ptr %p, align 86; CHECK-NEXT: MemoryUse(3)7; CHECK-NEXT: %val11 = load ptr, ptr %p, align 88 9; CHECK: loop.latch:10; CHECK-NEXT: 5 = MemoryPhi({loop.latch,1},{loop.latch.lr.ph,3})11; CHECK-NEXT: MemoryUse(5)12; CHECK-NEXT: %val2 = load ptr, ptr %p, align 813; CHECK-NEXT: 1 = MemoryDef(5)14; CHECK-NEXT: store ptr null, ptr %p, align 815; CHECK-NEXT: MemoryUse(1)16; CHECK-NEXT: %val1 = load ptr, ptr %p, align 817 18; CHECK: exit:19; CHECK-NEXT: 4 = MemoryPhi({entry,3},{loop.exit_crit_edge,1})20 21define void @test(ptr %p) {22entry:23  br label %loop24 25loop:26  store ptr null, ptr %p27  %val1 = load ptr, ptr %p28  %cmp = icmp eq ptr %val1, null29  br i1 %cmp, label %exit, label %loop.latch30 31loop.latch:32  %val2 = load ptr, ptr %p33  br label %loop34 35exit:36  ret void37}38