; RUN: opt -S -O1 < %s | FileCheck %s @a = common global i32 0, align 4 ; @hook_me is weak, so GMR must not eliminate the reload of @a in @f, ; even though @hook_me doesn't mod or ref @a. ; Function Attrs: nounwind ssp uwtable define weak i32 @hook_me() { ret i32 0 } ; Function Attrs: nounwind ssp uwtable define i32 @f() { %1 = alloca i32, align 4 store i32 4, i32* @a, align 4 %2 = call i32 @hook_me() ; CHECK: load i32, i32* @a, align 4 %3 = load i32, i32* @a, align 4 %4 = add nsw i32 %3, %2 store i32 %4, i32* @a, align 4 %5 = load i32, i32* %1 ret i32 %5 }