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] Fix up --enable-checking=rtl SSE/AVX regressions


Hi!

In --enable-checking=rtl bootstrap most of SSE/AVX tests fail, because
*mov<mode>_internal is using REGNO on operands that are e.g. MEM or
CONST_INT etc.  Fixed thusly, bootstrapped/regtested on x86_64-linux and
i686-linux, committed to trunk as obvious.

2014-01-01  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (*mov<mode>_internal): Guard
	EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.

--- gcc/config/i386/sse.md.jj	2013-12-31 13:52:45.000000000 +0100
+++ gcc/config/i386/sse.md	2013-12-31 20:13:32.673520479 +0100
@@ -670,8 +670,10 @@ (define_insn "*mov<mode>_internal"
 	 in avx512f, so we need to use workarounds, to access sse registers
 	 16-31, which are evex-only.  */
       if (TARGET_AVX512F && GET_MODE_SIZE (<MODE>mode) < 64
-	  && (EXT_REX_SSE_REGNO_P (REGNO (operands[0]))
-	      || EXT_REX_SSE_REGNO_P (REGNO (operands[1]))))
+	  && ((REG_P (operands[0])
+	       && EXT_REX_SSE_REGNO_P (REGNO (operands[0])))
+	      || (REG_P (operands[1])
+		  && EXT_REX_SSE_REGNO_P (REGNO (operands[1])))))
 	{
 	  if (memory_operand (operands[0], <MODE>mode))
 	    {

	Jakub


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