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.