On 07/04/2020 11:57, Christophe Lyon wrote:
On Tue, 7 Apr 2020 at 12:40, Andre Vieira (lists)
<andre.simoesdiasvie...@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.simoesdiasvie...@arm.com>

          * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
          * config/arm/mve/md: Fix v[id]wdup patterns.

Reply via email to