#pragma once #include "types.h" namespace intgemm { /* * Vector traits */ template struct vector_s; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128; }; template <> struct vector_s { using type = __m128d; }; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128i; }; template <> struct vector_s { using type = __m128; }; template <> struct vector_s { using type = __m128d; }; template <> struct vector_s { using type = __m256i; }; template <> struct vector_s { using type = __m256i; }; template <> struct vector_s { using type = __m256i; }; template <> struct vector_s { using type = __m256; }; template <> struct vector_s { using type = __m256d; }; template <> struct vector_s { using type = __m512i; }; template <> struct vector_s { using type = __m512i; }; template <> struct vector_s { using type = __m512i; }; template <> struct vector_s { using type = __m512; }; template <> struct vector_s { using type = __m512d; }; template using vector_t = typename vector_s::type; template struct dvector_t { using type = vector_t; type first; type second; }; template struct qvector_t { using type = vector_t; type first; type second; type third; type fourth; }; }