aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2019-10-08 19:01:55 +0200
committerUros Bizjak <uros@gcc.gnu.org>2019-10-08 19:01:55 +0200
commitfe42ae7cf57616f53a17544b614b425076d694db (patch)
treef08a4c0258c543e4d7b176cca9d4cabd4bbcdb2a
parent8cad1ad5ade3fac0a2a796361bf5400d5f385036 (diff)
downloadgcc-fe42ae7cf57616f53a17544b614b425076d694db.zip
gcc-fe42ae7cf57616f53a17544b614b425076d694db.tar.gz
gcc-fe42ae7cf57616f53a17544b614b425076d694db.tar.bz2
re PR rtl-optimization/91994 (r276327 breaks -mvzeroupper)
PR target/91994 * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG instead of ALL_SSE_REG to check if function call preserves some 256-bit SSE registers. From-SVN: r276707
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.c2
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bee9431..b032263 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-10-08 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/91994
+ * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
+ instead of ALL_SSE_REG to check if function call preserves some
+ 256-bit SSE registers.
+
2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
@@ -116,7 +123,7 @@
* config/i386/i386-expand.c (ix86_expand_floorceildf_32,
ix86_expand_rounddf_32): Reorder functions.
- * config/i386/i386-protos.h: Update..
+ * config/i386/i386-protos.h: Update.
2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 083e228..1a272d9 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -13530,7 +13530,7 @@ ix86_avx_u128_mode_needed (rtx_insn *insn)
modes wider than 256 bits. It's only safe to issue a
vzeroupper if all SSE registers are clobbered. */
const function_abi &abi = insn_callee_abi (insn);
- if (!hard_reg_set_subset_p (reg_class_contents[ALL_SSE_REGS],
+ if (!hard_reg_set_subset_p (reg_class_contents[SSE_REGS],
abi.mode_clobbers (V4DImode)))
return AVX_U128_ANY;