summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr70263-2.c
blob: 18ebbf05fb74819934b20b8f698843bdfbf9c81d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-rtl-ira" } */

/* { 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)
{
  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;
}