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.
Merge request reports
Activity
changed milestone to %Release 2.0
added feature label
requested review from @da15siwa
assigned to @he66coqe
added 1 commit
- 8b8d5534 - Extend test_functions to use vector targets when available. Add tests for integer min/max/abs.
- Resolved by Daniel Bauer
- Resolved by Daniel Bauer
- Resolved by Daniel Bauer
I just pushed the extension to the functions test suite, as discussed. In addition, we still need tests for the type casts and vector conversions.
Edited by Frederik Hennig
added 1 commit
- 75210689 - Update test_function; select combinations of functions and targets by pairwise parametrization
- Resolved by Daniel Bauer
One problem the latest pipeline detected is that
_mm_loadu_epi32
and_mm_storeu_epi32
(128bit versions) are AVX512 instructions.
added 1 commit
- 41bc03b4 - fix x86 pre AVX512 unaligned load/store intrinsics
added 2 commits
requested review from @da15siwa
Please register or sign in to reply