1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/test/Transforms/InstCombine/pr27703.ll
Guozhi Wei dc5a37bcd2 [InstCombine] Avoid combining the bitcast of a var that is used as both address and result of load instructions
This patch fixes https://llvm.org/bugs/show_bug.cgi?id=27703.

If there is a sequence of one or more load instructions, each loaded value is used as address of later load instruction, bitcast is necessary to change the value type, don't optimize it.

llvm-svn: 270135
2016-05-19 21:07:01 +00:00

21 lines
361 B
LLVM

; RUN: opt < %s -instcombine -S | FileCheck %s
define void @mem() {
bb:
br label %bb6
bb6:
%.0 = phi i8** [ undef, %bb ], [ %t2, %bb6 ]
%tmp = load i8*, i8** %.0, align 8
%bc = bitcast i8* %tmp to i8**
%t1 = load i8*, i8** %bc, align 8
%t2 = bitcast i8* %t1 to i8**
br label %bb6
bb206:
ret void
; CHECK: phi
; CHECK: bitcast
; CHECK: load
}