我正在使用内置的C/C++工作。我需要指令lvd2x
将未对齐的数据加载到VMX寄存器中。 Power7和Power8处理器上可以看到lvd2x
。在13.1.4之前是否有LXVD2X的XL C内置?
GCC提供vec_vsx_ld
内置执行任务。据IBM XL C/C++ for Linux, V13.1.5,第4章,增强在13.1.4版本中增加:
新的内置功能
下GCC载体的内置功能的支持:
- vec_vsx_ld
- ...
该代码对于XL C来说是保护的,所以我不需要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-C72,5765-J07)。在13.1.4之前是否有用于LXVD2X的XL C内置?如果有内置的,那么它是什么?如果不是,那么我们如何获得指令? (我试图避免ASM和内联ASM,我不太了解处理器写它,我也有一个相当不愉快的经历,我不想放大痛苦试图使用asm)。
问:我们如何获得指令(使用GCC)?答:内联汇编是一个明显的选择;)为什么不至少* TRY *它? PS:你的架构是Power PC,对吗? – paulsm4
@ paulsm4 - GCC很好。我需要它用于IBM的XL C编译器。 – jww