[PATCH] D138883: [SelectionDAG][PowerPC] Memset reuse vector element for tail store

Andrew Savonichev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 1 12:22:46 PST 2022


asavonic added inline comments.


================
Comment at: llvm/test/CodeGen/ARM/memset-align.ll:21
 ; CHECK-NEXT:    str r1, [r2]
+; CHECK-NEXT:    add.w r2, r0, #15
+; CHECK-NEXT:    vst1.32 {d16[0]}, [r2]
----------------
tingwang wrote:
> Hello @dmgreen  @asavonic. This patch tries to reuse vector element for the tail store in memset by implementing `canCombineStoreAndExtract()` on PPC. This changed introduced test case change on ARM in llvm/test/CodeGen/ARM/memset-align.ll. Could you please help me check if the change looks good or not? Thank you!
> 
> Looked into the scenario on ARM, if the i8 fill value of memset is zero, it creates vector for the initial 16B, and constant tail for the remaining bytes, which exactly hit this patch's scenario. For other values, it creates i32 for memset and will not be impacted by this patch.
This looks fine to me. VST1 and scalar STR seem equivalent in this case, if I'm reading the docs right.  


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138883/new/

https://reviews.llvm.org/D138883



More information about the llvm-commits mailing list