Add AVX(2) backend
Hi all,
This is a MR to add an AVX2 backend to Orc.
This work is a WIP derived from this branch: https://gitlab.freedesktop.org/amyspark/orc/-/commits/amyspark/sse-convert-load-to-temporary?ref_type=heads . I've refactored and dropped a lot of the WIP regarding codegen, in order to just target VEX-encoded SSE for review purposes. Once that's done, I'll begin/continue porting and adding where relevant the new AVX instructions from the other branch.
Basics
-
Orc internals documentation added -
SSE codegen still works -
AVX is detected -
SSE instructions classified by presence in AVX(2) -
VEX ( orcc --assembly
) codegen working- I need to trace why the assembly comments look like coming from the SSE backend
-
VEX (binary) codegen working -
Vector size enlargement -
Addition of AVX(2) only instructions
Review laundry list
-
Testsuite pass -
Validate correctness -
Apply review rounds -
Flatten commits
Fixes #13 (closed)
Fixes #51 (closed)
/cc @slomo
Edited by amyspark