我想使用 AVX 内在,例如:__m256 factor_min = _mm256_set1_ps(1.329227); 但我收到以下编译错误:
Always_inline 函数“_mm256_set1_ps”需要目标功能“xsave”,但会被内联到不支持“xsave”编译的函数“AveragePooling”中
我的环境是?MacOs + Intel Core i7 + xcode8.3
我已经看到关于“xsave”的其他讨论。但仍然不知道如何解决这个编译错误。我对汇编指令一无所知。有没有简单的方法来解决这个错误(也许只是更改 xode 设置?)?非常感谢。
我认为 Intel Core i7 可以完全支持 AVX。
我想用 neon 内在函数优化直方图统计代码。但我没有成功。这是 c 代码:
#define NUM (7*1024*1024)
uint8 src_data[NUM];
uint32 histogram_result[256] = {0};
for (int i = 0; i < NUM; i++)
{
histogram_result[src_data[i]]++;
}
Run Code Online (Sandbox Code Playgroud)
Historam 统计更像是串行处理。用 neon 内在函数很难优化。有人知道如何优化吗?提前谢谢。
有一个名为“Enable”的布尔变量,当“Enable”为false时,我想创建以下函数:
void test_false()
{
float dst[4] = {1.0, 1.0, 1.0, 1.0};
float src[4] = {1.0, 2.0, 3.0, 4.0};
float * dst_addr = dst;
float * src_addr = src;
asm volatile (
"vld1.32 {q0}, [%[src]] \n"
"vld1.32 {q1}, [%[dst]] \n"
"vadd.f32 q0, q0, q1 \n"
"vadd.f32 q0, q0, q1 \n"
"vst1.32 {q0}, [%[dst]] \n"
:[src]"+r"(src_addr),
[dst]"+r"(dst_addr)
:
: "q0", "q1", "q2", "q3", "memory"
);
for (int i = 0; i < 4; i++)
{
printf("%f, ", dst[i]);//0.0 0.0 0.0 0.0
} …Run Code Online (Sandbox Code Playgroud)