From c1ddaaf5b1bf1d3770079dc07b83c5151a0e155e Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Tue, 30 Mar 2010 01:04:59 +0000 Subject: [PATCH] Add FIXME for operand promotion. llvm-svn: 99859 --- llvm/lib/Target/X86/X86ISelLowering.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index c232585fe71c..8a3e2336b2a7 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);