Hao Liu
41b3fe53ba
[InterleavedAccess] Add a pass InterleavedAccess to identify interleaved memory accesses and transform into target specific intrinsics.
...
E.g. An interleaved load (Factor = 2):
%wide.vec = load <8 x i32>, <8 x i32>* %ptr
%v0 = shuffle <8 x i32> %wide.vec, <8 x i32> undef, <0, 2, 4, 6>
%v1 = shuffle <8 x i32> %wide.vec, <8 x i32> undef, <1, 3, 5, 7>
It can be transformed into a ld2 intrinsic in AArch64 backend or a vld2 intrinsic in ARM backend.
E.g. An interleaved store (Factor = 3):
%i.vec = shuffle <8 x i32> %v0, <8 x i32> %v1, <0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11>
store <12 x i32> %i.vec, <12 x i32>* %ptr
It can be transformed into a st3 intrinsic in AArch64 backend or a vst3 intrinsic in ARM backend.
Differential Revision: http://reviews.llvm.org/D10533
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240751 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 02:10:27 +00:00
..
2015-06-15 20:30:22 +00:00
2015-05-11 22:41:07 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-05-15 21:58:42 +00:00
2015-06-11 20:03:23 +00:00
2015-06-23 09:49:53 +00:00
2015-06-26 00:53:44 +00:00
2015-05-27 22:14:58 +00:00
2015-05-24 16:58:59 +00:00
2014-04-24 18:27:29 +00:00
2015-06-23 12:21:54 +00:00
2015-06-23 20:09:03 +00:00
2015-05-20 11:37:25 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2013-03-25 13:47:46 +00:00
2015-05-20 01:07:23 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-02-15 22:54:22 +00:00
2015-05-05 20:14:22 +00:00
2015-06-23 09:49:53 +00:00
2014-04-21 09:34:48 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 14:47:29 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2014-08-03 21:35:39 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-15 20:30:22 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 12:21:54 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-04-07 12:59:28 +00:00
2015-06-23 12:21:54 +00:00
2015-04-11 02:11:45 +00:00
2015-04-11 02:11:45 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-04-11 02:11:45 +00:00
2015-06-23 09:49:53 +00:00
2014-08-13 16:26:38 +00:00
2015-06-23 09:49:53 +00:00
2015-06-24 19:56:10 +00:00
2015-06-26 02:10:27 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-03-01 20:39:34 +00:00
2014-04-21 09:34:48 +00:00
2015-04-01 21:16:02 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-05-29 19:43:39 +00:00
2014-07-01 21:19:13 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-22 17:46:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00
2014-04-14 00:51:57 +00:00
2015-05-21 19:20:38 +00:00
2015-05-14 18:01:13 +00:00
2015-06-23 09:49:53 +00:00
2015-04-17 16:11:05 +00:00
2015-06-23 09:49:53 +00:00
2015-06-23 09:49:53 +00:00