OSDN Git Service

[mips] Promote the result of SETCC nodes to GPR width.
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 1 Mar 2016 10:08:01 +0000 (10:08 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Tue, 1 Mar 2016 10:08:01 +0000 (10:08 +0000)
commitef35f84f099628a76a0c255510bf8dccbd1e0504
treec6e42885a6e0da1e8355b36ef6fd0fb3a6a76155
parent344528bfecf4f8cc9f97e244daef5ac91f6e489f
[mips] Promote the result of SETCC nodes to GPR width.

Summary:
This patch modifies the existing comparison, branch, conditional-move
and select patterns, and adds new ones where needed. Also, the updated
SLT{u,i,iu} set of instructions generate a GPR width result.

The majority of the code changes in the Mips back-end fix the wrong
assumption that the result of SETCC nodes always produce an i32 value.
The changes in the common code path account for the fact that in 64-bit
MIPS targets, i1 is promoted to i32 instead of i64.

Reviewers: dsanders

Subscribers: dsanders, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262316 91177308-0d34-0410-b5e6-96231b3b80d8
27 files changed:
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Target/Mips/Disassembler/MipsDisassembler.cpp
lib/Target/Mips/MicroMips32r6InstrInfo.td
lib/Target/Mips/MicroMips64r6InstrInfo.td
lib/Target/Mips/MicroMipsInstrInfo.td
lib/Target/Mips/Mips32r6InstrInfo.td
lib/Target/Mips/Mips64InstrInfo.td
lib/Target/Mips/Mips64r6InstrInfo.td
lib/Target/Mips/MipsCondMov.td
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsISelLowering.h
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/Mips/MipsSEISelDAGToDAG.cpp
lib/Target/Mips/MipsSEISelLowering.cpp
test/CodeGen/Mips/atomic.ll
test/CodeGen/Mips/blez_bgez.ll
test/CodeGen/Mips/cmov.ll
test/CodeGen/Mips/countleading.ll
test/CodeGen/Mips/fcmp.ll
test/CodeGen/Mips/llvm-ir/select-dbl.ll
test/CodeGen/Mips/llvm-ir/select-flt.ll
test/CodeGen/Mips/llvm-ir/select-int.ll
test/CodeGen/Mips/octeon.ll