xref: /llvm-project/llvm/test/Transforms/GVN/load-constant-mem.ll (revision 23abf931386002fb9d2c11d026846475c224c641)
1; RUN: opt < %s -passes=gvn,instcombine -S | FileCheck %s
2; PR4189
3@G = external constant [4 x i32]
4
5define i32 @test(ptr %p, i32 %i) nounwind {
6entry:
7	%P = getelementptr [4 x i32], ptr @G, i32 0, i32 %i
8	%A = load i32, ptr %P
9	store i8 4, ptr %p
10	%B = load i32, ptr %P
11	%C = sub i32 %A, %B
12	ret i32 %C
13}
14
15; CHECK: define i32 @test(ptr %p, i32 %i) #0 {
16; CHECK-NEXT: entry:
17; CHECK-NEXT:   store i8 4, ptr %p, align 1
18; CHECK-NEXT:   ret i32 0
19; CHECK-NEXT: }
20