[ih264] per-function target attribute on clang and GCC (#328)

This commit is contained in:
emiyl 2022-10-04 14:24:14 +01:00 committed by GitHub
parent 8a0fe21589
commit 4519a59d74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 179 additions and 4 deletions

View File

@ -6,10 +6,6 @@ set(LIBAVCDEC_X86_INCLUDES "common/x86" "decoder/x86")
include_directories("common/" "decoder/" ${LIBAVCDEC_X86_INCLUDES}) include_directories("common/" "decoder/" ${LIBAVCDEC_X86_INCLUDES})
if((CMAKE_C_COMPILER_ID MATCHES "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
add_compile_options(-mssse3 -mavx2)
endif()
add_library (ih264d add_library (ih264d
"common/ih264_buf_mgr.c" "common/ih264_buf_mgr.c"
"common/ih264_buf_mgr.h" "common/ih264_buf_mgr.h"

View File

@ -56,6 +56,11 @@
#include "ih264_platform_macros.h" #include "ih264_platform_macros.h"
#include "ih264_intra_pred_filters.h" #include "ih264_intra_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Chroma Intra prediction 8x8 filters */ /* Chroma Intra prediction 8x8 filters */
@ -93,6 +98,8 @@
* *
****************************************************************************** ******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -169,6 +176,8 @@ void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -237,6 +246,8 @@ void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
* *
****************************************************************************** ******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_plane_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_chroma_8x8_mode_plane_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,

View File

@ -53,6 +53,12 @@
#include "ih264_deblk_edge_filters.h" #include "ih264_deblk_edge_filters.h"
#include "ih264_macros.h" #include "ih264_macros.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Function Definitions */ /* Function Definitions */
/*****************************************************************************/ /*****************************************************************************/
@ -91,6 +97,8 @@
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,
@ -274,6 +282,8 @@ void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,
@ -424,6 +434,8 @@ void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,
@ -645,6 +657,8 @@ void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,
@ -829,6 +843,8 @@ void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,
@ -963,6 +979,8 @@ void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src, void ih264_deblk_chroma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha_cb, WORD32 alpha_cb,

View File

@ -53,6 +53,12 @@
#include "ih264_deblk_edge_filters.h" #include "ih264_deblk_edge_filters.h"
#include "ih264_macros.h" #include "ih264_macros.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Function Definitions */ /* Function Definitions */
/*****************************************************************************/ /*****************************************************************************/
@ -87,6 +93,7 @@
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,
@ -508,6 +515,7 @@ void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,
@ -847,6 +855,7 @@ void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,
@ -1142,6 +1151,7 @@ void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,
@ -1439,6 +1449,7 @@ void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,
@ -1758,6 +1769,7 @@ void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */ /* 12 02 2015 Naveen Kumar P Initial version */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src, void ih264_deblk_luma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 alpha, WORD32 alpha,

View File

@ -52,6 +52,12 @@
#include <immintrin.h> #include <immintrin.h>
#include <smmintrin.h> #include <smmintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/* /*
******************************************************************************** ********************************************************************************
* *
@ -87,6 +93,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src, void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
WORD16* pi2_out, WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat, const UWORD16 *pu2_iscal_mat,
@ -202,6 +209,7 @@ void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
_mm_storeu_si128((__m128i *) (&pi2_out[8]), src_r2_r3); _mm_storeu_si128((__m128i *) (&pi2_out[8]), src_r2_r3);
} }
ATTRIBUTE_SSE42
void ih264_ihadamard_scaling_2x2_uv_sse42(WORD16* pi2_src, void ih264_ihadamard_scaling_2x2_uv_sse42(WORD16* pi2_src,
WORD16* pi2_out, WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat, const UWORD16 *pu2_iscal_mat,

View File

@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h" #include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/* /*
******************************************************************************** ********************************************************************************
* *
@ -85,6 +91,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_ihadamard_scaling_4x4_ssse3(WORD16* pi2_src, void ih264_ihadamard_scaling_4x4_ssse3(WORD16* pi2_src,
WORD16* pi2_out, WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat, const UWORD16 *pu2_iscal_mat,

View File

@ -54,6 +54,12 @@
#include "ih264_platform_macros.h" #include "ih264_platform_macros.h"
#include "ih264_inter_pred_filters.h" #include "ih264_inter_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Constant Data variables */ /* Constant Data variables */
/*****************************************************************************/ /*****************************************************************************/
@ -87,6 +93,7 @@
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -213,6 +220,7 @@ void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -478,6 +486,7 @@ void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -764,6 +773,7 @@ void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1488,6 +1498,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1782,6 +1793,7 @@ void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -2107,6 +2119,7 @@ void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -2675,6 +2688,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -3285,6 +3299,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -3991,6 +4006,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_chroma_ssse3(UWORD8 *pu1_src, void ih264_inter_pred_chroma_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,

View File

@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h" #include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/* /*
******************************************************************************** ********************************************************************************
* *
@ -98,6 +104,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src, void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,
@ -224,6 +231,7 @@ void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src, void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,
@ -385,6 +393,7 @@ void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3(WORD16 *pi2_src, void ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,

View File

@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h" #include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/* /*
******************************************************************************** ********************************************************************************
* *
@ -97,6 +103,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src, void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,
@ -348,6 +355,7 @@ void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264_iquant_itrans_recon_chroma_4x4_sse42(WORD16 *pi2_src, void ih264_iquant_itrans_recon_chroma_4x4_sse42(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,

View File

@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h" #include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/* /*
******************************************************************************** ********************************************************************************
* *
@ -97,6 +103,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src, void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,
@ -366,6 +373,7 @@ void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_8x8_ssse3(WORD16 *pi2_src, void ih264_iquant_itrans_recon_8x8_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred, UWORD8 *pu1_pred,
UWORD8 *pu1_out, UWORD8 *pu1_out,

View File

@ -75,6 +75,12 @@
#include "ih264_platform_macros.h" #include "ih264_platform_macros.h"
#include "ih264_intra_pred_filters.h" #include "ih264_intra_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/******************* LUMA INTRAPREDICTION *******************/ /******************* LUMA INTRAPREDICTION *******************/
@ -114,6 +120,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -173,6 +180,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -238,6 +246,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -316,6 +325,7 @@ void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -400,6 +410,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -487,6 +498,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -579,6 +591,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -675,6 +688,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -764,6 +778,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -864,6 +879,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -921,6 +937,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -985,6 +1002,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1078,6 +1096,7 @@ void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1176,6 +1195,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1278,6 +1298,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1398,6 +1419,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1502,6 +1524,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1598,6 +1621,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1699,6 +1723,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1778,6 +1803,7 @@ void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1875,6 +1901,7 @@ void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -1998,6 +2025,7 @@ void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
* None * None
* *
*******************************************************************************/ *******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_plane_ssse3(UWORD8 *pu1_src, void ih264_intra_pred_luma_16x16_mode_plane_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,

View File

@ -50,6 +50,12 @@
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/** /**
******************************************************************************* *******************************************************************************
* *
@ -78,6 +84,7 @@
ATTRIBUTE_SSSE3
void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes) void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes)
{ {
int col; int col;
@ -117,6 +124,7 @@ void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_byte
*/ */
ATTRIBUTE_SSSE3
void ih264_memset_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes) void ih264_memset_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes)
{ {
int col; int col;

View File

@ -49,6 +49,12 @@
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/** /**
******************************************************************************* *******************************************************************************
@ -89,6 +95,7 @@
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src, void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 ht, WORD32 ht,
@ -156,6 +163,7 @@ void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src, void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 ht, WORD32 ht,
@ -222,6 +230,7 @@ void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src, void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 ht, WORD32 ht,
@ -289,6 +298,7 @@ void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264_pad_right_chroma_ssse3(UWORD8 *pu1_src, void ih264_pad_right_chroma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd, WORD32 src_strd,
WORD32 ht, WORD32 ht,

View File

@ -51,6 +51,12 @@
#include "ih264_structs.h" #include "ih264_structs.h"
#include "ih264_trans_quant_itrans_iquant.h" #include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h> #include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/** /**
******************************************************************************* *******************************************************************************
* *
@ -103,6 +109,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred, void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
WORD16 *pi2_out, WORD32 src_strd, WORD32 pred_strd, WORD16 *pi2_out, WORD32 src_strd, WORD32 pred_strd,
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_threshold_matrix, const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_threshold_matrix,
@ -376,6 +383,7 @@ void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WORD16 *pi2_out, void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WORD16 *pi2_out,
WORD32 src_strd,WORD32 pred_strd, WORD32 src_strd,WORD32 pred_strd,
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_scale_matrix,
@ -663,6 +671,7 @@ void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WO
* *
*/ */
ATTRIBUTE_SSE42
void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst, void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_scale_matrix,
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits, const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
@ -892,6 +901,7 @@ void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
* *
*/ */
ATTRIBUTE_SSE42
void ih264_hadamard_quant_2x2_uv_sse42(WORD16 *pi2_src, WORD16 *pi2_dst, void ih264_hadamard_quant_2x2_uv_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_scale_matrix,
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits, const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,

View File

@ -50,6 +50,12 @@
#include "ih264_platform_macros.h" #include "ih264_platform_macros.h"
#include "ih264_weighted_pred.h" #include "ih264_weighted_pred.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Function definitions . */ /* Function definitions . */
/*****************************************************************************/ /*****************************************************************************/
@ -82,6 +88,7 @@
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1, void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2, UWORD8 *pu1_src2,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
@ -245,6 +252,7 @@ void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1, void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2, UWORD8 *pu1_src2,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
@ -375,6 +383,7 @@ void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src, void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -605,6 +614,7 @@ void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src, void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
WORD32 src_strd, WORD32 src_strd,
@ -814,6 +824,7 @@ void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1, void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2, UWORD8 *pu1_src2,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,
@ -1101,6 +1112,7 @@ void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
/* Senthoor */ /* Senthoor */
/* */ /* */
/*****************************************************************************/ /*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_bi_pred_chroma_sse42(UWORD8 *pu1_src1, void ih264_weighted_bi_pred_chroma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2, UWORD8 *pu1_src2,
UWORD8 *pu1_dst, UWORD8 *pu1_dst,

View File

@ -60,6 +60,12 @@
#include "ih264d_structs.h" #include "ih264d_structs.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/** /**
******************************************************************************* *******************************************************************************
@ -79,6 +85,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSE42
void ih264d_init_function_ptr_sse42(dec_struct_t *ps_codec) void ih264d_init_function_ptr_sse42(dec_struct_t *ps_codec)
{ {
ps_codec->pf_default_weighted_pred_luma = ih264_default_weighted_pred_luma_sse42; ps_codec->pf_default_weighted_pred_luma = ih264_default_weighted_pred_luma_sse42;

View File

@ -60,6 +60,12 @@
#include "ih264d_structs.h" #include "ih264d_structs.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/** /**
******************************************************************************* *******************************************************************************
@ -79,6 +85,7 @@
* *
******************************************************************************* *******************************************************************************
*/ */
ATTRIBUTE_SSSE3
void ih264d_init_function_ptr_ssse3(dec_struct_t *ps_codec) void ih264d_init_function_ptr_ssse3(dec_struct_t *ps_codec)
{ {