diff options
Diffstat (limited to 'llvm/test/Transforms/GVN/hoist-pr28933.ll')
-rw-r--r-- | llvm/test/Transforms/GVN/hoist-pr28933.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GVN/hoist-pr28933.ll b/llvm/test/Transforms/GVN/hoist-pr28933.ll new file mode 100644 index 00000000000..95df3f220f2 --- /dev/null +++ b/llvm/test/Transforms/GVN/hoist-pr28933.ll @@ -0,0 +1,21 @@ +; RUN: opt -S -gvn-hoist -verify-memoryssa < %s | FileCheck %s + +; Check that we end up with one load and one store, in the right order +; CHECK-LABEL: define void @test_it( +; CHECK: store +; CHECK-NEXT: load +; CHECK-NOT: store +; CHECK-NOT: load + +%rec894.0.1.2.3.12 = type { i16 } + +@a = external global %rec894.0.1.2.3.12 + +define void @test_it() { +bb2: + store i16 undef, i16* getelementptr inbounds (%rec894.0.1.2.3.12, %rec894.0.1.2.3.12* @a, i16 0, i32 0), align 1 + %_tmp61 = load i16, i16* getelementptr inbounds (%rec894.0.1.2.3.12, %rec894.0.1.2.3.12* @a, i16 0, i32 0), align 1 + store i16 undef, i16* getelementptr inbounds (%rec894.0.1.2.3.12, %rec894.0.1.2.3.12* @a, i16 0, i32 0), align 1 + %_tmp92 = load i16, i16* getelementptr inbounds (%rec894.0.1.2.3.12, %rec894.0.1.2.3.12* @a, i16 0, i32 0), align 1 + ret void +} |