Skip to content

Initial support for Altivec #1151

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 3, 2025

Conversation

serge-sans-paille
Copy link
Contributor

Only supports altivec with vxs extension, tested on both little and big endian architectures.

Notable changes:

  • document the fact that slide_left and slide_right are unreliable on big endian architecture

  • gcc chokes on force_inline for altivec, so dismiss it

  • some common code were making assumption of conversion between batch_bool registers and batch_registers that proved to be difficult for altivec type system, make the conversion explicit.

@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support-ex branch 9 times, most recently from 4db420e to 831a79b Compare July 29, 2025 21:50
Only supports altivec/vmx with vsx extension, tested on both little and big
endian architectures.

Several operations could be improved, but this should pass CI.

Notable changes:

- document the fact that slide_left and slide_right are unreliable on
  big endian architecture

- gcc chokes on force_inline for altivec, so dismiss it

- some common code were making assumption of conversion between
  batch_bool registers and batch_registers that proved to be difficult
  for altivec/vmx type system, make the conversion explicit.
Add support for ceil, floor, round, trunc, fma and fms.
@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support-ex branch from 831a79b to 077dc8e Compare July 29, 2025 21:58
@Jenkins-J
Copy link

@serge-sans-paille Velox depends heavily on xsimd for performance. I'm am also interested in supporting the ppc64le architecture in Velox. Is your plan to expand this work to Velox, or is there another reason you need VSX support in xsimd?

@serge-sans-paille
Copy link
Contributor Author

@Jenkins-J VSX support was added because I had a genuine interest in VMX/VSX and I was curious about how that would translate to xsimd. I'm glad to see it would benefit to Velox!
BTW, I submitted facebookincubator/velox#13261 to Velox some times ago, just so that Velox would be compatible with the latest release of xsimd, but it's not merged yet, if you could have a look?

@serge-sans-paille serge-sans-paille merged commit 7e3a09c into master Aug 3, 2025
130 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants