[PATCH] arm: Implement vceqq_p64, vceqz_p64 and vceqzq_p64 intrinsics

Christophe Lyon christophe.lyon@linaro.org
Wed Nov 4 20:17:10 GMT 2020


ping?
https://gcc.gnu.org/pipermail/gcc-patches/2020-October/556299.html

On Fri, 23 Oct 2020 at 19:20, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
>
> ping?
>
> On Fri, 16 Oct 2020 at 10:41, Christophe Lyon
> <christophe.lyon@linaro.org> wrote:
> >
> > On Thu, 15 Oct 2020 at 20:10, Andrea Corallo <andrea.corallo@arm.com> wrote:
> > >
> > > Hi Christophe,
> > >
> > > I've spotted two very minors.
> > >
> > > Christophe Lyon via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> > >
> > > [...]
> > >
> > > > +/* For vceqq_p64, we rely on vceq_p64 for each of the two elements.  */
> > > > +__extension__ extern __inline uint64x2_t
> > > > +__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> > > > +vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
> > > > +{
> > > > +  poly64_t __high_a = vget_high_p64 (__a);
> > > > +  poly64_t __high_b = vget_high_p64 (__b);
> > > > +  uint64x1_t __high = vceq_p64(__high_a, __high_b);
> > >                                 ^^^
> > >                                space
> >
> > Thanks for catching this, I'll fix it before committing if the rest is approved.
> >
> > Christophe
> >
> > > > +
> > > > +  poly64_t __low_a = vget_low_p64 (__a);
> > > > +  poly64_t __low_b = vget_low_p64 (__b);
> > > > +  uint64x1_t __low = vceq_p64(__low_a, __low_b);
> > >
> > > Same
> > >
> > > > +  return vcombine_u64 (__low, __high);
> > > > +}
> > > > +
> > > > +__extension__ extern __inline uint64x2_t
> > > > +__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> > > > +vceqzq_p64 (poly64x2_t __a)
> > > > +{
> > > > +  poly64x2_t __b = vreinterpretq_p64_u32 (vdupq_n_u32 (0));
> > > > +  return vceqq_p64 (__a, __b);
> > > > +}
> > >
> > > Thanks
> > >
> > >   Andrea


More information about the Gcc-patches mailing list