Remove the rest of the *_sfp Neon instruction patterns.
authorBob Wilson <bob.wilson@apple.com>
Mon, 13 Dec 2010 23:02:37 +0000 (23:02 +0000)
committerBob Wilson <bob.wilson@apple.com>
Mon, 13 Dec 2010 23:02:37 +0000 (23:02 +0000)
commit4711d5cda37fc4a756f83fc1090e85ec9302c52f
tree99f985c78022ed2096100e554e66f39e1d104ad1
parent0e6d540d1745ea00042ca6d56d6e5929e7c8e5ca
Remove the rest of the *_sfp Neon instruction patterns.
Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions.
This change made a big difference in the code generated for the
CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing
a fine job, but some instructions that were previously moved outside the loop
are not moved now.  It's using fewer VFP registers now, which is generally
a good thing, so I think the estimates for register pressure changed and that
affected the LICM behavior.  Since that isn't obviously wrong, I've just
changed the test file.  This completes the work for Radar 8711675.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121730 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMInstrNEON.td
test/CodeGen/Thumb2/cross-rc-coalescing-2.ll
utils/TableGen/ARMDecoderEmitter.cpp