diff options
author | David Green <david.green@arm.com> | 2022-06-06 11:39:51 +0100 |
---|---|---|
committer | David Green <david.green@arm.com> | 2022-06-06 11:39:51 +0100 |
commit | 4ea1b43527c9a845942dbbc27e022d74d72728e6 (patch) | |
tree | 5dc69b83b0d47847f4fdd3deb109e07f28435659 /llvm/lib/CodeGen/ModuloSchedule.cpp | |
parent | c1737785057dc2d79cf0dad767433b0c8baea951 (diff) | |
download | llvm-4ea1b43527c9a845942dbbc27e022d74d72728e6.zip llvm-4ea1b43527c9a845942dbbc27e022d74d72728e6.tar.gz llvm-4ea1b43527c9a845942dbbc27e022d74d72728e6.tar.bz2 |
[AArch64] Generate ADDP from shuffled add
This adds a fold of add(x, shuffle(x, <1,0,3,2,5,4,...>), into
shuffle(addp(x), <0,0,1,1,2,2,..>. The ADDP instruction takes two
vectors and returns one, adding adjacent pairs. So we match x in a
custom combine as it is lowered from a v8i32. The original code
would be 2 rev64 and 2 add, with the new code being a single addp
with a zip1;zip2 shuffle, producing smaller code.
Differential Revision: https://reviews.llvm.org/D126686
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions