1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Transforms/Inline/inline-assume.ll
Vedant Kumar e39c08a06e [Inline] Use AssumptionCache from the right Function
This changes the behavior of AddAligntmentAssumptions to match its
comment. I.e, prove the asserted alignment in the context of the caller,
not the callee.

Thanks to Mehdi Amini for seeing the issue here! Also to Artur Pilipenko
who also saw a fix for the issue.

rdar://22521387

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

llvm-svn: 248390
2015-09-23 15:49:08 +00:00

32 lines
669 B
LLVM

; RUN: opt -inline -S -o - < %s | FileCheck %s
%0 = type opaque
%struct.Foo = type { i32, %0* }
; Test that we don't crash when inlining @bar (rdar://22521387).
define void @foo(%struct.Foo* align 4 %a) {
entry:
call fastcc void @bar(%struct.Foo* nonnull align 4 undef)
; CHECK: call void @llvm.assume(i1 undef)
; CHECK: unreachable
ret void
}
define fastcc void @bar(%struct.Foo* align 4 %a) {
; CHECK-LABEL: @bar
entry:
%b = getelementptr inbounds %struct.Foo, %struct.Foo* %a, i32 0, i32 1
br i1 undef, label %if.end, label %if.then.i.i
if.then.i.i:
call void @llvm.assume(i1 undef)
unreachable
if.end:
ret void
}
declare void @llvm.assume(i1)