因此,AVX有一个函数from immintrin.h,它应该允许将两个__m128i值的串联存储到一个__m256i值中.功能是
__m256i _mm256_set_m128i (__m128i hi, __m128i lo)
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它时,如下所示:
__m256i as[2]; __m128i s[4]; as[0] = _mm256_setr_m128i(s[0], s[1]);
Run Code Online (Sandbox Code Playgroud)
我收到编译错误:
error: incompatible types when assigning to type ‘__m256i’ from type ‘int’
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么会这样.任何帮助是极大的赞赏!
我尝试用gprof分析我的C++程序.程序本身运行了大约53秒,所以我不明白为什么它说,主要只运行了大约8.29秒.对此有何解释?
这是一段摘录:
index % time self children called name
<spontaneous>
[2] 20.5 0.00 8.29 main [2]
0.00 8.28 1/1 MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
0.00 0.01 1/1 MPQS::MPQS(NTL::ZZ, long) [36]
0.00 0.00 1/1 MPQS::~MPQS() [78]
-----------------------------------------------
0.00 8.28 1/1 main [2]
[3] 20.5 0.00 8.28 1 MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
7.15 1.08 801/801 MPQS::sieve() [4]
0.00 0.04 801/801 MPQS::find_smooth_vals() [23]
0.01 0.00 1/1 MPQS::try_solutions(NTL::mat_GF2&) [35]
0.00 0.00 801/801 MPQS::compute_coeffecients() [59]
-----------------------------------------------
7.15 1.08 801/801 MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
[4] 20.4 7.15 …Run Code Online (Sandbox Code Playgroud)