Wow, that's pretty bad; obviously a pasto.  Thanks for pointing it out!
I'm really surprised this has survived this long, but that may be a
comment on how much lvxl is used.  I'll get this fixed asap.

Thanks,
Bill

On Tue, 2016-02-09 at 18:25 +0100, Ulrich Weigand wrote:
> Hi Bill,
> 
> > 2014-02-20  Bill Schmidt  <wschm...@linux.vnet.ibm.com>
> > 
> >     * config/rs6000/altivec.md (altivec_lvxl): Rename as
> >     *altivec_lvxl_<mode>_internal and use VM2 iterator instead of
> >     V4SI.
> >     (altivec_lvxl_<mode>): New define_expand incorporating
> >     -maltivec=be semantics where needed.
> 
> I just noticed that this:
> 
> > -(define_insn "altivec_lvxl"
> > +(define_expand "altivec_lvxl_<mode>"
> >    [(parallel
> > -    [(set (match_operand:V4SI 0 "register_operand" "=v")
> > -     (match_operand:V4SI 1 "memory_operand" "Z"))
> > +    [(set (match_operand:VM2 0 "register_operand" "=v")
> > +     (match_operand:VM2 1 "memory_operand" "Z"))
> >       (unspec [(const_int 0)] UNSPEC_SET_VSCR)])]
> >    "TARGET_ALTIVEC"
> > -  "lvxl %0,%y1"
> > +{
> > +  if (!BYTES_BIG_ENDIAN && VECTOR_ELT_ORDER_BIG)
> > +    {
> > +      altivec_expand_lvx_be (operands[0], operands[1], <MODE>mode, 
> > UNSPEC_SET_VSCR);
> > +      DONE;
> > +    }
> > +})
> > +
> > +(define_insn "*altivec_lvxl_<mode>_internal"
> > +  [(parallel
> > +    [(set (match_operand:VM2 0 "register_operand" "=v")
> > +     (match_operand:VM2 1 "memory_operand" "Z"))
> > +     (unspec [(const_int 0)] UNSPEC_SET_VSCR)])]
> > +  "TARGET_ALTIVEC"
> > +  "lvx %0,%y1"
> >    [(set_attr "type" "vecload")])
> 
> now causes vec_ldl to emit the lvx instead of the lvxl instruction.
> I assume this was not actually intended?
> 
> Bye,
> Ulrich
> 


Reply via email to