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
Filter 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