首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在13.1.4之前是否有LXVD2X的XL内置组件?

在13.1.4之前是否有LXVD2X的XL内置组件?
EN

Stack Overflow用户
提问于 2017-09-08 03:17:42
回答 1查看 100关注 0票数 0

我是从C/C++使用内置的。我需要lvd2x指令将未对齐的数据加载到VMX寄存器中。看起来lvd2x可以在Power7和Power8处理器上使用。

GCC为执行这项任务提供了内置的vec_vsx_ld。根据IBM /C++ for Linux,V13.1.5,第4章,13.1.4版本中添加的增强:

新内置函数 支持以下GCC向量内建函数:

  • vec_vsx_ld
  • ..。

代码是为XL而设的,所以我不需要GCC的内置。问题是,我找不到XL内置的lvd2x

代码语言:javascript
运行
复制
#if defined(__xlc__) || defined(__xlC__)
    uint8x16_p8 block = vec_vsx_ld(0, t);
#else
    uint64x2_p8 block = (uint64x2_p8)vec_vsx_ld(0, t);
#endif

GCC编译场为AIX提供了XLCv13.1.3 (5725-C72,5765-J07)。在13.1.4之前是否有LXVD2X的XL内置组件?如果是内置的,那是什么?如果没有,那么我们如何才能访问指令?

(我正在努力避免ASM和内联ASM。我对处理器的了解还不足以写它。我也有过一次相当不愉快的经历,我不想通过使用asm来放大痛苦)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 16:43:56

GCC和XL都应该实现的可移植功能是vec_xl。是PPC64 64-LE ABI的一部分。

XLC支持的旧函数是xld2 (用于加载包含8字节元素的向量)和vec_xlw4 (用于加载包含4字节元素的向量)。

请注意,如果需要大端向量元素顺序,则应该使用vec_xl_be,或者使用-qaltivec=be进行编译。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46108098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档