Language
C
Compiler
gcc HEAD 9.0.1 20190127 (experimental)
Options
Warnings
Optimization
C11(GNU)
no pedantic
Raw compiler options
-fsanitize=undefined
$ gcc prog.c -Wall -Wextra -O2 -march=native -std=gnu11 -fsanitize=undefinedvoid add_SSE(uint8_t a[static 7], uint8_t b[static 7], uint8_t out[static 7])
{
uint64_t a_64 = 0;
uint64_t b_64 = 0;
a_64 |= (uint64_t)a[0] << (0*9);
b_64 |= (uint64_t)b[0] << (0*9);
a_64 |= (uint64_t)a[1] << (1*9);
b_64 |= (uint64_t)b[1] << (1*9);
a_64 |= (uint64_t)a[2] << (2*9);
b_64 |= (uint64_t)b[2] << (2*9);
a_64 |= (uint64_t)a[3] << (3*9);
b_64 |= (uint64_t)b[3] << (3*9);
a_64 |= (uint64_t)a[4] << (4*9);
b_64 |= (uint64_t)b[4] << (4*9);
a_64 |= (uint64_t)a[5] << (5*9);
b_64 |= (uint64_t)b[5] << (5*9);
a_64 |= (uint64_t)a[6] << (6*9);
b_64 |= (uint64_t)b[6] << (6*9);
uint64_t c_64 = a_64 + b_64;
out[i] = (uint64_t)c_64 >> (0*9);
out[i] = (uint64_t)c_64 >> (1*9);
out[i] = (uint64_t)c_64 >> (2*9);
out[i] = (uint64_t)c_64 >> (3*9);
out[i] = (uint64_t)c_64 >> (4*9);
out[i] = (uint64_t)c_64 >> (5*9);
out[i] = (uint64_t)c_64 >> (6*9);
}
Exit Code:
0