[CostModel][X86] Improve accuracy of vXi8/vXi16 vector non-uniform shift costs on...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 24 May 2021 17:26:16 +0000 (18:26 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 25 May 2021 10:35:57 +0000 (11:35 +0100)
commit68ef68f8ac5cad1fdcd9c7b0e2a8f134d9f595ae
treec938805bdde9d054b60b399fbebe6f35c18cd6d5
parente3b8e6d48251a3b85f925fe695ef961013ddb940
[CostModel][X86] Improve accuracy of vXi8/vXi16 vector non-uniform shift costs on AVX2/AVX512 targets

Determined from llvm-mca analysis, AVX2+ capable targets have a higher throughput for VPBLENDVB and VPMOVZX ops, making it cheaper to perform shift+select patterns for vXi8 shifts or extend/shift/truncate for vXi16 shifts. Similarly AVX512BW can perform vXi8 as extend/shift/truncate patterns.
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/div.ll
llvm/test/Analysis/CostModel/X86/fshl.ll
llvm/test/Analysis/CostModel/X86/fshr.ll
llvm/test/Analysis/CostModel/X86/rem.ll
llvm/test/Analysis/CostModel/X86/vshift-ashr-cost-inseltpoison.ll
llvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
llvm/test/Analysis/CostModel/X86/vshift-lshr-cost-inseltpoison.ll
llvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
llvm/test/Analysis/CostModel/X86/vshift-shl-cost-inseltpoison.ll
llvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll