aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ModuloSchedule.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2022-06-06 11:39:51 +0100
committerDavid Green <david.green@arm.com>2022-06-06 11:39:51 +0100
commit4ea1b43527c9a845942dbbc27e022d74d72728e6 (patch)
tree5dc69b83b0d47847f4fdd3deb109e07f28435659 /llvm/lib/CodeGen/ModuloSchedule.cpp
parentc1737785057dc2d79cf0dad767433b0c8baea951 (diff)
downloadllvm-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