[PowerPC] Use helper functions to check sign-/zero-extended value
authorHiroshi Inoue <inouehrs@jp.ibm.com>
Wed, 18 Oct 2017 10:31:19 +0000 (10:31 +0000)
committerHiroshi Inoue <inouehrs@jp.ibm.com>
Wed, 18 Oct 2017 10:31:19 +0000 (10:31 +0000)
commit5388e66d3ab9985a80968fc71beb40cde170c44f
tree9afc639f330c34248016acb642f35e7f734dd25d
parent74c047eabb17b75cac6d6e9537b8e6e51e750880
[PowerPC] Use helper functions to check sign-/zero-extended value

Helper functions to identify sign- and zero-extending machine instruction is introduced in rL315888.
This patch makes PPCInstrInfo::optimizeCompareInstr use the helper functions. It simplifies the code and also makes possible more optimizations since the helper can do more analysis than the original check code; I observed about 5000 more compare instructions are eliminated while building LLVM.

Also, this patch fixes a bug in helpers on ANDIo instruction handling due to the order of checks. This bug causes a failure in an existing test case for optimizeCompareInstr.

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

llvm-svn: 316071
llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
llvm/test/CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll