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_32.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 cachelab-handout/trans_32.h (limited to 'cachelab-handout/trans_32.h') diff --git a/cachelab-handout/trans_32.h b/cachelab-handout/trans_32.h new file mode 100644 index 0000000..879a55b --- /dev/null +++ b/cachelab-handout/trans_32.h @@ -0,0 +1,29 @@ +#pragma once + +#ifndef CASE_32_32_BLOCK_SIZE +#define CASE_32_32_BLOCK_SIZE 8 +#endif + +#define B_32_8_BY_8_TRANSPOSE(base_i, base_j, tmp) \ +do \ +{ \ +for (tmp = 0; tmp < CASE_32_32_BLOCK_SIZE; tmp++) \ +{ \ + t0 = A[base_i + tmp][base_j + 0]; \ + t1 = A[base_i + tmp][base_j + 1]; \ + t2 = A[base_i + tmp][base_j + 2]; \ + t3 = A[base_i + tmp][base_j + 3]; \ + t4 = A[base_i + tmp][base_j + 4]; \ + t5 = A[base_i + tmp][base_j + 5]; \ + t6 = A[base_i + tmp][base_j + 6]; \ + t7 = A[base_i + tmp][base_j + 7]; \ + B[base_j + 0][base_i + tmp] = t0; \ + B[base_j + 1][base_i + tmp] = t1; \ + B[base_j + 2][base_i + tmp] = t2; \ + B[base_j + 3][base_i + tmp] = t3; \ + B[base_j + 4][base_i + tmp] = t4; \ + B[base_j + 5][base_i + tmp] = t5; \ + B[base_j + 6][base_i + tmp] = t6; \ + B[base_j + 7][base_i + tmp] = t7; \ +} \ +} while (0) -- cgit v1.3.1-4-g156e