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
9typedef _Complex double complex_16;
10
11void __attribute__((noinline))
12test (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
26static void
27sse2_test (void)
28{
29  static complex_16 work[5][5];
30
31  test (work);
32}
33