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
mm3dnow.h misses a number of intrinsics #24022
Comments
These 2 are MMX intrinsics and are included in mmintrin.h (which mm3dnow.h includes): /* Aliases for compatibility. */ |
...
Yes, but specifically _m_prefetch() was the intrinsic some ports error'd out on. Maybe this could also be defined similarly? |
Review patch for _m_prefetch() |
Committed in rL243305 and rL243314 |
The only missing functions now are _m_from_float and _m_to_float. The other definitions can be safely removed from Intrin.h |
D12272 - patch to remove the unnecessary _m_from_int, _m_to_int and _m_prefetch intrinsic definitions |
D12340 - final patch to add the missing _m_from_float / _m_to_float implementations. |
This was abandoned as we don't have any way to insert emms/femms ops to separate x87/mmx ops. |
@llvm/issue-subscribers-backend-x86 |
Resolving - the 3dnow coverage is as good as its ever going to get. |
Required support aws merged with LLVM in 2015: llvm/llvm-project#24022 The port builds fine, including with CPUTYPE=athlon64-sse3 PR: 194861, 278353 [1] Submitted by: diizzy [1]
Extended Description
This turned up during certain FreeBSD port builds. Apparently the mmd3dnow.h header shipped with clang misses the following intrinsics:
__m64 _m_from_float(float);
__m64 _m_from_int(int);
void _m_prefetch(void *);
float _m_to_float(__m64);
int _m_to_int(__m64);
Note that the int variants are also not declared by gcc, e.g. these seem to be only relevant to Microsoft C. Maybe it is not worth declaring them in mm3dnow.h, since they are already in the Microsoft-specific Intrin.h header.
The text was updated successfully, but these errors were encountered: