summaryrefslogtreecommitdiffstats
path: root/cacheRows2.c
diff options
context:
space:
mode:
Diffstat (limited to 'cacheRows2.c')
-rw-r--r--cacheRows2.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/cacheRows2.c b/cacheRows2.c
new file mode 100644
index 0000000..08b8142
--- /dev/null
+++ b/cacheRows2.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "inlineasm.h"
+#include <stdlib.h>
+
+#define MEASURE_METHOD optmemmeasure
+#define FIELD_SIZE 20000
+
+int main(int argc, char* argv[]) {
+
+ char *field = malloc(FIELD_SIZE);
+ int i,j;
+ uint64_t time=0;
+
+ // fill array with crap
+ for (i=0;i < FIELD_SIZE; ++i) {
+ field[i]=(i+2342) % 255;
+ }
+
+ for(i=0; i<FIELD_SIZE; ++i) {
+ time=optmemmeasure(field,i);
+ if (time < 1000)
+ fprintf(stdout,"%d %lld\n",i,time);
+
+ // scrambeled eggs
+ for (j=0;j<FIELD_SIZE-1;++j) {
+ field[i]=(field[i]*field[i+1]) % 255;
+ }
+ field[FIELD_SIZE-1] = (field[FIELD_SIZE-1]*field[0]) % 255;
+ }
+
+ return 0;
+}
+