194d62633SNikita Popov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 20676acb6SBjorn Pettersson; RUN: opt -S -passes=globalopt < %s | FileCheck %s 394d62633SNikita Popov 494d62633SNikita Popov; The global is stored once through a trivial GEP instruction (rather than 594d62633SNikita Popov; GEP constant expression) here. We should still be able to optimize it. 694d62633SNikita Popov 794d62633SNikita Popov%s = type { i32 } 894d62633SNikita Popov 994d62633SNikita Popov@g = internal unnamed_addr global i32 undef 1094d62633SNikita Popov 1194d62633SNikita Popov; CHECK-NOT: @g = 1294d62633SNikita Popov 1394d62633SNikita Popovdefine void @store() { 1494d62633SNikita Popov; CHECK-LABEL: @store( 1594d62633SNikita Popov; CHECK-NEXT: ret void 1694d62633SNikita Popov; 17*d586bd5cSNikita Popov store i32 1, ptr @g, align 4 1894d62633SNikita Popov ret void 1994d62633SNikita Popov} 2094d62633SNikita Popov 2194d62633SNikita Popovdefine i32 @load() { 2294d62633SNikita Popov; CHECK-LABEL: @load( 2394d62633SNikita Popov; CHECK-NEXT: call fastcc void @store() 2494d62633SNikita Popov; CHECK-NEXT: ret i32 1 2594d62633SNikita Popov; 2694d62633SNikita Popov call fastcc void @store() 27*d586bd5cSNikita Popov %v = load i32, ptr @g 2894d62633SNikita Popov ret i32 %v 2994d62633SNikita Popov} 30