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  <pins...@gmail.com>
            Michael Meissner  <meiss...@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  <meiss...@linux.vnet.ibm.com>

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

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);


-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460, USA
email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

Reply via email to