我创建了下面的代码,以测试我对sse内在函数的理解.代码编译并正确运行但是使用sse的改进并不是非常重要.使用sse内在函数是约.快20%.它不应该快4倍速度或速度提高400%吗?编译器是否优化了标量循环?如果是这样,怎么可以禁用?我写的sse_mult()函数有问题吗?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <emmintrin.h>
// gcc options -mfpmath=sse -mmmx -msse -msse2 \ Not sure if any are needed have been using -msse2
/*--------------------------------------------------------------------------------------------------
* SIMD intrinsics header files
*
* <mmintrin.h> MMX
*
* <xmmintrin.h> SSE
*
* <emmintrin.h> SSE2
*
* <pmmintrin.h> SSE3
*
* <tmmintrin.h> SSE3
*
* <smmintrin.h> SSE4.1
*
* <nmmintrin.h> SSE4.2
*
* <ammintrin.h> SSE4A
*
* <wmmintrin.h> AES
*
* <immintrin.h> AVX
*------------------------------------------------------------------------------------------------*/
#define n 1000000
// Global variables …Run Code Online (Sandbox Code Playgroud)