altivec相关内容
我正在一台旧的 PowerMac G5(一台 Power4 机器)上进行测试.构建失败: $ make...g++ -DNDEBUG -g2 -O3 -mcpu=power4 -maltivec -c ppc-simd.cppppc-crypto.h:36: 错误:在 AltiVec 类型中使用“long long"无效制作:*** [ppc-simd.o] 错误 1 失败的原因是: typ
..
我正在尝试使用 SIMD 内在函数编写流压缩(采用数组并去除空元素).循环的每次迭代一次处理 8 个元素(SIMD 宽度). 使用 SSE 内在函数,我可以使用 _mm_shuffle_epi8() 相当有效地执行此操作,它执行 16 个条目表查找(收集并行计算术语).shuffle 索引是预先计算好的,并使用位掩码查找. for (i = 0; i 我的问题是现在我也想为 Altiv
..
我正在尝试将一些ARM NEON代码移植到AltiVec.我们的NEON代码具有两个LOAD,一个ROT,一个XOR和一个STORE,因此这似乎是一个简单的测试用例.根据IBM的 vec_rl 文档: 结果的每个元素都是通过将左边的相应元素旋转b的相应元素指定的位数获得的. 文档接着说vector unsigned int是最大的数据类型,除非-qarch=power8,在这种情况下v
..
我无法让GCC内联汇编程序接受Power9的某些内联汇编. 我要让GCC接受的常规程序集是darn 3, 1,其中3是r3,而1是在文档中称为L的参数.它在big-endian上反汇编: 0: e6 05 61 7c darn r3,1 在小端上: 0: 7c 61 05 e6 darn r3,1 由于各种原因和问题,包括旧的编译器和冒充其
..
我正在使用带内核加密的PowerPC计算机。我无法使用内置功能将AES密钥扩展从大字节序移植到小字节序。大字节序有效,而小字节序无效。 以下算法是 IBM博客文章。我认为我将问题隔离到下面的第2行: typedef __vector unsigned char uint8x16_p8; uint8x64_p8 r0 = {0}; r3 = vec_perm(r1,r1,r
..
我正在使用一台旧的PowerMac G5(一台Power4机器)进行测试。构建失败: $ make ... g ++ -DNDEBUG -g2 -O3- mcpu = power4 -maltivec -c ppc-simd.cpp ppc-crypto.h:36:错误:在AltiVec类型中使用'long long'是无效的 make:*** [ppc-simd .o]错误
..
我写了几个复制函数,以期在PowerPC上寻求良好的存储策略.将Altivec或fp寄存器与缓存提示(dcb *)配合使用,可以在大数据的简单字节复制循环中使性能提高一倍.最初对此感到满意,我定期进行了一次memcpy比赛,看看它的性能如何……比我最好的快10倍!我无意重写memcpy,但我确实希望从中学习并加速几个简单的图像滤镜,这些滤镜会花费大部分时间将像素移入和移出内存. Shark分
..
我正在尝试发现等效于llvm_source$ cat llvm/test/MC/PowerPC/ppc64-encoding.s | grep darn -B 1 -A 1 # CHECK-BE: darn 2, 3 # encoding: [0x7c,0x43,0x05,0xe6] # CHECK-LE: darn 2, 3 # encoding: [0xe6,0x05,0x43,0x7c] d
..