This addresses one half of https://bugs.llvm.org/show_bug.cgi?id=41635 by combining a VECREDUCE_AND into VECREDUCE_UMIN (if latter legal but former not) for zero-or-all-ones boolean reductions. I'm using sign bits to detect that, is there a better way to do that?
Details
Details
- Reviewers
RKSimon sdesmalen aemerson efriedma t.p.northover - Commits
- rZORG5ece5e23050e: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
rZORG9143a80ac027: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
rG5ece5e23050e: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
rG9143a80ac027: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
rGcfe786a19567: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
rL360054: [SDAG][AArch64] Boolean and/or reduce to umax/min reduce (PR41635)
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I'm using sign bits to detect that, is there a better way to do that?
Unfortunately, not that I can think of. So I think this looks good.