Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define headers #26

Closed
wants to merge 14 commits into from
4 changes: 4 additions & 0 deletions src/strategies/missing-intel-intrinsics.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <immintrin.h>

#ifndef __OPTIMIZE__
// Old Visual Studio headers lack the bsrli variant
#ifndef _mm_bsrli_si128
#define _mm_bsrli_si128(a, imm8) _mm_srli_si128((a), (imm8))
Expand All @@ -20,9 +21,11 @@

// Some Visual Studio headers apparently lack these pseudoinstructions
#if COMPILE_INTEL_AVX2
#ifdef __AVX512F__
#ifndef _mm256_bsrli_epi128
#define _mm256_bsrli_epi128(a, imm8) _mm256_srli_si256((a), (imm8))
#endif
#endif
#ifndef _mm256_insert_epi32
#define _mm256_insert_epi32(a, i, index) (_mm256_blend_epi32((a), _mm256_set1_epi32(i), (1 << (index))))
#endif
Expand All @@ -31,5 +34,6 @@
#define _mm256_extract_epi32(a, index) (_mm_extract_epi32(_mm256_extracti128_si256((a), (index) >> 2), (index) & 3))
#endif
#endif
#endif // __OPTIMIZE__

#endif
7 changes: 5 additions & 2 deletions src/strategies/strategies-alf.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@

#include "strategies/strategies-alf.h"
#include "strategies/sse41/alf-sse41.h"
#if defined(__AVX512F__)
#include "strategies/avx2/alf-avx2.h"
#endif
#include "strategies/generic/alf-generic.h"
#include "strategyselector.h"

Expand All @@ -51,9 +53,10 @@ int uvg_strategy_register_alf(void* opaque, uint8_t bitdepth) {
if (uvg_g_hardware_flags.intel_flags.sse41) {
success &= uvg_strategy_register_alf_sse41(opaque, bitdepth);
}
#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_alf_avx2(opaque, bitdepth);
}

#endif
return success;
}
}
11 changes: 6 additions & 5 deletions src/strategies/strategies-dct.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@
****************************************************************************/

#include "strategies/strategies-dct.h"

#include "avx2/dct-avx2.h"
#include "generic/dct-generic.h"
#if defined(__AVX512F__)
#include "strategies/avx2/dct-avx2.h"
#endif
#include "strategies/generic/dct-generic.h"
#include "strategyselector.h"


Expand Down Expand Up @@ -76,11 +77,11 @@ int uvg_strategy_register_dct(void* opaque, uint8_t bitdepth) {
bool success = true;

success &= uvg_strategy_register_dct_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_dct_avx2(opaque, bitdepth);
}

#endif
return success;
}

Expand Down
6 changes: 4 additions & 2 deletions src/strategies/strategies-depquant.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
****************************************************************************/

#include "strategies/strategies-depquant.h"

#if defined(__AVX512F__)
#include "strategies/avx2/depquant-avx2.h"
#endif
#include "strategies/generic/depquant-generic.h"
#include "strategyselector.h"

Expand All @@ -47,9 +48,10 @@ int uvg_strategy_register_depquant(void *opaque, uint8_t bitdepth)
bool success = true;

success &= uvg_strategy_register_depquant_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_depquant_avx2(opaque, bitdepth);
}
#endif
return success;
}
6 changes: 4 additions & 2 deletions src/strategies/strategies-encode.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
****************************************************************************/

#include "strategies/strategies-encode.h"

#if defined(__AVX512F__)
#include "strategies/avx2/encode_coding_tree-avx2.h"
#endif
#include "strategies/generic/encode_coding_tree-generic.h"
#include "strategyselector.h"

Expand All @@ -45,9 +46,10 @@ int uvg_strategy_register_encode(void* opaque, uint8_t bitdepth) {
bool success = true;

success &= uvg_strategy_register_encode_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
//success &= uvg_strategy_register_encode_avx2(opaque, bitdepth);
}
#endif
return success;
}
7 changes: 4 additions & 3 deletions src/strategies/strategies-intra.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
****************************************************************************/

#include "strategies/strategies-intra.h"

#if defined(__AVX512F__)
#include "strategies/avx2/intra-avx2.h"
#endif
#include "strategies/generic/intra-generic.h"
#include "strategyselector.h"

Expand All @@ -47,10 +48,10 @@ int uvg_strategy_register_intra(void* opaque, uint8_t bitdepth) {
bool success = true;

success &= uvg_strategy_register_intra_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_intra_avx2(opaque, bitdepth);
}

#endif
return success;
}
5 changes: 4 additions & 1 deletion src/strategies/strategies-ipol.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
****************************************************************************/

#include "strategies/strategies-ipol.h"

#if defined(__AVX512F__)
#include "strategies/avx2/ipol-avx2.h"
#endif
#include "strategies/generic/ipol-generic.h"
#include "strategyselector.h"

Expand All @@ -55,8 +56,10 @@ int uvg_strategy_register_ipol(void* opaque, uint8_t bitdepth) {

success &= uvg_strategy_register_ipol_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_ipol_avx2(opaque, bitdepth);
}
#endif
return success;
}
6 changes: 5 additions & 1 deletion src/strategies/strategies-picture.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@
#include "strategies/strategies-picture.h"

#include "strategies/altivec/picture-altivec.h"
#if defined(__AVX512F__)
#include "strategies/avx2/picture-avx2.h"
#endif
#include "strategies/generic/picture-generic.h"
#include "strategies/sse2/picture-sse2.h"
#include "strategies/sse41/picture-sse41.h"
Expand Down Expand Up @@ -103,9 +105,11 @@ int uvg_strategy_register_picture(void* opaque, uint8_t bitdepth) {
if (uvg_g_hardware_flags.intel_flags.sse42) {
success &= uvg_strategy_register_picture_sse42(opaque, bitdepth);
}
#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_picture_avx2(opaque, bitdepth);
}
#endif
if (uvg_g_hardware_flags.powerpc_flags.altivec) {
success &= uvg_strategy_register_picture_altivec(opaque, bitdepth);
}
Expand Down Expand Up @@ -274,4 +278,4 @@ const uint32_t uvg_crc_table[256] = {
0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 0x34f4f86a, 0xc69f7b69,
0xd5cf889d, 0x27a40b9e, 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,
0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351,
};
};
6 changes: 4 additions & 2 deletions src/strategies/strategies-quant.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
****************************************************************************/

#include "strategies/strategies-quant.h"

#if defined(__AVX512F__)
#include "strategies/avx2/quant-avx2.h"
#endif
#include "strategies/generic/quant-generic.h"
#include "strategyselector.h"

Expand All @@ -51,9 +52,10 @@ int uvg_strategy_register_quant(void *opaque, uint8_t bitdepth)
bool success = true;

success &= uvg_strategy_register_quant_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_quant_avx2(opaque, bitdepth);
}
#endif
return success;
}
8 changes: 5 additions & 3 deletions src/strategies/strategies-sao.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
****************************************************************************/

#include "strategies/strategies-sao.h"
#if defined(__AVX512F__)
#include "strategies/avx2/sao-avx2.h"
#endif
#include "strategies/generic/sao-generic.h"
#include "strategyselector.h"

Expand All @@ -47,10 +49,10 @@ int uvg_strategy_register_sao(void* opaque, uint8_t bitdepth) {
bool success = true;

success &= uvg_strategy_register_sao_generic(opaque, bitdepth);

#if defined(__AVX512F__)
if (uvg_g_hardware_flags.intel_flags.avx2) {
success &= uvg_strategy_register_sao_avx2(opaque, bitdepth);
}

#endif
return success;
}
}