return Result;
}
case ISD::TRUNCATE:
- // Fold TRUNCATE (LOAD P) into a smaller load from P.
- // FIXME: This should be performed by the DAGCombiner.
- if (isFoldableLoad(N.getOperand(0), SDOperand())) {
- switch (N.getValueType()) {
- default: assert(0 && "Unknown truncate!");
- case MVT::i1:
- case MVT::i8: Opc = X86::MOV8rm; break;
- case MVT::i16: Opc = X86::MOV16rm; break;
- }
- X86AddressMode AM;
- EmitFoldedLoad(N.getOperand(0), AM);
- addFullAddress(BuildMI(BB, Opc, 4, Result), AM);
- return Result;
- }
-
// Handle cast of LARGER int to SMALLER int using a move to EAX followed by
// a move out of AX or AL.
switch (N.getOperand(0).getValueType()) {