1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mavx512f -mvzeroupper" } */
3 
4 #include <immintrin.h>
5 
6 __m128
foo1(__m256 x)7 foo1 (__m256 x)
8 {
9   return _mm256_castps256_ps128 (x);
10 }
11 
12 void
foo2(float * p,__m256 x)13 foo2 (float *p, __m256 x)
14 {
15   *p = ((__v8sf)x)[0];
16 }
17 
18 void
foo3(float * p,__m512 x)19 foo3 (float *p, __m512 x)
20 {
21   *p = ((__v16sf)x)[0];
22 }
23 
24 /* { dg-final { scan-assembler-not "vzeroupper" } } */
25