On 2/25/20 4:25 PM, Segher Boessenkool wrote:
> Well, you now get an extra mask instruction (rldicr for example) as well,
> right?  While that mask usually isn't needed.

I believe the mask is implicit by the pattern used by the vec_st()
builtin, which normally gets mapped to the Altivec stvx insn, so
when we use the d-form stxv insn, we have to make explicit that
and:.

I still think using vec_st() or any of the other vector store
builtins is less preferable than just dereferencing a pointer.  



>> -/* { dg-final { scan-assembler-times {\mstvx\M} 14 } } */
>> +/* { dg-final { scan-assembler-times {\mstvx|stxv\M} 14 } } */
> 
> That checks if either the string
>   \mstvx
> or the string
>   stxv\M

Oops, good catch.


> You want
>   {\m(stvx|stxv)\M}

Is the patch ok with this variant?  I think this is more readable to
me than the other variants you gave...at least to me. :-)

Peter



Reply via email to