From 45b30cfcd4c5c133ab16fa0338e0f38f75b37751 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Mon, 9 Nov 2026 10:54:59 +0000 Subject: simplify with macro --- cachelab-handout/trans.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) (limited to 'cachelab-handout/trans.c') diff --git a/cachelab-handout/trans.c b/cachelab-handout/trans.c index 833e44f..8ce61ac 100644 --- a/cachelab-handout/trans.c +++ b/cachelab-handout/trans.c @@ -10,8 +10,6 @@ #include #include "cachelab.h" -#include "trans.h" - int is_transpose(int M, int N, int A[N][M], int B[M][N]); /* @@ -27,6 +25,9 @@ int is_transpose(int M, int N, int A[N][M], int B[M][N]); #define CASE_64_64_BLOCK_SIZE 4 #define CASE_64_64_MAGIC_NUMBER 2 +#include "trans_64.h" +#include "trans_32.h" + char transpose_submit_desc[] = "Transpose submission"; void transpose_submit(int M, int N, int A[N][M], int B[M][N]) { @@ -64,6 +65,7 @@ void transpose_submit(int M, int N, int A[N][M], int B[M][N]) for (j = 0; j < M; j+=CASE_32_32_BLOCK_SIZE) { // wtf magic? + // diagonal if (i == j && i != 24) { for (i2 = 0; i2 < CASE_32_32_BLOCK_SIZE; i2++) @@ -85,26 +87,7 @@ void transpose_submit(int M, int N, int A[N][M], int B[M][N]) continue; } - - for (i2 = 0; i2 < CASE_32_32_BLOCK_SIZE; i2++) - { - t0 = A[i+i2][j+0]; - t1 = A[i+i2][j+1]; - t2 = A[i+i2][j+2]; - t3 = A[i+i2][j+3]; - t4 = A[i+i2][j+4]; - t5 = A[i+i2][j+5]; - t6 = A[i+i2][j+6]; - t7 = A[i+i2][j+7]; - B[j+0][i+i2] = t0; - B[j+1][i+i2] = t1; - B[j+2][i+i2] = t2; - B[j+3][i+i2] = t3; - B[j+4][i+i2] = t4; - B[j+5][i+i2] = t5; - B[j+6][i+i2] = t6; - B[j+7][i+i2] = t7; - } + B_32_8_BY_8_TRANSPOSE(i, j, i2); } } } -- cgit v1.3.1-4-g156e