J'ai une longue boucle où des ajouts de vecteurs au néon sont effectués sur des éléments de 8 bits. Le problème est qu'après un certain temps, il est presque certain que certains ou tous les composants du vecteur sont saturés à cause du débordement. Existe-t-il un moyen rapide de détecter ceci afin que je puisse vider les résultats, zéro le vecteur et continuer? J'ai déjà essayé en vérifiant les drapeaux C et V mais il semble que les opérations au néon ne les définissent pas.NEON Détection de dépassement de capacité
edit: voici le code d'intérêt, un peu simplifié. En outre, je suis passé à 16 bits, mais il faudra encore déborder
int16x8_t Sum;
for(int C = 0; C < 100; C++)
{
// Sum += |a - b|
Sum = vabaq_u16(
Sum,
vld1q_u16((uint16_t *)a),
vld1q_u16((uint16_t *)b)
);
}
il serait probablement utile si vous montrez du code afin que les gens puissent voir exactement ce que vous voulez dire –
fait, merci – CDevel
Je prends le compte de 100 articles l'un des simplifications? Je ne vois pas comment vous pourriez déborder 16 bits accumulant des valeurs de 8 bits autrement (65535/255 = 257> 100). – Notlikethat