summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-03-30 01:04:59 +0000
committerEric Christopher <echristo@apple.com>2010-03-30 01:04:59 +0000
commitc1ddaaf5b1bf1d3770079dc07b83c5151a0e155e (patch)
tree4936a37ea3d6ffd37e41dc557451a7cb14c938a6 /llvm/lib
parentdbb8cd1d34aa6393bb491a0dce2a7d1f94532492 (diff)
downloadbcm5719-llvm-c1ddaaf5b1bf1d3770079dc07b83c5151a0e155e.tar.gz
bcm5719-llvm-c1ddaaf5b1bf1d3770079dc07b83c5151a0e155e.zip
Add FIXME for operand promotion.
llvm-svn: 99859
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index c232585fe71..8a3e2336b2a 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -794,6 +794,9 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
}
// 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++) {
MVT::SimpleValueType SVT = (MVT::SimpleValueType)i;
EVT VT = SVT;
@@ -802,6 +805,7 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
if (!VT.is128BitVector()) {
continue;
}
+
setOperationAction(ISD::AND, SVT, Promote);
AddPromotedToType (ISD::AND, SVT, MVT::v2i64);
setOperationAction(ISD::OR, SVT, Promote);
OpenPOWER on IntegriCloud