Lines Matching +full:scatter +full:- +full:gather
2 * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
19 * This example tests the HVX scatter/gather instructions
24 * _16 16-bit elements and 16-bit offsets
25 * _32 32-bit elements and 32-bit offsets
26 * _16_32 16-bit elements and 32-bit offsets
48 /* define the size of the scatter buffer */
51 /* fake vtcm - put buffers together and force alignment */
95 * Do the scatter release followed by a dummy load to complete the in sync_scatter()
223 /* scatter the 16 bit elements using HVX */
237 /* scatter-accumulate the 16 bit elements using HVX */
251 /* masked scatter the 16 bit elements using HVX */
254 asm ("r1 = #-1\n\t" in vector_scatter_16_masked()
268 /* scatter the 32 bit elements using HVX */
294 /* scatter-accumulate the 32 bit elements using HVX */
320 /* masked scatter the 32 bit elements using HVX */
330 asm ("r1 = #-1\n\t" in vector_scatter_32_masked()
340 asm ("r1 = #-1\n\t" in vector_scatter_32_masked()
354 /* scatter the 16 bit elements with 32 bit offsets using HVX */
361 "v2.h = vshuff(v2.h)\n\t" /* shuffle the values for the scatter */ in vector_scatter_16_32()
370 /* scatter-accumulate the 16 bit elements with 32 bit offsets using HVX */
377 "v2.h = vshuff(v2.h)\n\t" /* shuffle the values for the scatter */ in vector_scatter_16_32_acc()
386 /* masked scatter the 16 bit elements with 32 bit offsets using HVX */
389 asm ("r1 = #-1\n\t" in vector_scatter_16_32_masked()
397 "v2.h = vshuff(v2.h)\n\t" /* shuffle the values for the scatter */ in vector_scatter_16_32_masked()
406 /* gather the elements from the scatter16 buffer using HVX */
426 /* masked gather the elements from the scatter16 buffer using HVX */
433 "r1 = #-1\n\t" in vector_gather_16_masked()
447 /* gather the elements from the scatter32 buffer using HVX */
480 /* masked gather the elements from the scatter32 buffer using HVX */
493 "r1 = #-1\n\t" in vector_gather_32_masked()
505 "r1 = #-1\n\t" in vector_gather_32_masked()
520 /* gather the elements from the scatter16_32 buffer using HVX */
538 /* masked gather the elements from the scatter16_32 buffer using HVX */
545 "r1 = #-1\n\t" in vector_gather_16_32_masked()
582 /* scatter the 16 bit elements using C */
599 /* scatter the 16 bit elements using C */
607 /* scatter-accumulate the 16 bit elements using C */
618 /* masked scatter the 16 bit elements using C */
640 /* scatter the 32 bit elements using C */
657 /* scatter-accumulate the 32 bit elements using C */
675 /* masked scatter the 32 bit elements using C */
696 /* scatter the 16 bit elements with 32 bit offsets using C */
713 /* scatter-accumulate the 16 bit elements with 32 bit offsets using C */
731 /* masked scatter the 16 bit elements with 32 bit offsets using C */
752 /* gather the elements from the scatter buffer using C */
768 /* masked gather the elements from the scatter buffer using C */
787 /* gather the elements from the scatter32 buffer using C */
803 /* masked gather the elements from the scatter32 buffer using C */
822 /* gather the elements from the scatter16_32 buffer using C */
838 /* masked gather the elements from the scatter16_32 buffer using C */
862 printf("\n\nPrinting the 16 bit scatter buffer"); in print_scatter16_buffer()
877 /* print the gather 16 buffer */
881 printf("\n\nPrinting the 16 bit gather result\n"); in print_gather_result_16()
897 printf("\n\nPrinting the 32 bit scatter buffer"); in print_scatter32_buffer()
912 /* print the gather 32 buffer */
916 printf("\n\nPrinting the 32 bit gather result\n"); in print_gather_result_32()
932 printf("\n\nPrinting the 16_32 bit scatter buffer"); in print_scatter16_32_buffer()
948 /* print the gather 16_32 buffer */
952 printf("\n\nPrinting the 16_32 bit gather result\n"); in print_gather_result_16_32()