aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon/R600ISelLowering.cpp
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2012-08-02 19:42:50 +0000
committerTom Stellard <[email protected]>2012-08-02 20:12:06 +0000
commitf7fcaa07df7b3aab124576dec346ae4fa7c6715b (patch)
treefc619f976bfe1cb8b85e771d758c2b2b864e407f /src/gallium/drivers/radeon/R600ISelLowering.cpp
parenta5ac8ee2c5e7dad3985b06c620d96cf077804ff9 (diff)
radeon/llvm: Remove CMOVLOG DAG node
Diffstat (limited to 'src/gallium/drivers/radeon/R600ISelLowering.cpp')
-rw-r--r--src/gallium/drivers/radeon/R600ISelLowering.cpp6
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);
}