You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi all,
I open this issue as discussion, please forgive me if this is not appropriate.
I'm currently working on porting software that initially did run on a PowerPC based CPU.
The C code base contains many direct AltiVec intrinsics, which does not compile for x86_64 and ARM64 architectures of our target platforms.
Rewriting those calls is complex, so our strategy is to implement a port of AltiVec instructions in plain C. In scalar first, and SSE/NEON in a second step.
Would anybody have knowledge of such an existing implementation available?
My underqstanding of pveclib is that it does not handle that need, but I thought people involved here would be the best who could provide me some help.
Regards
Domenico Albani
The text was updated successfully, but these errors were encountered:
GCC contains the opposite of what you seek: x86 intrinsics mapped to VSX, up through parts of SSE 4.2. This may or may not be helpful. I don't think Arm has the same -- although I do see an "mmintrin.h" file for Arm, I don't see any others.
For C implementations, it might be helpful to look at the RTL (pseudocode) in the Power ISA document, Book I, Chapters 6 and 7.
As Paul points out, there is no universal vector intrinsic translator.
Each effort tends to be a platform support team's effort ro help customers who show a sudden interest in their platform/architecture. But the customer has old software for another architecture.
You may find that the Vector Intrinsics Porting Guide covers some of the issues you will encounter. For example: Altivec support generic intrinsics (ie vec_add(() where the compiler generated instruction depends on the operand type. Intel intrinsic names are type specific. You will need some auxiary type definitions/casts to manage this.
Hi all,
I open this issue as discussion, please forgive me if this is not appropriate.
I'm currently working on porting software that initially did run on a PowerPC based CPU.
The C code base contains many direct AltiVec intrinsics, which does not compile for x86_64 and ARM64 architectures of our target platforms.
Rewriting those calls is complex, so our strategy is to implement a port of AltiVec instructions in plain C. In scalar first, and SSE/NEON in a second step.
Would anybody have knowledge of such an existing implementation available?
My underqstanding of
pveclib
is that it does not handle that need, but I thought people involved here would be the best who could provide me some help.Regards
Domenico Albani
The text was updated successfully, but these errors were encountered: