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