-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use AVX2 in codegen for GT_STORE_BLK (#55604)
* Saving current state, current state does not currently pass tests * Getting available vector register size from compiler instance instead, resolves failing tests. * Emit vzeroupper if there is potentially an AVX-SSE transition * Copy remainder using same tempReg allocated during SIMD moves instead of allocating a GPR * Better guard for maximum SIMD register size * Fix typo * Remove commented out lines * Insert vzeroupper if using AVX2 * Add another vzeroupper * Remove vzeroupper, inserting the instruction hurts performance * Adding vzeroupper again for testing * Remove debug lines * Add assert before copying remaining bytes, change regSize condition to depend on AVX, remove vzeroupper inserts. * Fix typo * Added check to ensure size is not 0 to prevent allocating register for structs of size 0. * Using YMM registers during init block if block is large enough * Add some comments * Formatting * Rename remainder variable to shiftBack, better describes the logic for the block. * Use shift-back technique for init block as well. * Add assert for init block * Use xmm register to move remainder if it fits, shift-back for GPR for remainder instead of step-down * Use xmm in init block for remainder if it is an appropriate size, shift-back for GPR in init instead of step-down register size * Avoid allocating GPR during LSRA for BlkOpKindUnroll * Remove shift-back of GPR for remainder, added back the step-down to resolve test failures on x86 * Shift-back GPR when handling remainder for AMD64 only
- Loading branch information
1 parent
c980180
commit 4d72c6b
Showing
3 changed files
with
173 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters