我正在使用內置的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