CMSIS-DSP: Correcting build issues with MVE code on gcc.

pull/19/head
Christophe Favergeon 5 years ago
parent cf32f9527e
commit abc3374f28

@ -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);

@ -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);

@ -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);

@ -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);

@ -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);

Loading…
Cancel
Save