Simon Pilgrim d09cc9c62c [X86][MMX] Support MMX build vectors to avoid SSE usage (PR29222)
64-bit MMX vector generation usually ends up lowering into SSE instructions before being spilled/reloaded as a MMX type.

This patch creates a MMX vector from MMX source values, taking the lowest element from each source and constructing broadcasts/build_vectors with direct calls to the MMX PUNPCKL/PSHUFW intrinsics.

We're missing a few consecutive load combines that could be handled in a future patch if that would be useful - my main interest here is just avoiding a lot of the MMX/SSE crossover.

Differential Revision: https://reviews.llvm.org/D43618

llvm-svn: 327247
2018-03-11 19:22:13 +00:00
..
2018-02-07 13:28:23 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-12-13 22:09:09 +00:00
2018-02-21 00:15:48 +00:00
2017-12-10 20:46:57 +00:00
2018-02-28 22:57:23 +00:00
2018-02-28 22:57:23 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-12-14 11:40:54 +00:00
2018-01-14 19:07:41 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-12-11 16:47:21 +00:00
2018-02-06 18:18:49 +00:00
2017-08-02 00:28:10 +00:00
2017-04-21 09:21:01 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2018-01-19 06:08:15 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-05-15 13:14:04 +00:00
2018-02-11 13:12:50 +00:00
2018-01-08 13:21:24 +00:00
2018-01-17 22:19:31 +00:00
2018-01-19 12:05:58 +00:00
2017-12-07 13:50:29 +00:00
2017-12-15 14:37:28 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-08-02 00:28:10 +00:00
2017-12-15 14:02:35 +00:00
2018-02-20 14:08:39 +00:00
2017-08-02 00:28:10 +00:00