swar_test_add.c
516 Bytes
////A: --has-swar
//C: -daiteq-swar-enable
#define NUM_ELMS 2000
#define BITSZ 2
#define PACKING (32/BITSZ)
#define ARRAY_SIZE ((NUM_ELMS+PACKING-1)/PACKING)
typedef unsigned int s16x2b __attribute__((subword(BITSZ, PACKING)));
s16x2b data_z[ARRAY_SIZE];
s16x2b data_a[ARRAY_SIZE]; /* data are set somewhere else */
s16x2b data_b[ARRAY_SIZE];
void swar_add(void)
{
for (unsigned i=0;i<ARRAY_SIZE;++i)
{
data_z[i] = data_a[i] + data_b[i];
}
}
int main(void)
{
swar_add();
return 0;
}