ARM64: Eliminate redundant opposite mov (#38179)
* Added IsOppositeOfPrevMov()
Added IsOppositeOfPrevMov() that will skip generating redundant mov.
* review comments
* Refactor code into IsRedundantMov()
* dont optimize beyong IG boundary
* add check to not cross IG boundary
* Add more checks:
- Change IG boundary check to exclude extended IGs.
- Check the operand size before removing redundant movs.
* fix the check
* review comments
* Add check to ensure if src/dst are both scalar or both vector
* minor comment
* Add check for insFormat
* fix the typo
* minor comments