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
..
2014-02-16 07:31:05 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-09-16 22:22:07 +00:00
2013-08-27 08:39:25 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2014-01-16 06:31:20 +00:00
2014-01-24 17:20:08 +00:00
2014-04-19 13:47:43 +00:00
2013-10-15 23:33:07 +00:00
2014-05-05 16:47:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-08-21 17:14:31 +00:00
2013-10-16 02:27:33 +00:00
2013-12-11 08:38:42 +00:00
2013-12-11 08:38:42 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2014-01-24 17:20:08 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2014-05-06 01:20:42 +00:00
2013-11-14 06:05:49 +00:00
2013-08-12 12:43:26 +00:00
2014-03-21 00:30:24 +00:00
2013-12-11 04:10:41 +00:00
2013-10-15 23:33:07 +00:00
2014-02-25 20:01:08 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 17:51:02 +00:00
2013-10-15 17:51:58 +00:00
2013-12-03 09:17:32 +00:00
2013-11-02 00:10:02 +00:00
2013-11-22 17:56:57 +00:00
2013-11-25 18:05:22 +00:00
2013-11-26 20:31:31 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-31 17:50:45 +00:00
2013-10-15 23:33:07 +00:00
2013-09-23 16:57:52 +00:00
2013-10-15 23:33:07 +00:00
2014-01-24 17:20:08 +00:00
2013-10-15 23:33:07 +00:00
2014-04-26 00:02:37 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-11-17 10:53:19 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2014-01-11 21:06:00 +00:00
2014-02-28 18:44:39 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2014-02-16 07:31:05 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-12-05 05:44:44 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00