[SystemZ] Patchset for expanding memcpy/memset using at most two stores.
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Tue, 8 Mar 2022 20:51:43 +0000 (15:51 -0500)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Fri, 13 May 2022 13:31:09 +0000 (15:31 +0200)
commiteaa78035c6a59b0607878f463ad7b7b7444f2c60
treee35958f644613a55decd7e1d6f4320739dabc3de
parentafc21c7e7970854dc7290f2461aa0e830510b798
[SystemZ] Patchset for expanding memcpy/memset using at most two stores.

* Set MaxStoresPerMemcpy and MaxStoresPerMemset to 2.

* Optimize stores of replicated values in SystemZ::combineSTORE(). This
  handles the now expanded memory operations and as well some other
  pre-existing cases.

* Reject a big displacement in isLegalAddressingMode() for a vector type.

* Return true from shouldConsiderGEPOffsetSplit().

Reviewed By: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D122105
llvm/include/llvm/CodeGen/TargetLowering.h
llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
llvm/lib/Target/SystemZ/SystemZISelLowering.h
llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/dag-combine-06.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/memcpy-03.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/memset-08.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/store-replicated-vals.ll [new file with mode: 0644]