]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sse.md (*mov<mode>_internal): Guard EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
authorJakub Jelinek <jakub@redhat.com>
Tue, 31 Dec 2013 23:53:17 +0000 (00:53 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 31 Dec 2013 23:53:17 +0000 (00:53 +0100)
* config/i386/sse.md (*mov<mode>_internal): Guard
EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.

From-SVN: r206269

gcc/ChangeLog
gcc/config/i386/sse.md

index 637487098428e03067130bc209d7cfb235f13a03..0d081c9362a7cc4a509027391c9f13ebd0696a4e 100644 (file)
@@ -1,5 +1,8 @@
 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.
+
        PR rtl-optimization/59647
        * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
        new_rtx into UNSIGNED_FLOAT rtxes.
index d75edb70870bd79156575743b17de94586792843..d8451d17468a3fb3f9cf803bf327d858f123946f 100644 (file)
         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))
            {