#ifndef GCCVEC_HPP #define GCCVEC_HPP #include "gemm.hpp" #include //-- Micro Kernel -------------------------------------------------------------- template typename std::enable_if::vlen != 0, void>::type ugemm(Index kc, T alpha, const T *A, const T *B, T beta, T *C, Index incRowC, Index incColC) { typedef T vx __attribute__((vector_size (BlockSize::rwidth/8))); static constexpr Index vlen = BlockSize::vlen; static constexpr Index MR = BlockSize::MR; static constexpr Index NR = BlockSize::NR/vlen; A = (const T*) __builtin_assume_aligned (A, BlockSize::align); B = (const T*) __builtin_assume_aligned (B, BlockSize::align); vx P[MR*NR] = {}; for (Index l=0; l