[PATCH] D77152: [SelectionDAG] Better legalization for FSHL and FSHR
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 16 03:05:31 PDT 2020
RKSimon added inline comments.
================
Comment at: llvm/test/CodeGen/PowerPC/funnel-shift.ll:22-24
+; CHECK-NEXT: clrlwi 5, 5, 27
+; CHECK-NEXT: srwi 4, 4, 1
+; CHECK-NEXT: clrlwi 6, 6, 27
----------------
foad wrote:
> RKSimon wrote:
> > foad wrote:
> > > RKSimon wrote:
> > > > foad wrote:
> > > > > This is a slight regression. We need one more instruction overall because of the two clrlwi instructions to mask both normal and the inverted shift amounts.
> > > > Any luck with this?
> > > No. I think it would need a target-specific lowering to take advantage of the fact that shift by 32 is well defined on PowerPC. Can I leave this for a later patch, and/or could a PowerPC expert volunteer to help with it?
> > So we're not just missing a micro optimization we can add to the powerpc backend as part of this patch? @hfinkel Any suggestions?
> I can't think of a simple micro optimization that would help. For PowerPC it would be better to expand fshl(X, Y, Z) as `X << (Z & 31) | Y >> (32 - (Z & 31))` (where the right shift supports shifting by 32) which would be better than either the "before" or the "after" code shown in this diff.
Are you able to add the PPC custom lowering to this patch?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77152/new/
https://reviews.llvm.org/D77152
More information about the llvm-commits
mailing list