/* A very trivial test for undefinedness propagation through
saturating narrowing. Obviously need a much more thorough test.
*/
#include <stdio.h>
#include <assert.h>
#include "../../memcheck.h"
int main()
{
unsigned char data[32], vbits[32];
__asm__ __volatile__
("movdqu (%0), %%xmm0 \n"
"packuswb %%xmm0, %%xmm0 \n"
"movdqu %%xmm0, 16(%0) \n"
::"r"(data)
:"memory","xmm0"
);
unsigned int res =
VALGRIND_GET_VBITS( data, vbits, 32 );
assert(res == 1); /* 1 == success */
int i, j;
for(i=0; i<2; i++) {
for(j=0; j<16; j++)
printf("%02x ", vbits[i*16+j]);
printf("\n");
}
return 0;
}