13.1.4之前的LXVD2X是否有XL C内置?

13.1.4之前的LXVD2X是否有XL C内置?,c,built-in,xlc,altivec,C,Built In,Xlc,Altivec,我正在使用内置的C/C++进行工作。我需要lvd2x指令将未对齐的数据加载到VMX寄存器中。看起来在Power7和Power8处理器上可以使用lvd2x GCC提供内置的执行任务的vec\u vsx\u ld。根据第4章,13.1.4版中添加的增强功能: 新的内置函数 支持以下GCC矢量内置函数: 向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向

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

GCC提供内置的执行任务的
vec\u vsx\u ld
。根据第4章,13.1.4版中添加的增强功能:

新的内置函数

支持以下GCC矢量内置函数:

  • 向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量向量
代码是为xlc保护的,所以我不需要GCC的内置代码。问题是,我找不到XL C内置的
lvd2x

#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提供了XL C v13.1.3(5725-C725765-J07)。13.1.4之前的LXVD2X是否有XL C内置?如果有一个内置的,那么它是什么?如果没有,那么我们如何获取指令


(我试图避免使用ASM和内联ASM。我对处理器的了解不够,无法编写它。我也有过相当不愉快的经历,我不想通过尝试使用ASM来加剧痛苦)。

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

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


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

GCC和xl都应实现的可移植函数是vec_xl。这是PPC64-LE ABI的一部分

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


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

Q:我们如何访问指令(使用GCC)?答:内联汇编是一个明显的选择;)为什么不试试呢?PS:你的架构是PowerPC,对吗?@paulsm4-GCC很好。我需要它用于IBM的XLC编译器。Q:我们如何获得对指令的访问权(使用GCC)?答:内联汇编是一个明显的选择;)为什么不试试呢?PS:你的架构是PowerPC,对吗?@paulsm4-GCC很好。我需要它用于IBM的XL C编译器。非常感谢
vec_xl
vec_xl_be
应该是我最不需要的东西。我们快到了……非常感谢
vec_xl
vec_xl_be
应该是我最不需要的东西。我们快到了。。。