c++ - Altivec -- const 变量的加载

标签 c++ simd xlc altivec

使用 altivec 从 const 指针加载的最佳方法是什么?

根据文档(和我的结果),vec_ld 不采用 const 指针作为参数: http://www-01.ibm.com/support/knowledgecenter/SS2LWA_12.1.0/com.ibm.xlcpp121.bg.doc/compiler_ref/vec_ld.html

因此这样的事情将会失败:

void foo(const float* A){
   vector4double a = vec_ld(0,A);
   ...
}

一个令人讨厌的解决方法是:

void foo(const float* A){
   vector4double a = vec_ld(0,const_cast<float*>A);
   ...
}

有更好的方法吗? 谢谢。

最佳答案

使用const_cast

它的存在正是为了这个目的:处理常量不正确的 API。

关于c++ - Altivec -- const 变量的加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539672/

相关文章:

rust - 循环的自动向量化,对 4 个 int 元素进行打乱,并取与之前排列的绝对差值

c++ - 如何使用 SVML 说明

c++ - "std::_debug_memset"未声明

c - 将共享对象库 (.so) 文件的生成分为两次而不是一次

c++ - -static-libstdc++ 适用于 g++ 但不适用于纯 gcc?

c++ - C 风格/C++ 正确性,struct/union/enum 标记是否与类型名称相同?

c++ - PPL Combinable 的 SIMD 对齐问题

c++ - 如何禁用特定的 IBM XL C++ 编译器警告?

c++ - std chrono 时间同步

c++ - Windows 中的 Qt Designer 以及 Qt Creator