llvm-project
879a2e61 - [X86] Always use 128-bit V_SET0/AVX512_128_SET0 patterns, along with SUBREG_TO_REG for extension to 256/512-bit vectors (#212950)

Commit
3 days ago
[X86] Always use 128-bit V_SET0/AVX512_128_SET0 patterns, along with SUBREG_TO_REG for extension to 256/512-bit vectors (#212950) We often end up with duplicate "all zero" registers as they are represented by different psuedos for 128/256/512-bit types. Whilst they are nearly always free/cheap to rematerialize, its a waste of instructions and registers to needlessly do this. This patch only uses 128-bit SET0 calls and makes use of AVX's implicit zeroing of the upper elements (via SUBREG_TO_REG). AVX512F-only targets still use 512-bit VPXORDZrr instructions if they need to zero xmm16-xmm31, otherwise they fallback to VXORPSrr like regular AVX.
Author
Parents
Loading