1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00
Daniel Sanders e154d03143 [mips][msa] Remove the VSPLAT and VSPLATD nodes in favour of matching BUILD_VECTOR.
Most constant BUILD_VECTOR's are matched using ComplexPatterns which cover
bitcasted as well as normal vectors. However, it doesn't seem to be possible to
match ldi.[bhwd] in a type-agnostic manner (e.g. to support the widest range of
immediates, it should be possible to use ldi.b to load v2i64) using TableGen so
ldi.[bhwd] is matched using custom code in MipsSEISelDAGToDAG.cpp

This made the majority of the constant splat BUILD_VECTOR lowering redundant.
The only transformation remaining for constant splats is when an (up-to) 32-bit
constant splat is possible but the value does not fit into a 10-bit signed
integer. In this case, the BUILD_VECTOR is transformed into a bitcasted
BUILD_VECTOR so that fill.[bhw] can be used to splat the vector from a GPR32
register (which is initialized using the usual lui/addui sequence).

There are no additional tests since this is a re-implementation of previous
functionality. The change is intended to make it easier to implement some of
the upcoming instruction selection patches since they can rely on existing
support for BUILD_VECTOR's in the DAGCombiner.

compare_float.ll changed slightly because a BITCAST is no longer
introduced during legalization.

llvm-svn: 191299
2013-09-24 13:33:07 +00:00
..
2011-09-21 17:43:48 +00:00
2011-09-09 23:14:58 +00:00
2012-05-12 03:25:16 +00:00
2012-10-28 23:08:07 +00:00
2011-08-12 18:12:06 +00:00
2012-05-12 03:25:16 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2011-09-09 23:14:58 +00:00
2012-03-29 18:43:11 +00:00
2012-05-12 03:25:16 +00:00
2011-12-19 20:24:28 +00:00
2012-05-12 03:25:16 +00:00
2013-03-09 18:25:40 +00:00
2013-03-04 22:25:01 +00:00
2011-12-20 22:52:19 +00:00
2011-12-24 03:05:43 +00:00
2013-09-07 01:14:42 +00:00
2011-09-09 23:14:58 +00:00
2012-07-05 19:29:31 +00:00
2012-10-12 02:01:09 +00:00
2012-10-12 02:01:09 +00:00
2013-02-18 04:04:26 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2013-02-20 05:45:15 +00:00
2012-07-11 19:50:46 +00:00
2012-06-27 00:40:34 +00:00
2012-10-27 00:57:14 +00:00
2012-10-26 22:57:32 +00:00
2013-07-26 20:58:55 +00:00
2012-08-28 02:12:42 +00:00
2011-05-25 23:30:30 +00:00