arc: Fix for new ifcvt behavior [PR104154]
authorRobin Dapp <rdapp@linux.ibm.com>
Mon, 7 Feb 2022 07:39:41 +0000 (08:39 +0100)
committerRobin Dapp <rdapp@linux.ibm.com>
Tue, 1 Mar 2022 07:51:30 +0000 (08:51 +0100)
ifcvt now passes a CC-mode "comparison" to backends.  This patch
simply returns from gen_compare_reg () in that case since nothing
needs to be prepared anymore.

gcc/ChangeLog:

PR rtl-optimization/104154
* config/arc/arc.cc (gen_compare_reg):  Return the CC-mode
comparison ifcvt passed us.

gcc/config/arc/arc.cc

index c27ba99..fbc17e6 100644 (file)
@@ -2256,6 +2256,12 @@ gen_compare_reg (rtx comparison, machine_mode omode)
   cmode = GET_MODE (x);
   if (cmode == VOIDmode)
     cmode = GET_MODE (y);
+
+  /* If ifcvt passed us a MODE_CC comparison we can
+     just return it.  It should be in the proper form already.   */
+  if (GET_MODE_CLASS (cmode) == MODE_CC)
+    return comparison;
+
   if (cmode != SImode && cmode != SFmode && cmode != DFmode)
     return NULL_RTX;
   if (cmode == SImode)