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