disable av1_lowbd_inv_txfm2d_add_neon w/gcc-14+ `NEON/AV1LbdInvTxfm2d*` and `*TestVector*` tests fail with some configurations using `arm-linux-gnueabi`; no issues were seen with `arm-linux-gnueabihf`. The check is imprecise and relies on the default value of `__ARM_ARCH` to be less than `7` with the configuration used with `arm-linux-gnueabi`. Bug: 528050364 Change-Id: I25e3a3ce4f8f708b222d270b2e81edc1b7685283
diff --git a/av1/common/arm/av1_inv_txfm_neon.c b/av1/common/arm/av1_inv_txfm_neon.c index 0c41b0c..4b8c31f 100644 --- a/av1/common/arm/av1_inv_txfm_neon.c +++ b/av1/common/arm/av1_inv_txfm_neon.c
@@ -4214,10 +4214,16 @@ } void av1_inv_txfm_add_neon(const tran_low_t *dqcoeff, uint8_t *dst, int stride, const TxfmParam *txfm_param) { - const TX_TYPE tx_type = txfm_param->tx_type; if (!txfm_param->lossless) { + // TODO(bug 528050364): Remove the C fallback after issues with + // arm-linux-gnueabi-gcc-14+ are addressed. +#if defined(__GNUC__) && __GNUC__ >= 14 && defined(__ARM_ARCH) && __ARM_ARCH < 7 + av1_inv_txfm_add_c(dqcoeff, dst, stride, txfm_param); +#else + const TX_TYPE tx_type = txfm_param->tx_type; av1_lowbd_inv_txfm2d_add_neon(dqcoeff, dst, stride, tx_type, txfm_param->tx_size, txfm_param->eob); +#endif } else { av1_inv_txfm_add_c(dqcoeff, dst, stride, txfm_param); }
diff --git a/test/av1_inv_txfm2d_test.cc b/test/av1_inv_txfm2d_test.cc index c26fe70..86601bf 100644 --- a/test/av1_inv_txfm2d_test.cc +++ b/test/av1_inv_txfm2d_test.cc
@@ -398,8 +398,15 @@ TX_TYPE tx_type, TX_SIZE tx_size, int eob); +// TODO(bug 528050364): Enable this test after issues with +// arm-linux-gnueabi-gcc-14+ are addressed. +#if defined(__GNUC__) && __GNUC__ >= 14 && defined(__ARM_ARCH) && __ARM_ARCH < 7 +INSTANTIATE_TEST_SUITE_P(DISABLED_NEON, AV1LbdInvTxfm2d, + ::testing::Values(av1_lowbd_inv_txfm2d_add_neon)); +#else INSTANTIATE_TEST_SUITE_P(NEON, AV1LbdInvTxfm2d, ::testing::Values(av1_lowbd_inv_txfm2d_add_neon)); +#endif #endif // HAVE_NEON } // namespace