2018-11-22  Uros Bizjak  <ubiz...@gmail.com>

    * config/i386/i386.c (ix86_check_avx_upper_register):
    Return true for all SSE registers with mode bitsize > 128.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c  (revision 266382)
+++ config/i386/i386.c  (working copy)
@@ -18856,12 +18856,7 @@
 static bool
 ix86_check_avx_upper_register (const_rtx exp)
 {
-  if (SUBREG_P (exp))
-    exp = SUBREG_REG (exp);
-
-  return (REG_P (exp)
-       && (VALID_AVX256_REG_OR_OI_MODE (GET_MODE (exp))
-       || VALID_AVX512F_REG_OR_XI_MODE (GET_MODE (exp))));
+  return SSE_REG_P (exp) && GET_MODE_BITSIZE (GET_MODE (exp)) > 128;
 }
 
 /* Return needed mode for entity in optimize_mode_switching pass.  */

Reply via email to