brintos

brintos / llvm-project-archived public Read only

0
0
Text · 992 B · 418b40c Raw
51 lines · plain
1; RUN: opt < %s -passes=licm -S | FileCheck %s2 3; Test moved from sinking.ll, as it tests sinking of a store who alone touches4; a memory location in a loop.5; Store can be sunk out of exit block containing indirectbr instructions after6; D50925. Updated to use an argument instead of undef, due to PR38989.7define void @test12(ptr %ptr, ptr %arg) {8; CHECK-LABEL: @test129; CHECK: store10; CHECK-NEXT: br label %lab411  br label %lab412 13lab4:14  br label %lab2015 16lab5:17  br label %lab2018 19lab6:20  br label %lab421 22lab7:23  br i1 false, label %lab8, label %lab1324 25lab8:26  br i1 true, label %lab13, label %lab1027 28lab10:29  br label %lab730 31lab13:32  ret void33 34lab20:35  br label %lab2136 37lab21:38; CHECK: lab21:39; CHECK-NOT: store40; CHECK: br i1 false, label %lab21, label %lab2241  store i32 36127957, ptr %ptr, align 442  br i1 false, label %lab21, label %lab2243 44lab22:45; CHECK: lab22:46; CHECK-NOT: store47; CHECK-NEXT: indirectbr ptr %arg 48  indirectbr ptr %arg, [label %lab5, label %lab6, label %lab7]49}50 51