@build-flower 加-keep 会生成中间文件,然后你看看中间文件编译可以过吗?
P
popo
@popo
3
声望
163
帖子
6895
资料浏览
5
粉丝
2
关注
popo 发布的帖子
-
RE: 请问如何在C++中使用SIMD?
@老泽征尔 在 请问如何在C++中使用SIMD? 中说:
simd.cpp:24: error: '__builtin_sw64_dlum' was not declared in this scope
目测是因为c++里面类型检查更为严格,再加上神威自己的c++编译器识别不了神威的simd builtin。
嵌汇编就好了。。。T_T。#ifdef __cplusplus extern "C" { #endif #include <simd.h> #ifdef __cplusplus } #endif extern doublev4 __builtin_sw64_dlum(doublev4 a, doublev4 b); int main() { doublev4 a; double *p = (double *)&a; p[0] = 1.0; p[1] = 2.0; p[2] = 2.5; p[3] = 3.0; simd_print_doublev4(a); doublev4 b = simd_set_doublev4(-1.0, -1.0, -1.0, -1.0); doublev4 c; asm ("vmuld %1, %2, %0\n\t": "=f"(c) : "f"(a), "f"(b)); simd_print_doublev4(b); simd_print_doublev4(c); return 0; }