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 15 void static avx_test(void)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