[mips] Optimize code generation for 64-bit variable shift instructions.
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 21 Apr 2015 10:49:03 +0000 (10:49 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 21 Apr 2015 10:49:03 +0000 (10:49 +0000)
commitd72ba1af57b1e41730a1be7d0d06c5b12704d77c
tree65885ee9f37401927aa7c1f7ab7db87fcdcd2df8
parenta1fa0de25819bfe22b64c3fde7417f4667a24fcf
[mips] Optimize code generation for 64-bit variable shift instructions.

Summary:
The 64-bit version of the variable shift instructions uses the
shift_rotate_reg class which uses a GPR32Opnd to specify the variable
shift amount. With this patch we avoid the generation of a redundant
SLL instruction for the variable shift instructions in 64-bit targets.

Reviewers: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D7413

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235376 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/Mips64InstrInfo.td
test/CodeGen/Mips/llvm-ir/ashr.ll
test/CodeGen/Mips/llvm-ir/lshr.ll
test/CodeGen/Mips/llvm-ir/shl.ll
test/CodeGen/Mips/mips64shift.ll