1/* { dg-do run } */ 2/* { dg-require-effective-target avx } */ 3/* { dg-options "-O2 -mavx" } */ 4 5#include "avx-check.h" 6 7#ifndef OFFSET 8#define OFFSET 1 9#endif 10 11#if OFFSET < 0 || OFFSET > 1 12#error OFFSET must be within [0..1] 13#endif 14 15void static 16avx_test (void) 17{ 18 union256d s1; 19 union128d u; 20 double e [2]; 21 22 s1.x = _mm256_set_pd (2134.3343,1234.635654,453.345635,54646.464356); 23 u.x = _mm256_extractf128_pd (s1.x, OFFSET); 24 25 __builtin_memcpy (e, s1.a + OFFSET * 2, sizeof e); 26 27 if (check_union128d (u, e)) 28 abort (); 29} 30