Hal Finkel
64fa501b10
Apply the InstCombine fptrunc sqrt optimization to llvm.sqrt
...
InstCombine, in visitFPTrunc, applies the following optimization to sqrt calls:
(fptrunc (sqrt (fpext x))) -> (sqrtf x)
but does not apply the same optimization to llvm.sqrt. This is a problem
because, to enable vectorization, Clang generates llvm.sqrt instead of sqrt in
fast-math mode, and because this optimization is being applied to sqrt and not
applied to llvm.sqrt, sometimes the fast-math code is slower.
This change makes InstCombine apply this optimization to llvm.sqrt as well.
This fixes the specific problem in PR17758, although the same underlying issue
(optimizations applied to libcalls are not applied to intrinsics) exists for
other optimizations in SimplifyLibCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194935 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-16 21:29:08 +00:00
..
2013-08-28 23:04:41 +00:00
2013-08-28 23:04:41 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-08-28 23:04:41 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-07-09 07:50:59 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-07-30 20:45:05 +00:00
2013-07-30 20:45:05 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 19:09:46 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-12-30 01:28:40 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-07 22:35:16 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-11-15 01:34:59 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-03-21 00:55:59 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2012-12-30 01:28:40 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:50:49 +00:00
2013-07-14 01:50:49 +00:00
2013-07-14 01:42:54 +00:00
2013-02-22 09:09:42 +00:00
2013-07-14 01:42:54 +00:00
2013-04-30 17:52:57 +00:00
2013-07-14 01:42:54 +00:00
2012-11-08 20:34:25 +00:00
2013-11-15 01:34:59 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-10-26 17:17:05 +00:00
2012-12-14 20:43:49 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-17 20:06:03 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-09-27 10:14:43 +00:00
2012-07-02 12:47:22 +00:00
2013-11-15 05:45:08 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-09-03 21:05:48 +00:00
2013-07-14 01:42:54 +00:00
2013-08-14 00:24:38 +00:00
2013-08-16 00:15:20 +00:00
2013-04-12 21:56:23 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-09 07:50:59 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2013-07-30 20:45:05 +00:00
2013-08-28 23:04:41 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2012-09-27 10:14:43 +00:00
2012-09-27 10:14:43 +00:00
2013-07-14 01:50:49 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2013-07-30 20:45:05 +00:00
2013-08-12 07:26:09 +00:00
2013-07-14 01:42:54 +00:00
2013-07-13 22:00:58 +00:00
2013-09-19 20:59:04 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-07-30 20:45:05 +00:00
2013-09-17 21:10:14 +00:00
2013-07-14 01:42:54 +00:00
2013-11-15 01:34:59 +00:00
2013-08-19 22:17:40 +00:00
2013-11-16 16:00:48 +00:00
2013-02-14 03:23:37 +00:00
2013-11-15 01:34:59 +00:00
2013-11-04 20:46:52 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2012-08-10 20:55:20 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-08-26 22:39:55 +00:00
2013-10-07 18:06:48 +00:00
2012-12-30 01:28:40 +00:00
2013-07-14 01:42:54 +00:00
2013-07-02 05:21:11 +00:00
2013-07-09 22:01:22 +00:00
2013-07-14 01:42:54 +00:00
2013-11-16 21:29:08 +00:00
2012-11-13 04:16:17 +00:00
2013-08-21 18:54:53 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:50:49 +00:00
2013-09-19 21:13:46 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-08-12 12:43:26 +00:00
2013-07-14 01:42:54 +00:00
2013-09-30 14:18:35 +00:00
2013-07-30 23:53:17 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-20 07:13:13 +00:00
2012-12-14 22:08:26 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2013-10-03 21:08:05 +00:00
2013-08-12 12:43:26 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-11-15 01:34:59 +00:00
2013-10-03 18:15:57 +00:00
2013-09-04 11:57:17 +00:00
2013-11-16 16:00:48 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-09-30 21:11:01 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-02-16 23:41:36 +00:00
2013-07-21 23:11:42 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:50:49 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-08-21 19:53:10 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-12-30 01:28:40 +00:00
2013-07-14 01:42:54 +00:00
2013-11-15 01:34:59 +00:00
2013-10-07 18:06:48 +00:00
2012-07-02 12:47:22 +00:00
2013-11-12 22:38:59 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:50:49 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-08-19 06:55:47 +00:00
2013-07-14 01:42:54 +00:00
2013-08-19 06:55:47 +00:00
2012-07-02 12:47:22 +00:00
2013-07-13 22:00:58 +00:00
2012-11-14 20:18:34 +00:00
2013-05-19 13:28:39 +00:00
2013-08-12 12:43:26 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-30 21:01:36 +00:00
2012-11-21 14:46:18 +00:00
2013-08-28 23:04:41 +00:00
2013-07-14 01:42:54 +00:00
2013-11-04 20:36:06 +00:00
2012-07-02 12:47:22 +00:00
2013-09-27 20:35:39 +00:00
2012-07-02 19:09:46 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-08-30 14:35:35 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-11-03 06:48:38 +00:00
2013-07-14 01:42:54 +00:00
2013-08-12 12:43:26 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2013-09-27 18:34:27 +00:00
2013-10-07 18:06:48 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-08-15 20:58:59 +00:00
2012-10-13 16:45:37 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-10-07 18:06:48 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-08-15 20:58:59 +00:00
2012-10-13 16:45:37 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-09-27 18:34:27 +00:00
2013-07-14 01:42:54 +00:00
2013-08-21 19:53:10 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 10:01:43 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:50:49 +00:00
2013-04-18 19:56:44 +00:00
2013-08-28 23:04:41 +00:00
2013-04-22 20:51:10 +00:00
2013-08-28 23:04:41 +00:00
2012-07-02 12:47:22 +00:00
2013-05-24 12:29:54 +00:00
2013-09-18 12:06:59 +00:00
2012-12-30 02:33:22 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00
2013-03-28 19:34:14 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:50:49 +00:00
2013-08-31 18:19:35 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2013-07-14 01:42:54 +00:00
2012-07-02 12:47:22 +00:00