Andrea Di Biagio
c47edbef4c
[x86][FastISel] Teach how to select nontemporal stores.
...
This patch teaches x86 fast-isel how to select nontemporal stores.
On x86, we can use MOVNTI for nontemporal stores of doublewords/quadwords.
Instructions (V)MOVNTPS/PD/DQ can be used for SSE2/AVX aligned nontemporal
vector stores.
Before this patch, fast-isel always selected 'movd/movq' instead of 'movnti'
for doubleword/quadword nontemporal stores. In the case of nontemporal stores
of aligned vectors, fast-isel always selected movaps/movapd/movdqa instead of
movntps/movntpd/movntdq.
With this patch, if we use SSE2/AVX intrinsics for nontemporal stores we now
always get the expected (V)MOVNT instructions.
The lack of fast-isel support for nontemporal stores was spotted when analyzing
the -O0 codegen for nontemporal stores.
Differential Revision: http://reviews.llvm.org/D13698
llvm-svn: 250285
2015-10-14 10:03:13 +00:00
..
2015-09-16 05:34:32 +00:00
2015-09-13 11:28:45 +00:00
2015-09-16 05:34:32 +00:00
2015-09-01 01:42:16 +00:00
2015-06-17 20:52:32 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-10-07 18:21:41 +00:00
2015-10-07 01:21:49 +00:00
2015-08-28 20:26:49 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-06-17 20:52:32 +00:00
2015-08-28 20:26:49 +00:00
2015-05-26 18:35:10 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-08-28 20:26:49 +00:00
2015-09-16 05:34:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-09-16 05:34:32 +00:00
2015-06-17 20:52:32 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-05-26 18:35:10 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-08-19 21:11:58 +00:00
2015-06-11 07:46:37 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-06-17 20:52:32 +00:00
2015-06-16 15:51:48 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-05-23 00:31:56 +00:00
2015-09-24 10:35:03 +00:00
2015-09-24 10:35:03 +00:00
2015-09-11 03:22:04 +00:00
2015-07-17 00:57:52 +00:00
2015-06-17 20:52:32 +00:00
2015-06-29 21:35:51 +00:00
2015-06-29 21:35:51 +00:00
2015-10-06 05:39:59 +00:00
2015-10-13 00:28:47 +00:00
2015-05-26 18:35:10 +00:00
2015-05-26 18:35:10 +00:00
2015-05-26 18:35:10 +00:00
2015-08-15 13:27:30 +00:00
2015-08-20 20:36:19 +00:00
2015-08-20 20:36:19 +00:00
2015-09-02 23:25:39 +00:00
2015-06-11 07:46:37 +00:00
2015-09-13 08:15:15 +00:00
2015-05-26 11:32:39 +00:00
2015-06-22 09:01:15 +00:00
2015-05-14 09:04:45 +00:00
2015-09-10 12:54:54 +00:00
2015-07-24 17:24:15 +00:00
2015-10-08 12:55:01 +00:00
2015-06-29 09:10:00 +00:00
2015-07-01 13:24:28 +00:00
2015-06-29 12:14:24 +00:00
2015-10-08 12:55:01 +00:00
2015-10-04 07:20:41 +00:00
2015-09-11 03:22:04 +00:00
2015-09-17 06:53:12 +00:00
2015-05-20 14:32:03 +00:00
2015-05-12 13:25:46 +00:00
2015-07-24 17:24:15 +00:00
2015-05-18 07:06:23 +00:00
2015-09-08 13:10:00 +00:00
2015-09-02 14:21:54 +00:00
2015-09-02 14:21:54 +00:00
2015-09-03 09:05:31 +00:00
2015-09-20 08:46:07 +00:00
2015-09-20 08:46:07 +00:00
2015-10-04 07:20:41 +00:00
2015-09-22 11:43:17 +00:00
2015-09-23 08:48:33 +00:00
2015-09-23 08:48:33 +00:00
2015-10-08 12:55:01 +00:00
2015-09-04 19:47:56 +00:00
2015-07-06 22:46:46 +00:00
2015-06-17 20:52:32 +00:00
2015-10-09 01:13:17 +00:00
2015-06-17 20:52:32 +00:00
2015-06-13 16:25:12 +00:00
2015-06-05 10:29:55 +00:00
2015-06-17 20:52:32 +00:00
2015-10-12 23:02:58 +00:00
2015-06-17 20:52:32 +00:00
2015-10-07 23:55:01 +00:00
2015-05-18 23:35:09 +00:00
2015-08-19 20:51:40 +00:00
2015-05-26 18:35:10 +00:00
2015-08-10 20:59:36 +00:00
2015-06-17 20:52:32 +00:00
2015-08-10 19:01:27 +00:00
2015-06-19 01:53:21 +00:00
2015-09-11 03:22:04 +00:00
2015-06-30 19:10:31 +00:00
2015-08-12 08:08:56 +00:00
2015-08-12 08:08:56 +00:00
2015-08-12 08:08:56 +00:00
2015-10-06 05:39:59 +00:00
2015-05-18 23:35:09 +00:00
2015-10-06 02:50:24 +00:00
2015-05-29 18:19:25 +00:00
2015-05-12 01:26:05 +00:00
2015-09-16 16:31:21 +00:00
2015-09-03 15:03:19 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-10-08 07:48:49 +00:00
2015-06-09 19:07:19 +00:00
2015-08-19 11:21:43 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-06-11 21:42:18 +00:00
2015-08-03 17:26:41 +00:00
2015-06-17 20:52:32 +00:00
2015-09-11 18:54:38 +00:00
2015-06-17 20:52:32 +00:00
2015-07-14 19:22:51 +00:00
2015-08-31 20:02:16 +00:00
2015-07-28 17:32:49 +00:00
2015-07-28 16:24:05 +00:00
2015-07-28 16:24:05 +00:00
2015-07-28 16:24:05 +00:00
2015-06-17 20:52:32 +00:00
2015-08-13 23:10:16 +00:00
2015-09-16 05:34:32 +00:00
2015-10-03 22:06:06 +00:00
2015-10-02 16:08:05 +00:00
2015-10-02 16:08:05 +00:00
2015-08-26 20:46:49 +00:00
2015-09-11 03:22:04 +00:00
2015-06-17 20:52:32 +00:00
2015-10-14 10:03:13 +00:00
2015-08-26 20:46:52 +00:00
2015-09-11 03:22:04 +00:00
2015-07-28 23:28:22 +00:00
2015-08-07 23:19:41 +00:00
2015-09-22 11:43:17 +00:00
2015-09-12 15:33:05 +00:00
2015-10-11 19:48:12 +00:00
2015-08-10 19:01:27 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:44:46 +00:00
2015-10-03 22:06:06 +00:00
2015-06-22 20:51:51 +00:00
2015-08-11 08:48:48 +00:00
2015-06-29 20:28:47 +00:00
2015-07-02 11:44:54 +00:00
2015-09-11 18:54:38 +00:00
2015-09-11 18:54:38 +00:00
2015-06-23 00:39:40 +00:00
2015-09-23 18:33:42 +00:00
2015-05-19 11:06:56 +00:00
2015-07-15 08:39:35 +00:00
2015-08-28 20:26:49 +00:00
2015-07-09 17:40:29 +00:00
2015-09-02 01:31:58 +00:00
2015-10-06 23:31:59 +00:00
2015-06-17 20:52:32 +00:00
2015-09-29 20:12:33 +00:00
2015-06-17 23:55:17 +00:00
2015-06-17 20:52:32 +00:00
2015-09-08 19:47:15 +00:00
2015-09-08 19:47:15 +00:00
2015-09-08 19:47:15 +00:00
2015-09-08 19:47:15 +00:00
2015-09-29 22:09:16 +00:00
2015-05-12 07:33:07 +00:00
2015-05-26 18:35:10 +00:00
2015-05-19 11:06:56 +00:00
2015-08-11 14:10:58 +00:00
2015-07-09 20:13:25 +00:00
2015-07-20 20:31:39 +00:00
2015-08-12 11:27:26 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-07-13 16:36:22 +00:00
2015-09-11 18:54:38 +00:00
2015-10-11 18:27:24 +00:00
2015-06-17 20:52:32 +00:00
2015-07-09 14:58:04 +00:00
2015-07-28 17:52:59 +00:00
2015-10-12 19:43:34 +00:00
2015-09-30 22:25:55 +00:00
2015-09-03 16:36:16 +00:00
2015-10-03 20:52:55 +00:00
2015-09-22 08:16:08 +00:00
2015-08-28 20:26:49 +00:00
2015-08-28 20:26:49 +00:00
2015-09-02 08:39:13 +00:00
2015-08-01 10:01:46 +00:00
2015-09-02 15:42:49 +00:00
2015-07-30 21:41:50 +00:00
2015-09-25 22:27:02 +00:00
2015-09-25 21:49:48 +00:00
2015-08-28 20:26:49 +00:00
2015-08-19 18:53:36 +00:00
2015-10-08 20:10:06 +00:00
2015-10-08 20:10:06 +00:00
2015-09-02 23:25:39 +00:00
2015-09-11 18:54:38 +00:00
2015-10-08 20:10:06 +00:00
2015-09-08 20:51:31 +00:00
2015-09-02 23:25:39 +00:00
2015-09-02 22:47:09 +00:00
2015-08-28 20:26:49 +00:00
2015-09-02 19:17:25 +00:00
2015-06-17 20:52:32 +00:00
2015-08-13 23:10:16 +00:00
2015-06-17 20:52:32 +00:00
2015-06-18 18:31:46 +00:00
2015-05-28 20:44:28 +00:00
2015-06-16 06:07:24 +00:00
2015-09-16 11:27:20 +00:00
2015-08-11 17:04:31 +00:00
2015-07-28 00:48:32 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-09-11 18:54:38 +00:00
2015-09-02 15:42:49 +00:00
2015-07-14 03:07:06 +00:00
2015-08-19 20:09:50 +00:00
2015-08-25 07:42:09 +00:00
2015-05-26 18:35:10 +00:00
2015-09-11 03:22:04 +00:00
2015-06-02 22:33:30 +00:00
2015-05-28 22:12:27 +00:00
2015-08-10 11:59:44 +00:00
2015-09-11 17:34:34 +00:00
2015-10-12 11:25:41 +00:00
2015-08-27 21:46:04 +00:00
2015-07-16 13:55:39 +00:00
2015-08-06 08:45:34 +00:00
2015-08-06 08:45:34 +00:00
2015-08-06 08:45:34 +00:00
2015-10-08 15:45:08 +00:00
2015-10-07 07:01:31 +00:00
2015-07-09 17:40:29 +00:00
2015-06-22 18:29:44 +00:00
2015-09-22 11:43:17 +00:00
2015-06-24 12:49:42 +00:00
2015-09-30 00:01:47 +00:00
2015-08-25 07:42:09 +00:00
2015-09-20 08:12:17 +00:00
2015-06-17 20:52:32 +00:00
2015-06-27 20:33:26 +00:00
2015-08-25 02:31:21 +00:00
2015-10-09 23:05:54 +00:00
2015-10-09 20:39:39 +00:00
2015-10-09 23:05:54 +00:00
2015-10-09 23:05:54 +00:00
2015-10-09 00:15:13 +00:00
2015-07-01 16:45:47 +00:00
2015-10-09 23:05:54 +00:00
2015-10-12 23:02:58 +00:00
2015-10-12 23:02:58 +00:00
2015-10-09 23:05:54 +00:00
2015-10-12 19:22:30 +00:00
2015-08-20 09:00:56 +00:00
2015-06-17 20:52:32 +00:00
2015-09-11 03:22:04 +00:00
2015-08-11 08:19:43 +00:00
2015-06-26 14:51:49 +00:00
2015-08-19 11:35:10 +00:00
2015-06-04 22:50:05 +00:00
2015-08-11 19:39:36 +00:00
2015-08-25 16:29:21 +00:00
2015-09-08 20:51:31 +00:00
2015-08-10 16:47:47 +00:00
2015-06-17 20:52:32 +00:00
2015-08-12 00:29:10 +00:00
2015-05-18 23:35:09 +00:00
2015-05-21 14:01:32 +00:00
2015-08-02 15:23:53 +00:00
2015-08-01 10:01:46 +00:00
2015-09-23 08:48:33 +00:00
2015-09-23 08:48:33 +00:00
2015-09-23 08:48:33 +00:00
2015-09-23 08:48:33 +00:00
2015-08-10 20:45:44 +00:00
2015-07-28 00:48:32 +00:00
2015-05-21 14:01:32 +00:00
2015-10-08 20:18:15 +00:00
2015-09-11 18:54:38 +00:00
2015-09-22 11:43:17 +00:00
2015-09-22 11:43:17 +00:00
2015-09-12 11:45:24 +00:00
2015-09-19 17:04:18 +00:00
2015-09-12 11:45:24 +00:00
2015-09-06 17:50:15 +00:00
2015-06-07 18:34:25 +00:00
2015-08-14 22:41:43 +00:00
2015-08-28 20:26:49 +00:00
2015-06-17 20:52:32 +00:00
2015-08-28 20:26:49 +00:00
2015-06-26 00:26:44 +00:00
2015-08-10 21:27:03 +00:00
2015-05-12 23:52:24 +00:00
2015-05-12 23:52:24 +00:00
2015-06-04 23:03:21 +00:00
2015-05-12 23:52:24 +00:00
2015-05-12 23:52:24 +00:00
2015-08-10 19:01:27 +00:00
2015-06-17 20:52:32 +00:00
2015-08-14 15:48:41 +00:00
2015-09-08 20:58:41 +00:00
2015-09-01 01:42:16 +00:00
2015-09-23 00:34:56 +00:00
2015-08-26 23:15:32 +00:00
2015-06-04 22:05:51 +00:00
2015-09-01 01:42:16 +00:00
2015-09-01 01:42:16 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-06-30 08:49:35 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-10-12 11:47:46 +00:00
2015-06-30 08:49:35 +00:00
2015-05-28 20:44:28 +00:00
2015-09-17 17:21:45 +00:00
2015-08-10 23:07:26 +00:00
2015-08-10 19:56:39 +00:00
2015-08-28 17:19:54 +00:00
2015-05-28 20:44:28 +00:00
2015-05-28 20:44:28 +00:00
2015-07-28 16:24:05 +00:00
2015-07-28 16:24:05 +00:00
2015-07-28 16:24:05 +00:00
2015-05-20 04:45:26 +00:00
2015-07-01 23:12:13 +00:00
2015-08-14 17:53:40 +00:00
2015-09-11 18:54:38 +00:00
2015-08-28 20:26:49 +00:00
2015-09-22 08:16:08 +00:00
2015-10-11 14:15:17 +00:00
2015-10-11 14:15:17 +00:00
2015-07-26 17:02:25 +00:00
2015-07-28 00:48:32 +00:00
2015-07-18 17:05:39 +00:00
2015-09-22 08:16:08 +00:00
2015-08-19 21:11:58 +00:00
2015-08-19 21:11:58 +00:00
2015-08-19 11:21:43 +00:00
2015-10-01 00:11:07 +00:00
2015-10-08 08:13:02 +00:00
2015-07-09 07:42:48 +00:00
2015-09-05 11:56:30 +00:00
2015-09-20 06:52:42 +00:00
2015-09-05 11:56:30 +00:00
2015-09-21 15:59:46 +00:00
2015-09-05 09:59:59 +00:00
2015-09-05 09:59:59 +00:00
2015-09-05 09:59:59 +00:00
2015-09-22 08:16:08 +00:00
2015-09-30 08:17:50 +00:00
2015-09-30 08:17:50 +00:00
2015-09-06 13:36:32 +00:00
2015-09-30 08:17:50 +00:00
2015-09-30 08:17:50 +00:00
2015-09-06 13:36:32 +00:00
2015-09-30 08:17:50 +00:00
2015-09-30 08:17:50 +00:00
2015-09-06 13:36:32 +00:00
2015-10-04 07:20:41 +00:00
2015-08-20 20:59:41 +00:00
2015-08-20 21:02:39 +00:00
2015-08-20 21:02:39 +00:00
2015-10-04 07:20:41 +00:00
2015-08-23 15:22:14 +00:00
2015-09-22 08:16:08 +00:00
2015-09-22 08:16:08 +00:00
2015-09-08 06:38:21 +00:00
2015-09-08 06:38:21 +00:00
2015-09-08 06:38:21 +00:00
2015-10-04 10:12:53 +00:00
2015-09-17 06:53:12 +00:00
2015-08-18 08:37:09 +00:00
2015-09-19 13:22:57 +00:00
2015-09-19 13:22:57 +00:00
2015-09-19 13:22:57 +00:00
2015-09-24 21:02:17 +00:00
2015-07-12 17:40:49 +00:00
2015-07-27 23:01:41 +00:00
2015-07-13 13:55:18 +00:00
2015-08-01 10:01:46 +00:00
2015-09-16 05:34:32 +00:00
2015-07-06 22:35:19 +00:00
2015-07-08 21:03:47 +00:00
2015-07-06 22:35:19 +00:00
2015-07-03 08:01:36 +00:00
2015-08-01 10:01:46 +00:00
2015-09-16 22:14:46 +00:00
2015-10-09 21:27:28 +00:00
2015-10-08 18:41:52 +00:00
2015-10-06 23:31:59 +00:00
2015-09-10 22:00:02 +00:00
2015-09-29 10:12:57 +00:00
2015-10-09 01:13:17 +00:00
2015-06-17 20:52:32 +00:00
2015-08-19 11:35:10 +00:00
2015-07-01 23:12:13 +00:00
2015-06-26 18:55:48 +00:00
2015-10-09 22:18:45 +00:00
2015-10-12 23:02:58 +00:00
2015-09-29 23:32:01 +00:00
2015-10-06 23:31:59 +00:00
2015-10-09 23:05:54 +00:00
2015-07-29 22:32:47 +00:00
2015-08-19 16:17:08 +00:00
2015-08-19 16:28:21 +00:00
2015-09-08 20:51:31 +00:00
2015-05-19 11:06:56 +00:00
2015-09-11 18:54:38 +00:00
2015-08-10 17:00:44 +00:00
2015-08-25 23:27:41 +00:00
2015-09-11 03:22:04 +00:00
2015-05-22 18:10:47 +00:00
2015-06-16 21:40:28 +00:00
2015-09-17 23:21:34 +00:00
2015-06-27 03:46:58 +00:00
2015-08-19 11:35:10 +00:00