Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Yushin Cho
aom-rav1e
Commits
d174f276
Commit
d174f276
authored
Sep 25, 2014
by
Johann
Committed by
Gerrit Code Review
Sep 25, 2014
Browse files
Merge "Clarify GCC version check"
parents
04c91f53
f6be2f3c
Changes
3
Hide whitespace changes
Inline
Side-by-side
vp8/common/arm/neon/loopfilter_neon.c
View file @
d174f276
...
...
@@ -10,6 +10,7 @@
#include
<arm_neon.h>
#include
"./vpx_config.h"
#include
"vpx_ports/arm.h"
static
INLINE
void
vp8_loop_filter_neon
(
uint8x16_t
qblimit
,
// flimit
...
...
@@ -253,23 +254,7 @@ void vp8_loop_filter_horizontal_edge_uv_neon(
static
INLINE
void
write_4x8
(
unsigned
char
*
dst
,
int
pitch
,
const
uint8x8x4_t
result
)
{
#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
vst4_lane_u8
(
dst
,
result
,
0
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
1
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
2
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
3
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
4
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
5
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
6
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
7
);
#else
#ifdef VPX_INCOMPATIBLE_GCC
/*
* uint8x8x4_t result
00 01 02 03 | 04 05 06 07
...
...
@@ -316,7 +301,23 @@ static INLINE void write_4x8(unsigned char *dst, int pitch,
vst1_lane_u32
((
uint32_t
*
)
dst
,
x_2_6
,
1
);
dst
+=
pitch
;
vst1_lane_u32
((
uint32_t
*
)
dst
,
x_3_7
,
1
);
#endif
#else
vst4_lane_u8
(
dst
,
result
,
0
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
1
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
2
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
3
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
4
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
5
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
6
);
dst
+=
pitch
;
vst4_lane_u8
(
dst
,
result
,
7
);
#endif // VPX_INCOMPATIBLE_GCC
}
void
vp8_loop_filter_vertical_edge_y_neon
(
...
...
vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c
View file @
d174f276
...
...
@@ -10,45 +10,9 @@
#include
<arm_neon.h>
#include
"./vpx_config.h"
#include
"vpx_ports/arm.h"
#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
static
INLINE
void
write_2x8
(
unsigned
char
*
dst
,
int
pitch
,
const
uint8x8x2_t
result
,
const
uint8x8x2_t
result2
)
{
vst2_lane_u8
(
dst
,
result
,
0
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
1
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
2
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
3
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
4
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
5
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
6
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
7
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
0
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
1
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
2
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
3
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
4
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
5
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
6
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
7
);
}
#else
#ifdef VPX_INCOMPATIBLE_GCC
static
INLINE
void
write_2x4
(
unsigned
char
*
dst
,
int
pitch
,
const
uint8x8x2_t
result
)
{
/*
...
...
@@ -88,30 +52,47 @@ static INLINE void write_2x8(unsigned char *dst, int pitch,
dst
+=
pitch
*
8
;
write_2x4
(
dst
,
pitch
,
result2
);
}
#endif
#else
static
INLINE
void
write_2x8
(
unsigned
char
*
dst
,
int
pitch
,
const
uint8x8x2_t
result
,
const
uint8x8x2_t
result2
)
{
vst2_lane_u8
(
dst
,
result
,
0
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
1
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
2
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
3
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
4
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
5
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
6
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result
,
7
);
dst
+=
pitch
;
#if (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
static
INLINE
uint8x8x4_t
read_4x8
(
unsigned
char
*
src
,
int
pitch
,
uint8x8x4_t
x
)
{
x
=
vld4_lane_u8
(
src
,
x
,
0
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
1
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
2
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
3
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
4
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
5
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
6
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
7
);
return
x
;
vst2_lane_u8
(
dst
,
result2
,
0
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
1
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
2
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
3
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
4
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
5
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
6
);
dst
+=
pitch
;
vst2_lane_u8
(
dst
,
result2
,
7
);
}
#else
#endif // VPX_INCOMPATIBLE_GCC
#ifdef VPX_INCOMPATIBLE_GCC
static
INLINE
uint8x8x4_t
read_4x8
(
unsigned
char
*
src
,
int
pitch
,
uint8x8x4_t
x
)
{
const
uint8x8_t
a
=
vld1_u8
(
src
);
...
...
@@ -169,7 +150,27 @@ uint8x8x4_t read_4x8(unsigned char *src, int pitch, uint8x8x4_t x) {
return
x
;
}
#endif
#else
static
INLINE
uint8x8x4_t
read_4x8
(
unsigned
char
*
src
,
int
pitch
,
uint8x8x4_t
x
)
{
x
=
vld4_lane_u8
(
src
,
x
,
0
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
1
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
2
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
3
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
4
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
5
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
6
);
src
+=
pitch
;
x
=
vld4_lane_u8
(
src
,
x
,
7
);
return
x
;
}
#endif // VPX_INCOMPATIBLE_GCC
static
INLINE
void
vp8_loop_filter_simple_vertical_edge_neon
(
unsigned
char
*
s
,
...
...
vpx_ports/arm.h
View file @
d174f276
...
...
@@ -27,6 +27,12 @@ extern "C" {
int
arm_cpu_caps
(
void
);
// Earlier gcc compilers have issues with some neon intrinsics
#if !defined(__clang__) && defined(__GNUC__) && \
__GNUC__ == 4 && __GNUC_MINOR__ <= 6
#define VPX_INCOMPATIBLE_GCC
#endif
#ifdef __cplusplus
}
// extern "C"
#endif
...
...
Write
Preview
Supports
Markdown
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