https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91060

--- Comment #7 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
(In reply to Christophe Lyon from comment #4)
> Unfortunately, it's still failing as of r273133.
> 
> It fails at the very first check:
>     v1 = 2 + v0;   check (short, 8, v0, v1, 2, +, l);
> 
> The generated code for main is:
> main:
...
>         vmov.16 d16[0], r0
>         sxth    r1, r0
>         vadd.i16        q0, q8, q9
>         add     ip, r1, #2
>         vmov.s16        r2, d0[3]

Yeah, this looks wrong.  We should be adding 2 to a single element
here, but we're extracting from one index and inserting into another.
The first quoted instruction should be using [3] as well.

I'd be unsurprised if this was a target bug.

Reply via email to