brintos

brintos / llvm-project-archived public Read only

0
0
Text · 762 B · 94237a7 Raw
41 lines · plain
1; RUN: opt -S -O2 -enable-gvn-hoist < %s | FileCheck %s2 3; Check that the inlined loads are hoisted.4; CHECK-LABEL: define i32 @fun(5; CHECK-LABEL: entry:6; CHECK: load i32, ptr @A7; CHECK: if.then:8 9@A = external global i3210@B = external global i3211@C = external global i3212@D = external global i3213@E = external global i3214 15define i32 @loadA() {16   %a = load i32, ptr @A17   ret i32 %a18}19 20define i32 @fun(i1 %c) {21entry:22  br i1 %c, label %if.then, label %if.else23 24if.then:25  store i32 1, ptr @B26  %call1 = call i32 @loadA()27  store i32 2, ptr @C28  br label %if.endif29 30if.else:31  store i32 2, ptr @D32  %call2 = call i32 @loadA()33  store i32 1, ptr @E34  br label %if.endif35 36if.endif:37  %ret = phi i32 [ %call1, %if.then ], [ %call2, %if.else ]38  ret i32 %ret39}40 41