From abc3374f28d0f1ea9f827ed715ad63dacc6a58f7 Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Thu, 8 Apr 2021 10:30:12 +0200 Subject: [PATCH] CMSIS-DSP: Correcting build issues with MVE code on gcc. --- Source/StatisticsFunctions/arm_max_q15.c | 6 +++--- Source/StatisticsFunctions/arm_max_q31.c | 6 +++--- Source/StatisticsFunctions/arm_max_q7.c | 6 +++--- Source/StatisticsFunctions/arm_min_q15.c | 6 +++--- Source/StatisticsFunctions/arm_min_q31.c | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Source/StatisticsFunctions/arm_max_q15.c b/Source/StatisticsFunctions/arm_max_q15.c index cfc8cd60..9a0e604c 100644 --- a/Source/StatisticsFunctions/arm_max_q15.c +++ b/Source/StatisticsFunctions/arm_max_q15.c @@ -68,7 +68,7 @@ void arm_max_q15( blkCnt = blockSize; do { mve_pred16_t p = vctp16q(blkCnt); - q15x8_t extremIdxVal = vld1q_z(pSrc, p); + q15x8_t extremIdxVal = vld1q_z_s16(pSrc, p); /* * Get current max per lane and current index per lane * when a max is selected @@ -77,7 +77,7 @@ void arm_max_q15( extremValVec = vorrq_m(extremValVec, extremIdxVal, extremIdxVal, p0); /* store per-lane extrema indexes */ - vst1q_p(extremIdxArr, indexVec, p0); + vst1q_p_s16(extremIdxArr, indexVec, p0); indexVec += 8; pSrc += 8; @@ -91,7 +91,7 @@ void arm_max_q15( /* set index for lower values to max possible index */ p0 = vcmpgeq(extremValVec, maxValue); - extremIdxVec = vld1q(extremIdxArr); + extremIdxVec = vld1q_s16(extremIdxArr); indexVec = vpselq(extremIdxVec, vdupq_n_u16(blockSize - 1), p0); *pIndex = vminvq(blockSize - 1, indexVec); diff --git a/Source/StatisticsFunctions/arm_max_q31.c b/Source/StatisticsFunctions/arm_max_q31.c index 9cff80a8..67c37fb3 100644 --- a/Source/StatisticsFunctions/arm_max_q31.c +++ b/Source/StatisticsFunctions/arm_max_q31.c @@ -68,7 +68,7 @@ void arm_max_q31( blkCnt = blockSize; do { mve_pred16_t p = vctp32q(blkCnt); - q31x4_t extremIdxVal = vld1q_z(pSrc, p); + q31x4_t extremIdxVal = vld1q_z_s32(pSrc, p); /* * Get current max per lane and current index per lane * when a max is selected @@ -77,7 +77,7 @@ void arm_max_q31( extremValVec = vorrq_m(extremValVec, extremIdxVal, extremIdxVal, p0); /* store per-lane extrema indexes */ - vst1q_p(extremIdxArr, indexVec, p0); + vst1q_p_s32(extremIdxArr, indexVec, p0); indexVec += 4; pSrc += 4; @@ -91,7 +91,7 @@ void arm_max_q31( /* set index for lower values to max possible index */ p0 = vcmpgeq(extremValVec, maxValue); - extremIdxVec = vld1q(extremIdxArr); + extremIdxVec = vld1q_s32(extremIdxArr); indexVec = vpselq(extremIdxVec, vdupq_n_u32(blockSize - 1), p0); *pIndex = vminvq(blockSize - 1, indexVec); diff --git a/Source/StatisticsFunctions/arm_max_q7.c b/Source/StatisticsFunctions/arm_max_q7.c index 517c082e..0adb9252 100644 --- a/Source/StatisticsFunctions/arm_max_q7.c +++ b/Source/StatisticsFunctions/arm_max_q7.c @@ -68,7 +68,7 @@ static void arm_small_blk_max_q7( blkCnt = blockSize; do { mve_pred16_t p = vctp8q(blkCnt); - q7x16_t extremIdxVal = vld1q_z(pSrc, p); + q7x16_t extremIdxVal = vld1q_z_s8(pSrc, p); /* * Get current max per lane and current index per lane * when a max is selected @@ -77,7 +77,7 @@ static void arm_small_blk_max_q7( extremValVec = vorrq_m(extremValVec, extremIdxVal, extremIdxVal, p0); /* store per-lane extrema indexes */ - vst1q_p(extremIdxArr, indexVec, p0); + vst1q_p_s8(extremIdxArr, indexVec, p0); indexVec += 16; pSrc += 16; @@ -91,7 +91,7 @@ static void arm_small_blk_max_q7( /* set index for lower values to max possible index */ p0 = vcmpgeq(extremValVec, maxValue); - extremIdxVec = vld1q(extremIdxArr); + extremIdxVec = vld1q_s8(extremIdxArr); indexVec = vpselq(extremIdxVec, vdupq_n_u8(blockSize - 1), p0); *pIndex = vminvq_u8(blockSize - 1, indexVec); diff --git a/Source/StatisticsFunctions/arm_min_q15.c b/Source/StatisticsFunctions/arm_min_q15.c index 76db76a6..607101c2 100644 --- a/Source/StatisticsFunctions/arm_min_q15.c +++ b/Source/StatisticsFunctions/arm_min_q15.c @@ -70,7 +70,7 @@ void arm_min_q15( blkCnt = blockSize; do { mve_pred16_t p = vctp16q(blkCnt); - q15x8_t extremIdxVal = vld1q_z(pSrc, p); + q15x8_t extremIdxVal = vld1q_z_s16(pSrc, p); /* * Get current min per lane and current index per lane * when a min is selected @@ -79,7 +79,7 @@ void arm_min_q15( extremValVec = vorrq_m(extremValVec, extremIdxVal, extremIdxVal, p0); /* store per-lane extrema indexes */ - vst1q_p(extremIdxArr, indexVec, p0); + vst1q_p_s16(extremIdxArr, indexVec, p0); indexVec += 8; pSrc += 8; @@ -92,7 +92,7 @@ void arm_min_q15( /* set index for lower values to min possible index */ p0 = vcmpleq(extremValVec, minValue); - extremIdxVec = vld1q(extremIdxArr); + extremIdxVec = vld1q_s16(extremIdxArr); indexVec = vpselq(extremIdxVec, vdupq_n_u16(blockSize - 1), p0); *pIndex = vminvq(blockSize - 1, indexVec); diff --git a/Source/StatisticsFunctions/arm_min_q31.c b/Source/StatisticsFunctions/arm_min_q31.c index 2cc451f8..0169dbf7 100644 --- a/Source/StatisticsFunctions/arm_min_q31.c +++ b/Source/StatisticsFunctions/arm_min_q31.c @@ -69,7 +69,7 @@ void arm_min_q31( blkCnt = blockSize; do { mve_pred16_t p = vctp32q(blkCnt); - q31x4_t extremIdxVal = vld1q_z(pSrc, p); + q31x4_t extremIdxVal = vld1q_z_s32(pSrc, p); /* * Get current min per lane and current index per lane * when a min is selected @@ -78,7 +78,7 @@ void arm_min_q31( extremValVec = vorrq_m(extremValVec, extremIdxVal, extremIdxVal, p0); /* store per-lane extrema indexes */ - vst1q_p(extremIdxArr, indexVec, p0); + vst1q_p_s32(extremIdxArr, indexVec, p0); indexVec += 4; pSrc += 4; @@ -92,7 +92,7 @@ void arm_min_q31( /* set index for lower values to min possible index */ p0 = vcmpleq(extremValVec, minValue); - extremIdxVec = vld1q(extremIdxArr); + extremIdxVec = vld1q_s32(extremIdxArr); indexVec = vpselq(extremIdxVec, vdupq_n_u32(blockSize - 1), p0); *pIndex = vminvq(blockSize - 1, indexVec);