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