[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