Skip to content

Commit a9f4e7b

Browse files
committed
Update aarch64 feature combination
This is enforced by rustc to ensure compatibility with future version of aarch64 support, if I interpret the description properly. We do not actually make use of fp but it's implied in the backend otherwise.
1 parent 66f31fd commit a9f4e7b

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/arch/neon.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use core::arch::aarch64::*;
33

44
#[cfg(all(feature = "nightly_aarch64_neon", target_arch = "aarch64"))]
55
#[target_feature(enable = "neon")]
6+
#[target_feature(enable = "fp")]
67
unsafe fn idct8(data: &mut [int16x8_t; 8]) {
78
// The fixed-point constants here are obtained by taking the fractional part of the constants
89
// from the non-SIMD implementation and scaling them up by 1<<15. This is because
@@ -83,6 +84,7 @@ unsafe fn idct8(data: &mut [int16x8_t; 8]) {
8384

8485
#[cfg(all(feature = "nightly_aarch64_neon", target_arch = "aarch64"))]
8586
#[target_feature(enable = "neon")]
87+
#[target_feature(enable = "fp")]
8688
unsafe fn transpose8(data: &mut [int16x8_t; 8]) {
8789
// Use NEON's 2x2 matrix transposes (vtrn) to do the transposition in each 4x4 block, then
8890
// combine the 4x4 blocks.
@@ -110,6 +112,7 @@ unsafe fn transpose8(data: &mut [int16x8_t; 8]) {
110112

111113
#[cfg(all(feature = "nightly_aarch64_neon", target_arch = "aarch64"))]
112114
#[target_feature(enable = "neon")]
115+
#[target_feature(enable = "fp")]
113116
pub unsafe fn dequantize_and_idct_block_8x8(
114117
coefficients: &[i16; 64],
115118
quantization_table: &[u16; 64],
@@ -168,6 +171,7 @@ pub unsafe fn dequantize_and_idct_block_8x8(
168171

169172
#[cfg(all(feature = "nightly_aarch64_neon", target_arch = "aarch64"))]
170173
#[target_feature(enable = "neon")]
174+
#[target_feature(enable = "fp")]
171175
pub unsafe fn color_convert_line_ycbcr(y: &[u8], cb: &[u8], cr: &[u8], output: &mut [u8]) -> usize {
172176
assert!(output.len() % 3 == 0);
173177
let num = output.len() / 3;

0 commit comments

Comments
 (0)