OSDN Git Service

[MMX] Use the appropriate instructions for GR64 <-> VR64 copies.
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 14 Jul 2015 20:09:34 +0000 (20:09 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 14 Jul 2015 20:09:34 +0000 (20:09 +0000)
commit813d99877a1599e7190c9177d80be331f86a6181
tree419e927bf0d03e01c45a1c392d6aea1f79eb9a4c
parent13141f04d3f42f5090d8970dc9db01b1d345f7c5
[MMX] Use the appropriate instructions for GR64 <-> VR64 copies.

MOVSDto64rr and MOV64toSDrr are defined to convert between FR64 (%xmm)
<-> GR64 registers, not VR64 (%mm) <-> GR64. This is wrong.

I found this by inspection and could not find a suitable testcase for it
since (1) we don't handle MMX bitcasts in Peephole optimizer as to
generate COPYs that (2) could be expanded back to the appropriate x86
instruction in ExpandPostRA.

Switch to use the appropriate instructions: MMX_MOVD64from64rr and
MMX_MOVD64to64rr here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242191 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrInfo.cpp