1/* { dg-do run } */ 2/* { dg-require-effective-target avx } */ 3/* { dg-options "-O2 -mavx" } */ 4 5#include "avx-check.h" 6 7void static 8avx_test (void) 9{ 10 union256 u, s1, s2; 11 float e [8]; 12 13 s1.x = _mm256_set_ps (24.43, 68.346, 43.35, 546.46, 46.79, 82.78, 82.7, 9.4); 14 s2.x = _mm256_set_ps (1.17, 2.16, 3.15, 4.14, 5.13, 6.12, 7.11, 8.9); 15 u.x = _mm256_hadd_ps (s1.x, s2.x); 16 17 e[0] = s1.a[0] + s1.a[1]; 18 e[1] = s1.a[2] + s1.a[3]; 19 e[2] = s2.a[0] + s2.a[1]; 20 e[3] = s2.a[2] + s2.a[3]; 21 e[4] = s1.a[4] + s1.a[5]; 22 e[5] = s1.a[6] + s1.a[7]; 23 e[6] = s2.a[4] + s2.a[5]; 24 e[7] = s2.a[6] + s2.a[7]; 25 26 if (check_union256 (u, e)) 27 abort (); 28} 29