/* A very trivial test for undefinedness propagation through saturating narrowing. Obviously need a much more thorough test. */ #include #include #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; }