[llvm-dev] CPU-specific SVE codegen

Chris Elrod via llvm-dev llvm-dev at lists.llvm.org
Sun Apr 4 05:51:24 PDT 2021


Would it be possible to support generating CPU-specific SVE code?
This could be useful for JIT, e.g. Julia.

Currently, when using `-mcpu=a64fx`, `<8 x double>` gets split into 4 NEON
instructions:
https://godbolt.org/z/cEf1Pfvx8
If I understand correctly, I'd need to use `<vscale x 2 x double>` to
actually generate SVE code. However, Julia currently has no way of
representing such variable sized types without allocating to the heap --
awkward for a variable that's supposed to live in the registers! -- for
writing intrinsics. Some libraries make extensive use of intrinsics
operating on vector types like (`<8 x double>`) for defining compute
kernels, and as is they are incompatible with SVE.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210404/2c212435/attachment.html>


More information about the llvm-dev mailing list