[mips][msa] Remove copy_u.d and move copy_u.w to MSA64.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 21 Oct 2015 09:58:54 +0000 (09:58 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 21 Oct 2015 09:58:54 +0000 (09:58 +0000)
commit5d3ea87e63946b11a38288c69a8152cd7a56f13d
treeabdeaf744382ee8a2dec5f8188ad3e882c32208f
parent407b46bfab36af2899e17d6dfbb2a0ae76f94fd1
[mips][msa] Remove copy_u.d and move copy_u.w to MSA64.

Summary:
The forwards compatibility strategy employed by MIPS is to consider registers
to be infinitely sign-extended. Then on ISA's with a wider register, the result
of existing instructions are sign-extended to register width and zero-extended
counterparts are added. copy_u.w on MSA32 and copy_u.w on MSA64 violate this
strategy and we have therefore corrected the MSA specs to fix this.

We still keep track of sign/zero-extension during legalization but we now
match copy_s.[wd] where required.

No change required to clang since __builtin_msa_copy_u_[wd] will map to
copy_s.[wd] where appropriate for the target.

Reviewers: vkalintiris

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250887 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsDSPInstrInfo.td
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsMSAInstrInfo.td
test/CodeGen/Mips/msa/elm_copy.ll
test/MC/Disassembler/Mips/msa/test_elm.txt
test/MC/Disassembler/Mips/msa/test_elm_msa64.txt
test/MC/Mips/msa/test_elm.s
test/MC/Mips/msa/test_elm_msa64.s