[AArch64] Swap comparison operands if that enables some folding.
authorArnaud A. de Grandmaison <arnaud.degrandmaison@arm.com>
Sat, 13 Oct 2018 07:43:56 +0000 (07:43 +0000)
committerArnaud A. de Grandmaison <arnaud.degrandmaison@arm.com>
Sat, 13 Oct 2018 07:43:56 +0000 (07:43 +0000)
commit162435e7b5e026b9f988c730bb6527683f6aa853
treebc3754e96afec1728ef847b66dac53cd8254e8b7
parent3afc346dd093fad4a5a24e35204040d0be5a5b17
[AArch64] Swap comparison operands if that enables some folding.

Summary:
AArch64 can fold some shift+extend operations on the RHS operand of
comparisons, so swap the operands if that makes sense.

This provides a fix for https://bugs.llvm.org/show_bug.cgi?id=38751

Reviewers: efriedma, t.p.northover, javed.absar

Subscribers: mcrosier, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D53067

llvm-svn: 344439
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/and-mask-removal.ll
llvm/test/CodeGen/AArch64/lack-of-signed-truncation-check.ll
llvm/test/CodeGen/AArch64/sat-add.ll
llvm/test/CodeGen/AArch64/signed-truncation-check.ll
llvm/test/CodeGen/AArch64/swap-compare-operands.ll [new file with mode: 0644]