Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
JIT: Enabled embedded broadcast for binary ops (#87946)
* Enabled embedded broadcast for the following ops: and, andn, or, xor, min, max, div, mul, mull, sub, variable shiftleftlogical/rightarithmetic/rightlogical * Bug fix: JIT used to use a uniform intrinsic for bitwise operations with all data types, embedded broadcast is sensitive to input size in this case, adding a helper to let emitter aware when input size is long/ulong. * reset the instruction in the later phase when embedded broadcast is actually enabled * filter irrelevant data type in embedded broadcast There are cases when broadcast node are falsely contained by a embedded broadcast compatible node, while the data type is actually not supported Adding extra logics to avoid this situation. * update the condition on instruction reset: instructions with either long or ulong as basetype should be reset to qword instructions. * Apply format patch * Resolve reviews: make the typecheck based on broadcast node it self. * Resolve review: use `varTypeIsSmall` type check to cover all the unsupported data type in embedded broadcast. * Resolve reviews: 1. put the IsBitwiseInstruction to a proper place. 2. nit: restored unnecessary line delete.
- Loading branch information