[X86][CostModel] Bump the cost of vpermw/vpermt2b/vperm2w
authorCraig Topper <craig.topper@intel.com>
Thu, 30 Apr 2020 17:52:35 +0000 (10:52 -0700)
committerCraig Topper <craig.topper@intel.com>
Thu, 30 Apr 2020 18:32:25 +0000 (11:32 -0700)
commitff66919020fab730c87e1b3ddf418e50ffcb7819
tree545763fdb10efd4fd7c2ca1228c3660e33dd58d0
parent7875362986fcdb40230b8a142e8288eeb6d547eb
[X86][CostModel] Bump the cost of vpermw/vpermt2b/vperm2w

vpermw is 2 uops. vpermt2b/vpermt2w are two shuffle uops and a port 015 uop. Weirdly vpermb is a single uop.

This patch bumps the cost to 2 for these operations. Maybe should go to 3 for the vpermt2*, but I've started conservative.

I've also removed a few entries that were now the same as earlier subtargets or that I didn't think we really did. Like I don't think we extend v32i8 to v32i16, shuffle, and then truncate.

Differential Revision: https://reviews.llvm.org/D79148
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll
llvm/test/Analysis/CostModel/X86/shuffle-reverse.ll
llvm/test/Analysis/CostModel/X86/shuffle-single-src.ll
llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
llvm/test/Analysis/CostModel/X86/shuffle-two-src.ll
llvm/test/Analysis/CostModel/X86/strided-load-i16.ll
llvm/test/Analysis/CostModel/X86/strided-load-i8.ll