175631Salfred/* { dg-do compile } */
275631Salfred/* { dg-options "-O2 -mavx512f" } */
375631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)"  1 } } */
475631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)"  1 } } */
575631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)"  1 } } */
675631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)"  1 } } */
775631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
875631Salfred/* { dg-final { scan-assembler-times "vfixupimmss\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
975631Salfred
1075631Salfred#include <immintrin.h>
1175631Salfred
1275631Salfredvolatile __m128 x;
1375631Salfredvolatile __m128i y;
1475631Salfredvolatile __mmask8 m;
1575631Salfred
1675631Salfredvoid extern
1775631Salfredavx512f_test (void)
1875631Salfred{
1975631Salfred  x = _mm_fixupimm_ss (x, x, y, 3);
2075631Salfred  x = _mm_mask_fixupimm_ss (x, m, x, y, 3);
2175631Salfred  x = _mm_maskz_fixupimm_ss (m, x, x, y, 3);
2275631Salfred  x = _mm_fixupimm_round_ss (x, x, y, 3, _MM_FROUND_NO_EXC);
2375631Salfred  x = _mm_mask_fixupimm_round_ss (x, m, x, y, 3, _MM_FROUND_NO_EXC);
2475631Salfred  x = _mm_maskz_fixupimm_round_ss (m, x, x, y, 3, _MM_FROUND_NO_EXC);
2575631Salfred}
2675631Salfred