This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 5/5] Remove CANNOT_CHANGE_MODE_CLASS workaround in i386.c


Patch 4 should make it possible to relax i386'a CANNOT_CHANGE_MODE_CLASS,
solving the missed optimisation that triggered the original thread.


gcc/
	* config/i386/i386.c (ix86_cannot_change_mode_class): Remove
	GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.

Index: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c	2014-09-15 09:48:11.310438531 +0100
+++ gcc/config/i386/i386.c	2014-09-15 09:48:11.310438531 +0100
@@ -37526,13 +37526,6 @@ ix86_cannot_change_mode_class (enum mach
 	 the vec_dupv4hi pattern.  */
       if (GET_MODE_SIZE (from) < 4)
 	return true;
-
-      /* Vector registers do not support subreg with nonzero offsets, which
-	 are otherwise valid for integer registers.  Since we can't see
-	 whether we have a nonzero offset from here, prohibit all
-         nonparadoxical subregs changing size.  */
-      if (GET_MODE_SIZE (to) < GET_MODE_SIZE (from))
-	return true;
     }
 
   return false;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]