Repost: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10
Bill Schmidt
wschmidt@linux.ibm.com
Mon Jul 12 17:47:43 GMT 2021
On 7/12/21 12:16 PM, Michael Meissner wrote:
> On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote:
>> Hi Mike,
>>
>> On 7/7/21 3:04 PM, Michael Meissner wrote:
>>> [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10.
>>>
>>> This patch updates the vector long long multiply and divide tests to
>>> supply the correct code information if power10 code generation is used.
>>>
>>> 2021-07-07 Michael Meissner <meissner@linux.ibm.com>
>>>
>>> gcc/testsuite/
>>> PR testsuite/100167
>>> * gcc.target/powerpc/fold-vec-div-longlong.c:
>> Missing information after colon.
> Because all of the changes were the same thing, and the line is long enough. I
> just grouped all of the files together, and put the change line as the last
> entry.
But that's not accepted style. Put it after the first one and use
"Likewise" is the usual thing. This looks like an omission.
>
>>> * gcc.target/powerpc/fold-vec-mult-longlong.c: Fix expected code
>>> generation on power10.
>>> ---
>>> gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c | 7 +++++--
>>> gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c | 3 ++-
>>> 2 files changed, 7 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
>>> index 312e984d3cc..f6a9b290ae5 100644
>>> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
>>> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
>>> @@ -19,5 +19,8 @@ test6 (vector unsigned long long x, vector unsigned long long y)
>>> {
>>> return vec_div (x, y);
>>> }
>>> -/* { dg-final { scan-assembler-times {\mdivd\M} 2 } } */
>>> -/* { dg-final { scan-assembler-times {\mdivdu\M} 2 } } */
>>> +
>>> +/* { dg-final { scan-assembler-times {\mdivd\M} 2 { target { ! has_arch_pwr10 } } } } */
>>> +/* { dg-final { scan-assembler-times {\mdivdu\M} 2 { target { ! has_arch_pwr10 } } } } */
>>> +/* { dg-final { scan-assembler-times {\mvdivsd\M} 1 { target { has_arch_pwr10 } } } } */
>>> +/* { dg-final { scan-assembler-times {\mvdivud\M} 1 { target { has_arch_pwr10 } } } } */
>>> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
>>> index 38dba9f5023..bd210e34801 100644
>>> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
>>> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
>>> @@ -20,5 +20,6 @@ test6 (vector unsigned long long x, vector unsigned long long y)
>>> return vec_mul (x, y);
>>> }
>>> -/* { dg-final { scan-assembler-times "\[ \t\]mulld " 4 { target lp64 } } } */
>>> +/* { dg-final { scan-assembler-times {\mmulld\M} 4 { target { lp64 && { ! has_arch_pwr10 } } } } } */
>>> +/* { dg-final { scan-assembler-times {\mvmulld\M} 2 { target { has_arch_pwr10 } } } } */
>> Shouldn't this last be { lp64 && has_arch_pwr10 } ?
> Nope. Because the power10 vector multiply is done in the vector unit, it can
> generate the vmulld instruction.
Please document this, then.
Thanks,
Bill
>
>> Otherwise LGTM. I can't approve, but recommend approval with those changes.
>>
>> Thanks,
>> Bill
>>
More information about the Gcc-patches
mailing list