Skip to content
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

Some built-in fucntions are not supported for PPC64 before POWER8 such as Apple G5 #2319

Closed
OctopusET opened this issue Jan 3, 2025 · 6 comments

Comments

@OctopusET
Copy link

OctopusET commented Jan 3, 2025

Describe the bug
I tried to build simdjson on my Apple G5 (PowerPC 970), and I found some built-in functions are not supported on this machine even some VSX functions are supported.

result = ((__vector unsigned long long)vec_vbpermq((__m128i)this->value,

This line isn't working even add '-mvsx' because it also requires '-mcpu=power8'
Here's detailed list of which functions are supported:

To Reproduce

  1. Get PPC64 machine before POWER8 era (such as Apple G5)
  2. Try build it
  3. Boom

Build log
https://pastebin.com/y8rzmmxW

simjson release
5.11.0

Configuration (please complete the following information if relevant)

  • OS: Gentoo
  • Compiler* gcc version: 14.2.1 20241221 (Gentoo 14.2.1_p20241221 p7)
  • Optimization setting: -O2 -pipe -mcpu=970 -mtune=970 -maltivec -mabi=altivec

Indicate whether you are willing or able to provide a bug fix as a pull request
I'm investigating now, silx-kit/hdf5plugin#307 (comment)
This fix is hint but didn't work.

See also
https://stackoverflow.com/questions/47771721/what-is-the-availability-of-vector-long-long

@OctopusET OctopusET changed the title Some Built-in fucntions are not provided for PPC64 before POWER8 such as Apple G5 Some built-in fucntions are not supported for PPC64 before POWER8 such as Apple G5 Jan 3, 2025
@OctopusET
Copy link
Author

I'm investigating now, silx-kit/hdf5plugin#307 (comment)
This fix is hint but didn't work.

I think this fix will work, because on gentoo they enable SIMDJSON_IMPLEMENTATION_PPC64 by force.

@OctopusET
Copy link
Author

But eventually it could be possible to write codes for these devices by removing unsupported functions.

@lemire
Copy link
Member

lemire commented Jan 3, 2025

We currently support 64-bit POWER8 and POWER9 with VSX and ALTIVEC extensions.

@lemire
Copy link
Member

lemire commented Jan 3, 2025

on gentoo they enable SIMDJSON_IMPLEMENTATION_PPC64 by force.

Please report the issue on gentoo.

@lemire lemire closed this as completed Jan 3, 2025
@lemire
Copy link
Member

lemire commented Jan 3, 2025

Closed. It appears that the reporter is using a system that forces SIMDJSON_IMPLEMENTATION_PPC64 on a system where it is not appropriate.

@OctopusET
Copy link
Author

Ops sorry I thought when it's checking VSX support it's equivalent to AVTIVEC support.
I tried buliding simdjson from the source and it's working well. Thanks.

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

No branches or pull requests

2 participants