10#error "Never use <amxavx512intrin.h> directly; include <immintrin.h> instead."
13#ifndef __AMX_AVX512INTRIN_H
14#define __AMX_AVX512INTRIN_H
15#if defined(__x86_64__) && defined(__SSE2__)
17#define __DEFAULT_FN_ATTRS_AVX512 \
18 __attribute__((__always_inline__, __nodebug__, \
19 __target__("amx-avx512,avx10.2-512")))
53#define _tile_cvtrowd2ps(tsrc, row) __builtin_ia32_tcvtrowd2ps(tsrc, row)
89#define _tile_cvtrowps2pbf16h(tsrc, row) \
90 __builtin_ia32_tcvtrowps2pbf16h(tsrc, row)
126#define _tile_cvtrowps2pbf16l(tsrc, row) \
127 __builtin_ia32_tcvtrowps2pbf16l(tsrc, row)
163#define _tile_cvtrowps2phh(tsrc, row) __builtin_ia32_tcvtrowps2phh(tsrc, row)
199#define _tile_cvtrowps2phl(tsrc, row) __builtin_ia32_tcvtrowps2phl(tsrc, row)
231#define _tile_movrow(a, b) __builtin_ia32_tilemovrow(a, b)
235static __inline__ __m512 __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowd2ps_internal(
236 unsigned short m,
unsigned short n, _tile1024i src,
unsigned u) {
237 return __builtin_ia32_tcvtrowd2ps_internal(m, n, src, u);
240static __inline__ __m512bh __DEFAULT_FN_ATTRS_AVX512
241_tile_cvtrowps2pbf16h_internal(
unsigned short m,
unsigned short n,
242 _tile1024i src,
unsigned u) {
243 return __builtin_ia32_tcvtrowps2pbf16h_internal(m, n, src, u);
246static __inline__ __m512bh __DEFAULT_FN_ATTRS_AVX512
247_tile_cvtrowps2pbf16l_internal(
unsigned short m,
unsigned short n,
248 _tile1024i src,
unsigned u) {
249 return __builtin_ia32_tcvtrowps2pbf16l_internal(m, n, src, u);
252static __inline__ __m512h __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowps2phh_internal(
253 unsigned short m,
unsigned short n, _tile1024i src,
unsigned u) {
254 return __builtin_ia32_tcvtrowps2phh_internal(m, n, src, u);
257static __inline__ __m512h __DEFAULT_FN_ATTRS_AVX512 _tile_cvtrowps2phl_internal(
258 unsigned short m,
unsigned short n, _tile1024i src,
unsigned u) {
259 return __builtin_ia32_tcvtrowps2phl_internal(m, n, src, u);
262static __inline__ __m512i __DEFAULT_FN_ATTRS_AVX512 _tile_movrow_internal(
263 unsigned short m,
unsigned short n, _tile1024i src,
unsigned u) {
264 return (__m512i)__builtin_ia32_tilemovrow_internal(m, n, src, u);
282__DEFAULT_FN_ATTRS_AVX512
283static __m512 __tile_cvtrowd2ps(__tile1024i src0,
unsigned src1) {
284 return _tile_cvtrowd2ps_internal(src0.row, src0.col, src0.tile, src1);
301__DEFAULT_FN_ATTRS_AVX512
302static __m512bh __tile_cvtrowps2pbf16h(__tile1024i src0,
unsigned src1) {
303 return _tile_cvtrowps2pbf16h_internal(src0.row, src0.col, src0.tile, src1);
320__DEFAULT_FN_ATTRS_AVX512
321static __m512bh __tile_cvtrowps2pbf16l(__tile1024i src0,
unsigned src1) {
322 return _tile_cvtrowps2pbf16l_internal(src0.row, src0.col, src0.tile, src1);
339__DEFAULT_FN_ATTRS_AVX512
340static __m512h __tile_cvtrowps2phh(__tile1024i src0,
unsigned src1) {
341 return _tile_cvtrowps2phh_internal(src0.row, src0.col, src0.tile, src1);
358__DEFAULT_FN_ATTRS_AVX512
359static __m512h __tile_cvtrowps2phl(__tile1024i src0,
unsigned src1) {
360 return _tile_cvtrowps2phl_internal(src0.row, src0.col, src0.tile, src1);
376__DEFAULT_FN_ATTRS_AVX512
377static __m512i __tile_movrow(__tile1024i src0,
unsigned src1) {
378 return (__m512i)_tile_movrow_internal(src0.row, src0.col, src0.tile, src1);