Stephen Lin
e54885af9b
AArch64/PowerPC/SystemZ/X86: This patch fixes the interface, usage, and all
...
in-tree implementations of TargetLoweringBase::isFMAFasterThanMulAndAdd in
order to resolve the following issues with fmuladd (i.e. optional FMA)
intrinsics:
1. On X86(-64) targets, ISD::FMA nodes are formed when lowering fmuladd
intrinsics even if the subtarget does not support FMA instructions, leading
to laughably bad code generation in some situations.
2. On AArch64 targets, ISD::FMA nodes are formed for operations on fp128,
resulting in a call to a software fp128 FMA implementation.
3. On PowerPC targets, FMAs are not generated from fmuladd intrinsics on types
like v2f32, v8f32, v4f64, etc., even though they promote, split, scalarize,
etc. to types that support hardware FMAs.
The function has also been slightly renamed for consistency and to force a
merge/build conflict for any out-of-tree target implementing it. To resolve,
see comments and fixed in-tree examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185956 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-09 18:16:56 +00:00
..
2013-03-25 13:47:46 +00:00
2013-06-25 02:48:58 +00:00
2013-05-01 05:34:30 +00:00
2013-03-12 16:27:52 +00:00
2013-03-12 16:27:52 +00:00
2013-06-25 02:48:58 +00:00
2013-03-12 16:27:52 +00:00
2013-03-12 16:27:52 +00:00
2013-04-30 07:51:08 +00:00
2013-05-01 05:34:30 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 07:51:08 +00:00
2013-05-01 05:34:30 +00:00
2013-04-30 07:51:08 +00:00
2013-05-01 05:34:30 +00:00
2013-05-01 05:34:30 +00:00
2013-06-18 20:14:39 +00:00
2013-04-29 22:41:29 +00:00
2013-04-30 07:51:08 +00:00
2013-06-18 20:14:39 +00:00
2013-05-01 05:34:30 +00:00
2013-03-12 16:27:52 +00:00
2013-04-29 22:41:29 +00:00
2012-12-26 03:19:30 +00:00
2013-06-24 09:51:30 +00:00
2013-02-05 18:04:15 +00:00
2013-05-27 13:22:52 +00:00
2013-03-12 16:27:52 +00:00
2013-04-29 22:41:29 +00:00
2012-12-04 21:34:03 +00:00
2013-05-01 05:34:30 +00:00
2013-06-25 02:48:58 +00:00
2013-06-24 09:51:30 +00:00
2013-04-30 07:51:08 +00:00
2013-05-01 05:34:30 +00:00
2013-05-01 05:34:30 +00:00
2013-04-29 22:41:29 +00:00
2013-04-30 07:51:08 +00:00
2013-04-30 07:51:08 +00:00
2013-04-30 07:51:08 +00:00
2012-12-10 23:21:26 +00:00
2012-11-12 06:49:17 +00:00
2013-03-28 02:44:59 +00:00
2013-03-12 16:27:52 +00:00
2013-06-25 02:48:58 +00:00
2013-04-22 06:12:31 +00:00
2013-04-22 06:12:31 +00:00
2013-06-15 16:02:44 +00:00
2013-06-15 16:02:44 +00:00
2013-04-10 23:30:20 +00:00
2012-12-04 21:34:03 +00:00
2013-06-28 05:43:10 +00:00
2013-03-21 20:28:52 +00:00
2013-06-25 02:48:58 +00:00
2013-04-22 06:12:31 +00:00
2013-03-21 20:28:52 +00:00
2013-04-22 06:12:31 +00:00
2013-03-12 16:27:52 +00:00
2013-05-30 13:19:42 +00:00
2013-06-25 02:48:58 +00:00
2013-02-04 15:19:18 +00:00
2013-02-24 07:09:35 +00:00
2013-04-30 17:52:57 +00:00
2013-01-19 08:38:41 +00:00
2013-03-12 16:27:52 +00:00
2013-06-25 02:48:58 +00:00
2012-11-27 00:48:27 +00:00
2012-12-11 00:36:43 +00:00
2013-05-22 08:13:02 +00:00
2012-11-29 00:00:08 +00:00
2013-04-30 17:52:57 +00:00
2013-03-28 02:44:59 +00:00
2013-03-20 00:26:26 +00:00
2012-12-02 17:14:09 +00:00
2012-12-06 17:34:13 +00:00
2012-12-13 01:34:32 +00:00
2012-12-14 21:20:37 +00:00
2012-12-20 01:36:20 +00:00
2013-03-30 21:28:18 +00:00
2013-02-14 08:20:26 +00:00
2013-04-30 17:52:57 +00:00
2013-05-06 08:06:13 +00:00
2013-06-25 02:48:58 +00:00
2012-10-31 23:11:48 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-04-25 17:10:21 +00:00
2013-06-17 19:00:36 +00:00
2013-03-04 18:13:57 +00:00
2013-04-11 21:39:01 +00:00
2013-04-11 21:39:01 +00:00
2013-03-27 19:14:02 +00:00
2013-04-25 20:29:37 +00:00
2013-04-25 20:29:37 +00:00
2013-04-25 20:29:37 +00:00
2013-01-11 22:06:56 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-04-02 22:35:08 +00:00
2013-04-02 22:35:08 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-05-02 18:11:35 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-07 01:01:29 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-01-18 14:52:02 +00:00
2013-06-26 10:55:03 +00:00
2013-04-22 08:02:43 +00:00
2013-06-05 18:12:26 +00:00
2012-12-21 17:46:58 +00:00
2012-12-05 09:24:57 +00:00
2013-04-22 08:02:43 +00:00
2013-06-25 02:48:58 +00:00
2013-05-01 13:00:16 +00:00
2013-04-11 04:43:09 +00:00
2013-03-31 12:49:15 +00:00
2013-04-22 08:02:43 +00:00
2013-06-25 02:48:58 +00:00
2012-12-07 19:01:13 +00:00
2013-03-25 23:50:10 +00:00
2013-04-22 08:02:43 +00:00
2013-06-26 10:55:03 +00:00
2013-04-22 08:02:43 +00:00
2013-06-25 02:48:58 +00:00
2013-01-26 11:44:21 +00:00
2013-04-22 08:02:43 +00:00
2013-03-07 18:51:02 +00:00
2013-03-07 18:51:02 +00:00
2013-05-17 14:48:34 +00:00
2013-04-22 08:02:43 +00:00
2013-04-22 08:02:43 +00:00
2013-05-16 16:48:46 +00:00
2013-02-24 07:09:35 +00:00
2013-06-24 01:55:01 +00:00
2012-12-17 05:02:29 +00:00
2013-03-28 23:41:26 +00:00
2013-04-11 04:43:09 +00:00
2013-06-25 02:48:58 +00:00
2013-05-01 05:34:30 +00:00
2013-06-25 02:48:58 +00:00
2012-11-14 22:24:01 +00:00
2012-11-14 22:24:01 +00:00
2012-11-14 22:24:01 +00:00
2012-11-14 22:24:01 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 07:51:08 +00:00
2013-02-13 06:01:05 +00:00
2013-06-25 02:48:58 +00:00
2012-12-21 23:48:49 +00:00
2013-06-25 02:48:58 +00:00
2013-05-22 08:13:02 +00:00
2013-01-03 00:47:51 +00:00
2013-06-24 09:51:30 +00:00
2013-04-30 17:52:57 +00:00
2013-04-12 01:07:16 +00:00
2013-05-08 09:00:10 +00:00
2013-02-22 19:53:30 +00:00
2013-04-30 07:51:08 +00:00
2013-06-25 02:48:58 +00:00
2013-05-09 20:10:38 +00:00
2013-04-23 12:03:27 +00:00
2013-03-29 21:54:00 +00:00
2013-03-12 16:27:52 +00:00
2013-03-12 16:27:52 +00:00
2013-06-24 09:51:30 +00:00
2013-06-21 18:47:08 +00:00
2013-01-02 22:13:01 +00:00
2013-03-25 22:52:29 +00:00
2013-03-12 16:27:52 +00:00
2012-12-04 21:34:03 +00:00
2013-04-22 06:12:31 +00:00
2013-04-22 06:12:31 +00:00
2013-05-29 22:03:55 +00:00
2013-03-28 02:44:59 +00:00
2013-03-21 20:28:52 +00:00
2013-03-20 23:58:12 +00:00
2013-04-22 06:12:31 +00:00
2013-04-30 17:52:57 +00:00
2013-06-20 00:25:24 +00:00
2013-04-22 06:12:31 +00:00
2013-04-22 06:12:31 +00:00
2013-06-25 02:48:58 +00:00
2013-04-22 06:12:31 +00:00
2013-04-22 06:12:31 +00:00
2013-04-30 22:35:14 +00:00
2013-06-15 00:33:47 +00:00
2013-03-18 22:08:16 +00:00
2013-02-05 19:24:39 +00:00
2013-03-20 23:58:12 +00:00
2012-11-26 22:55:05 +00:00
2013-04-02 18:26:45 +00:00
2013-01-05 07:39:25 +00:00
2013-06-07 18:36:03 +00:00
2013-07-09 18:16:56 +00:00
2013-04-10 23:30:20 +00:00
2013-04-02 16:31:41 +00:00
2013-02-25 22:06:05 +00:00
2013-04-10 23:30:20 +00:00
2013-02-22 18:16:21 +00:00
2013-04-10 23:30:20 +00:00
2013-05-30 13:19:42 +00:00
2013-05-30 13:19:42 +00:00
2013-03-25 18:36:19 +00:00
2013-04-11 14:43:19 +00:00
2013-04-10 23:30:20 +00:00
2013-06-25 02:48:58 +00:00
2013-04-10 23:30:20 +00:00
2013-04-18 17:41:08 +00:00
2013-01-08 18:27:24 +00:00
2013-04-19 21:20:56 +00:00
2013-04-29 22:41:29 +00:00
2013-04-10 23:30:20 +00:00
2013-04-29 22:41:29 +00:00
2013-04-29 22:41:29 +00:00
2013-06-25 02:48:58 +00:00
2013-01-11 10:36:13 +00:00
2013-04-22 08:02:43 +00:00
2012-11-27 07:19:54 +00:00
2013-07-09 18:16:56 +00:00
2013-05-09 22:27:13 +00:00
2013-01-06 19:00:15 +00:00
2013-04-30 07:51:08 +00:00
2012-11-27 18:09:26 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2012-12-24 11:14:06 +00:00
2013-04-29 22:41:29 +00:00
2013-05-06 20:57:23 +00:00
2013-06-14 18:17:35 +00:00
2013-04-30 07:51:08 +00:00
2013-01-19 08:38:41 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-05-16 16:09:54 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-07-09 10:00:16 +00:00
2013-04-02 22:35:08 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-02-18 20:55:12 +00:00
2013-05-30 13:19:42 +00:00
2013-03-12 16:27:52 +00:00
2013-06-18 20:14:39 +00:00
2013-02-01 19:28:09 +00:00
2013-01-31 00:44:12 +00:00
2013-01-31 00:44:12 +00:00
2012-11-19 19:31:10 +00:00
2013-02-13 22:00:37 +00:00
2012-10-31 23:11:48 +00:00
2013-01-31 00:11:52 +00:00
2013-01-31 00:44:12 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-06-24 13:19:52 +00:00
2013-05-30 13:19:42 +00:00
2013-05-30 13:19:42 +00:00
2013-03-18 20:31:44 +00:00
2013-05-01 05:34:30 +00:00
2013-05-30 13:19:42 +00:00
2013-06-25 02:48:58 +00:00
2013-05-01 05:34:30 +00:00
2013-05-30 13:19:42 +00:00
2013-06-10 20:43:49 +00:00
2013-06-10 20:43:49 +00:00
2013-04-22 06:12:31 +00:00
2013-03-12 16:27:52 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-02-25 14:20:21 +00:00
2012-11-14 20:08:40 +00:00
2012-11-14 20:08:40 +00:00
2013-02-25 14:20:21 +00:00
2013-04-01 18:12:58 +00:00
2013-06-17 21:45:16 +00:00
2013-04-20 10:43:40 +00:00
2013-03-08 18:08:57 +00:00
2013-06-23 09:00:28 +00:00
2013-03-26 22:19:12 +00:00
2013-06-17 21:45:16 +00:00
2013-06-17 21:45:16 +00:00
2012-12-05 21:37:42 +00:00
2013-06-14 09:31:41 +00:00
2013-04-29 22:41:29 +00:00
2013-03-27 23:16:18 +00:00
2013-02-19 23:50:45 +00:00
2013-05-01 05:34:30 +00:00
2013-03-29 17:14:24 +00:00
2013-05-01 05:34:30 +00:00
2013-02-23 10:40:58 +00:00
2013-04-21 01:38:25 +00:00
2013-07-03 16:41:29 +00:00
2013-07-03 16:41:29 +00:00
2013-05-01 05:45:57 +00:00
2013-04-29 22:41:29 +00:00
2013-05-22 08:13:02 +00:00
2013-03-12 16:27:52 +00:00
2013-05-01 05:34:30 +00:00
2013-01-13 11:37:04 +00:00
2013-06-25 02:48:58 +00:00
2012-12-30 02:33:22 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 07:51:08 +00:00
2013-06-24 09:51:30 +00:00
2013-03-12 16:27:52 +00:00
2013-03-01 18:40:30 +00:00
2013-02-25 23:01:03 +00:00
2013-03-01 19:23:37 +00:00
2013-03-01 19:23:37 +00:00
2013-03-01 19:23:37 +00:00
2013-03-01 19:23:37 +00:00
2013-03-01 19:23:37 +00:00
2013-04-30 17:52:57 +00:00
2013-06-25 02:48:58 +00:00
2012-10-29 17:57:12 +00:00
2012-11-12 22:33:18 +00:00
2012-11-14 05:08:56 +00:00
2013-02-12 16:07:27 +00:00
2013-02-20 18:04:21 +00:00
2013-03-20 02:33:21 +00:00
2013-03-14 06:57:42 +00:00
2013-06-25 02:48:58 +00:00
2013-06-21 20:22:45 +00:00
2013-06-25 02:48:58 +00:00
2013-03-26 18:15:45 +00:00
2013-04-29 22:41:29 +00:00
2012-12-15 16:47:44 +00:00
2013-05-02 18:11:35 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-03-12 16:27:52 +00:00
2013-06-14 20:22:21 +00:00
2013-01-08 18:27:24 +00:00
2013-02-01 19:28:09 +00:00
2012-11-08 07:28:54 +00:00
2013-01-19 08:38:41 +00:00
2013-06-25 02:48:58 +00:00
2013-04-11 05:15:54 +00:00
2013-06-25 02:48:58 +00:00
2012-12-11 00:36:57 +00:00
2013-06-25 02:48:58 +00:00
2013-07-06 14:05:09 +00:00
2013-05-23 07:46:13 +00:00
2013-05-30 13:19:42 +00:00
2013-07-02 09:58:53 +00:00
2013-05-25 03:08:10 +00:00
2013-06-25 02:48:58 +00:00
2013-05-27 15:44:35 +00:00
2013-02-21 15:24:35 +00:00
2012-12-22 16:07:56 +00:00
2013-06-25 02:48:58 +00:00
2012-10-30 23:53:59 +00:00
2012-12-26 03:19:30 +00:00
2013-01-06 20:39:29 +00:00
2013-02-13 13:40:35 +00:00
2013-06-07 16:35:57 +00:00
2013-02-19 17:11:48 +00:00
2013-06-25 02:48:58 +00:00
2013-04-19 21:20:56 +00:00
2012-12-12 01:41:01 +00:00
2013-04-29 22:41:29 +00:00
2013-06-25 02:48:58 +00:00
2013-04-29 22:41:29 +00:00
2013-04-29 22:41:29 +00:00
2013-04-29 22:41:29 +00:00
2013-05-30 13:19:42 +00:00
2013-04-20 16:21:26 +00:00
2012-12-11 00:51:36 +00:00
2013-06-25 02:48:58 +00:00
2013-02-14 03:45:08 +00:00
2013-02-14 03:45:08 +00:00
2013-02-14 03:45:08 +00:00
2013-02-14 03:45:08 +00:00
2013-02-14 03:45:08 +00:00
2013-06-25 02:48:58 +00:00
2013-04-20 05:14:40 +00:00
2013-03-30 16:21:50 +00:00
2013-06-25 02:48:58 +00:00
2013-03-12 16:27:52 +00:00
2013-03-12 16:27:52 +00:00
2013-06-09 07:37:10 +00:00
2013-03-21 20:28:52 +00:00
2013-06-14 16:15:29 +00:00
2013-05-02 18:11:35 +00:00
2013-04-29 22:41:29 +00:00
2013-01-19 08:38:41 +00:00
2013-06-25 02:48:58 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 17:52:57 +00:00
2013-03-15 00:10:23 +00:00
2013-05-22 17:01:12 +00:00
2012-11-16 06:37:56 +00:00
2013-03-25 23:43:23 +00:00
2013-05-17 14:48:34 +00:00
2013-03-12 16:27:52 +00:00
2013-06-26 10:55:03 +00:00
2013-04-30 07:51:08 +00:00
2013-04-29 22:41:29 +00:00
2013-05-01 05:34:30 +00:00
2013-05-01 05:34:30 +00:00
2013-03-12 16:27:52 +00:00
2013-03-12 16:27:52 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 07:51:08 +00:00
2012-10-30 00:01:57 +00:00
2013-06-25 02:48:58 +00:00
2013-01-26 11:14:32 +00:00
2013-01-26 11:44:21 +00:00
2013-01-26 11:14:32 +00:00
2013-04-29 22:41:29 +00:00
2012-12-10 08:12:29 +00:00
2013-02-04 15:19:18 +00:00
2013-05-01 22:46:50 +00:00
2013-04-26 21:04:21 +00:00
2012-12-21 18:11:45 +00:00
2012-12-25 13:23:23 +00:00
2013-06-08 00:07:54 +00:00
2013-07-09 18:16:56 +00:00
2013-06-26 10:55:03 +00:00
2013-06-26 10:55:03 +00:00
2013-06-25 02:48:58 +00:00
2013-06-09 07:37:10 +00:00
2013-01-02 17:40:39 +00:00
2013-05-25 03:08:10 +00:00
2013-07-08 11:20:11 +00:00
2013-07-08 11:19:44 +00:00
2013-03-20 00:10:32 +00:00
2013-06-24 09:51:30 +00:00
2013-01-06 20:39:29 +00:00
2013-04-29 22:41:29 +00:00
2013-04-29 22:41:29 +00:00
2013-06-25 02:48:58 +00:00
2013-01-25 22:07:43 +00:00
2013-05-01 05:34:30 +00:00
2013-01-25 22:07:43 +00:00
2013-06-25 02:48:58 +00:00
2013-05-10 14:09:52 +00:00
2013-03-26 22:47:01 +00:00
2013-03-12 16:27:52 +00:00
2013-05-30 13:19:42 +00:00
2013-06-25 02:48:58 +00:00
2013-04-30 07:51:08 +00:00
2013-06-25 02:48:58 +00:00