swar-8b-test.c
527 Bytes
//#include <stdint.h>
typedef unsigned int uint32_t;
typedef unsigned long uint64_t;
typedef uint32_t s4x8b __attribute__((subword(8)));
typedef uint64_t s8x8b __attribute__((subword(8)));
volatile uint32_t uwa, uwb, uwz;
volatile uint64_t uda, udb, udz;
volatile s4x8b s4a, s4b, s4z;
volatile s8x8b s8a, s8b, s8z;
int main(void)
{
uwz = __builtin_swar(uwa, uwb);
udz = __builtin_swar(uda, udb);
s4z = __builtin_swar(s4a, s4b);
s8z = __builtin_swar(s8a, s8b);
s4z = s4a + s4b;
s8z = s8a + s8b;
return 0;
}