Open
Description
As pointed out in #112728 (comment), there are some SIMD instructions that have equivalents with smaller encoding.
For example, pupcklpd
can be replaced with movlhps
, which is 1 byte smaller, under the following conditions:
- both operands are from register
- VEX encoding is not supported
Similarly, vpermilps
can be replaced with the smaller vpshufd
if mixing float and integer domain instructions is not a concern.
llvm has logic that identifies some of these replacements here