; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt -passes=gvn -S -o - < %s | FileCheck %s

target triple = "x86_64-unknown-linux-gnu"

define i64 @foo(ptr %arrayidx) {
; CHECK-LABEL: define i64 @foo(
; CHECK-SAME: ptr [[ARRAYIDX:%.*]]) {
; CHECK-NEXT:  [[ENTRY:.*:]]
; CHECK-NEXT:    [[P:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8
; CHECK-NEXT:    [[CMPNULL:%.*]] = icmp eq ptr [[P]], null
; CHECK-NEXT:    [[TMP0:%.*]] = ptrtoint ptr [[P]] to i64
; CHECK-NEXT:    br label %[[BB2:.*]]
; CHECK:       [[ENTRY2:.*:]]
; CHECK-NEXT:    br label %[[BB2]]
; CHECK:       [[BB2]]:
; CHECK-NEXT:    ret i64 [[TMP0]]
;
entry:
  %p = load ptr, ptr %arrayidx, align 8
  %cmpnull = icmp eq ptr %p, null
  br label %BB2

entry2:                                           ; No predecessors!
  br label %BB2

BB2:                                              ; preds = %entry2, %entry
  %load = load i64, ptr %arrayidx, align 8
  ret i64 %load
}
