1  /* PR 17930 */
       2  /* { dg-do run } */
       3  /* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" } */
       4  /* { dg-additional-options "-mno-accumulate-outgoing-args -mno-omit-leaf-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))
      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
      27  sse2_test (void)
      28  {
      29    static complex_16 work[5][5];
      30  
      31    test (work); 
      32  }