mmx: Fix codegen and enable CI
Hey all,
This MR fixes the MMX codegen and implements target-specific CI for x86.
The issues found were:
- Untested usage of SSE4.1 instructions against MMX registers (these resulted in
SIGinvalid
orSIGILL
in CI) - The SSE backend lacked checks to ensure the MMX registers quantity and size
- The
split
instructions did not copy to the second bank destination, thus operating against the overwritten source register - The register allocator never checked whether the search went beyond the scalar bounds, thus assigning registers from the vector range under starvation conditions (like x86 or MMX)
It requires !152 (merged) merged beforehand, with the extended commit as explained in my review of it, since @turran identified the movw
codegen issue.
Fixes #56 (closed)