CMSIS-DSP: Fix to MVE code to allow compilation with AC6 6.14

pull/19/head
Christophe Favergeon 6 years ago
parent fb1f6b04a7
commit 0e438b58f6

@ -167,7 +167,7 @@ __STATIC_INLINE arm_status arm_mat_trans_32bit_generic_mve(
uint32_t *pDataDestR;
uint32x4_t vecIn;
vecOffs = vidupq_u32(0, 1);
vecOffs = vidupq_u32((uint32_t)0, 1);
vecOffs = vecOffs * srcCols;
i = srcCols;

@ -80,7 +80,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q15_2x2_mve(
q15x8_t vecB, vecA0, vecA1;
mve_pred16_t p0 = vctp16q(MATRIX_DIM2);
vecColBOffs = vidupq_u16(0, 2); /* MATRIX_DIM2 */
vecColBOffs = vidupq_u16((uint32_t)0, 2); /* MATRIX_DIM2 */
pInB = pSrcB->pData;
@ -137,7 +137,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q15_3x3_mve(
q15x8_t vecB, vecA0, vecA1, vecA2;
mve_pred16_t p0 = vctp16q(MATRIX_DIM3);
vecColBOffs = vidupq_u16(0, 1);
vecColBOffs = vidupq_u16((uint32_t)0, 1);
vecColBOffs = vecColBOffs * MATRIX_DIM3;
pInB = pSrcB->pData;
@ -219,7 +219,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q15_4x4_mve(
q15x8_t vecB, vecA0, vecA1, vecA2, vecA3;
mve_pred16_t p0 = vctp16q(MATRIX_DIM4);
vecColBOffs = vidupq_u16(0, 4);
vecColBOffs = vidupq_u16((uint32_t)0, 4);
pInB = pSrcB->pData;
@ -365,7 +365,7 @@ arm_status arm_mat_mult_q15(
return arm_mat_mult_q15_4x4_mve(pSrcA, pSrcB, pDst);
}
vecColBOffs = vidupq_u16(0, 1);
vecColBOffs = vidupq_u16((uint32_t)0, 1);
vecColBOffs = vecColBOffs * (uint16_t) (numColsB);
/*

@ -80,7 +80,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q31_2x2_mve(
/* enable predication to disable half of vector elements */
mve_pred16_t p0 = vctp32q(MATRIX_DIM2);
vecColBOffs = vidupq_u32(0, 1);
vecColBOffs = vidupq_u32((uint32_t)0, 1);
vecColBOffs = vecColBOffs * MATRIX_DIM2;
pInB = pSrcB->pData;
@ -140,7 +140,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q31_3x3_mve(
/* enable predication to disable last (4th) vector element */
mve_pred16_t p0 = vctp32q(MATRIX_DIM3);
vecColBOffs = vidupq_u32(0, 1);
vecColBOffs = vidupq_u32((uint32_t)0, 1);
vecColBOffs = vecColBOffs * MATRIX_DIM3;
pInB = pSrcB->pData;
@ -225,7 +225,7 @@ __STATIC_INLINE arm_status arm_mat_mult_q31_4x4_mve(
q63_t acc0, acc1, acc2, acc3;
q31x4_t vecB, vecA;
vecColBOffs = vidupq_u32(0, 4);
vecColBOffs = vidupq_u32((uint32_t)0, 4);
pInB = pSrcB->pData;
@ -380,7 +380,7 @@ arm_status arm_mat_mult_q31(
return arm_mat_mult_q31_4x4_mve(pSrcA, pSrcB, pDst);
}
vecColBOffs = vidupq_u32(0, 1);
vecColBOffs = vidupq_u32((uint32_t)0, 1);
vecColBOffs = vecColBOffs * (uint32_t) (numColsB);
/*

@ -126,7 +126,7 @@ static arm_status arm_mat_trans_16bit_generic(
uint16_t *pDataDestR;
uint16x8_t vecIn;
vecOffs = vidupq_u16(0, 1);
vecOffs = vidupq_u16((uint32_t)0, 1);
vecOffs = vecOffs * srcCols;
i = srcCols;

@ -65,7 +65,7 @@ void arm_max_q15(
mve_pred16_t p0;
indexVec = vidupq_u16(0, 1);
indexVec = vidupq_u16((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u16(0);
blkCnt = blockSize >> 3;

@ -66,7 +66,7 @@ void arm_max_q31(
mve_pred16_t p0;
indexVec = vidupq_u32(0, 1);
indexVec = vidupq_u32((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u32(0);
/* Compute 4 outputs at a time */

@ -65,7 +65,7 @@ static void arm_small_blk_max_q7(
mve_pred16_t p0;
indexVec = vidupq_u8(0, 1);
indexVec = vidupq_u8((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u8(0);
blkCnt = blockSize >> 4;

@ -78,7 +78,7 @@ void arm_min_f32(
float32_t tmp;
mve_pred16_t p0;
indexVec = vidupq_u32(0, 1);
indexVec = vidupq_u32((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u32(0);
pSrcVec = (float32_t const *) pSrc;

@ -66,7 +66,7 @@ void arm_min_q15(
mve_pred16_t p0;
indexVec = vidupq_u16(0, 1);
indexVec = vidupq_u16((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u16(0);
blkCnt = blockSize >> 3;

@ -66,7 +66,7 @@ void arm_min_q31(
mve_pred16_t p0;
indexVec = vidupq_u32(0, 1);
indexVec = vidupq_u32((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u32(0);
/* Compute 4 outputs at a time */

@ -66,7 +66,7 @@ static void arm_small_blk_min_q7(
mve_pred16_t p0;
indexVec = vidupq_u8(0, 1);
indexVec = vidupq_u8((uint32_t)0, 1);
curExtremIdxVec = vdupq_n_u8(0);
blkCnt = blockSize >> 4;

@ -48,7 +48,7 @@ void stage_rfft_f32(
uint32x4_t vecStridesFwd, vecStridesBkwd;
vecStridesFwd = vidupq_u32(0, 2);
vecStridesFwd = vidupq_u32((uint32_t)0, 2);
vecStridesBkwd = -vecStridesFwd;
int blockCnt;
@ -205,7 +205,7 @@ void merge_rfft_f32(
float32x4x2_t tmp1, tmp2, res;
uint32x4_t vecStridesFwd, vecStridesBkwd;
vecStridesFwd = vidupq_u32(0, 2);
vecStridesFwd = vidupq_u32((uint32_t)0, 2);
vecStridesBkwd = -vecStridesFwd;
int blockCnt;

@ -159,7 +159,7 @@ void arm_split_rfft_q15(
* scatter / gather offsets
* for ascending & descending addressing
*/
vecStridesFwd = vidupq_u16(0, 2); // 0, 2, 4, 6, 8, 10, 12, 14
vecStridesFwd = vidupq_u16((uint32_t)0, 2); // 0, 2, 4, 6, 8, 10, 12, 14
vecStridesBkwd = vddupq_u16(14, 2); // 14, 12, 10, 8, 6, 4, 2, 0
vecStridesFwd = vecStridesFwd * (uint16_t) modifier;
@ -425,7 +425,7 @@ void arm_split_rifft_q15(
* scatter / gather offsets
* for ascending & descending addressing
*/
vecStridesFwd = vidupq_u16(0, 2); // 0, 2, 4, 6, 8, 10, 12, 14
vecStridesFwd = vidupq_u16((uint32_t)0, 2); // 0, 2, 4, 6, 8, 10, 12, 14
vecStridesBkwd = vddupq_u16(14, 2); // 14, 12, 10, 8, 6, 4, 2, 0
vecStridesFwd = vecStridesFwd * (uint16_t) modifier;

@ -157,7 +157,7 @@ void arm_split_rfft_q31(
* scatter / gather offsets
* for ascending & descending addressing
*/
vecStridesFwd = vidupq_u32(0, 2);
vecStridesFwd = vidupq_u32((uint32_t)0, 2);
vecStridesBkwd = -vecStridesFwd;
vecStridesFwd = vecStridesFwd * modifier;
@ -360,7 +360,7 @@ void arm_split_rifft_q31(
* scatter / gather offsets
* for ascending & descending addressing
*/
vecStridesFwd = vidupq_u32(0, 2);
vecStridesFwd = vidupq_u32((uint32_t)0, 2);
vecStridesBkwd = -vecStridesFwd;
vecStridesFwd = vecStridesFwd * modifier;

Loading…
Cancel
Save