blob: a663350aa011c83f238690d36f281efe9a6f9013 [file] [log] [blame] [edit]
; 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
}