1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/test/Transforms/GVN/pr24397.ll
David Majnemer 3ac7e03604 [PHITransAddr] Don't assume that instruction operands are translatable
We can only PHI translate instructions.  In our attempt to PHI translate
a bitcast, we attempt to translate its operand; however, the operand
might be an argument or a global instead of an instruction.  Benignly
bail out when this happens.

This fixes PR24397.

Differential Revision: http://reviews.llvm.org/D11879

llvm-svn: 244418
2015-08-09 15:43:02 +00:00

19 lines
486 B
LLVM

; RUN: opt -basicaa -gvn -disable-output < %s
target triple = "x86_64-unknown-linux-gnu"
define i64 @foo(i64** %arrayidx) {
entry:
%p = load i64*, i64** %arrayidx, align 8
%cmpnull = icmp eq i64* %p, null
br label %BB2
entry2: ; No predecessors!
br label %BB2
BB2: ; preds = %entry2, %entry
%bc = bitcast i64** %arrayidx to i64*
%load = load i64, i64* %bc, align 8
ret i64 %load
}