Mercurial > mplayer.hg
annotate TOOLS/fastmemcpybench.c @ 33737:71c29e8ec68f
Move string functions from interface.c to string.c.
Additionally, change char parameter of gstrchr() to const and
rename parameter size of gstrncmp() n.
The Win32 GUI now needs gstrdup() defined before its first usage.
author | ib |
---|---|
date | Thu, 07 Jul 2011 08:32:10 +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 } |