Commit e7067fcd by Andreas Krebbel Committed by Andreas Krebbel

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  <krebbel@linux.vnet.ibm.com>

	PR target/70404
	* config/s390/s390.c (s390_expand_insv): Check for everything
	constant instead of just VOIDmode stuff.

From-SVN: r234678
parent 0f875435
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.
2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/70496 PR target/70496
......
...@@ -6063,7 +6063,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) ...@@ -6063,7 +6063,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src)
{ {
machine_mode mode_s = GET_MODE (src); machine_mode mode_s = GET_MODE (src);
if (mode_s == VOIDmode) if (CONSTANT_P (src))
{ {
/* For constant zero values the representation with AND /* For constant zero values the representation with AND
appears to be folded in more situations than the (set appears to be folded in more situations than the (set
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment