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 union256 s1; 19 union128 u; 20 float e [4]; 21 22 s1.x = _mm256_set_ps (24.43, 68.346, 43.35, 546.46, 46.79, 82.78, 82.7, 9.4); 23 u.x = _mm256_extractf128_ps (s1.x, OFFSET); 24 25 __builtin_memcpy (e, s1.a + OFFSET * 4, sizeof e); 26 27 if (check_union128 (u, e)) 28 abort (); 29} 30