brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 9c15d1f Raw
33 lines · c
1/*===--------------- sm4evexintrin.h - SM4 EVEX intrinsics -----------------===2 *3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4 * See https://llvm.org/LICENSE.txt for license information.5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6 *7 *===----------------------------------------------------------------------===8 */9#ifndef __IMMINTRIN_H10#error "Never use <sm4evexintrin.h> directly; include <immintrin.h> instead."11#endif // __IMMINTRIN_H12 13#ifndef __SM4EVEXINTRIN_H14#define __SM4EVEXINTRIN_H15 16#define __DEFAULT_FN_ATTRS512                                                  \17  __attribute__((__always_inline__, __nodebug__, __target__("sm4,avx10.2"),    \18                 __min_vector_width__(512)))19 20static __inline__ __m512i __DEFAULT_FN_ATTRS51221_mm512_sm4key4_epi32(__m512i __A, __m512i __B) {22  return (__m512i)__builtin_ia32_vsm4key4512((__v16su)__A, (__v16su)__B);23}24 25static __inline__ __m512i __DEFAULT_FN_ATTRS51226_mm512_sm4rnds4_epi32(__m512i __A, __m512i __B) {27  return (__m512i)__builtin_ia32_vsm4rnds4512((__v16su)__A, (__v16su)__B);28}29 30#undef __DEFAULT_FN_ATTRS51231 32#endif // __SM4EVEXINTRIN_H33