Revert r229675 - [mips] Avoid redundant sign extension of the result of binary bitwis...
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 4 Aug 2015 14:26:35 +0000 (14:26 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 4 Aug 2015 14:26:35 +0000 (14:26 +0000)
commitedcaae782eddc1b820f5e58d5405c541665c87be
tree56fc9a7d153283c35318177b8449beb011c73540
parent7f68d74ddefb56cfe973ad24b4dfd0d20a4ab0f8
Revert r229675 - [mips] Avoid redundant sign extension of the result of binary bitwise instructions.

It introduced two regressions on 64-bit big-endian targets running under N32
(MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4, and
MultiSource/Applications/kimwitu++/kc) The issue is that on 64-bit targets
comparisons such as BEQ compare the whole GPR64 but incorrectly tell the
instruction selector that they operate on GPR32's. This leads to the
elimination of i32->i64 extensions that are actually required by
comparisons to work correctly.

There's currently a patch under review that fixes this problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243984 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/Mips64InstrInfo.td
test/CodeGen/Mips/delay-slot-kill.ll
test/CodeGen/Mips/llvm-ir/and.ll
test/CodeGen/Mips/llvm-ir/or.ll
test/CodeGen/Mips/llvm-ir/xor.ll