[DAGCombiner] More load-store forwarding for big-endian
authorRoland Froese <froese@ca.ibm.com>
Wed, 14 Sep 2022 19:35:37 +0000 (15:35 -0400)
committerRoland Froese <froese@ca.ibm.com>
Wed, 14 Sep 2022 19:36:35 +0000 (15:36 -0400)
commit207228c1d6507a302a06eef7dfd9415417bd48bb
tree6bb7ae9927094ed6cd975b77bda4a9c0a2dcffec
parent25394c9d10e73b666f4fa1dff2426824894cce58
[DAGCombiner] More load-store forwarding for big-endian

Get some load-store forwarding cases for big-endian where a larger store covers
a smaller load, and the offset would be 0 and handled on little-endian but on
big-endian the offset is adjusted to be non-zero. The idea is just to shift the
data to make it look like the offset 0 case.

Differential Revision: https://reviews.llvm.org/D130115
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/AArch64/load-store-forwarding.ll
llvm/test/CodeGen/Mips/cconv/vector.ll
llvm/test/CodeGen/PowerPC/aix-cc-byval.ll
llvm/test/CodeGen/PowerPC/ppc64-byval-larger-struct.ll
llvm/test/CodeGen/PowerPC/ppc64-byval-multi-store.ll
llvm/test/CodeGen/PowerPC/pr45301.ll
llvm/test/CodeGen/PowerPC/store-forward-be32.ll
llvm/test/CodeGen/PowerPC/store-forward-be64.ll