brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 60a8c8b Raw
48 lines · plain
1; RUN: opt -disable-output -passes="loop-mssa(licm,loop-rotate,licm,simple-loop-unswitch<nontrivial>),print<memoryssa>" -verify-memoryssa < %s 2>&1 | FileCheck %s2 3; Make sure that we update MSSA correctly in this case.4 5; CHECK-LABEL: MemorySSA for function: test6; CHECK: for.header2.preheader:7; CHECK-NEXT: 11 = MemoryPhi({entry.split,liveOnEntry},{for.header,9})8; CHECK: for.body.us:9; CHECK-NEXT: 7 = MemoryPhi({for.header2.preheader.split.us,11},{for.header2.us,9})10; CHECK-NEXT: 8 = MemoryDef(7)->711; CHECK-NEXT: store i32 0, ptr %p, align 412; CHECK-NEXT: 9 = MemoryDef(8)->813; CHECK-NEXT: store i8 0, ptr %p, align 114 15define void @test(ptr %p, i1 %cond) {16entry:17  br label %for.header18 19for.header:20  br i1 false, label %exit.loopexit1, label %for.header2.preheader21 22for.header2.preheader:23  br label %for.body24 25for.header2:26  br i1 false, label %for.latch, label %for.body27 28for.body:29  store i32 0, ptr %p, align 430  store i8 0, ptr %p, align 131  br i1 %cond, label %for.header2, label %exit.loopexit32 33for.latch:34  br i1 false, label %for.inc, label %exit.loopexit135 36for.inc:37  br label %for.header38 39exit.loopexit:40  br label %exit41 42exit.loopexit1:43  br label %exit44 45exit:46  ret void47}48