1 /* Verify that rtl expansion cleanup doesn't get too aggressive about 2 code dealing with complex CONCATs. */ 3 /* { dg-do run } */ 4 /* { dg-options "-O -fno-tree-sra" } */ 5 6 extern void abort (void); 7 extern void exit (int); 8 foo(void)9__complex__ float foo (void) 10 { 11 __complex__ float f[1]; 12 __real__ f[0] = 1; 13 __imag__ f[0] = 1; 14 f[0] = __builtin_conjf (f[0]); 15 return f[0]; 16 } 17 main(void)18int main (void) 19 { 20 __complex__ double d[1]; 21 d[0] = foo (); 22 if (__real__ d[0] != 1 || __imag__ d[0] != -1) 23 abort (); 24 exit (0); 25 } 26