Bug499183 - FreeBSD: differences in avx-vmovq output
[valgrind.git] / none / tests / mips64 / fpu_load_store.c
blobf408ffa2caa7b261224c6bcb17598a3f9c5cabaa
1 #include <stdio.h>
2 #include "pub_core_basics.h"
3 #include "macro_load_store.h"
5 int main()
7 #if defined(__mips_hard_float)
8 int i;
9 int s1 = sizeof(int);
10 int s2 = sizeof(unsigned long long);
11 init_reg_val2();
12 /**********************************************************************/
13 /*-------------------------------LOAD---------------------------------*/
14 /**********************************************************************/
15 printf("--- LDC1 ---\n");
16 for (i = 0; i < N*s1; i = i+8)
17 TEST3("ldc1", i, reg_val1);
19 for (i = 0; i < N*s2; i = i+8)
20 TEST3("ldc1", i, reg_val2);
23 printf("--- LWC1 ---\n");
24 for (i = 0; i < N*s1; i = i+4)
25 TEST3w("lwc1", i, reg_val1);
27 for (i = 0; i < N*s2; i = i+4)
28 TEST3w("lwc1", i, reg_val2);
30 #if (__mips_isa_rev < 6)
31 printf("--- LDXC1 ---\n");
32 for (i = 0; i < N*s1; i = i+8)
33 TEST5("ldxc1", i, reg_val1);
35 for (i = 0; i < N*s2; i = i+8)
36 TEST5("ldxc1", i, reg_val2);
38 printf("--- LWXC1 ---\n");
39 for (i = 0; i < N*s1; i = i+4)
40 TEST5w("lwxc1", i, reg_val1);
42 for (i = 0; i < N*s2; i = i+4)
43 TEST5w("lwxc1", i, reg_val2);
44 #endif
45 /**********************************************************************/
46 /*-------------------------------STORE--------------------------------*/
47 /**********************************************************************/
48 init_reg_val_zero();
49 printf("--- SDC1 ---\n");
50 for (i = 0; i < N*s1; i = i+8) {
51 TEST4("sdc1", i);
54 init_reg_val_zero();
55 printf("--- SWC1 ---\n");
56 for (i = 0; i < (N-1)*s1; i = i+4) {
57 TEST4("swc1", i);
59 #if (__mips_isa_rev < 6)
60 init_reg_val_zero();
61 printf("--- SDXC1 ---\n");
62 for (i = 0; i < N*s1; i = i+8) {
63 TEST6("sdxc1", i);
66 init_reg_val_zero();
67 printf("--- SWXC1 ---\n");
68 for (i = 0; i < (N-1)*s1; i = i+4) {
69 TEST6("swxc1", i);
71 #endif
72 #endif
74 return 0;