On 11/13/21 7:25 AM, Segher Boessenkool wrote:
> On Wed, Oct 27, 2021 at 08:37:57PM -0500, Peter Bergner wrote:
>> PR102976 shows a test case where we generate wrong code when building
>> a vector pair from 2 vector registers. The bug here is that with unlucky
>> register assignments, we can clobber one of the input operands before
>> we write both registers of the output operand. The solution is to use
>> early-clobbers in the assemble pair and accumulator patterns.
>
> Because of what insns there are after the split. Aha.
>
> Please add a comment explaining this, near the earlyclobber itself.
Done for both patterns.
> You can just write this as {\mxxlor \d+,44,44\M} etc., that will be
> simplest I think.
Done and tested that it still works.
> Okay for trunk with comments added near the earlyclobber, and the RE
> improved. Also fine for 11 after some burn-in. Thanks!
Ok, I pushed with both changes. I'll push a change to GCC11 in a few days.
Thanks!
Peter