Ruslan_Lenin
2018-06-29 eae7b34cc0906268ddef2e64551ea5ca0951c0c8
src/gemm.c
@@ -92,6 +92,7 @@
#include <ammintrin.h>
#include <immintrin.h>
#include <smmintrin.h>
#include <cpuid.h>
void asm_cpuid(uint32_t* abcd, uint32_t eax)
{
@@ -109,6 +110,7 @@
   abcd[2] = ecx;
   abcd[3] = edx;
}
#endif
int simd_detect_x86(unsigned int idFeature)
@@ -118,8 +120,8 @@
   __cpuid(regs, 0);
   if (regs[0] > 1U) __cpuid(regs, 1);
#else
   asm_cpuid(regs, 0);
   if (regs[0] > 1U) asm_cpuid(regs, 0);
   __get_cpuid(0, &regs[0], &regs[1], &regs[2], &regs[3]);
   if(regs[0] > 1U) __get_cpuid(1, &regs[0], &regs[1], &regs[2], &regs[3]);
#endif
   if ((regs[2] & idFeature) != idFeature)
@@ -271,10 +273,12 @@
        float *C, int ldc)
{
    //printf("cpu: %d %d %d %d %d %f %d %d %f %d\n",TA, TB, M, N, K, ALPHA, lda, ldb, BETA, ldc);
    int i, j;
    for(i = 0; i < M; ++i){
        for(j = 0; j < N; ++j){
            C[i*ldc + j] *= BETA;
    if (BETA != 1){
        int i, j;
        for(i = 0; i < M; ++i){
            for(j = 0; j < N; ++j){
                C[i*ldc + j] *= BETA;
            }
        }
    }