Handle loading from/storing to undef pointers on SPU by inserting a

random load/store, rather than crashing llc.

llvm-svn: 105710
This commit is contained in:
Kalle Raiskila 2010-06-09 08:29:41 +00:00
parent af80f66997
commit 056113a211
2 changed files with 8 additions and 1 deletions

View File

@ -606,7 +606,9 @@ SPUDAGToDAGISel::DFormAddressPredicate(SDNode *Op, SDValue N, SDValue &Base,
Base = CurDAG->getTargetConstant(0, N.getValueType());
Index = N;
return true;
} else if (Opc == ISD::Register || Opc == ISD::CopyFromReg) {
} else if (Opc == ISD::Register
||Opc == ISD::CopyFromReg
||Opc == ISD::UNDEF) {
unsigned OpOpc = Op->getOpcode();
if (OpOpc == ISD::STORE || OpOpc == ISD::LOAD) {

View File

@ -31,3 +31,8 @@ define <4 x i32> @func() {
ret <4 x i32> %rv3
}
define <4 x float> @load_undef(){
;CHECK lqd $3, 0($3)
%val = load <4 x float>* undef
ret <4 x float> %val
}