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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
You need to use the operand modifier P here:
        __asm__ __volatile__ (
            "vld1.f32   {d0,d1}, [%[src]]!      \n\t"
            "vtbl.8     d2, {d0,d1}, %P[t0]      \n\t"
            "vtbl.8     d3, {d0,d1}, %P[t1]      \n\t"
            "vst1.s16   {d2,d3}, [%[dst]]!      \n\t"
            : [dst] "+r" (dst), [src] "+r" (src)
            : [t0] "w" (t0), [t1] "w" (t1)
            : "memory", "d0", "d1", "d2", "d3"
        );

t0 could be stored in s0..s14 and GCC defaults to printing out s0..s14.  Note
those registers map to d0..d7 also.


Now the operand modifiers are not documented for ARM.  There might be another
bug about this too.

Reply via email to