[llvm-commits] [llvm] r139400 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h lib/Target/X86/X86InstrFragmentsSIMD.td lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/avx-blend.ll
Duncan Sands
baldrick at free.fr
Sat Sep 10 04:38:21 PDT 2011
Hi Nadav,
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Fri Sep 9 15:29:17 2011
> @@ -1019,6 +1019,11 @@
> setOperationAction(ISD::SELECT, MVT::v4i64, Custom);
> setOperationAction(ISD::SELECT, MVT::v8f32, Custom);
>
> + setOperationAction(ISD::VSELECT, MVT::v4f64, Custom);
> + setOperationAction(ISD::VSELECT, MVT::v4i64, Custom);
> + setOperationAction(ISD::VSELECT, MVT::v8i32, Custom);
> + setOperationAction(ISD::VSELECT, MVT::v8f32, Custom);
> +
> setOperationAction(ISD::ADD, MVT::v4i64, Custom);
> setOperationAction(ISD::ADD, MVT::v8i32, Custom);
> setOperationAction(ISD::ADD, MVT::v16i16, Custom);
I don't see why you need to custom lower them at all. My understanding is that
custom lowering is for the case when the node (VSELECT) does *not* directly
correspond to a processor instruction. If it does directly correspond, like
here, then you can do everything via tablegen. Hopefully Bruno can explain how
this is done, because I don't know.
Ciao, Duncan.
More information about the llvm-commits
mailing list