1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-rtl-ira" } */
3 
4 /* { dg-final { scan-rtl-dump "Adding REG_EQUIV to insn \[0-9\]+ for source of insn \[0-9\]+" "ira" } } */
5 
6 typedef float XFtype __attribute__ ((mode (XF)));
7 typedef _Complex float XCtype __attribute__ ((mode (XC)));
8 XCtype
__mulxc3(XFtype a,XFtype b,XFtype c,XFtype d)9 __mulxc3 (XFtype a, XFtype b, XFtype c, XFtype d)
10 {
11   XFtype ac, bd, ad, bc, x, y;
12   ac = a * c;
13 __asm__ ("": "=m" (ac):"m" (ac));
14   if (x != x)
15     {
16       _Bool recalc = 0;
17       if (((!(!(((ac) - (ac)) != ((ac) - (ac)))))))
18 	recalc = 1;
19       if (recalc)
20 	x = __builtin_huge_vall () * (a * c - b * d);
21     }
22   return x;
23 }
24