diff options
author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-27 15:15:58 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-27 15:15:58 +0000 |
commit | abdf259d487163e72081a8cf4991b1617206b41e (patch) | |
tree | 9fad9a5d5dd8c4ff54af48edad9c8cc26dd5fda1 /test/Transforms/Sink/basic.ll | |
parent | 59161dfae3225dd9151afbc76ca9074598c0c605 (diff) |
Diffstat (limited to 'test/Transforms/Sink/basic.ll')
-rw-r--r-- | test/Transforms/Sink/basic.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/Transforms/Sink/basic.ll b/test/Transforms/Sink/basic.ll new file mode 100644 index 0000000000000..beb9481c840f0 --- /dev/null +++ b/test/Transforms/Sink/basic.ll @@ -0,0 +1,22 @@ +; RUN: opt < %s -sink -S | FileCheck %s + +@A = external global i32 +@B = external global i32 + +; Sink should sink the load past the store (which doesn't overlap) into +; the block that uses it. + +; CHECK: @foo +; CHECK: true: +; CHECK-NEXT: %l = load i32* @A +; CHECK-NEXT: ret i32 %l + +define i32 @foo(i1 %z) { + %l = load i32* @A + store i32 0, i32* @B + br i1 %z, label %true, label %false +true: + ret i32 %l +false: + ret i32 0 +} |