Add missing zstd.h to coregrind Makefile.am noinst_HEADERS
[valgrind.git] / memcheck / tests / amd64 / xor-undef-amd64.c
blob4ff569903347ef40435b86ed55fc9ce3051b5cc1
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <assert.h>
6 #define JZ_NEXT ".byte 0x74,0x00" /* jz the-next-insn */
8 int main ( void )
10 char* junk = malloc(48);
11 assert(junk);
14 /* --- INTEGER --- */
16 printf("\nComplain int64\n");
17 __asm__ __volatile__(
18 "movq 0(%0), %%rax\n\t"
19 "movq 8(%0), %%r8\n\t"
20 "xorq %%r8, %%rax\n\t"
21 JZ_NEXT
22 : : "r"(junk) : "r8", "rax", "cc"
25 printf("\nNo complain int64\n");
26 __asm__ __volatile__(
27 "movq 0(%0), %%rax\n\t"
28 "movq 8(%0), %%r8\n\t"
29 "xorq %%rax, %%rax\n\t"
30 JZ_NEXT
31 : : "r"(junk) : "r8", "rax", "cc"
35 /* --- MMX --- */
37 printf("\nComplain mmx\n");
38 __asm__ __volatile__(
39 "emms\n\t"
40 "movq 0(%0), %%mm0\n\t"
41 "movq 8(%0), %%mm7\n\t"
42 "pxor %%mm7, %%mm0\n\t"
43 "movq %%mm0, 16(%0)\n\t"
44 "cmpq $0,16(%0)\n\t"
45 JZ_NEXT
46 : : "r"(junk) : "mm7", "mm0", "cc", "memory"
49 printf("\nNo complain mmx\n");
50 __asm__ __volatile__(
51 "emms\n\t"
52 "movq 0(%0), %%mm0\n\t"
53 "movq 8(%0), %%mm7\n\t"
54 "pxor %%mm0, %%mm0\n\t"
55 "movq %%mm0, 16(%0)\n\t"
56 "cmpq $0,16(%0)\n\t"
57 JZ_NEXT
58 : : "r"(junk) : "mm7", "mm0", "cc", "memory"
62 /* --- SSE1 --- */
64 printf("\nComplain sse xorps\n");
65 __asm__ __volatile__(
66 "movups 0(%0), %%xmm0\n\t"
67 "movups 16(%0), %%xmm8\n\t"
68 "xorps %%xmm8, %%xmm0\n\t"
69 "movups %%xmm0, 32(%0)\n\t"
70 "movq 32(%0), %%rax\n\t"
71 "addq 40(%0), %%rax\n\t"
72 JZ_NEXT
73 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
76 printf("\nNo complain sse xorps\n");
77 __asm__ __volatile__(
78 "movups 0(%0), %%xmm0\n\t"
79 "movups 16(%0), %%xmm8\n\t"
80 "xorps %%xmm0, %%xmm0\n\t"
81 "movups %%xmm0, 32(%0)\n\t"
82 "movq 32(%0), %%rax\n\t"
83 "addq 40(%0), %%rax\n\t"
84 JZ_NEXT
85 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
89 /* --- SSE2 --- */
91 printf("\nComplain sse2 pxor\n");
92 __asm__ __volatile__(
93 "movups 0(%0), %%xmm0\n\t"
94 "movups 16(%0), %%xmm8\n\t"
95 "pxor %%xmm8, %%xmm0\n\t"
96 "movups %%xmm0, 32(%0)\n\t"
97 "movq 32(%0), %%rax\n\t"
98 "addq 40(%0), %%rax\n\t"
99 JZ_NEXT
100 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
103 printf("\nNo complain sse2 pxor\n");
104 __asm__ __volatile__(
105 "movups 0(%0), %%xmm0\n\t"
106 "movups 16(%0), %%xmm8\n\t"
107 "pxor %%xmm0, %%xmm0\n\t"
108 "movups %%xmm0, 32(%0)\n\t"
109 "movq 32(%0), %%rax\n\t"
110 "addq 40(%0), %%rax\n\t"
111 JZ_NEXT
112 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
116 printf("\nComplain sse2 xorpd\n");
117 __asm__ __volatile__(
118 "movups 0(%0), %%xmm0\n\t"
119 "movups 16(%0), %%xmm8\n\t"
120 "xorpd %%xmm8, %%xmm0\n\t"
121 "movups %%xmm0, 32(%0)\n\t"
122 "movq 32(%0), %%rax\n\t"
123 "addq 40(%0), %%rax\n\t"
124 JZ_NEXT
125 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
128 printf("\nNo complain sse2 xorpd\n");
129 __asm__ __volatile__(
130 "movups 0(%0), %%xmm0\n\t"
131 "movups 16(%0), %%xmm8\n\t"
132 "xorpd %%xmm0, %%xmm0\n\t"
133 "movups %%xmm0, 32(%0)\n\t"
134 "movq 32(%0), %%rax\n\t"
135 "addq 40(%0), %%rax\n\t"
136 JZ_NEXT
137 : : "r"(junk) : "rax", "xmm8", "xmm0", "cc", "memory"
141 free(junk);
142 return 0;