llvm-6502/test/Transforms/SCCP/crash.ll
David Majnemer 284c49c36f [SCCP] Turn loads of null into undef instead of zero initialized values
Surprisingly, this is a correctness issue: the mmx type exists for
calling convention purposes, LLVM doesn't have a zero representation for
them.

This partially fixes PR23999.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241142 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 05:37:57 +00:00

35 lines
738 B
LLVM

; RUN: opt -sccp -S < %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-apple-darwin10.0"
define void @test1(i8 %arg) {
entry:
br i1 undef, label %return, label %bb
bb:
br label %bb34
bb23:
%c = icmp eq i8 %arg, undef
br i1 %c, label %bb34, label %bb23
bb34:
%Kind.1 = phi i32 [ undef, %bb ], [ %ins174, %bb23 ]
%mask173 = or i32 %Kind.1, 7
%ins174 = and i32 %mask173, -249
br label %bb23
return:
ret void
}
define i32 @test2([4 x i32] %A) {
%B = extractvalue [4 x i32] %A, 1
ret i32 %B
}
define x86_mmx @test3() {
%load = load x86_mmx, x86_mmx* null
ret x86_mmx %load
}