From dfeeb85b65188923b45e14fbac7963626fae2e48 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Wed, 12 Oct 2011 22:01:44 +0200
Subject: [PATCH] dct-test: add transpose permutation support

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 libavcodec/dct-test.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c
index 3bd95fdf2dd..9f17b06b67a 100644
--- a/libavcodec/dct-test.c
+++ b/libavcodec/dct-test.c
@@ -71,7 +71,7 @@ struct algo {
     const char *name;
     void (*func)(DCTELEM *block);
     enum formattag { NO_PERM, MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM,
-                     SSE2_PERM, PARTTRANS_PERM } format;
+                     SSE2_PERM, PARTTRANS_PERM, TRANSPOSE_PERM } format;
     int mm_support;
     int nonspec;
 };
@@ -243,6 +243,9 @@ static void permute(DCTELEM dst[64], const DCTELEM src[64], int perm)
     } else if (perm == PARTTRANS_PERM) {
         for (i = 0; i < 64; i++)
             dst[(i & 0x24) | ((i & 3) << 3) | ((i >> 3) & 3)] = src[i];
+    } else if (perm == TRANSPOSE_PERM) {
+        for (i = 0; i < 64; i++)
+            dst[(i>>3) | ((i<<3)&0x38)] = src[i];
     } else {
         for (i = 0; i < 64; i++)
             dst[i] = src[i];
-- 
GitLab