1#include <isa-level.h>
2
3#if ISA_SHOULD_BUILD (4)
4
5# define USE_WITH_AVX512	1
6
7# define VEC_SIZE	64
8# define MOV_SIZE	6
9# define RET_SIZE	1
10
11# define XMM0		xmm16
12# define YMM0		ymm16
13# define VEC0		zmm16
14# define VEC(i)		VEC##i
15
16# define VMOVU     vmovdqu64
17# define VMOVA     vmovdqa64
18
19# define VZEROUPPER
20
21# define MEMSET_SET_VEC0_AND_SET_RETURN(d, r) \
22  vpbroadcastb d, %VEC0; \
23  movq r, %rax
24
25# define WMEMSET_SET_VEC0_AND_SET_RETURN(d, r) \
26  vpbroadcastd d, %VEC0; \
27  movq r, %rax
28
29# define MEMSET_VDUP_TO_VEC0_HIGH()
30# define MEMSET_VDUP_TO_VEC0_LOW()
31
32# define WMEMSET_VDUP_TO_VEC0_HIGH()
33# define WMEMSET_VDUP_TO_VEC0_LOW()
34
35# define SECTION(p)		p##.evex512
36
37#ifndef MEMSET_SYMBOL
38# define MEMSET_SYMBOL(p,s)	p##_avx512_##s
39#endif
40#ifndef WMEMSET_SYMBOL
41# define WMEMSET_SYMBOL(p,s)	p##_avx512_##s
42#endif
43
44
45# define USE_LESS_VEC_MASK_STORE	1
46# include "memset-vec-unaligned-erms.S"
47#endif
48