[llvm][AArch64] Allow TB(N)Z to drop signext for sign bit tests.
authorFrancesco Petrogalli <francesco.petrogalli@arm.com>
Mon, 9 Nov 2020 18:18:28 +0000 (18:18 +0000)
committerFrancesco Petrogalli <francesco.petrogalli@arm.com>
Mon, 9 Nov 2020 18:27:48 +0000 (18:27 +0000)
commit9f61931e077d831d33da2565d01e82f6bfb872aa
tree252fec8c31b83a779acbbbd3fb875c4c4eb739c8
parent66a9607557a1f804911a5b8a687128462c5e4f1a
[llvm][AArch64] Allow TB(N)Z to drop signext for sign bit tests.

For example if the sign extension is only used in for TBZ, and the value is used elsewhere with a zero extension, this can eliminate a sign extension.

Reviewed By: samparker

Differential Revision: https://reviews.llvm.org/D90606
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/check-sign-bit-before-extension.ll [new file with mode: 0644]