X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FX86%2FX86ISelLowering.cpp;h=bd1ee55345e196eff31fa4d49d6e7b42b456a13a;hb=ddf89566a93081cb230bb9406a72ab2d3eada4a7;hp=2b58826fc8bce049f59a96c199a89593b8f1022b;hpb=41c5a3918f62a46671c972b1069072f9d9173605;p=oota-llvm.git diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 2b58826fc8b..bd1ee55345e 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -82,6 +82,14 @@ X86TargetLowering::X86TargetLowering(TargetMachine &TM) setLoadXAction(ISD::SEXTLOAD, MVT::i1, Expand); + // We don't accept any truncstore of integer registers. + setTruncStoreAction(MVT::i64, MVT::i32, Expand); + setTruncStoreAction(MVT::i64, MVT::i16, Expand); + setTruncStoreAction(MVT::i64, MVT::i8 , Expand); + setTruncStoreAction(MVT::i32, MVT::i16, Expand); + setTruncStoreAction(MVT::i32, MVT::i8 , Expand); + setTruncStoreAction(MVT::i16, MVT::i8, Expand); + // Promote all UINT_TO_FP to larger SINT_TO_FP's, as X86 doesn't have this // operation. setOperationAction(ISD::UINT_TO_FP , MVT::i1 , Promote); @@ -638,6 +646,8 @@ X86TargetLowering::X86TargetLowering(TargetMachine &TM) AddPromotedToType (ISD::SELECT, (MVT::ValueType)VT, MVT::v2i64); } + setTruncStoreAction(MVT::f64, MVT::f32, Expand); + // Custom lower v2i64 and v2f64 selects. setOperationAction(ISD::LOAD, MVT::v2f64, Legal); setOperationAction(ISD::LOAD, MVT::v2i64, Legal);