Ahmed Bougacha
fab5892f8b
[AArch64] Avoid going through GPRs for across-vector instructions.
...
This adds new node types for each intrinsic.
For instance, for addv, we have AArch64ISD::UADDV, such that:
(v4i32 (uaddv ...))
is the same as
(v4i32 (scalar_to_vector (i32 (int_aarch64_neon_uaddv ...))))
that is,
(v4i32 (INSERT_SUBREG (v4i32 (IMPLICIT_DEF)),
(i32 (int_aarch64_neon_uaddv ...)), ssub)
In a combine, we transform all such across-vector-lanes intrinsics to:
(i32 (extract_vector_elt (uaddv ...), 0))
This has one big advantage: by making the extract_element explicit, we
enable the existing patterns for lane-aware instructions to fire.
This lets us avoid needlessly going through the GPRs. Consider:
uint32x4_t test_mul(uint32x4_t a, uint32x4_t b) {
return vmulq_n_u32(a, vaddvq_u32(b));
}
We now generate:
addv.4s s1, v1
mul.4s v0, v0, v1[0]
instead of the previous:
addv.4s s1, v1
fmov w8, s1
dup.4s v1, w8
mul.4s v0, v1, v0
rdar://20044838
llvm-svn: 231840
2015-03-10 20:45:38 +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-03-03 17:24:31 +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-05-24 12:50:23 +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-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-13 10:48:30 +00:00
2015-02-27 21:17:42 +00:00
2014-09-02 09:33:56 +00:00
2014-12-08 17:54:58 +00:00
2014-05-24 12:50:23 +00:00
2015-03-03 17:24:31 +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
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-30 08:59:55 +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
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-12-03 17:49:26 +00:00
2014-08-27 16:16: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
2014-05-24 12:50:23 +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-08-21 18:10:07 +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-05-30 10:09:59 +00:00
2014-05-30 05:58:19 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-06-09 01:25:51 +00:00
2014-05-24 12:50:23 +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 12:58:11 +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-05-24 12:50:23 +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-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-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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 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-02-27 19:29:02 +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-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-02 17:55:57 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-30 10:09:59 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-03-06 22:42:10 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 19:29:02 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-06-09 01:54:00 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-02 17:55:57 +00:00
2014-05-24 12:50:23 +00:00
2014-08-04 05:10:33 +00:00
2014-05-24 12:50:23 +00:00
2014-12-01 20:59:00 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-07-31 04:10:43 +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-01-30 02:13:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-13 10:48:30 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +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
2014-05-30 05:58:19 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +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
2014-05-30 05:58:19 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2014-12-02 21:36:24 +00:00
2015-02-27 18:32:11 +00:00
2014-12-15 19:07:53 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-07-17 10:51:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-08-28 22:08:28 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-15 12:18:12 +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
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-27 16:50:03 +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-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 18:43:53 +00:00
2014-11-07 02:50:00 +00:00
2014-06-17 11:31:42 +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
2014-06-13 14:24:07 +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
2014-06-15 09:27:15 +00:00
2015-02-27 21:17:42 +00:00
2014-08-29 15:34:58 +00:00
2015-02-04 13:31:29 +00:00
2015-02-27 21:17:42 +00:00
2014-05-30 10:09:59 +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
2014-05-24 12:42:26 +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 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-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-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:42:26 +00:00
2014-11-21 06:39:58 +00:00
2014-05-30 10:09:59 +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-08-27 16:16:04 +00:00
2015-02-27 21:17:42 +00:00
2014-08-27 16:16:04 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-02 23:53:43 +00:00
2014-12-02 23:53:43 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2014-06-11 06:44:53 +00:00
2014-05-24 12:50:23 +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
2014-05-24 12:50:23 +00:00
2015-02-16 18:10:47 +00:00
2014-09-02 13:54:53 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:42:26 +00:00
2014-05-24 12:42:26 +00:00
2015-03-05 20:04:21 +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
2014-05-24 12:50:23 +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
2014-06-09 22:42:55 +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-05-24 12:42:26 +00:00
2014-12-02 18:09:51 +00:00
2015-02-27 21:17:42 +00:00
2014-11-04 22:20:07 +00:00
2014-08-07 21:40:58 +00:00
2014-05-24 12:50:23 +00:00
2014-06-27 21:05:09 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-03-03 17:31:01 +00:00
2014-08-07 21:40:58 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2014-07-24 02:05:42 +00:00
2014-05-24 12:50:23 +00:00
2015-02-02 17:55:57 +00:00
2014-05-24 12:50:23 +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-02-27 21:17:42 +00:00
2014-08-20 10:40:20 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:42:26 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +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-04 13:31:29 +00:00
2014-05-24 12:42:26 +00:00
2015-02-27 21:17:42 +00:00
2014-10-16 16:41:15 +00:00
2014-05-24 12:50:23 +00:00
2015-02-08 00:50:47 +00:00
2015-02-27 21:17:42 +00:00
2014-05-24 12:50:23 +00:00
2014-05-24 12:50:23 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2014-08-18 12:42:15 +00:00
2014-08-13 23:23:58 +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-02-27 19:29:02 +00:00