[Mesa-dev] [PATCH] radeon/llvm: support for vectorised select

Tom Stellard tom at stellard.net
Wed Sep 12 07:57:42 PDT 2012


On Tue, Sep 11, 2012 at 10:34:18PM +0200, Vincent Lejeune wrote:
> Conflicts:
> 	src/gallium/drivers/radeon/R600ISelLowering.cpp

As Matt mentioned, you can drop this conflicts line in the commit message.
Other than that:

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>

> ---
>  src/gallium/drivers/radeon/R600ISelLowering.cpp | 13 +++++++++++++
>  src/gallium/drivers/radeon/R600ISelLowering.h   |  2 ++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/src/gallium/drivers/radeon/R600ISelLowering.cpp b/src/gallium/drivers/radeon/R600ISelLowering.cpp
> index 5642ee8..599a758 100644
> --- a/src/gallium/drivers/radeon/R600ISelLowering.cpp
> +++ b/src/gallium/drivers/radeon/R600ISelLowering.cpp
> @@ -48,10 +48,23 @@ R600TargetLowering::R600TargetLowering(TargetMachine &TM) :
>  
>    setOperationAction(ISD::SETCC, MVT::i32, Custom);
>    setOperationAction(ISD::SETCC, MVT::f32, Custom);
> +  setOperationAction(ISD::SETCC, MVT::v4i32, Expand);
>    setOperationAction(ISD::FP_TO_UINT, MVT::i1, Custom);
> +  
> +  setOperationAction(ISD::SELECT, MVT::v4f32, Expand);
> +  setOperationAction(ISD::SELECT, MVT::v4i32, Expand);
> +  
> +  setOperationAction(ISD::VSELECT, MVT::v4f32, Expand);
> +  setOperationAction(ISD::VSELECT, MVT::v4i32, Expand);
>    setSchedulingPreference(Sched::VLIW);
>  }
>  
> +EVT R600TargetLowering::getSetCCResultType(EVT VT) const
> +{
> +   if (!VT.isVector()) return MVT::i32;
> +   return VT.changeVectorElementTypeToInteger();
> +}
> +
>  MachineBasicBlock * R600TargetLowering::EmitInstrWithCustomInserter(
>      MachineInstr * MI, MachineBasicBlock * BB) const
>  {
> diff --git a/src/gallium/drivers/radeon/R600ISelLowering.h b/src/gallium/drivers/radeon/R600ISelLowering.h
> index 49ea272..b090946 100644
> --- a/src/gallium/drivers/radeon/R600ISelLowering.h
> +++ b/src/gallium/drivers/radeon/R600ISelLowering.h
> @@ -30,6 +30,8 @@ public:
>    void ReplaceNodeResults(SDNode * N,
>        SmallVectorImpl<SDValue> &Results,
>        SelectionDAG &DAG) const;
> +  
> +  EVT getSetCCResultType(EVT VT) const;
>  private:
>    const R600InstrInfo * TII;
>  
> -- 
> 1.7.11.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list