diff mbox

, PR target/58452, Fix gcc 4.8/trunk linuxpaired breakage

Message ID 20130918000349.GA22849@ibm-tiger.the-meissners.org
State New
Headers show

Commit Message

Michael Meissner Sept. 18, 2013, 12:03 a.m. UTC
While doing some work on power8, I wanted to make sure that for existing
systems, I was generating the same code.  So I built some code and ran it
through various -mcpu=xxxx options.  When I built a powerpc-linuxpaired
compiler, the compiler has trouble with a simple loop that should be
vectorized.  I traced the code to changes in the vectorizer that required the
predicates for movmismalign* to accept memory operands.

In the main part of the powerpc compiler, we made this change in April, 2011,
but we missed the paired floating point support, since you need to use special
configuration options to enable paired floating point support.

2011-04-01  Andrew Pinski  <pinskia@gmail.com>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/48262
	* config/rs6000/vector.md (movmisalign<mode>): Allow for memory
	operands, as per the specifications.

	* config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
	(vec_extract_evenv4sf): Ditto.
	(vec_extract_evenv8hi): Ditto.
	(vec_extract_evenv16qi): Ditto.
	(vec_extract_oddv4si): Ditto.

I will do the usual bootstrap/make check tomorrow.  Assuming it has no
regressions, can I check this patch it to both the 4.8 branch and trunk?

2013-09-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/58452
	* config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
	operaands.

Comments

David Edelsohn Sept. 18, 2013, 12:58 p.m. UTC | #1
On Tue, Sep 17, 2013 at 8:03 PM, Michael Meissner
<meissner@linux.vnet.ibm.com> wrote:
> While doing some work on power8, I wanted to make sure that for existing
> systems, I was generating the same code.  So I built some code and ran it
> through various -mcpu=xxxx options.  When I built a powerpc-linuxpaired
> compiler, the compiler has trouble with a simple loop that should be
> vectorized.  I traced the code to changes in the vectorizer that required the
> predicates for movmismalign* to accept memory operands.

> I will do the usual bootstrap/make check tomorrow.  Assuming it has no
> regressions, can I check this patch it to both the 4.8 branch and trunk?
>
> 2013-09-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
>
>         PR target/58452
>         * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
>         operaands.

Okay.

Thanks, David
Jakub Jelinek Sept. 18, 2013, 1:05 p.m. UTC | #2
On Wed, Sep 18, 2013 at 08:58:03AM -0400, David Edelsohn wrote:
> On Tue, Sep 17, 2013 at 8:03 PM, Michael Meissner
> <meissner@linux.vnet.ibm.com> wrote:
> > While doing some work on power8, I wanted to make sure that for existing
> > systems, I was generating the same code.  So I built some code and ran it
> > through various -mcpu=xxxx options.  When I built a powerpc-linuxpaired
> > compiler, the compiler has trouble with a simple loop that should be
> > vectorized.  I traced the code to changes in the vectorizer that required the
> > predicates for movmismalign* to accept memory operands.
> 
> > I will do the usual bootstrap/make check tomorrow.  Assuming it has no
> > regressions, can I check this patch it to both the 4.8 branch and trunk?
> >
> > 2013-09-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
> >
> >         PR target/58452
> >         * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
> >         operaands.
> 
> Okay.

s/aa/a/ in the ChangeLog entry.

	Jakub
diff mbox

Patch

Index: gcc/config/rs6000/paired.md
===================================================================
--- gcc/config/rs6000/paired.md	(revision 202632)
+++ gcc/config/rs6000/paired.md	(working copy)
@@ -462,8 +462,8 @@  (define_expand "reduc_splus_v2sf"
 }")
 
 (define_expand "movmisalignv2sf"
-  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
-        (match_operand:V2SF 1 "gpc_reg_operand" "f"))]
+  [(set (match_operand:V2SF 0 "nonimmediate_operand" "")
+        (match_operand:V2SF 1 "any_operand" ""))]
   "TARGET_PAIRED_FLOAT"
 {
   paired_expand_vector_move (operands);