By: Michael S (already5chosen.delete@this.yahoo.com), May 23, 2022 1:08 am
Room: Moderated Discussions
none (none.delete@this.none.com) on May 23, 2022 1:57 am wrote:
> Michael S (already5chosen.delete@this.yahoo.com) on May 23, 2022 1:12 am wrote:
> > Is Highway a full compiler or yet another LLVM front-end, like icpc ?
>
> It's a library, not a compiler. (I guess you meant ispc.)
>
> https://github.com/google/highway
O.k.
I.e. it relies on compiler for final instruction selection, right?
Which means that reliable distinction between LoadA and LoadU on AVX/AVX512 targets is not really
possible, because compiler can always decide to combine LoadA with arithmetic instruction, giving it semantics of LoadU.
For StoreA vs StoreU, it seems easier to force compiler's hand into generation of specific type of instruction.
> Michael S (already5chosen.delete@this.yahoo.com) on May 23, 2022 1:12 am wrote:
> > Is Highway a full compiler or yet another LLVM front-end, like icpc ?
>
> It's a library, not a compiler. (I guess you meant ispc.)
>
> https://github.com/google/highway
O.k.
I.e. it relies on compiler for final instruction selection, right?
Which means that reliable distinction between LoadA and LoadU on AVX/AVX512 targets is not really
possible, because compiler can always decide to combine LoadA with arithmetic instruction, giving it semantics of LoadU.
For StoreA vs StoreU, it seems easier to force compiler's hand into generation of specific type of instruction.