41 lines · plain
1; RUN: opt < %s -passes=gvn -S | FileCheck %s2 3@last = external global [65 x ptr]4 5define i32 @NextRootMove(i32 %wtm, i32 %x, i32 %y, i32 %z) {6entry:7 %A = alloca ptr8 %tmp17618 = load ptr, ptr getelementptr ([65 x ptr], ptr @last, i32 0, i32 1), align 49 store ptr %tmp17618, ptr %A10; CHECK: entry:11; CHECK-NEXT: alloca ptr12; CHECK-NEXT: %tmp17618 = load13; CHECK-NOT: load14; CHECK-NOT: phi15 br label %cond_true11616 17cond_true116:18 %cmp = icmp eq i32 %x, %y19 br i1 %cmp, label %cond_true128, label %cond_true14520 21cond_true128:22 %tmp17625 = load ptr, ptr getelementptr ([65 x ptr], ptr @last, i32 0, i32 1), align 423 store ptr %tmp17625, ptr %A24 %cmp1 = icmp eq i32 %x, %z25 br i1 %cmp1 , label %bb98.backedge, label %return.loopexit26 27bb98.backedge:28 br label %cond_true11629 30cond_true145:31 %tmp17631 = load ptr, ptr getelementptr ([65 x ptr], ptr @last, i32 0, i32 1), align 432 store ptr %tmp17631, ptr %A33 br i1 false, label %bb98.backedge, label %return.loopexit34 35return.loopexit:36 br label %return37 38return:39 ret i32 040}41