diff options
author | Tom Stellard <[email protected]> | 2012-08-02 19:42:50 +0000 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-08-02 20:12:06 +0000 |
commit | f7fcaa07df7b3aab124576dec346ae4fa7c6715b (patch) | |
tree | fc619f976bfe1cb8b85e771d758c2b2b864e407f /src/gallium/drivers/radeon/R600ISelLowering.cpp | |
parent | a5ac8ee2c5e7dad3985b06c620d96cf077804ff9 (diff) |
radeon/llvm: Remove CMOVLOG DAG node
Diffstat (limited to 'src/gallium/drivers/radeon/R600ISelLowering.cpp')
-rw-r--r-- | src/gallium/drivers/radeon/R600ISelLowering.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/R600ISelLowering.cpp b/src/gallium/drivers/radeon/R600ISelLowering.cpp index 768c7db3140..4d8c928f49b 100644 --- a/src/gallium/drivers/radeon/R600ISelLowering.cpp +++ b/src/gallium/drivers/radeon/R600ISelLowering.cpp @@ -426,6 +426,12 @@ SDValue R600TargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const // SELECT_CC operations. SDValue Cond = DAG.getNode(ISD::SELECT_CC, DL, VT, LHS, RHS, HWTrue, HWFalse, CC); + // Convert floating point condition to i1 + if (VT == MVT::f32) { + Cond = DAG.getNode(ISD::FP_TO_SINT, DL, MVT::i32, + DAG.getNode(ISD::FNEG, DL, VT, Cond)); + } + return DAG.getNode(ISD::SELECT, DL, VT, Cond, True, False); } |