llvm-6502/lib
Andrea Di Biagio 8a712ba229 [X86] Improve the lowering of BITCAST dag nodes from type f64 to type v2i32 (and vice versa).
Before this patch, the backend always emitted a store+load sequence to
bitconvert from f64 to i64 the input operand of a ISD::BITCAST dag node that
performed a bitconvert from type MVT::f64 to type MVT::v2i32. The resulting
i64 node was then used to build a v2i32 vector.

With this patch, the backend now produces a cheaper SCALAR_TO_VECTOR from
MVT::f64 to MVT::v2f64. That SCALAR_TO_VECTOR is then followed by a "free"
bitcast to type MVT::v4i32. The elements of the resulting
v4i32 are then extracted to build a v2i32 vector (which is illegal and
therefore promoted to MVT::v2i64).

This is in general cheaper than emitting a stack store+load sequence
to bitconvert the operand from type f64 to type i64.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208107 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-06 17:09:03 +00:00
..
Analysis blockfreq: Move include to .cpp 2014-05-06 01:57:42 +00:00
AsmParser
Bitcode
CodeGen Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
DebugInfo
ExecutionEngine
IR Special case aliases in GlobalValue::getAlignment. 2014-05-06 16:48:58 +00:00
IRReader
LineEditor
Linker Be more strict about not calling setAlignment on global aliases. 2014-05-06 14:51:36 +00:00
LTO Use a range loop. 2014-05-05 20:06:41 +00:00
MC Have the SubtargetFeature help routine just not return a number and 2014-05-06 16:29:50 +00:00
Object [ELFYAML] Group ELF header falgs to target specific blocks. Handle flags 2014-05-03 11:39:50 +00:00
Option
ProfileData
Support Re-commit r208025, reverted in r208030, with a fix for a conformance issue 2014-05-06 01:44:26 +00:00
TableGen
Target [X86] Improve the lowering of BITCAST dag nodes from type f64 to type v2i32 (and vice versa). 2014-05-06 17:09:03 +00:00
Transforms Re-commit r208025, reverted in r208030, with a fix for a conformance issue 2014-05-06 01:44:26 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile