1; RUN: opt -S -O2 -enable-gvn-hoist < %s | FileCheck %s 2 3; Check that the inlined loads are hoisted. 4; CHECK-LABEL: define i32 @fun( 5; CHECK-LABEL: entry: 6; CHECK: load i32, ptr @A 7; CHECK: if.then: 8 9@A = external global i32 10@B = external global i32 11@C = external global i32 12@D = external global i32 13@E = external global i32 14 15define i32 @loadA() { 16 %a = load i32, ptr @A 17 ret i32 %a 18} 19 20define i32 @fun(i1 %c) { 21entry: 22 br i1 %c, label %if.then, label %if.else 23 24if.then: 25 store i32 1, ptr @B 26 %call1 = call i32 @loadA() 27 store i32 2, ptr @C 28 br label %if.endif 29 30if.else: 31 store i32 2, ptr @D 32 %call2 = call i32 @loadA() 33 store i32 1, ptr @E 34 br label %if.endif 35 36if.endif: 37 %ret = phi i32 [ %call1, %if.then ], [ %call2, %if.else ] 38 ret i32 %ret 39} 40 41