Extend flag reuse optimization to all relops
authorMike Danes <onemihaid@hotmail.com>
Fri, 29 Sep 2017 21:34:07 +0000 (00:34 +0300)
committerMike Danes <onemihaid@hotmail.com>
Mon, 2 Oct 2017 05:30:15 +0000 (08:30 +0300)
src/jit/codegenxarch.cpp
src/jit/lower.cpp

index 28db511..a512436 100644 (file)
@@ -887,7 +887,8 @@ void CodeGen::genCodeForBinary(GenTree* treeNode)
     }
 
     // try to use an inc or dec
-    if (oper == GT_ADD && !varTypeIsFloating(treeNode) && src->isContainedIntOrIImmed() && !treeNode->gtOverflowEx())
+    if (oper == GT_ADD && !varTypeIsFloating(treeNode) && src->isContainedIntOrIImmed() && !treeNode->gtOverflowEx() &&
+        !treeNode->gtSetFlags())
     {
         if (src->IsIntegralConst(1))
         {
index f6592f6..1856c2d 100644 (file)
@@ -2612,12 +2612,10 @@ GenTree* Lowering::LowerCompare(GenTree* cmp)
         }
 #endif // _TARGET_XARCH_
     }
-#ifdef _TARGET_XARCH_
-    else if (cmp->OperIs(GT_EQ, GT_NE))
-#else // _TARGET_ARM64_
     else
-#endif
     {
+        assert(cmp->OperIs(GT_EQ, GT_NE, GT_LE, GT_LT, GT_GE, GT_GT));
+
         GenTree* op1 = cmp->gtGetOp1();
         GenTree* op2 = cmp->gtGetOp2();