re PR target/65871 (bzhi builtin/intrinsic wrongly assumes bzhi instruction doesn...
authorUros Bizjak <ubizjak@gmail.com>
Mon, 22 Jun 2015 13:54:58 +0000 (15:54 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 22 Jun 2015 13:54:58 +0000 (15:54 +0200)
PR target/65871
* config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
cost of embedded comparison.

From-SVN: r224729

gcc/ChangeLog
gcc/config/i386/i386.c

index 9bfaa22f49b7c82c2a1decc3e3e4845487542a85..6ca98cf10f710a72532b301403d8708a853a0865 100644 (file)
@@ -1,3 +1,9 @@
+2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/65871
+       * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
+       cost of embedded comparison.
+
 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR target/65914
index 24fccfca53d03b46bc665bd77770ecc19cda5111..2df91c48d4ddb34795501bc46d3cd5dbf6791a37 100644 (file)
@@ -42531,6 +42531,12 @@ ix86_rtx_costs (rtx x, int code_i, int outer_code_i, int opno, int *total,
                    + rtx_cost (const1_rtx, outer_code, opno, speed));
          return true;
        }
+
+      /* The embedded comparison operand is completely free.  */
+      if (!general_operand (XEXP (x, 0), GET_MODE (XEXP (x, 0)))
+         && XEXP (x, 1) == const0_rtx)
+       *total = 0;
+
       return false;
 
     case FLOAT_EXTEND: