[PATCH][GCC][Arm]: MVE: Fix v[id]wdup's
Andre Vieira (lists)
andre.simoesdiasvieira@arm.com
Tue Apr 7 14:04:58 GMT 2020
On 07/04/2020 11:57, Christophe Lyon wrote:
> On Tue, 7 Apr 2020 at 12:40, Andre Vieira (lists)
> <andre.simoesdiasvieira@arm.com> wrote:
>> Hi,
>>
>> This patch fixes v[id]wdup intrinsics. They had two issues:
>> 1) the predicated versions did not link the incoming inactive vector
>> parameter to the output
>> 2) The backend didn't enforce the wrap limit operand be in an odd register.
>>
>> 1) was fixed like we did for all other predicated intrinsics
>> 2) requires a temporary hack where we pass the value in the top end of
>> DImode operand. The proper fix would be to add a register CLASS but this
>> interacted badly with other existing targets codegen. We will look to
>> fix this properly in GCC 11.
>>
>> Regression tested on arm-none-eabi.
>>
> Hi Andre,
>
> How did you find problem 1? I suspect you are using an internal
> simulator since qemu does not support MVE yet?
> And you probably have runtime tests to exhibit this failure?
Hi Christophe,
I actually found 1) because I was fixing 2). Though yes, I am trying to
complement testing using an internal simulator and running tests in
Arm's CMSIS DSP Library (https://github.com/ARM-software/CMSIS_5) that
use MVE.
Cheers,
Andre
> Thanks,
>
> Christophe
>
>> Is this OK for trunk?
>>
>> gcc/ChangeLog:
>> 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
>>
>> * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
>> * config/arm/mve/md: Fix v[id]wdup patterns.
>>
More information about the Gcc-patches
mailing list