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  <ja...@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

Reply via email to