Skip to content

Feature/tentative altivec support #1144

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

Closed
wants to merge 1 commit into from

Conversation

serge-sans-paille
Copy link
Contributor

No description provided.

@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support branch 30 times, most recently from 21f9cc5 to 8602e05 Compare July 15, 2025 10:13
@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support branch 20 times, most recently from fa527ac to f38da74 Compare July 28, 2025 13:36
@serge-sans-paille
Copy link
Contributor Author

@JohanMabille can you have a look? I can improve the coverage but it's a minimal support, quite a decent start

@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support branch from f38da74 to ff06802 Compare July 28, 2025 16:01
@serge-sans-paille
Copy link
Contributor Author

We could rename the feature VSX instead of altivec, and eventually add VMX (an alias to VMX) in the future, that may make more sense.

@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support branch from ff06802 to c0ff2e8 Compare July 29, 2025 21:48
@serge-sans-paille
Copy link
Contributor Author

We could rename the feature VSX instead of altivec, and eventually add VMX (an alias to VMX) in the future, that may make more sense.

I ended up doing just that

@serge-sans-paille
Copy link
Contributor Author

@JohanMabille some context to help during your review: altivec is a brand for VMX, and a later extension was added, called VSX, in the spirit of, say SSE2 and SSSE3.
I did not implement pure VMX support because it lacks double support, accurate floating point division etc. We may end up supporting it later but that seemed out of scope and too much effort for a summer run.

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.
@serge-sans-paille serge-sans-paille force-pushed the feature/tentative-altivec-support branch from c0ff2e8 to 6297b5f Compare July 29, 2025 21:57
@serge-sans-paille
Copy link
Contributor Author

Merged as part of #1151

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.

1 participant