1 /* A very trivial test for undefinedness propagation through 2 saturating narrowing. Obviously need a much more thorough test. 3 */ 4 #include <stdio.h> 5 #include <assert.h> 6 #include "../../memcheck.h" 7 int main() 8 { 9 unsigned char data[32], vbits[32]; 10 __asm__ __volatile__ 11 ("movdqu (%0), %%xmm0 \n" 12 "packuswb %%xmm0, %%xmm0 \n" 13 "movdqu %%xmm0, 16(%0) \n" 14 ::"r"(data) 15 :"memory","xmm0" 16 ); 17 unsigned int res = 18 VALGRIND_GET_VBITS( data, vbits, 32 ); 19 assert(res == 1); /* 1 == success */ 20 int i, j; 21 for(i=0; i<2; i++) { 22 for(j=0; j<16; j++) 23 printf("%02x ", vbits[i*16+j]); 24 printf("\n"); 25 } 26 return 0; 27 } 28