On Tue, Sep 04, 2012 at 05:04:29PM +0200, Vincent Lejeune wrote: > Conflicts: > src/gallium/drivers/radeon/R600ISelLowering.cpp > --- > src/gallium/drivers/radeon/R600ISelLowering.cpp | 20 ++++++++++++++++++++ > src/gallium/drivers/radeon/R600ISelLowering.h | 6 ++++-- > 2 files changed, 24 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/radeon/R600ISelLowering.cpp > b/src/gallium/drivers/radeon/R600ISelLowering.cpp > index 2bab51c..5296062 100644 > --- a/src/gallium/drivers/radeon/R600ISelLowering.cpp > +++ b/src/gallium/drivers/radeon/R600ISelLowering.cpp > @@ -48,6 +48,7 @@ R600TargetLowering::R600TargetLowering(TargetMachine &TM) : > > setOperationAction(ISD::SETCC, MVT::i32, Custom); > setOperationAction(ISD::SETCC, MVT::f32, Custom); > + setOperationAction(ISD::FP_TO_UINT, MVT::i1, Custom); > setSchedulingPreference(Sched::VLIW); > } > > @@ -330,6 +331,25 @@ SDValue R600TargetLowering::LowerOperation(SDValue Op, > SelectionDAG &DAG) const > return SDValue(); > } > > +void R600TargetLowering::ReplaceNodeResults(SDNode *N, > SmallVectorImpl<SDValue> &Results, SelectionDAG &DAG) const
Wrap line at 80 characters. > +{ > + switch (N->getOpcode()) { > + default: return; > + case ISD::FP_TO_UINT: Results.push_back(LowerFPTOUINT(N->getOperand(0), > DAG)); > + } > +} > + > +SDValue R600TargetLowering::LowerFPTOUINT(SDValue Op, SelectionDAG &DAG) > const > +{ > + return DAG.getNode( > + ISD::SETCC, > + Op.getDebugLoc(), > + MVT::i1, > + Op, DAG.getConstantFP(0.0f, MVT::f32), > + DAG.getCondCode(ISD::SETNE) > + ); > +} > + > SDValue R600TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const > { > SDValue Chain = Op.getOperand(0); > diff --git a/src/gallium/drivers/radeon/R600ISelLowering.h > b/src/gallium/drivers/radeon/R600ISelLowering.h > index 2eb7edd..49ea272 100644 > --- a/src/gallium/drivers/radeon/R600ISelLowering.h > +++ b/src/gallium/drivers/radeon/R600ISelLowering.h > @@ -27,7 +27,9 @@ public: > virtual MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr *MI, > MachineBasicBlock * BB) const; > virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const; > - > + void ReplaceNodeResults(SDNode * N, > + SmallVectorImpl<SDValue> &Results, > + SelectionDAG &DAG) const; > private: > const R600InstrInfo * TII; > > @@ -48,7 +50,7 @@ private: > > SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const; > SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const; > - > + SDValue LowerFPTOUINT(SDValue Op, SelectionDAG &DAG) const; > }; > > } // End namespace llvm; > -- > 1.7.11.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev