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
..
2014-04-12 01:26:00 +00:00
2013-03-27 06:52:27 +00:00
2014-09-12 14:26:36 +00:00
2013-07-03 17:59:07 +00:00
2010-03-28 07:58:37 +00:00
2013-04-05 23:29:01 +00:00
2012-12-20 17:47:27 +00:00
2014-08-04 21:06:00 +00:00
2014-08-04 21:06:00 +00:00
2013-08-06 17:03:03 +00:00
2013-04-01 15:58:15 +00:00
2014-07-18 23:29:49 +00:00
2012-08-28 02:10:15 +00:00
2011-05-02 15:58:16 +00:00
2014-10-16 20:00:02 +00:00
2012-08-28 02:10:33 +00:00
2010-11-14 22:22:14 +00:00
2014-07-18 23:29:49 +00:00
2013-04-27 00:43:16 +00:00
2014-07-25 17:47:22 +00:00
2013-12-20 18:08:54 +00:00
2012-12-19 15:49:14 +00:00