[PATCH] D79109: [X86] Lower the cost of v4i64->v4i32 and v8i64->v8i32 truncate with AVX

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 29 11:49:10 PDT 2020


craig.topper created this revision.
craig.topper added reviewers: RKSimon, spatel.
Herald added a subscriber: hiraditya.
Herald added a project: LLVM.
craig.topper edited the summary of this revision.

We generate much better code these days than we used to. And we use the same sequence for AVX1 and AVX2 for these

For v4i64->v4i32 we generate

  vextractf128    xmm1, ymm0, 1
  vshufps xmm0, xmm0, xmm1, 136   # xmm0 = xmm0[0,2],xmm1[0,2]

And for v8i64->v8i32 we generate

  vperm2f128      ymm2, ymm0, ymm1, 49 # ymm2 = ymm0[2,3],ymm1[2,3]
  vinsertf128     ymm0, ymm0, xmm1, 1
  vshufps ymm0, ymm0, ymm2, 136   # ymm0 = ymm0[0,2],ymm2[0,2],ymm0[4,6],ymm2[4,6]


https://reviews.llvm.org/D79109

Files:
  llvm/lib/Target/X86/X86TargetTransformInfo.cpp
  llvm/test/Analysis/CostModel/X86/arith-fix.ll
  llvm/test/Analysis/CostModel/X86/arith-overflow.ll
  llvm/test/Analysis/CostModel/X86/cast.ll
  llvm/test/Analysis/CostModel/X86/min-legal-vector-width.ll
  llvm/test/Analysis/CostModel/X86/trunc.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79109.260971.patch
Type: text/x-patch
Size: 33049 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200429/cf24e7ce/attachment.bin>


More information about the llvm-commits mailing list