From: krebbel Date: Fri, 1 Apr 2016 15:35:54 +0000 (+0000) Subject: PR70404 S/390: Fix insv expansion. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=678c417be9fa29e1c349b02fa5e2d078fd51c53d;p=thirdparty%2Fgcc.git PR70404 S/390: Fix insv expansion. 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. gcc/ChangeLog: 2016-04-01 Andreas Krebbel PR target/70404 * config/s390/s390.c (s390_expand_insv): Check for everything constant instead of just VOIDmode stuff. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234678 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0ac14078979..de3b8c575434 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-04-01 Andreas Krebbel + + PR target/70404 + * config/s390/s390.c (s390_expand_insv): Check for everything + constant instead of just VOIDmode stuff. + 2016-04-01 Ramana Radhakrishnan PR target/70496 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 4f219bee17d0..1134d0f1e9dc 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