Bill Schmidt
41454cc88b
[PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg
...
With VSX enabled, test/CodeGen/PowerPC/recipest.ll exposes a bug in
the FMA mutation pass. If we have a situation where a killed product
register is the same register as the FMA target, such as:
%vreg5<def,tied1> = XSNMSUBADP %vreg5<tied0>, %vreg11, %vreg5,
%RM<imp-use>; VSFRC:%vreg5 F8RC:%vreg11
then the substitution makes no sense. We end up getting a crash when
we try to extend the interval associated with the killed product
register, as there is already a live range for %vreg5 there. This
patch just disables the mutation under those circumstances.
Since recipest.ll generates different code with VMX enabled, I've
modified that test to use -mattr=-vsx. I've borrowed the code from
that test that exposed the bug and placed it in fma-mutate.ll, where
it tests several mutation opportunities including the "bad" one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220290 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 13:02:37 +00:00
..
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2012-07-02 12:47:22 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2012-07-02 19:09:46 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2012-07-02 12:47:22 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-24 20:20:08 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 06:36:20 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-12-12 11:59:10 +00:00
2009-09-09 00:09:15 +00:00
2014-02-13 14:44:26 +00:00
2012-06-08 23:15:12 +00:00
2014-02-13 14:44:26 +00:00
2009-09-09 00:09:15 +00:00
2012-06-09 03:14:50 +00:00
2012-07-02 12:47:22 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-03-15 13:21:21 +00:00
2013-04-30 20:04:37 +00:00
2014-10-19 21:29:21 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2012-06-08 23:15:12 +00:00
2012-06-08 23:15:12 +00:00
2009-09-09 00:09:15 +00:00
2014-04-12 00:59:48 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2012-06-08 23:15:12 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 03:14:27 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-11-27 06:54:59 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-05-27 15:57:51 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 03:14:27 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-10-28 23:11:03 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2010-03-14 21:08:40 +00:00
2009-09-09 00:09:15 +00:00
2011-09-14 00:29:50 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-03-12 15:18:14 +00:00
2013-07-14 06:24:09 +00:00
2009-11-16 05:52:06 +00:00
2009-11-25 21:13:39 +00:00
2010-04-20 06:20:21 +00:00
2013-09-12 05:24:49 +00:00
2012-09-06 18:15:23 +00:00
2010-04-02 02:21:24 +00:00
2013-03-12 15:18:14 +00:00
2010-10-11 20:43:09 +00:00
2013-07-14 06:24:09 +00:00
2013-04-30 17:52:57 +00:00
2013-04-30 17:52:57 +00:00
2013-07-13 20:38:47 +00:00
2012-11-14 23:23:27 +00:00
2012-11-13 18:40:58 +00:00
2014-10-19 21:29:21 +00:00
2012-11-18 06:21:03 +00:00
2013-05-16 17:58:02 +00:00
2013-08-22 21:28:54 +00:00
2012-06-22 22:31:00 +00:00
2013-01-30 23:43:27 +00:00
2013-01-30 21:17:42 +00:00
2014-04-12 01:26:00 +00:00
2013-07-14 06:24:09 +00:00
2009-09-09 00:09:15 +00:00
2013-08-22 21:28:54 +00:00
2014-05-29 15:41:38 +00:00
2010-09-27 06:44:54 +00:00
2013-03-27 06:52:27 +00:00
2013-07-08 20:00:03 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 03:14:27 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 03:14:27 +00:00
2012-07-02 12:47:22 +00:00
2014-07-20 22:26:40 +00:00
2013-07-09 18:16:16 +00:00
2014-09-12 14:26:36 +00:00
2013-07-08 20:20:51 +00:00
2012-11-05 18:18:42 +00:00
2013-08-22 21:28:54 +00:00
2014-06-13 14:24:07 +00:00
2014-10-02 22:27:07 +00:00
2014-03-11 10:48:52 +00:00
2014-10-03 18:04:36 +00:00
2014-10-02 22:27:07 +00:00
2014-10-02 22:27:07 +00:00
2014-07-18 23:29:49 +00:00
2014-02-28 00:27:01 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 02:10:33 +00:00
2012-07-02 12:47:22 +00:00
2013-03-28 20:35:18 +00:00
2014-10-19 21:29:21 +00:00
2013-07-08 06:16:58 +00:00
2013-07-09 18:55:10 +00:00
2014-01-21 20:15:58 +00:00
2014-08-16 00:17:05 +00:00
2012-07-02 12:47:22 +00:00
2011-10-17 04:03:59 +00:00
2014-04-04 15:15:57 +00:00
2009-09-09 00:09:15 +00:00
2013-11-30 19:39:27 +00:00
2009-09-09 00:09:15 +00:00
2012-07-02 12:47:22 +00:00
2014-07-23 07:08:53 +00:00
2012-07-02 12:47:22 +00:00
2014-10-17 01:41:22 +00:00
2012-08-28 02:10:27 +00:00
2011-08-30 17:04:16 +00:00
2010-06-15 21:58:33 +00:00
2013-08-22 21:28:54 +00:00
2013-12-16 21:24:00 +00:00
2014-03-02 18:23:39 +00:00
2014-03-01 21:36:57 +00:00
2013-07-03 17:59:07 +00:00
2013-08-22 21:28:54 +00:00
2013-05-18 09:20:39 +00:00
2013-08-19 23:35:24 +00:00
2013-05-16 20:28:05 +00:00
2013-06-07 22:16:19 +00:00
2014-02-16 13:27:39 +00:00
2014-04-12 21:52:38 +00:00
2014-04-12 21:52:38 +00:00
2013-05-15 21:37:41 +00:00
2012-06-08 19:19:53 +00:00
2013-04-30 17:52:57 +00:00
2014-05-11 16:23:29 +00:00
2013-04-30 17:52:57 +00:00
2014-02-25 20:51:50 +00:00
2013-05-15 21:37:41 +00:00
2013-04-01 16:31:56 +00:00
2012-07-02 12:47:22 +00:00
2014-10-03 20:01:09 +00:00
2013-03-18 22:08:16 +00:00
2012-12-25 18:51:18 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-09-30 18:17:35 +00:00
2014-06-25 15:41:00 +00:00
2013-04-30 17:52:57 +00:00
2014-09-15 22:11:07 +00:00
2013-07-14 06:24:09 +00:00
2010-03-28 07:58:37 +00:00
2009-09-09 00:09:15 +00:00
2014-10-19 21:29:21 +00:00
2013-08-30 02:29:45 +00:00
2013-08-25 22:33:42 +00:00
2014-10-19 20:48:47 +00:00
2014-10-19 20:48:47 +00:00
2014-06-24 20:05:18 +00:00
2014-10-19 20:48:47 +00:00
2013-08-30 02:43:08 +00:00
2013-08-26 19:42:51 +00:00
2013-08-30 22:18:55 +00:00
2013-08-30 02:43:08 +00:00
2013-08-25 22:33:42 +00:00
2014-10-19 20:48:47 +00:00
2013-08-30 02:43:08 +00:00
2014-10-19 20:48:47 +00:00
2013-08-30 02:43:08 +00:00
2013-11-15 19:09:27 +00:00
2014-10-17 01:41:22 +00:00
2013-01-11 10:36:13 +00:00
2014-03-23 05:35:00 +00:00
2013-06-13 20:23:34 +00:00
2014-10-21 13:02:37 +00:00
2014-10-19 20:27:56 +00:00
2014-10-19 21:29:21 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-02-28 00:27:01 +00:00
2014-10-19 21:29:21 +00:00
2014-10-19 21:29:21 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-03-15 05:06:04 +00:00
2013-08-22 21:28:54 +00:00
2014-06-23 13:47:52 +00:00
2014-06-23 13:47:52 +00:00
2012-07-02 12:47:22 +00:00
2014-06-23 13:47:52 +00:00
2009-09-09 00:09:15 +00:00
2014-10-17 01:41:22 +00:00
2012-08-28 16:12:39 +00:00
2012-08-28 16:12:39 +00:00
2014-10-17 01:41:22 +00:00
2014-06-16 21:36:02 +00:00
2013-09-30 18:17:55 +00:00
2014-07-04 10:57:56 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-03-05 22:14:00 +00:00
2014-03-23 05:35:00 +00:00
2013-08-12 12:43:26 +00:00
2014-10-19 21:29:21 +00:00
2014-03-23 05:35:00 +00:00
2009-09-09 00:09:15 +00:00
2013-03-12 16:27:52 +00:00
2013-04-05 23:29:01 +00:00
2009-09-09 00:09:15 +00:00
2012-12-20 17:47:27 +00:00
2014-05-20 17:20:34 +00:00
2013-07-14 06:24:09 +00:00
2014-02-13 15:33:35 +00:00
2013-08-14 20:05:04 +00:00
2009-09-09 00:09:15 +00:00
2012-10-29 18:35:49 +00:00
2009-09-09 00:09:15 +00:00
2013-09-30 18:17:35 +00:00
2012-06-22 23:10:08 +00:00
2012-07-02 12:47:22 +00:00
2009-09-09 00:09:15 +00:00
2013-11-30 19:39:27 +00:00
2013-03-12 15:18:14 +00:00
2013-04-30 17:52:57 +00:00
2009-09-09 00:09:15 +00:00
2014-06-09 22:42:55 +00:00
2009-09-09 00:09:15 +00:00
2013-01-14 22:04:38 +00:00
2012-07-02 19:09:46 +00:00
2009-09-09 00:09:15 +00:00
2013-11-30 19:39:27 +00:00
2012-07-02 18:37:59 +00:00
2009-09-09 00:09:15 +00:00
2014-02-13 14:44:26 +00:00
2013-07-13 20:38:47 +00:00
2014-08-04 21:06:00 +00:00
2013-09-17 20:03:25 +00:00
2014-10-17 01:41:22 +00:00
2013-07-13 20:38:47 +00:00
2013-07-13 20:38:47 +00:00
2013-07-13 20:38:47 +00:00
2013-07-13 20:38:47 +00:00
2013-11-14 13:58:06 +00:00
2014-08-04 21:06:00 +00:00
2014-04-12 21:52:38 +00:00
2014-10-17 01:41:22 +00:00
2013-07-13 20:38:47 +00:00
2014-04-12 21:52:38 +00:00
2013-06-13 20:23:34 +00:00
2012-11-14 23:23:27 +00:00
2009-09-09 00:09:15 +00:00
2013-07-13 20:38:47 +00:00
2012-11-09 19:18:49 +00:00
2009-09-09 00:09:15 +00:00
2011-06-17 03:14:27 +00:00
2011-05-01 15:44:13 +00:00
2013-08-06 17:03:03 +00:00
2010-11-02 23:01:44 +00:00
2010-11-02 23:01:44 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2014-05-11 19:29:11 +00:00
2009-09-09 00:09:15 +00:00
2013-08-22 21:28:54 +00:00
2012-07-02 12:47:22 +00:00
2012-10-10 20:54:15 +00:00
2014-02-28 00:27:01 +00:00
2009-09-09 00:09:15 +00:00
2013-04-01 15:58:15 +00:00
2014-03-06 00:45:19 +00:00
2014-07-24 22:20:10 +00:00
2014-07-18 23:29:49 +00:00
2013-11-30 19:39:27 +00:00
2011-06-20 15:28:39 +00:00
2012-11-05 19:39:45 +00:00
2014-10-17 01:41:22 +00:00
2014-06-23 12:36:34 +00:00
2014-07-07 19:41:54 +00:00
2014-06-18 17:52:49 +00:00
2011-06-17 15:21:10 +00:00
2012-08-06 21:21:44 +00:00
2014-07-29 12:48:14 +00:00
2012-09-18 16:55:29 +00:00
2014-08-23 23:21:04 +00:00
2014-06-20 16:34:05 +00:00
2013-07-14 06:24:09 +00:00
2012-03-24 03:53:55 +00:00
2012-08-28 02:10:15 +00:00
2014-07-21 00:13:26 +00:00
2014-07-20 23:43:15 +00:00
2014-07-21 00:03:18 +00:00
2014-07-20 23:31:44 +00:00
2014-07-20 23:43:15 +00:00
2012-06-22 22:31:00 +00:00
2014-10-02 22:34:22 +00:00
2011-05-02 15:58:16 +00:00
2012-04-16 03:33:22 +00:00
2009-09-09 00:09:15 +00:00
2014-10-16 20:00:02 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-07-03 15:06:47 +00:00
2009-09-09 00:09:15 +00:00
2012-10-29 17:49:34 +00:00
2012-08-29 20:22:24 +00:00
2013-07-14 06:24:09 +00:00
2013-08-21 22:20:53 +00:00
2013-04-12 04:06:46 +00:00
2014-10-02 22:27:07 +00:00
2013-04-03 13:05:44 +00:00
2013-07-13 22:08:55 +00:00
2013-07-08 14:22:45 +00:00
2013-07-16 13:03:25 +00:00
2014-10-03 20:01:09 +00:00
2013-09-26 17:09:28 +00:00
2014-07-31 19:50:53 +00:00
2014-07-31 19:50:53 +00:00
2014-07-31 19:13:38 +00:00
2014-02-19 17:23:20 +00:00
2013-02-01 22:59:51 +00:00
2013-12-12 00:19:11 +00:00
2013-01-17 19:46:51 +00:00
2013-03-19 08:09:38 +00:00
2014-10-21 13:02:37 +00:00
2009-09-09 00:09:15 +00:00
2013-11-11 14:58:40 +00:00
2013-08-22 21:28:54 +00:00
2013-07-15 18:57:05 +00:00
2012-08-28 02:10:33 +00:00
2014-06-27 13:04:12 +00:00
2014-07-11 17:19:31 +00:00
2012-07-02 12:47:22 +00:00
2009-09-09 00:09:15 +00:00
2010-11-14 22:22:14 +00:00
2013-03-12 16:27:52 +00:00
2014-02-28 00:27:01 +00:00
2012-07-02 19:09:46 +00:00
2014-04-13 17:10:58 +00:00
2010-04-07 22:53:17 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-10-17 01:41:22 +00:00
2013-07-11 05:55:57 +00:00
2013-04-30 17:52:57 +00:00
2014-02-28 00:27:01 +00:00
2014-07-18 23:29:49 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-07-11 17:43:32 +00:00
2014-02-28 00:27:01 +00:00
2014-02-28 00:27:01 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2013-07-17 05:35:44 +00:00
2013-11-30 19:52:28 +00:00
2012-07-02 12:47:22 +00:00
2014-01-28 05:32:58 +00:00
2014-05-27 15:57:51 +00:00
2014-09-02 16:05:23 +00:00
2013-11-20 01:10:15 +00:00
2013-06-28 20:18:14 +00:00
2014-07-18 23:29:49 +00:00
2013-07-09 06:34:51 +00:00
2013-02-08 21:35:47 +00:00
2013-04-01 18:18:44 +00:00
2013-11-30 20:04:33 +00:00
2009-09-09 00:09:15 +00:00
2013-07-18 22:29:15 +00:00
2013-11-30 19:39:27 +00:00
2013-11-30 19:39:27 +00:00
2013-04-27 00:43:16 +00:00
2013-04-30 17:52:57 +00:00
2013-04-30 17:52:57 +00:00
2012-06-19 02:34:32 +00:00
2013-07-09 17:02:45 +00:00
2009-09-09 00:09:15 +00:00
2014-07-23 07:08:53 +00:00
2014-06-23 13:47:52 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-07-25 17:47:22 +00:00
2013-12-20 18:08:54 +00:00
2014-08-15 13:51:57 +00:00
2012-07-02 12:47:22 +00:00
2014-10-17 15:13:38 +00:00
2013-09-15 22:09:58 +00:00
2014-08-13 01:15:40 +00:00
2013-05-26 18:08:30 +00:00
2014-10-17 15:13:38 +00:00
2014-10-19 21:29:21 +00:00
2014-10-03 20:01:09 +00:00
2013-06-28 22:29:56 +00:00
2013-07-13 20:38:47 +00:00
2014-07-21 00:13:26 +00:00
2013-07-13 20:38:47 +00:00
2009-09-09 00:09:15 +00:00
2009-11-10 23:16:41 +00:00
2009-09-09 00:09:15 +00:00
2012-06-10 19:32:29 +00:00
2009-09-09 00:09:15 +00:00
2014-08-04 13:13:57 +00:00
2013-07-13 20:38:47 +00:00
2013-07-14 06:24:09 +00:00
2013-09-28 11:46:15 +00:00
2013-07-12 14:54:12 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-10-17 15:13:38 +00:00
2014-10-19 21:29:21 +00:00
2009-09-09 00:09:15 +00:00
2013-07-14 06:24:09 +00:00
2012-12-19 15:49:14 +00:00
2009-09-09 00:09:15 +00:00
2014-08-05 20:47:25 +00:00
2009-09-11 18:01:28 +00:00
2009-11-13 01:45:18 +00:00
2009-09-09 00:09:15 +00:00
2013-07-14 06:24:09 +00:00
2014-08-04 14:55:26 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-10-17 15:13:38 +00:00
2009-09-09 00:09:15 +00:00
2013-07-08 17:30:25 +00:00
2014-06-05 22:57:38 +00:00
2014-06-06 14:06:26 +00:00
2013-03-27 00:02:20 +00:00
2014-10-19 21:29:21 +00:00
2014-03-28 19:58:11 +00:00
2014-03-29 05:29:01 +00:00
2014-10-17 15:13:38 +00:00
2014-03-27 23:12:31 +00:00
2014-03-29 05:29:01 +00:00
2014-10-17 15:13:38 +00:00
2014-03-14 12:45:22 +00:00
2014-02-07 16:21:30 +00:00
2013-08-22 21:28:54 +00:00