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

Non-standard types: _DecimalXX, __mXXX, __int128, ymm, zmm #10

Open
hainest opened this issue May 11, 2022 · 0 comments
Open

Non-standard types: _DecimalXX, __mXXX, __int128, ymm, zmm #10

hainest opened this issue May 11, 2022 · 0 comments

Comments

@hainest
Copy link
Collaborator

hainest commented May 11, 2022

Arguments of types float, double, _Decimal32, _Decimal64 and
__m64 are in class SSE.
• Arguments of types __float128, _Decimal128 and __m128 are split
into two halves. The least significant ones belong to class SSE, the most
significant one to class SSEUP.
• Arguments of type __m256 are split into four eightbyte chunks. The least
significant one belongs to class SSE and all the others to class SSEUP.
• Arguments of type __m512 are split into eight eightbyte chunks. The least
significant one belongs to class SSE and all the others to class SSEUP.

Arguments of type __int128 offer the same operations as INTEGERs,
yet they do not fit into one general purpose register but require two registers.
For classification purposes __int128 is treated as if it were implemented
as:
typedef struct {
long low, high;
} __int128;
with the exception that arguments of type __int128 that are stored in
memory must be aligned on a 16-byte boundary.

@hainest hainest changed the title Vector types Non-standard types: _DecimalXX, __mXXX, __int128, ymm, zmm May 11, 2022
@vsoch vsoch transferred this issue from buildsi/Smeagle Jul 18, 2022
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

1 participant