Found during review of #70654
Vector128<byte>Test(Vector128<byte>a,Vector128<byte>b)=>Vector128.GreaterThan(a,b);
Current codegen:
G_M23213_IG01:vzeroupperG_M23213_IG02:vmovupdxmm0, xmmword ptr [r8]vpsubbxmm0,xmm0, xmmword ptr [reloc @RWD00]vmovupdxmm1, xmmword ptr [r9]vpsubbxmm1,xmm1, xmmword ptr [reloc @RWD00]vpcmpgtbxmm0,xmm0,xmm1vmovupd xmmword ptr [rdx],xmm0movrax,rdxG_M23213_IG03:retRWD00 dq 8080808080808080h,8080808080808080h; Total bytes of code: 41
Here, before vpcmpgtb we subtract a constant vector from both xmm0 and xmm1 - CSE should be able to handle them and give constant propagation a hint that it should not propagate them back.
category:cq
theme:assertion-prop
skill-level:intermediate
cost:small
impact:medium
Found during review of #70654
Current codegen:
Here, before
vpcmpgtbwe subtract a constant vector from both xmm0 and xmm1 - CSE should be able to handle them and give constant propagation a hint that it should not propagate them back.category:cq
theme:assertion-prop
skill-level:intermediate
cost:small
impact:medium