You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JIT: Emit mulx for GT_MULHI and GT_MUL_LONG if BMI2 is available (#116198)
* WIP: Emit mulx for GT_MULHI
* * Handle containment for GT_MUL_LONG on x86
* Fix register for mulx
* Cleanup: use GenTree::IsUnsigned helper
* update comments
* update after merge
* * remove move instruction since it is handled by lsra
* don't force op1 to implicit register if op2 is already in it
* minor formatting fixes
* clenaup
* Ensure magic number for GT_MULHI for division with constant, is put in rdx
* only swap operands for GT_MULHI and GT_MUL_LONG
* fix formatting
* Fix operand order
* Fixes after merge:
* use OperIs()
* replace Intructionset_BMI2 => InstructionSetAVX2
* fix review comment
* kill rdx register for mulx instead of specifying as fixed register for use
* fix format
* remove register preference for mul, it does only make sense for extended 1 op mul
- some cleanup of BuildMul, reorder andremove dead code
* fix formatting
* remove swap in lowering
* update fixed reg in lowering for division by constant
* change from isUsedFromMemory to isContained()
* Fix review comments
0 commit comments