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
- both operands are 16-byte
- no EVEX options (e.g. embedded masking) are used.
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
Activity