Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
2060f4cb
Commit
2060f4cb
authored
Oct 26, 2014
by
Matthew Oliver
Committed by
Michael Niedermayer
Oct 26, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avutil/intmath: enable builtin intrinsics for icl and msvc.
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
c0002ddb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
4 deletions
+36
-4
intmath.h
libavutil/intmath.h
+36
-4
No files found.
libavutil/intmath.h
View file @
2060f4cb
...
@@ -35,21 +35,29 @@
...
@@ -35,21 +35,29 @@
* @{
* @{
*/
*/
#if HAVE_FAST_CLZ
&& AV_GCC_VERSION_AT_LEAST(3,4)
#if HAVE_FAST_CLZ
#if AV_GCC_VERSION_AT_LEAST(3,4)
#ifndef ff_log2
#ifndef ff_log2
# define ff_log2(x) (31 - __builtin_clz((x)|1))
# define ff_log2(x) (31 - __builtin_clz((x)|1))
# ifndef ff_log2_16bit
# ifndef ff_log2_16bit
# define ff_log2_16bit av_log2
# define ff_log2_16bit av_log2
# endif
# endif
#endif
/* ff_log2 */
#endif
/* ff_log2 */
#elif defined( __INTEL_COMPILER )
#ifndef ff_log2
# define ff_log2(x) (_bit_scan_reverse(x|1))
# ifndef ff_log2_16bit
# define ff_log2_16bit av_log2
# endif
#endif
/* ff_log2 */
#endif
#endif
/* AV_GCC_VERSION_AT_LEAST(3,4) */
#endif
/* AV_GCC_VERSION_AT_LEAST(3,4) */
extern
const
uint8_t
ff_log2_tab
[
256
];
extern
const
uint8_t
ff_log2_tab
[
256
];
#ifndef ff_log2
#ifndef ff_log2
#define ff_log2 ff_log2_c
#define ff_log2 ff_log2_c
#if !defined( _MSC_VER )
static
av_always_inline
av_const
int
ff_log2_c
(
unsigned
int
v
)
static
av_always_inline
av_const
int
ff_log2_c
(
unsigned
int
v
)
{
{
int
n
=
0
;
int
n
=
0
;
...
@@ -65,6 +73,15 @@ static av_always_inline av_const int ff_log2_c(unsigned int v)
...
@@ -65,6 +73,15 @@ static av_always_inline av_const int ff_log2_c(unsigned int v)
return
n
;
return
n
;
}
}
#else
static
av_always_inline
av_const
int
ff_log2_c
(
unsigned
int
v
)
{
unsigned
long
n
;
_BitScanReverse
(
&
n
,
v
|
1
);
return
n
;
}
#define ff_log2_16bit av_log2
#endif
#endif
#endif
#ifndef ff_log2_16bit
#ifndef ff_log2_16bit
...
@@ -94,14 +111,21 @@ static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
...
@@ -94,14 +111,21 @@ static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
* @{
* @{
*/
*/
#if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
#if HAVE_FAST_CLZ
#if AV_GCC_VERSION_AT_LEAST(3,4)
#ifndef ff_ctz
#ifndef ff_ctz
#define ff_ctz(v) __builtin_ctz(v)
#define ff_ctz(v) __builtin_ctz(v)
#endif
#endif
#elif defined( __INTEL_COMPILER )
#ifndef ff_ctz
#define ff_ctz(v) _bit_scan_forward(v)
#endif
#endif
#endif
#endif
#ifndef ff_ctz
#ifndef ff_ctz
#define ff_ctz ff_ctz_c
#define ff_ctz ff_ctz_c
#if !defined( _MSC_VER )
static
av_always_inline
av_const
int
ff_ctz_c
(
int
v
)
static
av_always_inline
av_const
int
ff_ctz_c
(
int
v
)
{
{
int
c
;
int
c
;
...
@@ -130,6 +154,14 @@ static av_always_inline av_const int ff_ctz_c(int v)
...
@@ -130,6 +154,14 @@ static av_always_inline av_const int ff_ctz_c(int v)
return
c
;
return
c
;
}
}
#else
static
av_always_inline
av_const
int
ff_ctz_c
(
int
v
)
{
unsigned
long
c
;
_BitScanForward
(
&
c
,
v
);
return
c
;
}
#endif
#endif
#endif
/**
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment