History

Add checks for cpu features in tests

This allows running the tests on devices that don't have all the SIMD instruction sets.

Martin Storsjö committed 11 years ago

Commit acafbb41 parent 7f967f63 files · +97 −73Browse files

Showing the changes to test/decoder/DecUT_IdctResAddPred.cpp (1 of 3 files). Show all

Unified · Split

test/decoder/DecUT_IdctResAddPred.cpp+17−10
@@ -2,6 +2,7 @@ · 1 unmodified line
2#include "macros.h"2#include "macros.h"
3#include "decode_mb_aux.h"3#include "decode_mb_aux.h"
4#include "deblocking.h"4#include "deblocking.h"
5#include "cpu.h"
5using namespace WelsDec;6using namespace WelsDec;
6void IdctResAddPred_ref (uint8_t* pPred, const int32_t kiStride, int16_t* pRs) {7void IdctResAddPred_ref (uint8_t* pPred, const int32_t kiStride, int16_t* pRs) {
7 int16_t iSrc[16];8 int16_t iSrc[16];
@@ -48,7 +49,7 @@ void SetNonZeroCount_ref (int8_t* pNonZeroCount) { · 40 unmodified lines
48 }49 }
49}50}
50 51
51#define GENERATE_IDCTRESADDPRED(pred) \52#define GENERATE_IDCTRESADDPRED(pred, flag) \
52TEST(DecoderDecodeMbAux, pred) {\53TEST(DecoderDecodeMbAux, pred) {\
53 const int32_t kiStride = 32;\54 const int32_t kiStride = 32;\
54 const int iBits = 12;\55 const int iBits = 12;\
@@ -59,6 +60,9 @@ TEST(DecoderDecodeMbAux, pred) {\ · 4 unmodified lines
59 int16_t iRefRS[16];\60 int16_t iRefRS[16];\
60 uint8_t uiRefPred[16*kiStride];\61 uint8_t uiRefPred[16*kiStride];\
61 int32_t iRunTimes = 1000;\62 int32_t iRunTimes = 1000;\
63 uint32_t uiCPUFlags = WelsCPUFeatureDetect(NULL); \
64 if ((uiCPUFlags & flag) == 0 && flag != 0) \
65 return; \
62 while(iRunTimes--) {\66 while(iRunTimes--) {\
63 for(int i = 0; i < 4; i++)\67 for(int i = 0; i < 4; i++)\
64 for(int j = 0; j < 4; j++)\68 for(int j = 0; j < 4; j++)\
@@ -80,22 +84,25 @@ TEST(DecoderDecodeMbAux, pred) {\ · 15 unmodified lines
80 }\84 }\
81}85}
82 86
83GENERATE_IDCTRESADDPRED (IdctResAddPred_c)87GENERATE_IDCTRESADDPRED (IdctResAddPred_c, 0)
84#if defined(X86_ASM)88#if defined(X86_ASM)
85GENERATE_IDCTRESADDPRED (IdctResAddPred_mmx)89GENERATE_IDCTRESADDPRED (IdctResAddPred_mmx, WELS_CPU_MMXEXT)
86#endif90#endif
87 91
88#if defined(HAVE_NEON)92#if defined(HAVE_NEON)
89GENERATE_IDCTRESADDPRED (IdctResAddPred_neon)93GENERATE_IDCTRESADDPRED (IdctResAddPred_neon, WELS_CPU_NEON)
90#endif94#endif
91 95
92#if defined(HAVE_NEON_AARCH64)96#if defined(HAVE_NEON_AARCH64)
93GENERATE_IDCTRESADDPRED (IdctResAddPred_AArch64_neon)97GENERATE_IDCTRESADDPRED (IdctResAddPred_AArch64_neon, WELS_CPU_NEON)
94#endif98#endif
95 99
96#define GENERATE_SETNONZEROCOUNT(method) \100#define GENERATE_SETNONZEROCOUNT(method, flag) \
97TEST(DecoderDecodeMbAux, method) \101TEST(DecoderDecodeMbAux, method) \
98{\102{\
103 uint32_t uiCPUFlags = WelsCPUFeatureDetect(NULL); \
104 if ((uiCPUFlags & flag) == 0 && flag != 0) \
105 return; \
99 int8_t iNonZeroCount[2][24];\106 int8_t iNonZeroCount[2][24];\
100 for(int32_t i = 0; i < 24; i++) {\107 for(int32_t i = 0; i < 24; i++) {\
101 iNonZeroCount[0][i] = iNonZeroCount[1][i] = (rand() % 25);\108 iNonZeroCount[0][i] = iNonZeroCount[1][i] = (rand() % 25);\
@@ -123,16 +130,16 @@ TEST(DecoderDecodeMbAux, method) \ · 21 unmodified lines
123 }\130 }\
124}131}
125 132
126GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_c)133GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_c, 0)
127 134
128#if defined(X86_ASM)135#if defined(X86_ASM)
129GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_sse2)136GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_sse2, WELS_CPU_SSE2)
130#endif137#endif
131 138
132#if defined(HAVE_NEON)139#if defined(HAVE_NEON)
133GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_neon)140GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_neon, WELS_CPU_NEON)
134#endif141#endif
135 142
136#if defined(HAVE_NEON_AARCH64)143#if defined(HAVE_NEON_AARCH64)
137GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_AArch64_neon)144GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_AArch64_neon, WELS_CPU_NEON)
138#endif145#endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t