Hao Liu
442f620296
[AArch64] Match interleaved memory accesses into ldN/stN instructions.
Add a pass AArch64InterleavedAccess to identify and match interleaved memory accesses. This pass transforms an interleaved load/store into ldN/stN intrinsic. As Loop Vectorizor disables optimization on interleaved accesses by default, this optimization is also disabled by default. To enable it by "-aarch64-interleaved-access-opt=true"
E.g. Transform an interleaved load (Factor = 2):
%wide.vec = load <8 x i32>, <8 x i32>* %ptr
%v0 = shuffle %wide.vec, undef, <0, 2, 4, 6> ; Extract even elements
%v1 = shuffle %wide.vec, undef, <1, 3, 5, 7> ; Extract odd elements
Into:
%ld2 = { <4 x i32>, <4 x i32> } call aarch64.neon.ld2(%ptr)
%v0 = extractelement { <4 x i32>, <4 x i32> } %ld2, i32 0
%v1 = extractelement { <4 x i32>, <4 x i32> } %ld2, i32 1
E.g. Transform an interleaved store (Factor = 2):
%i.vec = shuffle %v0, %v1, <0, 4, 1, 5, 2, 6, 3, 7> ; Interleaved vec
store <8 x i32> %i.vec, <8 x i32>* %ptr
Into:
%v0 = shuffle %i.vec, undef, <0, 1, 2, 3>
%v1 = shuffle %i.vec, undef, <4, 5, 6, 7>
call void aarch64.neon.st2(%v0, %v1, %ptr)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239514 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-11 09:05:02 +00:00
..
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-29 01:31:42 +00:00
2014-09-11 05:10:28 +00:00
2015-04-29 16:38:44 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-09 08:49:47 +00:00
2015-02-27 21:17:42 +00:00
2015-04-22 09:11:38 +00:00
2015-06-11 09:05:02 +00:00
2015-02-27 21:17:42 +00:00
2014-10-17 17:06:31 +00:00
2014-07-23 12:58:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-31 00:31:13 +00:00
2015-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2015-02-13 10:48:30 +00:00
2015-02-27 21:17:42 +00:00
2014-09-02 09:33:56 +00:00
2015-04-16 23:24:18 +00:00
2015-04-29 16:38:44 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +00:00
2014-12-03 17:49:26 +00:00
2015-04-17 21:31:25 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-27 06:10:13 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-05-22 21:37:17 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-07-23 12:58:11 +00:00
2015-02-27 21:17:42 +00:00
2014-07-23 12:58:11 +00:00
2015-04-16 21:19:36 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-07-10 03:41:50 +00:00
2015-04-15 06:24:07 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-01 22:31:17 +00:00
2015-02-27 21:17:42 +00:00
2015-03-31 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-17 13:51:40 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:57:07 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-08-21 20:57:57 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 18:32:11 +00:00
2014-08-21 20:57:57 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-05-01 21:34:57 +00:00
2014-12-15 19:07:53 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-02 17:55:57 +00:00
2015-05-14 12:59:46 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-17 23:43:33 +00:00
2015-03-14 01:43:57 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +00:00
2015-03-14 01:43:57 +00:00
2015-05-21 21:36:46 +00:00
2015-03-06 22:42:10 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-04-09 05:34:57 +00:00
2015-02-27 21:17:42 +00:00
2015-03-14 01:43:57 +00:00
2015-06-01 12:02:47 +00:00
2015-06-01 12:02:47 +00:00
2015-04-03 10:02:21 +00:00
2014-08-04 05:10:33 +00:00
2015-04-27 21:43:12 +00:00
2015-02-27 21:17:42 +00:00
2015-04-27 21:43:12 +00:00
2015-03-31 16:41:38 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-01-30 02:13:53 +00:00
2015-02-27 21:17:42 +00:00
2015-05-12 16:47:30 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-07-23 20:46:32 +00:00
2014-09-11 17:34:19 +00:00
2015-05-05 17:38:16 +00:00
2015-02-27 21:17:42 +00:00
2015-03-10 20:45:38 +00:00
2015-03-10 20:45:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-14 01:43:57 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2014-12-15 19:07:53 +00:00
2015-05-21 21:36:46 +00:00
2015-06-09 20:59:41 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-04 09:12:08 +00:00
2015-03-04 09:12:08 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-10 20:45:38 +00:00
2015-03-10 20:45:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-10 20:45:38 +00:00
2014-12-02 23:13:39 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-07-17 10:51:23 +00:00
2015-02-27 21:17:42 +00:00
2014-08-28 22:08:28 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-03 10:02:21 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-01 20:52:32 +00:00
2015-04-01 01:52:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2014-11-07 02:50:00 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-11-03 15:28:40 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 02:39:14 +00:00
2015-04-09 20:04:47 +00:00
2015-04-09 20:04:47 +00:00
2014-08-29 15:34:58 +00:00
2015-02-04 13:31:29 +00:00
2015-04-16 23:24:18 +00:00
2014-08-08 08:27:44 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-10 00:08:48 +00:00
2015-05-07 19:21:36 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-04-09 20:00:46 +00:00
2015-02-27 21:17:42 +00:00
2014-11-11 23:10:44 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2014-10-12 06:47:47 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2014-11-21 06:39:58 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 08:21:09 +00:00
2015-04-23 17:16:27 +00:00
2015-04-23 17:16:27 +00:00
2015-04-23 17:16:27 +00:00
2014-08-27 16:16:04 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 17:32:25 +00:00
2014-08-27 16:16:04 +00:00
2015-02-27 21:17:42 +00:00
2014-10-24 00:03:46 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-21 04:37:08 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-11 00:06:36 +00:00
2015-04-11 00:06:36 +00:00
2015-04-11 00:06:36 +00:00
2015-04-11 00:06:36 +00:00
2015-05-12 16:47:30 +00:00
2015-06-04 20:39:23 +00:00
2015-04-18 01:21:58 +00:00
2015-02-27 21:17:42 +00:00
2014-07-12 21:20:49 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2014-07-07 21:37:51 +00:00
2015-02-16 18:10:47 +00:00
2014-09-02 13:54:53 +00:00
2015-03-13 18:20:45 +00:00
2014-06-24 16:21:38 +00:00
2015-02-27 19:29:02 +00:00
2014-10-21 01:17:30 +00:00
2015-02-24 18:52:04 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-10-31 02:35:34 +00:00
2015-04-24 17:14:16 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-02 18:09:51 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 05:15:23 +00:00
2015-05-08 17:54:32 +00:00
2014-11-04 22:20:07 +00:00
2014-08-07 21:40:58 +00:00
2014-06-27 21:05:09 +00:00
2015-04-08 23:02:45 +00:00
2015-06-04 13:48:23 +00:00
2015-03-03 17:31:01 +00:00
2014-08-07 21:40:58 +00:00
2015-02-27 21:17:42 +00:00
2014-07-24 02:05:42 +00:00
2015-02-02 17:55:57 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-01-21 23:17:19 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-10-21 20:47:22 +00:00
2015-02-27 21:17:42 +00:00
2014-09-12 17:40:39 +00:00
2015-03-27 20:37:20 +00:00
2015-02-27 21:17:42 +00:00
2014-08-20 10:40:20 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-23 20:25:15 +00:00
2015-02-04 13:31:29 +00:00
2015-03-13 18:20:45 +00:00
2014-10-16 16:41:15 +00:00
2015-02-08 00:50:47 +00:00
2015-03-27 06:10:13 +00:00
2015-06-01 12:02:47 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-05-06 20:07:38 +00:00
2015-05-09 05:59:00 +00:00
2015-03-27 20:35:49 +00:00
2014-08-13 23:23:58 +00:00
2015-03-27 20:28:30 +00:00
2015-04-13 21:55:21 +00:00
2015-02-27 21:17:42 +00:00
2014-10-30 23:46:50 +00:00
2015-02-27 21:17:42 +00:00
2015-03-31 10:20:58 +00:00
2015-02-27 19:29:02 +00:00