1/* { dg-do run } */ 2/* { dg-require-effective-target avx } */ 3/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-load" } */ 4 5#include "avx-check.h" 6 7#define N 4 8 9double a[N+3] = { -1, -1, -1, 24.43, 68.346, 43.35, 546.46 }; 10double b[N]; 11double c[N]; 12 13void 14foo (void) 15{ 16 int i; 17 18 for (i = 0; i < N; i++) 19 b[i] = a[i+3] * 2; 20} 21 22__attribute__ ((noinline)) 23double 24bar (double x) 25{ 26 return x * 2; 27} 28 29void 30avx_test (void) 31{ 32 int i; 33 34 foo (); 35 36 for (i = 0; i < N; i++) 37 c[i] = bar (a[i+3]); 38 39 for (i = 0; i < N; i++) 40 if (b[i] != c[i]) 41 abort (); 42} 43