Given a pair of floating point load and store, if there are no other uses of
authorEvan Cheng <evan.cheng@apple.com>
Wed, 2 Feb 2011 01:06:55 +0000 (01:06 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 2 Feb 2011 01:06:55 +0000 (01:06 +0000)
commit31959b19a72608051888160514977875a8027dfc
tree503b054cb3f31e6aa56154606611c06c12fd0d66
parent63f8659d6936077c5e8e34eecb55ff1de0db5686
Given a pair of floating point load and store, if there are no other uses of
the load, then it may be legal to transform the load and store to integer
load and store of the same width.

This is done if the target specified the transformation as profitable. e.g.
On arm, this can transform:
vldr.32 s0, []
vstr.32 s0, []

to

ldr r12, []
str r12, []

rdar://8944252

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124708 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
test/CodeGen/ARM/ldst-f32-2-i32.ll [new file with mode: 0644]