es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: NEON

¿Cuál es la forma más eficiente de manejar el desbordamiento de multiplicación entera con saturación utilizando las instrucciones intrínsecas de ARM Neon?

Tengo la siguiente multiplicación entre 2 vectores de 16 bits: int16x8_t dx; int16x8_t dy; int16x8_t dxdy = vmulq_s16(dx, dy); En caso de que dx y dy sean lo suficientemente grandes, el resultado puede desbordarse. Me gustaría limitar la multiplicación resultante entre los valores MININT16 y MAXINT16. Hasta ahora no he . . . Read more

¿Alguien puede ayudarme a agregar soporte para ARM Neon a mi código?

if(length == 24) { start = clock(); for(i = 0 ; i < 24; i++) { theta = (abc24[u][i] *M_PI)/4; sample[i].real_sample = cos(theta); sample[i].img_sample = sin(theta); sample_real_vals[i] = reduce_precision(sample[i].real_sample); sample_img_vals[i] = reduce_precision(sample[i].img_sample); printf(” %x %x\n”,sample_real_vals[i], sample_img_vals[i]); } end = clock(); cpu_time_used = ((double) (end – start)) / CLOCKS_PER_SEC; printf(“time used . . . Read more

Equivalent de mm_shuffle_epi8 en máquinas ARM

En un proyecto centrado en acelerar el rendimiento en ARM, estoy usando la implementación mmshuffleepi8 de la página https://github.com/f4exb/cm256cc/blob/master/sse2neon.h#L981. Pero la implementación anterior es subóptima y conlleva costos de rendimiento. ¿Existe un equivalente correcto de mmshuffle_epi8 para ARM?

¿Por qué Clang no utiliza vcnt para __builtin_popcountll en AArch32?

La prueba simple, c unsigned f(unsigned long long x) { return __builtin_popcountll(x); } cuando se compila con clang –target=arm-none-linux-eabi -mfpu=neon -mfloat-abi=softfp -mcpu=cortex-a15 -Os, ⁎ resulta en que el compilador emite numerosas instrucciones para implementar el popcount clásico para las palabras bajas y altas en x en paralelo, y luego suma . . . Read more