Mercurial > mplayer.hg
annotate TOOLS/fastmemcpybench.c @ 35881:b5abdfe9bc61
Replace some uses of off_t by uint64_t.
This allows code that does not rely on lseek etc. to work
even on systems that do not support 64 bit off_t yet.
Signed-off-by: Reimar Dffinger <Reimar.Doeffinger@gmx.de>
author | reimar |
---|---|
date | Sat, 16 Mar 2013 10:09:12 +0000 |
parents | b573c7c7173b |
children | cef5275fc11f |
rev | line source |
---|---|
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
1 /* |
28869 | 2 * benchmark tool for fast_memcpy code from libvo |
3 * | |
4 * NOTE: This code can not be used on Pentium MMX / II because they contain | |
5 * a bug in rdtsc. For Intel processors since P6(PII) rdpmc should be used | |
6 * instead. For PIII it's disputable and it seems the bug was fixed but this | |
7 * was not confirmed through testing. | |
30416
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
8 * |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
9 * This program is free software; you can redistribute it and/or modify |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
12 * (at your option) any later version. |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
13 * |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
14 * This program is distributed in the hope that it will be useful, |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
17 * GNU General Public License for more details. |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
18 * |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
19 * You should have received a copy of the GNU General Public License along |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
20 * with this program; if not, write to the Free Software Foundation, Inc., |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
b573c7c7173b
Add standard license header to C tools missing them.
diego
parents:
28903
diff
changeset
|
22 */ |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
23 |
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
24 #include <stdio.h> |
572 | 25 #include <stdlib.h> |
26 #include <string.h> | |
27 #include <sys/ioctl.h> | |
28 #include <unistd.h> | |
29 #include <fcntl.h> | |
30 #include <sys/mman.h> | |
31 #include <sys/time.h> | |
13839 | 32 #include <inttypes.h> |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
33 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
34 #include "config.h" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
35 #include "cpudetect.h" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
36 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
37 #define BLOCK_SIZE 4096 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
38 #define CONFUSION_FACTOR 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
39 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
40 #if HAVE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
41 #define COMPILE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
42 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
43 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
44 #if HAVE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
45 #define COMPILE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
46 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
47 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
48 #if HAVE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
49 #define COMPILE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
50 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
51 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
52 #if HAVE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
53 #define COMPILE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
54 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
55 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
56 #ifdef COMPILE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
57 #undef RENAME |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
58 #undef HAVE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
59 #undef HAVE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
60 #undef HAVE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
61 #undef HAVE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
62 #undef HAVE_SSE2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
63 #define HAVE_MMX 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
64 #define HAVE_MMX2 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
65 #define HAVE_AMD3DNOW 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
66 #define HAVE_SSE 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
67 #define HAVE_SSE2 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
68 #define RENAME(a) a ## _MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
69 #include "libvo/aclib_template.c" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
70 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
71 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
72 #ifdef COMPILE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
73 #undef RENAME |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
74 #undef HAVE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
75 #undef HAVE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
76 #undef HAVE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
77 #undef HAVE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
78 #undef HAVE_SSE2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
79 #define HAVE_MMX 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
80 #define HAVE_MMX2 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
81 #define HAVE_AMD3DNOW 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
82 #define HAVE_SSE 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
83 #define HAVE_SSE2 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
84 #define RENAME(a) a ## _MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
85 #include "libvo/aclib_template.c" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
86 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
87 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
88 #ifdef COMPILE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
89 #undef RENAME |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
90 #undef HAVE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
91 #undef HAVE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
92 #undef HAVE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
93 #undef HAVE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
94 #undef HAVE_SSE2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
95 #define HAVE_MMX 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
96 #define HAVE_MMX2 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
97 #define HAVE_AMD3DNOW 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
98 #define HAVE_SSE 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
99 #define HAVE_SSE2 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
100 #define RENAME(a) a ## _3DNow |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
101 #include "libvo/aclib_template.c" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
102 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
103 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
104 #ifdef COMPILE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
105 #undef RENAME |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
106 #undef HAVE_MMX |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
107 #undef HAVE_MMX2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
108 #undef HAVE_AMD3DNOW |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
109 #undef HAVE_SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
110 #undef HAVE_SSE2 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
111 #define HAVE_MMX 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
112 #define HAVE_MMX2 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
113 #define HAVE_AMD3DNOW 0 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
114 #define HAVE_SSE 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
115 #define HAVE_SSE2 1 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
116 #define RENAME(a) a ## _SSE |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
117 #include "libvo/aclib_template.c" |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
118 #endif |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
119 |
572 | 120 //#define ARR_SIZE 100000 |
121 #define ARR_SIZE (1024*768*2) | |
122 | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
26759
diff
changeset
|
123 #ifdef CONFIG_MGA |
572 | 124 |
17017 | 125 #include "drivers/mga_vid.h" |
572 | 126 |
127 static mga_vid_config_t mga_vid_config; | |
28868 | 128 static unsigned char* frame = NULL; |
572 | 129 static int f; |
130 | |
28232
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27757
diff
changeset
|
131 static int mga_init(void) |
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27757
diff
changeset
|
132 { |
28868 | 133 f = open("/dev/mga_vid", O_RDWR); |
134 if (f == -1) { | |
28869 | 135 fprintf(stderr, "Couldn't open /dev/mga_vid.\n"); |
28868 | 136 return -1; |
137 } | |
572 | 138 |
28868 | 139 mga_vid_config.num_frames = 1; |
140 mga_vid_config.frame_size = ARR_SIZE; | |
141 mga_vid_config.format = MGA_VID_FORMAT_YUY2; | |
142 | |
143 mga_vid_config.colkey_on = 0; | |
144 mga_vid_config.src_width = 640; | |
145 mga_vid_config.src_height = 480; | |
146 mga_vid_config.dest_width = 320; | |
147 mga_vid_config.dest_height = 200; | |
148 mga_vid_config.x_org = 0; | |
149 mga_vid_config.y_org = 0; | |
572 | 150 |
28868 | 151 mga_vid_config.version = MGA_VID_VERSION; |
152 if (ioctl(f, MGA_VID_CONFIG, &mga_vid_config)) { | |
153 perror("Error in mga_vid_config ioctl()"); | |
154 printf("Your mga_vid driver version is incompatible with this MPlayer version!\n"); | |
155 exit(1); | |
156 } | |
157 ioctl(f, MGA_VID_ON, 0); | |
572 | 158 |
28868 | 159 frame = (char*)mmap(0, mga_vid_config.frame_size*mga_vid_config.num_frames, |
160 PROT_WRITE,MAP_SHARED, f, 0); | |
161 if (!frame) { | |
28869 | 162 printf("Can't mmap MGA frame.\n"); |
28868 | 163 exit(1); |
164 } | |
572 | 165 |
28868 | 166 //clear the buffer |
167 //memset(frames[0], 0x80, mga_vid_config.frame_size*mga_vid_config.num_frames); | |
572 | 168 |
28868 | 169 return 0; |
572 | 170 } |
171 | |
172 #endif | |
173 | |
174 // Returns current time in microseconds | |
28232
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27757
diff
changeset
|
175 static unsigned int GetTimer(void) |
8df85ad26746
Add missing 'void' keyword to parameterless function declarations.
diego
parents:
27757
diff
changeset
|
176 { |
28868 | 177 struct timeval tv; |
178 struct timezone tz; | |
179 //float s; | |
180 gettimeofday(&tv, &tz); | |
181 //s = tv.tv_usec; s *= 0.000001; s += tv.tv_sec; | |
182 return tv.tv_sec * 1000000 + tv.tv_usec; | |
183 } | |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
184 |
28868 | 185 static inline unsigned long long int read_tsc(void) |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
186 { |
28868 | 187 unsigned long long int retval; |
188 __asm__ volatile ("rdtsc":"=A" (retval)::"memory"); | |
189 return retval; | |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
190 } |
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
191 |
28868 | 192 unsigned char __attribute__((aligned(4096)))arr1[ARR_SIZE], arr2[ARR_SIZE]; |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
193 |
28868 | 194 int main(void) |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
195 { |
28868 | 196 unsigned long long int v1, v2; |
197 unsigned char *marr1, *marr2; | |
198 int i; | |
199 unsigned int t; | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
26759
diff
changeset
|
200 #ifdef CONFIG_MGA |
28868 | 201 mga_init(); |
202 marr1 = &frame[3]; | |
572 | 203 #else |
28868 | 204 marr1 = &arr1[0]; |
572 | 205 #endif |
28868 | 206 marr2 = &arr2[0]; |
3076
bfc881c0e591
newly allocated memory seems to point to only 1 zero filled 4k page or something so there is a near 100% cache hit rate ... not very realistic, writeing something in the source array fixes that so the benchmark scores are meaningfull now
michael
parents:
687
diff
changeset
|
207 |
28868 | 208 for (i = 0; i < ARR_SIZE - 16; i++) |
209 marr1[i] = marr2[i] = i; | |
3076
bfc881c0e591
newly allocated memory seems to point to only 1 zero filled 4k page or something so there is a near 100% cache hit rate ... not very realistic, writeing something in the source array fixes that so the benchmark scores are meaningfull now
michael
parents:
687
diff
changeset
|
210 |
28903 | 211 #define testblock(func, name) \ |
212 t = GetTimer(); \ | |
213 v1 = read_tsc(); \ | |
214 for (i = 0; i < 100; i++) \ | |
215 func(marr1, marr2, ARR_SIZE - 16); \ | |
216 v2 = read_tsc(); \ | |
217 t = GetTimer() - t; \ | |
218 /* ARR_SIZE*100 / (1024*1024) / (t/1000000) = ARR_SIZE*95.36743 / t */ \ | |
219 printf(name "CPU clocks=%llu = %dus (%5.3ffps) %5.1fMB/s\n", v2-v1, t, \ | |
220 100000000.0f / (float)t, (float)ARR_SIZE*95.36743f / (float)t); | |
221 | |
222 testblock(memcpy, "libc: "); | |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
223 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
224 #if HAVE_MMX |
28903 | 225 testblock(fast_memcpy_MMX, "MMX: "); |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
226 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
227 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
228 #if HAVE_AMD3DNOW |
28903 | 229 testblock(fast_memcpy_3DNow, "3DNow!: "); |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
230 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
231 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
232 #if HAVE_MMX2 |
28903 | 233 testblock(fast_memcpy_MMX2, "MMX2: "); |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
234 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
235 |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
236 #if HAVE_SSE |
28903 | 237 testblock(fast_memcpy_SSE, "SSE: "); |
28894
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
238 #endif |
b29169fccda9
Fix and restructure fastmemcpybench. It is now one binary that runs all
diego
parents:
28871
diff
changeset
|
239 |
28868 | 240 return 0; |
562
312fee2a6816
Initial release, used to benchmark fastmemcpy.h code from libvo.
atmosfear
parents:
diff
changeset
|
241 } |