> From: Kumar, Venkataramanan <[email protected]>
> Sent: Tuesday, July 14, 2026 1:38 AM
> >
> > gcc/ChangeLog:
> >
> > * config/i386/acev1intrin.h: Add new intrins.
> > * config/i386/i386-builtin-types.def: Add new function types.
> > * config/i386/i386-builtins.cc
> > (ix86_init_mmx_sse_builtins): Add new builtins.
> > * config/i386/i386-builtins.h (enum ix86_builtins): Ditto.
> > * config/i386/i386-expand.cc (ix86_expand_builtin):
> > Handle new builtins.
> > * config/i386/sse.md (UNSPEC_BSRMOVH_STORE): New.
> > (UNSPEC_BSRMOVL_STORE): Ditto.
> > (UNSPECV_BSRINIT): Ditto.
> > (UNSPECV_BSRMOVH_STORE): Ditto.
> > (UNSPECV_BSRMOVL_STORE): Ditto.
>
> Should be UNSPECV_BSRMOVH_LOAD and UNSPECV_BSRMOVL_LOAD.
Oops. I will change that.
> > +extern __inline void
> > +__attribute__((__gnu_inline__, __always_inline__, __artificial__))
> > +_bsr0_insertfull (__m512i __A, __m512i __B) {
> > + __builtin_ia32_bsr0movf ((__v16si) __A, (__v16si) __B); }
> > +
>
> Can we just keep name as _bsr0_insert instead of _bsr0_insertfull ??
I leave the naming space of insert in case we got a real insert directly.
Also, the naming could be _bsr0_loadf, I used full in case someone got
confused on f with float.
Thx,
Haochen