Zia Ansari
4fd5110a5a
[X86] - Catch extra combine opportunities for redundant imuls.
...
When we fold "mul ((add x, c1), c1)" -> "add ((mul x, c2), c1*c2)", we bail if (add x, c1) has multiple
users which would result in an extra add instruction.
In such cases, this patch adds a check to see if we can eliminate a multiply instruction in exchange for the extra add.
I also added the capability of doing the existing optimization with non-splatted vectors (splatted also works).
Differential Revision: http://reviews.llvm.org/D13740
llvm-svn: 251028
2015-10-22 16:14:45 +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-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-10-07 18:21:41 +00:00
2015-10-07 01:21:49 +00:00
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-09-16 05:34:32 +00:00
2015-09-24 10:35:03 +00:00
2015-09-24 10:35:03 +00:00
2015-10-16 22:14:12 +00:00
2015-09-11 03:22:04 +00:00
2015-10-15 16:46:29 +00:00
2015-10-15 18:24:52 +00:00
2015-09-02 23:25:39 +00:00
2015-09-13 08:15:15 +00:00
2015-10-22 07:10:29 +00:00
2015-09-10 12:54:54 +00:00
2015-10-08 12:55:01 +00:00
2015-10-08 12:55:01 +00:00
2015-10-22 14:01:16 +00:00
2015-09-11 03:22:04 +00:00
2015-09-17 06:53:12 +00:00
2015-09-08 13:10:00 +00:00
2015-09-02 14:21:54 +00:00
2015-10-20 11:56:42 +00:00
2015-09-03 09:05:31 +00:00
2015-10-18 11:04:38 +00:00
2015-09-20 08:46:07 +00:00
2015-10-22 14:01:16 +00:00
2015-09-22 11:43:17 +00:00
2015-09-23 08:48:33 +00:00
2015-10-20 11:20:13 +00:00
2015-10-20 11:56:42 +00:00
2015-10-20 11:20:13 +00:00
2015-09-04 19:47:56 +00:00
2015-10-20 11:20:13 +00:00
2015-10-09 01:13:17 +00:00
2015-10-12 23:02:58 +00:00
2015-10-07 23:55:01 +00:00
2015-10-15 05:28:38 +00:00
2015-10-19 23:16:40 +00:00
2015-10-19 23:16:40 +00:00
2015-09-11 03:22:04 +00:00
2015-10-22 16:14:45 +00:00
2015-10-06 05:39:59 +00:00
2015-10-06 02:50:24 +00:00
2015-09-16 16:31:21 +00:00
2015-09-03 15:03:19 +00:00
2015-10-08 07:48:49 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 18:54:38 +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-09-11 03:22:04 +00:00
2015-10-17 13:04:42 +00:00
2015-09-11 03:22:04 +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-10-03 22:06:06 +00:00
2015-09-11 18:54:38 +00:00
2015-09-11 18:54:38 +00:00
2015-09-23 18:33:42 +00:00
2015-10-06 23:31:59 +00:00
2015-09-29 20:12:33 +00:00
2015-10-15 05:28:38 +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-09-11 18:54:38 +00:00
2015-10-11 18:27:24 +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-10-21 11:50:54 +00:00
2015-09-02 15:42:49 +00:00
2015-09-25 22:27:02 +00:00
2015-09-25 21:49:48 +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-10-15 17:05:12 +00:00
2015-09-02 19:17:25 +00:00
2015-10-21 17:24:00 +00:00
2015-09-16 11:27:20 +00:00
2015-09-11 18:54:38 +00:00
2015-09-02 15:42:49 +00:00
2015-09-11 03:22:04 +00:00
2015-09-11 17:34:34 +00:00
2015-10-08 15:45:08 +00:00
2015-10-07 07:01:31 +00:00
2015-09-22 11:43:17 +00:00
2015-09-30 00:01:47 +00:00
2015-10-16 20:39:20 +00:00
2015-09-20 08:12:17 +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-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-09-11 03:22:04 +00:00
2015-09-08 20:51:31 +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-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-09-08 20:58:41 +00:00
2015-09-23 00:34:56 +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-10-16 06:03:09 +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-10-16 06:03:09 +00:00
2015-09-17 17:21:45 +00:00
2015-09-11 18:54:38 +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-09-22 08:16:08 +00:00
2015-10-01 00:11:07 +00:00
2015-10-08 08:13:02 +00:00
2015-10-18 09:56:39 +00:00
2015-10-18 09:56:39 +00:00
2015-10-18 09:56:39 +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-10-18 12:54:37 +00:00
2015-10-20 20:27:23 +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-10-04 07:20:41 +00:00
2015-09-22 08:16:08 +00:00
2015-09-22 08:16:08 +00:00
2015-10-15 13:29:07 +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-10-15 13:29:07 +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-09-16 05:34:32 +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-10-16 23:43:27 +00:00
2015-10-16 21:22:54 +00:00
2015-10-21 19:54:40 +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-09-08 20:51:31 +00:00
2015-09-11 18:54:38 +00:00
2015-09-11 03:22:04 +00:00
2015-10-15 09:54:25 +00:00
2015-09-17 23:21:34 +00:00
2015-10-17 18:21:53 +00:00