This change seems unrelated as its floating point related and rdrand is integer.<br><br>@@ -14165,22 +14195,6 @@ static SDValue checkFlaggedOrCombine(SDValue Or, X86::CondCode &CC,<br>   return DAG.getNode(X86ISD::PTEST, DL, MVT::i32, VecIn, VecIn);<br>
 }<br> <br>-static bool isValidFCMOVCondition(X86::CondCode CC) {<br>-  switch (CC) {<br>-  default:<br>-    return false;<br>-  case X86::COND_B:<br>-  case X86::COND_BE:<br>-  case X86::COND_E:<br>-  case X86::COND_P:<br>
-  case X86::COND_AE:<br>-  case X86::COND_A:<br>-  case X86::COND_NE:<br>-  case X86::COND_NP:<br>-    return true;<br>-  }<br>-}<br>-<br> /// Optimize X86ISD::CMOV [LHS, RHS, CONDCODE (e.g. X86::COND_NE), CONDVAL]<br> static SDValue PerformCMOVCombine(SDNode *N, SelectionDAG &DAG,<br>
                                   TargetLowering::DAGCombinerInfo &DCI,<br>@@ -14212,7 +14226,7 @@ static SDValue PerformCMOVCombine(SDNode *N, SelectionDAG &DAG,<br>   Flags = checkBoolTestSetCCCombine(Cond, CC);<br>
   if (Flags.getNode() &&<br>       // Extra check as FCMOV only supports a subset of X86 cond.<br>-      (FalseOp.getValueType() != MVT::f80 || isValidFCMOVCondition(CC))) {<br>+      (FalseOp.getValueType() != MVT::f80 || hasFPCMov(CC))) {<br>
     SDValue Ops[] = { FalseOp, TrueOp,<br>                       DAG.getConstant(CC, MVT::i8), Flags };<br>     return DAG.getNode(X86ISD::CMOV, DL, N->getVTList(),<br><br><div class="gmail_quote">On Wed, Sep 5, 2012 at 3:01 PM, Michael Liao <span dir="ltr"><<a href="mailto:michael.liao@intel.com" target="_blank">michael.liao@intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ping.<br>
<br>
Thanks for review<br>
- Michael<br>
<div><div class="h5"><br>
On Tue, 2012-08-28 at 00:12 -0700, Michael Liao wrote:<br>
> Hi<br>
><br>
> The attached patch adds the boolean simplification support for RDRAND<br>
> intrinsics which, following GCC approach, generate its boolean result by<br>
> CMOV instead of SETCC. In addition, this patch cleans up the redundant<br>
> code previously added.<br>
><br>
> Thanks for your review.<br>
><br>
> Yours<br>
> - Michael<br>
</div></div>> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>~Craig<br>