This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Committed] PR70404 S/390: Fix insv expansion.
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 1 Apr 2016 17:22:50 +0200
- Subject: [Committed] PR70404 S/390: Fix insv expansion.
- Authentication-results: sourceware.org; auth=none
While the expander accepts general_operand as src operand the risbg
pattern only immediate_operand. Unfortunately the expander called
force_reg only for VOIDmode constants missing things like
e.g. symbol_refs. Fixed with the attached patch.
Bootstrapped on s390 and s390x.
This fixes the pr70174.c testcase on s390x (-march=z10).
Applied to mainline.
Bye,
-Andreas-
gcc/ChangeLog:
2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/70404
* config/s390/s390.c (s390_expand_insv): Check for everything
constant instead of just VOIDmode stuff.
---
gcc/config/s390/s390.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 4f219be..1134d0f 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -6063,7 +6063,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src)
{
machine_mode mode_s = GET_MODE (src);
- if (mode_s == VOIDmode)
+ if (CONSTANT_P (src))
{
/* For constant zero values the representation with AND
appears to be folded in more situations than the (set
--
1.9.1