[PATCH] D47735: [DAGCombiner] Create rotates more aggressively
Krzysztof Parzyszek via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 20 14:02:09 PST 2019
kparzysz added a comment.
One goal was to be able to generate rol-and-accumulate instruction (on Hexagon), specifically for the accumulate operation being | (see `f11` in rotate.ll). For the C code we still don't generate it:
unsigned blah(unsigned x, unsigned s) {
return s | (x << 27) | (x >> 5);
}
Using `clang -S -target hexagon -O2 fs.c -o -` gives
{
r0 |= asl(r1,#25)
}
{
r0 |= lsr(r1,#7)
jumpr r31
}
What we'd want is `r0 |= rol(r1,#7)`.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D47735/new/
https://reviews.llvm.org/D47735
More information about the llvm-commits
mailing list