Hello!
This testcase uses undefined values. Attached patch fixes the
testcase; the scan for message in the RTL dump assures us that the fix
for PR 70263 still performs its magic.
2017-11-03 Uros Bizjak <[email protected]>
PR testsuite/82828
PR rtl-optimization/70263
* gcc.target/i386/pr70263-2.c: Fix invalid testcase.
Tested on x86_64-linux-gnu {,-m32}.
Committed to mainline SVN.
Uros.
Index: gcc.target/i386/pr70263-2.c
===================================================================
--- gcc.target/i386/pr70263-2.c (revision 254289)
+++ gcc.target/i386/pr70263-2.c (working copy)
@@ -4,20 +4,13 @@
/* { dg-final { scan-rtl-dump "Adding REG_EQUIV to insn \[0-9\]+ for source of
insn \[0-9\]+" "ira" } } */
typedef float XFtype __attribute__ ((mode (XF)));
-typedef _Complex float XCtype __attribute__ ((mode (XC)));
-XCtype
-__mulxc3 (XFtype a, XFtype b, XFtype c, XFtype d)
+
+void bar (XFtype);
+
+void
+foo (XFtype a, XFtype c)
{
- XFtype ac, bd, ad, bc, x, y;
- ac = a * c;
-__asm__ ("": "=m" (ac):"m" (ac));
- if (x != x)
- {
- _Bool recalc = 0;
- if (((!(!(((ac) - (ac)) != ((ac) - (ac)))))))
- recalc = 1;
- if (recalc)
- x = __builtin_huge_vall () * (a * c - b * d);
- }
- return x;
+ XFtype ac = a * c;
+
+ bar (ac);
}