forked from OSchip/llvm-project
parent
dbb8cd1d34
commit
c1ddaaf5b1
|
|
@ -794,6 +794,9 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Promote v16i8, v8i16, v4i32 load, select, and, or, xor to v2i64.
|
// Promote v16i8, v8i16, v4i32 load, select, and, or, xor to v2i64.
|
||||||
|
// FIXME: This produces lots of inefficiencies in isel since
|
||||||
|
// we then need notice that most of our operands have been implicitly
|
||||||
|
// converted to v2i64.
|
||||||
for (unsigned i = (unsigned)MVT::v16i8; i != (unsigned)MVT::v2i64; i++) {
|
for (unsigned i = (unsigned)MVT::v16i8; i != (unsigned)MVT::v2i64; i++) {
|
||||||
MVT::SimpleValueType SVT = (MVT::SimpleValueType)i;
|
MVT::SimpleValueType SVT = (MVT::SimpleValueType)i;
|
||||||
EVT VT = SVT;
|
EVT VT = SVT;
|
||||||
|
|
@ -802,6 +805,7 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||||
if (!VT.is128BitVector()) {
|
if (!VT.is128BitVector()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
setOperationAction(ISD::AND, SVT, Promote);
|
setOperationAction(ISD::AND, SVT, Promote);
|
||||||
AddPromotedToType (ISD::AND, SVT, MVT::v2i64);
|
AddPromotedToType (ISD::AND, SVT, MVT::v2i64);
|
||||||
setOperationAction(ISD::OR, SVT, Promote);
|
setOperationAction(ISD::OR, SVT, Promote);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue