i386.i386.c (ix86_cc_modes_compatible): CCNOmode is compatible with CCGOCmode and...
authorUros Bizjak <ubizjak@gmail.com>
Sun, 14 May 2017 18:00:48 +0000 (20:00 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 14 May 2017 18:00:48 +0000 (20:00 +0200)
* config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
compatible with CCGOCmode and with CCZmode.

From-SVN: r248036

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

index 4f20bcef11e37cb43bb8d312452853ee3dbae368..9a2104282069b6c16749fe8e9ed23f5960f34078 100644 (file)
@@ -1,3 +1,8 @@
+2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
+       compatible with CCGOCmode and with CCZmode.
+
 2017-05-14  Martin Sebor  <msebor@redhat.com>
 
        PR middle-end/77671
index 4676e7ff49ae2ae22fb43a1e47ba3ffd05cce962..a78819d6b3f663afa535fc37d6bdb80651521208 100644 (file)
@@ -23251,9 +23251,15 @@ ix86_cc_modes_compatible (machine_mode m1, machine_mode m2)
       || (m1 == CCGOCmode && m2 == CCGCmode))
     return CCGCmode;
 
-  if (m1 == CCZmode && (m2 == CCGCmode || m2 == CCGOCmode))
+  if ((m1 == CCNOmode && m2 == CCGOCmode)
+      || (m1 == CCGOCmode && m2 == CCNOmode))
+    return CCNOmode;
+
+  if (m1 == CCZmode
+      && (m2 == CCGCmode || m2 == CCGOCmode || m2 == CCNOmode))
     return m2;
-  else if (m2 == CCZmode && (m1 == CCGCmode || m1 == CCGOCmode))
+  else if (m2 == CCZmode
+          && (m1 == CCGCmode || m1 == CCGOCmode || m1 == CCNOmode))
     return m1;
 
   switch (m1)