1 /* PR 17930 */
2 /* { dg-do run } */
3 /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" } */
4 /* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
5 /* { dg-require-effective-target sse2 } */
6 
7 #include "sse2-check.h"
8 
9 typedef _Complex double complex_16;
10 
11 void __attribute__((noinline))
test(complex_16 a[5][5])12 test (complex_16 a[5][5])
13 {
14   int i, j, k;
15   complex_16 x;
16 
17   for (j = 0; j < 5; j++)
18     for (i = 0; i < 5; i++)
19       {
20         for (k = 0; k < j - 1; ++k)
21 	  x = a[k][i] * ~a[k][j];
22 	a[j][i] = x;
23       }
24 }
25 
26 static void
sse2_test(void)27 sse2_test (void)
28 {
29   static complex_16 work[5][5];
30 
31   test (work);
32 }
33