/* swartypes.h Definitions for SWAR types on various architectures */ typedef union { float f; /* Float (32-bit) value */ int d; /* Doubleword (32-bit) value */ unsigned int ud; /* Unsigned Doubleword */ short w[2]; /* 2 Word (16-bit) values */ unsigned short uw[2]; /* 2 Unsigned Word */ char b[4]; /* 4 Byte (8-bit) values */ unsigned char ub[4]; /* 4 Unsigned Byte */ } p32_t; typedef union { long long q; /* Quadword (64-bit) value */ unsigned long long uq; /* Unsigned Quadword */ float f[2]; /* 2 Float (32-bit) values */ int d[2]; /* 2 Doubleword (32-bit) values */ unsigned int ud[2]; /* 2 Unsigned Doubleword */ short w[4]; /* 4 Word (16-bit) values */ unsigned short uw[4]; /* 4 Unsigned Word */ char b[8]; /* 8 Byte (8-bit) values */ unsigned char ub[8]; /* 8 Unsigned Byte */ float sf[2]; /* Single-precision (32-bit) FP value */ } p64_t; typedef union { long long q[2]; /* Quadword (64-bit) value */ unsigned long long uq[2]; /* Unsigned Quadword */ float f[4]; /* 4 Float (32-bit) values */ int d[4]; /* 4 Doubleword (32-bit) values */ unsigned int ud[4]; /* 4 Unsigned Doubleword */ short w[8]; /* 8 Word (16-bit) values */ unsigned short uw[8]; /* 8 Unsigned Word */ char b[16]; /* 16 Byte (8-bit) values */ unsigned char ub[16]; /* 16 Unsigned Byte */ float sf[4]; /* Single-precision (32-bit) FP value */ } p128_t;