[JIT] More ARM64 comparison instruction optimizations with Vector.Zero (#64783)
authorWill Smith <lol.tihan@gmail.com>
Thu, 17 Feb 2022 02:32:20 +0000 (18:32 -0800)
committerGitHub <noreply@github.com>
Thu, 17 Feb 2022 02:32:20 +0000 (18:32 -0800)
commitc3f57277b178e11d3a2b495bcff5888b61db1f5c
treec525fa7056264fd0f570ea6cda332ec1b70a7cc4
parent793185a23907b941787fa5e9dab1524d0063df1f
[JIT] More ARM64 comparison instruction optimizations with Vector.Zero   (#64783)

* Normalizing instructions with an implicit vector zero as the second operand

* Checking number of operands before looking at opernads

* Remove assert

* Check commutative flag

* Fixed commutative check

* Handling more HW intrinsics

* Finishing up

* Finishing up

* Formatting

* numOperands = 1

* Feedback

* Added HW_Flag_SupportsContainmentZero

* Added extra assert

* Removing flag and simplifying codegen for containment with zeros
src/coreclr/jit/emitarm64.cpp
src/coreclr/jit/hwintrinsic.h
src/coreclr/jit/hwintrinsiccodegenarm64.cpp
src/coreclr/jit/hwintrinsiclistarm64.h
src/coreclr/jit/instrsarm64.h
src/coreclr/jit/lowerarmarch.cpp
src/tests/JIT/Regression/JitBlue/Runtime_33972/Runtime_33972.cs