/* { dg-do run } */ /* { dg-require-effective-target avx } */ /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" #ifndef OFFSET #define OFFSET 1 #endif #if OFFSET < 0 || OFFSET > 1 #error OFFSET must be within [0..1] #endif void static avx_test (void) { union256d s1; union128d u; double e [2]; s1.x = _mm256_set_pd (2134.3343,1234.635654,453.345635,54646.464356); u.x = _mm256_extractf128_pd (s1.x, OFFSET); __builtin_memcpy (e, s1.a + OFFSET * 2, sizeof e); if (check_union128d (u, e)) abort (); }