| @@ -107,21 +107,33 @@ int NAME(blasint *N, blasint *NRHS, FLOAT *a, blasint *ldA, blasint *ipiv, | |||||
| #ifndef PPC440 | #ifndef PPC440 | ||||
| buffer = (FLOAT *)blas_memory_alloc(1); | buffer = (FLOAT *)blas_memory_alloc(1); | ||||
| sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A); | sa = (FLOAT *)((BLASLONG)buffer + GEMM_OFFSET_A); | ||||
| sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B); | sb = (FLOAT *)(((BLASLONG)sa + ((GEMM_P * GEMM_Q * COMPSIZE * SIZE + GEMM_ALIGN) & ~GEMM_ALIGN)) + GEMM_OFFSET_B); | ||||
| #endif | #endif | ||||
| #ifdef SMP | #ifdef SMP | ||||
| args.common = NULL; | args.common = NULL; | ||||
| #ifndef DOUBLE | |||||
| if (args.m*args.n < 40000) | |||||
| #if defined(_WIN64) && defined(_M_ARM64) | |||||
| #ifdef COMPLEX | |||||
| if (args.m * args.n > 600) | |||||
| #else | |||||
| if (args.m * args.n > 1000) | |||||
| #endif | |||||
| args.nthreads = num_cpu_avail(4); | |||||
| else | |||||
| args.nthreads = 1; | |||||
| #else | #else | ||||
| if (args.m*args.n < 10000) | |||||
| #ifndef DOUBLE | |||||
| if (args.m * args.n < 40000) | |||||
| #else | |||||
| if (args.m * args.n < 10000) | |||||
| #endif | |||||
| args.nthreads = 1; | |||||
| else | |||||
| args.nthreads = num_cpu_avail(4); | |||||
| #endif | #endif | ||||
| args.nthreads=1; | |||||
| else | |||||
| args.nthreads = num_cpu_avail(4); | |||||
| if (args.nthreads == 1) { | if (args.nthreads == 1) { | ||||
| #endif | #endif | ||||