[PATCH] D37451: [x86] enable storeOfVectorConstantIsCheap() target hook

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 7 11:52:26 PDT 2017


spatel updated this revision to Diff 114224.
spatel added a comment.

Patch updated:
Don't enable vector store of constants unless we can replace more than 2 scalar stores. This avoids the borderline cases and sidesteps the regressions in the earlier rev.

big_nonzero_16_bytes() for x86-64 shows a different merging problem. We can't directly store 64-bit immediates, so we have to materialize the constants in registers and then store as a separate instruction. The test is trying to store four 32-bit imms, so we probably shouldn't have done any merging there?


https://reviews.llvm.org/D37451

Files:
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86ISelLowering.h
  test/CodeGen/X86/avx512-regcall-Mask.ll
  test/CodeGen/X86/merge-store-constants.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37451.114224.patch
Type: text/x-patch
Size: 6779 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170907/2ae404bb/attachment.bin>


More information about the llvm-commits mailing list