Various extensions to the vectorizer
Includes additions to the AstVectorizer
:
- Vectorize assignments to vector symbols
- Vectorize loops nested within the vectorization axis if all bounds are independent of the axis
- Vectorize array subscripts if all indices and the array expression are independent of the axis
- Handle empty nodes (e.g. comments)
Additions to the x86 instruction set:
- Intrinsics for basic math functions (log, abs, etc.)
- Type conversions
And to the SelectIntrinsics
pass:
- Add option to implemenet type conversions using
__builtin_convertvector
which is supported by most compilers instead of inserting intrinsics. Useful because not all conversions are supported natively on all CPUs.