[MIPS GlobalISel] Register bank select for G_STORE. Select i64 store
commit4596dafe75174ecb4ce012e90f5420f4aeb6a130
authorPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 8 Jul 2019 14:36:36 +0000 (8 14:36 +0000)
committerPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 8 Jul 2019 14:36:36 +0000 (8 14:36 +0000)
treee7170c864b9f73de68d9d55e9140544f5ae49523
parentab552868580e0de34f9a6d30c079ae9f5cda2d95
[MIPS GlobalISel] Register bank select for G_STORE. Select i64 store

Select gprb or fprb when stored value is defined by either:
 copy from physical register or
 instruction with only one mapping available for that def operand.

Store of integer s64 is handled with narrowScalar when mapping is applied,
produced artifacts are combined away. Manually set gprb to all register
operands of instructions created during narrowScalar.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365322 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsLegalizerInfo.cpp
lib/Target/Mips/MipsRegisterBankInfo.cpp
lib/Target/Mips/MipsRegisterBankInfo.h
test/CodeGen/Mips/GlobalISel/legalizer/store.mir [new file with mode: 0644]
test/CodeGen/Mips/GlobalISel/llvm-ir/store.ll [new file with mode: 0644]
test/CodeGen/Mips/GlobalISel/regbankselect/store.mir [new file with mode: 0644]