summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/conj1.C
blob: b578abbdf588858d0535677ba92a3439905573c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// PR target/5740
// This testcase ICEd on SPARC -m64 because emit_group_load tried
// to move a DFmode register into DImode register directly.
// { dg-do compile }
// { dg-options "-O2" }

struct C
{
  C (double y, double z) { __real__ x = y; __imag__ x = z; }
  double r () const { return __real__ x; }
  double i () const { return __imag__ x; }
  __complex__ double x;
};

C conj (const C& z)
{
  return C (z.r (), -z.i ());
}