ARM GAS /tmp/cce2LIhc.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "SupportFunctions.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.arm_quick_sort_core_f32,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .syntax unified 19 .thumb 20 .thumb_func 21 .fpu fpv4-sp-d16 23 arm_quick_sort_core_f32: 24 .LFB168: 25 .file 1 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Title: arm_quick_sort_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Description: Floating point quick sort 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** static uint32_t arm_quick_sort_partition_f32(float32_t *pSrc, int32_t first, int32_t last, uint8_t 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 2 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* This function will be called */ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** int32_t i, j, pivot_index; 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t pivot; 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t temp; 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The first element is the pivot */ 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pivot_index = first; 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pivot = pSrc[pivot_index]; 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Initialize indices for do-while loops */ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** i = first - 1; 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** j = last + 1; 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** while(i < j) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The loop will stop as soon as the indices i and j cross each other. 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * This event will happen surely since the values of the indices are incremented and 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * decrement in the do-while loops that are executed at least once. 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * It is impossible to loop forever inside the do-while loops since the pivot is 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * always an element of the array and the conditions cannot be always true (at least 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * the i-th or the j-th element will be equal to the pivot-th element). 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * For example, in the extreme case of an ordered array the do-while loop related to i will 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * at the first iteration (because pSrc[i]=pSrc[pivot] already), and the loop related to j 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * will stop after (last-first) iterations (when j=pivot=i=first). j is returned and 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * j+1 is going to be used as pivot by other calls of the function, until j=pivot=last. */ 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Move indices to the right and to the left */ 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** if(dir) 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Compare left elements with pivot */ 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** do 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** i++; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } while (pSrc[i] < pivot && i pivot); 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** else 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Compare left elements with pivot */ 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** do 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** i++; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } while (pSrc[i] > pivot && i Swap */ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** temp=pSrc[i]; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pSrc[i]=pSrc[j]; 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pSrc[j]=temp; 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** return j; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** static void arm_quick_sort_core_f32(float32_t *pSrc, int32_t first, int32_t last, uint8_t dir) 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 26 .loc 1 105 0 27 .cfi_startproc 28 @ args = 0, pretend = 0, frame = 0 29 @ frame_needed = 0, uses_anonymous_args = 0 30 .LVL0: 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* If the array [first ... last] has more than one element */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** if(first pivot); 95 .loc 1 73 0 96 0056 04F1FF34 add r4, r4, #-1 97 .LVL5: 98 005a 9646 mov lr, r2 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 99 .loc 1 74 0 100 005c F4D4 bmi .L8 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 101 .loc 1 92 0 102 005e A342 cmp r3, r4 103 0060 24DB blt .L30 104 .LVL6: 105 .L3: 106 .LBE9: 107 .LBE8: 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 5 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** int32_t pivot; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Compute pivot */ 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pivot = arm_quick_sort_partition_f32(pSrc, first, last, dir); 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Iterate algorithm with two sub-arrays [first ... pivot] and [pivot+1 ... last] */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** arm_quick_sort_core_f32(pSrc, first, pivot, dir); 108 .loc 1 115 0 109 0062 3B46 mov r3, r7 110 0064 2246 mov r2, r4 111 0066 3046 mov r0, r6 112 0068 FFF7CAFF bl arm_quick_sort_core_f32 113 .LVL7: 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** arm_quick_sort_core_f32(pSrc, pivot+1, last, dir); 114 .loc 1 116 0 115 006c 611C adds r1, r4, #1 116 .LBE7: 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 117 .loc 1 107 0 118 006e A942 cmp r1, r5 119 0070 CFDB blt .L15 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 120 .loc 1 118 0 121 0072 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 122 .LVL8: 123 .L31: 124 .LBB12: 125 .LBB11: 126 .LBB10: 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 127 .loc 1 82 0 128 0076 9D42 cmp r5, r3 129 0078 09DD ble .L10 130 007a 0133 adds r3, r3, #1 131 .L12: 132 .LVL9: 133 007c 9446 mov ip, r2 134 007e F2EC017A vldmia.32 r2!, {s15} 135 0082 F4EEE76A vcmpe.f32 s13, s15 136 0086 F1EE10FA vmrs APSR_nzcv, FPSCR 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } while (pSrc[i] > pivot && i= end || dir==(pA[i] <= pA[j])) ) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** pB[k] = pA[i]; 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** i++; 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** else 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** pB[k] = pA[j]; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** j++; 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** static void arm_merge_sort_core_f32(float32_t * pB, uint32_t begin, uint32_t end, float32_t * pA, u 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 193 .loc 2 62 0 194 .cfi_startproc 195 @ args = 4, pretend = 0, frame = 0 196 @ frame_needed = 0, uses_anonymous_args = 0 197 .LVL13: 198 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} ARM GAS /tmp/cce2LIhc.s page 8 199 .LCFI2: 200 .cfi_def_cfa_offset 32 201 .cfi_offset 4, -32 202 .cfi_offset 5, -28 203 .cfi_offset 6, -24 204 .cfi_offset 7, -20 205 .cfi_offset 8, -16 206 .cfi_offset 9, -12 207 .cfi_offset 10, -8 208 .cfi_offset 14, -4 209 0004 1646 mov r6, r2 210 0006 82B0 sub sp, sp, #8 211 .LCFI3: 212 .cfi_def_cfa_offset 40 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** if((int32_t)end - (int32_t)begin >= 2 ) // If run size != 1 divide 213 .loc 2 63 0 214 0008 521A subs r2, r2, r1 215 .LVL14: 216 000a 012A cmp r2, #1 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** if((int32_t)end - (int32_t)begin >= 2 ) // If run size != 1 divide 217 .loc 2 62 0 218 000c 9DF82890 ldrb r9, [sp, #40] @ zero_extendqisi2 219 .loc 2 63 0 220 0010 02DC bgt .L55 221 .LVL15: 222 .L32: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** int32_t middle = (end + begin) / 2; // Take the middle point 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, begin, middle, pB, dir); // Sort the left part 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, middle, end, pB, dir); // Sort the right part 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** topDownMerge(pB, begin, middle, end, pA, dir); 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 223 .loc 2 72 0 224 0012 02B0 add sp, sp, #8 225 .LCFI4: 226 .cfi_remember_state 227 .cfi_def_cfa_offset 32 228 @ sp needed 229 0014 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 230 .LVL16: 231 .L55: 232 .LCFI5: 233 .cfi_restore_state 234 .LBB27: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 235 .loc 2 65 0 236 0018 06EB0108 add r8, r6, r1 237 001c 4FEA5808 lsr r8, r8, #1 238 .LVL17: 239 .LBB28: 240 .LBB29: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 241 .loc 2 63 0 242 0020 A8EB0102 sub r2, r8, r1 ARM GAS /tmp/cce2LIhc.s page 9 243 0024 012A cmp r2, #1 244 0026 0D46 mov r5, r1 245 0028 0746 mov r7, r0 246 002a 1C46 mov r4, r3 247 002c 70DC bgt .L56 248 .LVL18: 249 .L34: 250 .LBE29: 251 .LBE28: 252 .LBB38: 253 .LBB39: 254 002e A6EB0803 sub r3, r6, r8 255 0032 012B cmp r3, #1 256 0034 2CDC bgt .L57 257 .L40: 258 .LVL19: 259 .LBE39: 260 .LBE38: 261 .LBB48: 262 .LBB49: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 263 .loc 2 45 0 264 0036 AE42 cmp r6, r5 265 0038 EBD9 bls .L32 266 003a 04EB8503 add r3, r4, r5, lsl #2 267 003e 2A46 mov r2, r5 268 .LBE49: 269 .LBE48: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 270 .loc 2 65 0 271 0040 4146 mov r1, r8 272 0042 18E0 b .L50 273 .LVL20: 274 .L58: 275 .LBB51: 276 .LBB50: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 277 .loc 2 48 0 278 0044 8E42 cmp r6, r1 279 0046 07EB8104 add r4, r7, r1, lsl #2 280 004a 90ED007A vldr.32 s14, [r0] 281 004e 1BD9 bls .L47 282 0050 D4ED007A vldr.32 s15, [r4] 283 0054 F4EEC77A vcmpe.f32 s15, s14 284 0058 F1EE10FA vmrs APSR_nzcv, FPSCR 285 005c ACBF ite ge 286 005e 0120 movge r0, #1 287 0060 0020 movlt r0, #0 288 0062 4845 cmp r0, r9 289 0064 10D0 beq .L47 290 .L48: 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** j++; 291 .loc 2 55 0 292 0066 C3ED007A vstr.32 s15, [r3] 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 293 .loc 2 56 0 294 006a 0131 adds r1, r1, #1 ARM GAS /tmp/cce2LIhc.s page 10 295 .LVL21: 296 .L49: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 297 .loc 2 45 0 298 006c 0132 adds r2, r2, #1 299 .LVL22: 300 006e 9642 cmp r6, r2 301 0070 03F10403 add r3, r3, #4 302 0074 CDD0 beq .L32 303 .L50: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 304 .loc 2 48 0 305 0076 A845 cmp r8, r5 306 0078 07EB8500 add r0, r7, r5, lsl #2 307 007c E2D8 bhi .L58 308 007e 07EB8100 add r0, r7, r1, lsl #2 309 0082 D0ED007A vldr.32 s15, [r0] 310 0086 EEE7 b .L48 311 .L47: 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** i++; 312 .loc 2 50 0 313 0088 83ED007A vstr.32 s14, [r3] 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 314 .loc 2 51 0 315 008c 0135 adds r5, r5, #1 316 .LVL23: 317 008e EDE7 b .L49 318 .LVL24: 319 .L57: 320 .LBE50: 321 .LBE51: 322 .LBB52: 323 .LBB46: 324 .LBB40: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 325 .loc 2 65 0 326 0090 08EB060A add r10, r8, r6 327 0094 4FEA5A0A lsr r10, r10, #1 328 .LVL25: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, middle, end, pB, dir); // Sort the right part 329 .loc 2 67 0 330 0098 5246 mov r2, r10 331 009a 2346 mov r3, r4 332 009c 4146 mov r1, r8 333 009e 3846 mov r0, r7 334 00a0 CDF80090 str r9, [sp] 335 00a4 FFF7ACFF bl arm_merge_sort_core_f32 336 .LVL26: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 337 .loc 2 68 0 338 00a8 CDF80090 str r9, [sp] 339 00ac 5146 mov r1, r10 340 00ae 2346 mov r3, r4 341 00b0 3246 mov r2, r6 342 00b2 3846 mov r0, r7 343 00b4 FFF7A4FF bl arm_merge_sort_core_f32 344 .LVL27: ARM GAS /tmp/cce2LIhc.s page 11 345 .LBB41: 346 .LBB42: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 347 .loc 2 45 0 348 00b8 B045 cmp r8, r6 349 00ba BCD2 bcs .L40 350 00bc 07EB8802 add r2, r7, r8, lsl #2 351 00c0 4346 mov r3, r8 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** uint32_t k; 352 .loc 2 41 0 353 00c2 5146 mov r1, r10 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 354 .loc 2 45 0 355 00c4 4046 mov r0, r8 356 00c6 1AE0 b .L45 357 .LVL28: 358 .L59: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 359 .loc 2 48 0 360 00c8 8E42 cmp r6, r1 361 00ca 04EB810E add lr, r4, r1, lsl #2 362 00ce 9CED007A vldr.32 s14, [ip] 363 00d2 5CD9 bls .L42 364 00d4 DEED007A vldr.32 s15, [lr] 365 00d8 F4EEC77A vcmpe.f32 s15, s14 366 00dc F1EE10FA vmrs APSR_nzcv, FPSCR 367 00e0 ACBF ite ge 368 00e2 4FF0010C movge ip, #1 369 00e6 4FF0000C movlt ip, #0 370 00ea CC45 cmp ip, r9 371 00ec 4FD0 beq .L42 372 .L43: 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** j++; 373 .loc 2 55 0 374 00ee C2ED007A vstr.32 s15, [r2] 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 375 .loc 2 56 0 376 00f2 0131 adds r1, r1, #1 377 .LVL29: 378 .L44: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 379 .loc 2 45 0 380 00f4 0133 adds r3, r3, #1 381 .LVL30: 382 00f6 9E42 cmp r6, r3 383 00f8 02F10402 add r2, r2, #4 384 00fc 9BD0 beq .L40 385 .L45: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 386 .loc 2 48 0 387 00fe 8245 cmp r10, r0 388 0100 04EB800C add ip, r4, r0, lsl #2 389 0104 E0D8 bhi .L59 390 0106 04EB810C add ip, r4, r1, lsl #2 391 010a DCED007A vldr.32 s15, [ip] 392 010e EEE7 b .L43 393 .LVL31: ARM GAS /tmp/cce2LIhc.s page 12 394 .L56: 395 .LBE42: 396 .LBE41: 397 .LBE40: 398 .LBE46: 399 .LBE52: 400 .LBB53: 401 .LBB36: 402 .LBB30: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 403 .loc 2 65 0 404 0110 08EB010A add r10, r8, r1 405 0114 4FEA5A0A lsr r10, r10, #1 406 .LVL32: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, middle, end, pB, dir); // Sort the right part 407 .loc 2 67 0 408 0118 5246 mov r2, r10 409 011a CDF80090 str r9, [sp] 410 011e FFF76FFF bl arm_merge_sort_core_f32 411 .LVL33: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 412 .loc 2 68 0 413 0122 CDF80090 str r9, [sp] 414 0126 5146 mov r1, r10 415 0128 2346 mov r3, r4 416 012a 4246 mov r2, r8 417 012c 3846 mov r0, r7 418 012e FFF767FF bl arm_merge_sort_core_f32 419 .LVL34: 420 .LBB31: 421 .LBB32: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 422 .loc 2 45 0 423 0132 A845 cmp r8, r5 424 0134 7FF67BAF bls .L34 425 0138 07EB8502 add r2, r7, r5, lsl #2 426 013c 2B46 mov r3, r5 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** uint32_t k; 427 .loc 2 41 0 428 013e 5146 mov r1, r10 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 429 .loc 2 45 0 430 0140 2846 mov r0, r5 431 0142 1BE0 b .L39 432 .LVL35: 433 .L60: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 434 .loc 2 48 0 435 0144 8845 cmp r8, r1 436 0146 04EB810E add lr, r4, r1, lsl #2 437 014a 9CED007A vldr.32 s14, [ip] 438 014e 22D9 bls .L36 439 0150 DEED007A vldr.32 s15, [lr] 440 0154 F4EEC77A vcmpe.f32 s15, s14 441 0158 F1EE10FA vmrs APSR_nzcv, FPSCR 442 015c ACBF ite ge 443 015e 4FF0010C movge ip, #1 ARM GAS /tmp/cce2LIhc.s page 13 444 0162 4FF0000C movlt ip, #0 445 0166 CC45 cmp ip, r9 446 0168 15D0 beq .L36 447 .L37: 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** j++; 448 .loc 2 55 0 449 016a C2ED007A vstr.32 s15, [r2] 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 450 .loc 2 56 0 451 016e 0131 adds r1, r1, #1 452 .LVL36: 453 .L38: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 454 .loc 2 45 0 455 0170 0133 adds r3, r3, #1 456 .LVL37: 457 0172 9845 cmp r8, r3 458 0174 02F10402 add r2, r2, #4 459 0178 3FF459AF beq .L34 460 .L39: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 461 .loc 2 48 0 462 017c 8245 cmp r10, r0 463 017e 04EB800C add ip, r4, r0, lsl #2 464 0182 DFD8 bhi .L60 465 0184 04EB810C add ip, r4, r1, lsl #2 466 0188 DCED007A vldr.32 s15, [ip] 467 018c EDE7 b .L37 468 .LVL38: 469 .L42: 470 .LBE32: 471 .LBE31: 472 .LBE30: 473 .LBE36: 474 .LBE53: 475 .LBB54: 476 .LBB47: 477 .LBB45: 478 .LBB44: 479 .LBB43: 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** i++; 480 .loc 2 50 0 481 018e 82ED007A vstr.32 s14, [r2] 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 482 .loc 2 51 0 483 0192 0130 adds r0, r0, #1 484 .LVL39: 485 0194 AEE7 b .L44 486 .LVL40: 487 .L36: 488 .LBE43: 489 .LBE44: 490 .LBE45: 491 .LBE47: 492 .LBE54: 493 .LBB55: 494 .LBB37: ARM GAS /tmp/cce2LIhc.s page 14 495 .LBB35: 496 .LBB34: 497 .LBB33: 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** i++; 498 .loc 2 50 0 499 0196 82ED007A vstr.32 s14, [r2] 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 500 .loc 2 51 0 501 019a 0130 adds r0, r0, #1 502 .LVL41: 503 019c E8E7 b .L38 504 .LBE33: 505 .LBE34: 506 .LBE35: 507 .LBE37: 508 .LBE55: 509 .LBE27: 510 .cfi_endproc 511 .LFE164: 513 019e 00BF .section .text.arm_barycenter_f32,"ax",%progbits 514 .align 1 515 .p2align 2,,3 516 .global arm_barycenter_f32 517 .syntax unified 518 .thumb 519 .thumb_func 520 .fpu fpv4-sp-d16 522 arm_barycenter_f32: 523 .LFB148: 524 .file 3 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Title: arm_barycenter_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Description: Barycenter 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * -------------------------------------------------------------------- */ 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * SPDX-License-Identifier: Apache-2.0 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * not use this file except in compliance with the License. 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * You may obtain a copy of the License at 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * www.apache.org/licenses/LICENSE-2.0 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * Unless required by applicable law or agreed to in writing, software 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * See the License for the specific language governing permissions and 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * limitations under the License. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** */ 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #include "arm_math.h" ARM GAS /tmp/cce2LIhc.s page 15 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #include 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** @ingroup groupSupport 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** */ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @brief Barycenter 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @param[in] *in List of vectors 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @param[in] *weights Weights of the vectors 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @param[out] *out Barycenter 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @param[in] nbVectors Number of vectors 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @param[in] vecDim Dimension of space (vector dimension) 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * @return None 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** * 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** */ 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** void arm_barycenter_f32(const float32_t *in, 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** const float32_t *weights, 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t *out, 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** uint32_t nbVectors, 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** uint32_t vecDim) 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** const float32_t *pIn, *pW; 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** const float32_t *pIn1, *pIn2, *pIn3, *pIn4; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t *pOut; 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** uint32_t blkCntVector, blkCntSample; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t accum, w; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum = 0.0f; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pW = weights; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn = in; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** arm_fill_f32(0.0f, out, vecDim); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Sum */ 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 = pIn; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 = pIn1 + vecDim; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 = pIn2 + vecDim; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 = pIn3 + vecDim; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors >> 2; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntVector > 0) 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** f32x4_t outV, inV1, inV2, inV3, inV4; ARM GAS /tmp/cce2LIhc.s page 16 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t w1, w2, w3, w4; 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w1 = *pW++; 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w2 = *pW++; 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w3 = *pW++; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w4 = *pW++; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum += w1 + w2 + w3 + w4; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) { 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vld1q((const float32_t *) pOut); 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV1 = vld1q(pIn1); 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV2 = vld1q(pIn2); 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV3 = vld1q(pIn3); 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV4 = vld1q(pIn4); 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vfmaq(outV, inV1, w1); 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vfmaq(outV, inV2, w2); 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vfmaq(outV, inV3, w3); 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vfmaq(outV, inV4, w4); 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q(pOut, outV); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 += 4; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 += 4; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 += 4; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 += 4; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) { 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn1++ * w1; 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn2++ * w2; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn3++ * w3; 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn4++ * w4; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 += 3 * vecDim; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 += 3 * vecDim; 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 += 3 * vecDim; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 += 3 * vecDim; 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector--; 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn = pIn1; 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors & 3; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntVector > 0) 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** f32x4_t inV, outV; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; ARM GAS /tmp/cce2LIhc.s page 17 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w = *pW++; 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum += w; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vld1q_f32(pOut); 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV = vld1q_f32(pIn); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vfmaq(outV, inV, w); 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q_f32(pOut, outV); 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn += 4; 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn++ * w; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector--; 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Normalize */ 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum = 1.0f / accum; 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** f32x4_t tmp; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** tmp = vld1q((const float32_t *) pOut); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** tmp = vmulq(tmp, accum); 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q(pOut, tmp); 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while (blkCntSample > 0) 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut * accum; 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #else 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #if defined(ARM_MATH_NEON) 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #include "NEMath.h" 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** void arm_barycenter_f32(const float32_t *in, const float32_t *weights, float32_t *out, uint32_t nbV 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 18 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** const float32_t *pIn,*pW, *pIn1, *pIn2, *pIn3, *pIn4; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t *pOut; 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** uint32_t blkCntVector,blkCntSample; 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t accum, w,w1,w2,w3,w4; 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32x4_t tmp, inV,outV, inV1, inV2, inV3, inV4; 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors; 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum = 0.0f; 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pW = weights; 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn = in; 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Set counters to 0 */ 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** tmp = vdupq_n_f32(0.0f); 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q_f32(pOut, tmp); 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = 0.0f; 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Sum */ 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 = pIn; 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 = pIn1 + vecDim; 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 = pIn2 + vecDim; 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 = pIn3 + vecDim; 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors >> 2; 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntVector > 0) 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w1 = *pW++; 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w2 = *pW++; 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w3 = *pW++; 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w4 = *pW++; 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum += w1 + w2 + w3 + w4; 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vld1q_f32(pOut); ARM GAS /tmp/cce2LIhc.s page 19 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV1 = vld1q_f32(pIn1); 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV2 = vld1q_f32(pIn2); 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV3 = vld1q_f32(pIn3); 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV4 = vld1q_f32(pIn4); 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vmlaq_n_f32(outV,inV1,w1); 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vmlaq_n_f32(outV,inV2,w2); 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vmlaq_n_f32(outV,inV3,w3); 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vmlaq_n_f32(outV,inV4,w4); 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q_f32(pOut, outV); 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 += 4; 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 += 4; 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 += 4; 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 += 4; 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn1++ * w1; 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn2++ * w2; 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn3++ * w3; 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn4++ * w4; 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn1 += 3*vecDim; 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn2 += 3*vecDim; 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn3 += 3*vecDim; 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn4 += 3*vecDim; 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector--; 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn = pIn1; 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors & 3; 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntVector > 0) 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w = *pW++; 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum += w; 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vld1q_f32(pOut); 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** inV = vld1q_f32(pIn); 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** outV = vmlaq_n_f32(outV,inV,w); 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q_f32(pOut, outV); 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn += 4; 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; ARM GAS /tmp/cce2LIhc.s page 20 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn++ * w; 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector--; 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Normalize */ 327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum = 1.0f / accum; 329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim >> 2; 331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** tmp = vld1q_f32(pOut); 334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** tmp = vmulq_n_f32(tmp,accum); 335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** vst1q_f32(pOut, tmp); 336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut += 4; 337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim & 3; 341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut * accum; 344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** #else 350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** void arm_barycenter_f32(const float32_t *in, const float32_t *weights, float32_t *out, uint32_t nbV 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 525 .loc 3 351 0 526 .cfi_startproc 527 @ args = 4, pretend = 0, frame = 0 528 @ frame_needed = 0, uses_anonymous_args = 0 529 .LVL42: 530 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 531 .LCFI6: 532 .cfi_def_cfa_offset 32 533 .cfi_offset 3, -32 534 .cfi_offset 4, -28 535 .cfi_offset 5, -24 536 .cfi_offset 6, -20 537 .cfi_offset 7, -16 538 .cfi_offset 8, -12 539 .cfi_offset 9, -8 540 .cfi_offset 14, -4 541 .loc 3 351 0 542 0004 089C ldr r4, [sp, #32] ARM GAS /tmp/cce2LIhc.s page 21 543 0006 0746 mov r7, r0 544 0008 8846 mov r8, r1 545 000a 1546 mov r5, r2 546 000c 1E46 mov r6, r3 547 .LVL43: 352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** const float32_t *pIn,*pW; 354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t *pOut; 355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** uint32_t blkCntVector,blkCntSample; 356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** float32_t accum, w; 357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector = nbVectors; 359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum = 0.0f; 362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pW = weights; 364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pIn = in; 365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Set counters to 0 */ 367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 548 .loc 3 370 0 549 000e 6CB3 cbz r4, .L62 371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = 0.0f; 550 .loc 3 372 0 551 0010 4FEA8409 lsl r9, r4, #2 552 0014 4A46 mov r2, r9 553 .LVL44: 554 0016 0021 movs r1, #0 555 .LVL45: 556 0018 2846 mov r0, r5 557 .LVL46: 558 001a FFF7FEFF bl memset 559 .LVL47: 373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Sum */ 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntVector > 0) 560 .loc 3 378 0 561 001e 4EB3 cbz r6, .L70 562 .L69: 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 563 .loc 3 351 0 564 0020 9FED166A vldr.32 s12, .L82 565 .LVL48: 566 .L66: 379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** w = *pW++; 567 .loc 3 381 0 568 0024 F8EC016A vldmia.32 r8!, {s13} ARM GAS /tmp/cce2LIhc.s page 22 569 .LVL49: 382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** accum += w; 570 .loc 3 382 0 571 0028 36EE266A vadd.f32 s12, s12, s13 572 .LVL50: 383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 573 .loc 3 385 0 574 002c 6CB1 cbz r4, .L64 575 002e 2946 mov r1, r5 576 0030 2246 mov r2, r4 577 0032 3846 mov r0, r7 578 .LVL51: 579 .L65: 386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut + *pIn++ * w; 580 .loc 3 387 0 581 0034 D1ED007A vldr.32 s15, [r1] 582 0038 B0EC017A vldmia.32 r0!, {s14} 583 .LVL52: 584 003c E7EE267A vfma.f32 s15, s14, s13 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 585 .loc 3 385 0 586 0040 013A subs r2, r2, #1 587 .LVL53: 588 .loc 3 387 0 589 0042 E1EC017A vstmia.32 r1!, {s15} 590 .LVL54: 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 591 .loc 3 385 0 592 0046 F5D1 bne .L65 593 0048 4F44 add r7, r7, r9 594 .LVL55: 595 .L64: 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 596 .loc 3 378 0 597 004a 013E subs r6, r6, #1 598 .LVL56: 599 004c EAD1 bne .L66 600 .LVL57: 388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntVector--; 393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** /* Normalize */ 396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample = vecDim; 397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut = out; 398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** while(blkCntSample > 0) 601 .loc 3 399 0 602 004e 5CB1 cbz r4, .L61 603 .LVL58: 604 .L63: ARM GAS /tmp/cce2LIhc.s page 23 605 0050 F7EE007A vmov.f32 s15, #1.0e+0 606 0054 87EE867A vdiv.f32 s14, s15, s12 607 .LVL59: 608 .L68: 609 0058 013C subs r4, r4, #1 610 .LVL60: 400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** *pOut = *pOut / accum; 611 .loc 3 401 0 612 005a D5ED007A vldr.32 s15, [r5] 613 005e 67EE877A vmul.f32 s15, s15, s14 614 0062 E5EC017A vstmia.32 r5!, {s15} 615 .LVL61: 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 616 .loc 3 399 0 617 0066 F7D1 bne .L68 618 .L61: 402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** pOut++; 403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** blkCntSample--; 404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** } 619 .loc 3 406 0 620 0068 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 621 .LVL62: 622 .L62: 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** { 623 .loc 3 378 0 624 006c 002B cmp r3, #0 625 006e FBD0 beq .L61 626 0070 A146 mov r9, r4 627 0072 D5E7 b .L69 628 .LVL63: 629 .L70: 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_barycenter_f32.c **** 630 .loc 3 361 0 631 0074 9FED016A vldr.32 s12, .L82 632 0078 EAE7 b .L63 633 .L83: 634 007a 00BF .align 2 635 .L82: 636 007c 00000000 .word 0 637 .cfi_endproc 638 .LFE148: 640 .section .text.arm_bitonic_sort_f32,"ax",%progbits 641 .align 1 642 .p2align 2,,3 643 .global arm_bitonic_sort_f32 644 .syntax unified 645 .thumb 646 .thumb_func 647 .fpu fpv4-sp-d16 649 arm_bitonic_sort_f32: 650 .LFB150: 651 .file 4 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32. 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Project: CMSIS DSP Library ARM GAS /tmp/cce2LIhc.s page 24 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Title: arm_bitonic_sort_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Description: Floating point bitonic sort 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #if !defined(ARM_MATH_NEON) 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_sort_core_f32(float32_t *pSrc, uint32_t n, uint8_t dir) 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint32_t step; 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint32_t k, j; 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t *leftPtr, *rightPtr; 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t temp; 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** step = n>>1; 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** leftPtr = pSrc; 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** rightPtr = pSrc+n-1; 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(k=0; k *rightPtr)) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Swap 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp=*leftPtr; 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** *leftPtr=*rightPtr; 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** *rightPtr=temp; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** leftPtr++; // Move right 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** rightPtr--; // Move left 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ARM GAS /tmp/cce2LIhc.s page 25 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Merge 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(step=(n>>2); step>0; step/=2) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(j=0; j *rightPtr) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Swap 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp=*leftPtr; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** *leftPtr=*rightPtr; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** *rightPtr=temp; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** leftPtr++; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** rightPtr++; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #endif 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #if defined(ARM_MATH_NEON) 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static float32x4x2_t arm_bitonic_resort_8_f32(float32x4_t a, float32x4_t b, uint8_t dir) 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* Start with two vectors: 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | b | c | d | 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | e | f | g | h | 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * All the elements of the first are guaranteed to be less than or equal to 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * all of the elements in the second, and both vectors are bitonic. 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * We need to perform these operations to completely sort both lists: 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * vminmax([abcd],[efgh]) 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * vminmax([acbd],[egfh]) 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vtrn128_64q(a, b); 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* +---+---+---+---+ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | b | e | f | 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | c | d | g | h | 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, b); 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, a); 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ARM GAS /tmp/cce2LIhc.s page 26 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vtrn128_32q(a, b); 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* +---+---+---+---+ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | c | e | g | 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | b | d | f | h | 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+ 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, b); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, a); 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** return vzipq_f32(a, b); 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static float32x4x2_t arm_bitonic_merge_8_f32(float32x4_t a, float32x4_t b, uint8_t dir) 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* a and b are guaranteed to be bitonic */ 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Reverse the element of the second vector 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** b = vrev128q_f32(b); 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Compare the two vectors 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, b); 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, a); 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Merge the two vectors 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab = arm_bitonic_resort_8_f32(a, b, dir); 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** return ab; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_resort_16_f32(float32_t * pOut, float32x4x2_t a, float32x4x2_t b, uint8_t d 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* Start with two vectors: 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | b | c | d | e | f | g | h | 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | i | j | k | l | m | n | o | p | 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * All the elements of the first are guaranteed to be less than or equal to 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * all of the elements in the second, and both vectors are bitonic. 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * We need to perform these operations to completely sort both lists: 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * vminmax([abcd],[efgh]) vminmax([ijkl],[mnop]) 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * vminmax([abef],[cdgh]) vminmax([ijmn],[klop]) 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * vminmax([acef],[bdfh]) vminmax([ikmo],[jlmp]) 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vtrn256_128q(a, b); 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* +---+---+---+---+---+---+---+---+ 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | b | c | d | i | j | k | l | 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ ARM GAS /tmp/cce2LIhc.s page 27 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | e | f | g | h | m | n | o | p | 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(a, b); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(b, a); 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vtrn256_64q(a, b); 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* +---+---+---+---+---+---+---+---+ 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | b | e | f | i | j | m | n | 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | c | d | g | h | k | l | o | p | 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(a, b); 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(b, a); 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vtrn256_32q(a, b); 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /* We now have: 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | a | c | e | g | i | k | m | o | 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * | b | d | f | h | j | l | n | p | 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * +---+---+---+---+---+---+---+---+ 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(a, b); 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(b, a); 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t out1 = vzipq_f32(a.val[0], b.val[0]); 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t out2 = vzipq_f32(a.val[1], b.val[1]); 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut, out1.val[0]); 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut+4, out1.val[1]); 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut+8, out2.val[0]); 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut+12, out2.val[1]); 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_merge_16_f32(float32_t * pOut, float32x4x2_t a, float32x4x2_t b, uint8_t di 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Merge two preordered float32x4x2_t 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vrev256q_f32(b); 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(a, b); 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(b, a); 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_resort_16_f32(pOut, a, b, dir); 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } ARM GAS /tmp/cce2LIhc.s page 28 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_sort_16_f32(float32_t *pSrc, float32_t *pDst, uint8_t dir) 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t a; 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t b; 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t c; 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t d; 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Load 16 samples 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = vld1q_f32(pSrc); 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** b = vld1q_f32(pSrc+4); 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** c = vld1q_f32(pSrc+8); 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** d = vld1q_f32(pSrc+12); 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Bitonic sorting network for 4 samples x 4 times 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, b); 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(c, d); 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, d); 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, c); 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(a, b); 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(c, d); 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, a); 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(d, c); 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(d, a); 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(c, b); 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(b, a); 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmaxq(d, c); 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab = vtrnq_f32 (a, b); 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd = vtrnq_f32 (c, d); 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Transpose 4 ordered arrays of 4 samples 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = vcombine_f32(vget_low_f32(ab.val[0]), vget_low_f32(cd.val[0])); 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** b = vcombine_f32(vget_low_f32(ab.val[1]), vget_low_f32(cd.val[1])); 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** c = vcombine_f32(vget_high_f32(ab.val[0]), vget_high_f32(cd.val[0])); 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** d = vcombine_f32(vget_high_f32(ab.val[1]), vget_high_f32(cd.val[1])); 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Merge pairs of arrays of 4 samples 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab = arm_bitonic_merge_8_f32(a, b, dir); 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd = arm_bitonic_merge_8_f32(c, d, dir); 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Merge arrays of 8 samples 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_16_f32(pDst, ab, cd, dir); 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ARM GAS /tmp/cce2LIhc.s page 29 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_merge_32_f32(float32_t * pSrc, float32x4x2_t ab1, float32x4x2_t ab2, float3 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 256 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t temp; 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab2.val[0]; 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[0] = cd1.val[0]; 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[0] = temp; 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab2.val[1]; 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[1] = cd1.val[1]; 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[1] = temp; 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 128 326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_16_f32(pSrc+0, ab1, cd1, dir); 327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_16_f32(pSrc+16, ab2, cd2, dir); 328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_merge_64_f32(float32_t * pSrc, uint8_t dir) 331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab1, ab2, ab3, ab4; 333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd1, cd2, cd3, cd4; 334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Load and reverse second array 336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[0] = vld1q_f32(pSrc+0 ); 337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[1] = vld1q_f32(pSrc+4 ); 338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[0] = vld1q_f32(pSrc+8 ); 339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[1] = vld1q_f32(pSrc+12); 340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[0] = vld1q_f32(pSrc+16); 341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[1] = vld1q_f32(pSrc+20); 342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[0] = vld1q_f32(pSrc+24); 343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[1] = vld1q_f32(pSrc+28); 344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ARM GAS /tmp/cce2LIhc.s page 30 345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[1], pSrc+32); 346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[0], pSrc+36); 347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[1], pSrc+40); 348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[0], pSrc+44); 349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[1], pSrc+48); 350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[0], pSrc+52); 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[1], pSrc+56); 352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[0], pSrc+60); 353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3, cd3); 360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4, cd4); 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3, ab3); 367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4, ab4); 368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 512 371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t temp; 372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab3.val[0]; 374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[0] = cd1.val[0]; 375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[0] = temp; 376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab3.val[1]; 377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[1] = cd1.val[1]; 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[1] = temp; 379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab4.val[0]; 380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[0] = cd2.val[0]; 381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[0] = temp; 382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab4.val[1]; 383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[1] = cd2.val[1]; 384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[1] = temp; 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3, cd3); 392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4, cd4); 393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3, ab3); 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4, ab4); 400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ARM GAS /tmp/cce2LIhc.s page 31 402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 256 403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_32_f32(pSrc+0, ab1, ab2, cd1, cd2, dir); 404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_32_f32(pSrc+32, ab3, ab4, cd3, cd4, dir); 405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_merge_128_f32(float32_t * pSrc, uint8_t dir) 408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab1, ab2, ab3, ab4, ab5, ab6, ab7, ab8; 410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd1, cd2, cd3, cd4, cd5, cd6, cd7, cd8; 411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Load and reverse second array 413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[0] = vld1q_f32(pSrc+0 ); 414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[1] = vld1q_f32(pSrc+4 ); 415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[0] = vld1q_f32(pSrc+8 ); 416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[1] = vld1q_f32(pSrc+12); 417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[0] = vld1q_f32(pSrc+16); 418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[1] = vld1q_f32(pSrc+20); 419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[0] = vld1q_f32(pSrc+24); 420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[1] = vld1q_f32(pSrc+28); 421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[0] = vld1q_f32(pSrc+32); 422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[1] = vld1q_f32(pSrc+36); 423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[0] = vld1q_f32(pSrc+40); 424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[1] = vld1q_f32(pSrc+44); 425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[0] = vld1q_f32(pSrc+48); 426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[1] = vld1q_f32(pSrc+52); 427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[0] = vld1q_f32(pSrc+56); 428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[1] = vld1q_f32(pSrc+60); 429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd8.val[1], pSrc+64); 431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd8.val[0], pSrc+68); 432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd7.val[1], pSrc+72); 433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd7.val[0], pSrc+76); 434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd6.val[1], pSrc+80); 435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd6.val[0], pSrc+84); 436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd5.val[1], pSrc+88); 437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd5.val[0], pSrc+92); 438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[1], pSrc+96); 439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[0], pSrc+100); 440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[1], pSrc+104); 441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[0], pSrc+108); 442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[1], pSrc+112); 443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[0], pSrc+116); 444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[1], pSrc+120); 445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[0], pSrc+124); 446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3, cd3); 453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4, cd4); 454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab5, cd5); 455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab6, cd6); 456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab7, cd7); 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab8, cd8); 458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } ARM GAS /tmp/cce2LIhc.s page 32 459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3, ab3); 464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4, ab4); 465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd5, ab5); 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd6, ab6); 467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd7, ab7); 468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd8, ab8); 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t temp; 473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab5.val[0]; 475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[0] = cd1.val[0]; 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[0] = temp; 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab5.val[1]; 478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[1] = cd1.val[1]; 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[1] = temp; 480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab6.val[0]; 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[0] = cd2.val[0]; 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[0] = temp; 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab6.val[1]; 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[1] = cd2.val[1]; 485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[1] = temp; 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab7.val[0]; 487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[0] = cd3.val[0]; 488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd3.val[0] = temp; 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab7.val[1]; 490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[1] = cd3.val[1]; 491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd3.val[1] = temp; 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab8.val[0]; 493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[0] = cd4.val[0]; 494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd4.val[0] = temp; 495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab8.val[1]; 496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[1] = cd4.val[1]; 497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd4.val[1] = temp; 498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1, cd1); 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2, cd2); 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3, cd3); 505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4, cd4); 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab5, cd5); 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab6, cd6); 508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab7, cd7); 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab8, cd8); 510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1, ab1); 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2, ab2); 515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3, ab3); ARM GAS /tmp/cce2LIhc.s page 33 516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4, ab4); 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd5, ab5); 518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd6, ab6); 519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd7, ab7); 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd8, ab8); 521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc, ab1.val[0]); 524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+4, ab1.val[1]); 525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+8, ab2.val[0]); 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+12, ab2.val[1]); 527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+16, ab3.val[0]); 528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+20, ab3.val[1]); 529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+24, ab4.val[0]); 530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+28, ab4.val[1]); 531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+32, cd1.val[0]); 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+36, cd1.val[1]); 533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+40, cd2.val[0]); 534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+44, cd2.val[1]); 535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+48, cd3.val[0]); 536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+52, cd3.val[1]); 537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+56, cd4.val[0]); 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+60, cd4.val[1]); 539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+64, ab5.val[0]); 540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+68, ab5.val[1]); 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+72, ab6.val[0]); 542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+76, ab6.val[1]); 543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+80, ab7.val[0]); 544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+84, ab7.val[1]); 545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+88, ab8.val[0]); 546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+92, ab8.val[1]); 547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+96, cd5.val[0]); 548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+100, cd5.val[1]); 549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+104, cd6.val[0]); 550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+108, cd6.val[1]); 551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+112, cd7.val[0]); 552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+116, cd7.val[1]); 553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+120, cd8.val[0]); 554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+124, cd8.val[1]); 555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_64_f32(pSrc+0 , dir); 558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_64_f32(pSrc+64, dir); 559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static void arm_bitonic_merge_256_f32(float32_t * pSrc, uint8_t dir) 562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab1, ab2, ab3, ab4, ab5, ab6, ab7, ab8; 564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab9, ab10, ab11, ab12, ab13, ab14, ab15, ab16; 565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd1, cd2, cd3, cd4, cd5, cd6, cd7, cd8; 566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd9, cd10, cd11, cd12, cd13, cd14, cd15, cd16; 567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Load and reverse second array 569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[0] = vld1q_f32(pSrc+0 ); 570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab1.val[1] = vld1q_f32(pSrc+4 ); 571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[0] = vld1q_f32(pSrc+8 ); 572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab2.val[1] = vld1q_f32(pSrc+12 ); ARM GAS /tmp/cce2LIhc.s page 34 573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[0] = vld1q_f32(pSrc+16 ); 574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab3.val[1] = vld1q_f32(pSrc+20 ); 575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[0] = vld1q_f32(pSrc+24 ); 576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab4.val[1] = vld1q_f32(pSrc+28 ); 577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[0] = vld1q_f32(pSrc+32 ); 578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab5.val[1] = vld1q_f32(pSrc+36 ); 579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[0] = vld1q_f32(pSrc+40 ); 580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab6.val[1] = vld1q_f32(pSrc+44 ); 581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[0] = vld1q_f32(pSrc+48 ); 582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab7.val[1] = vld1q_f32(pSrc+52 ); 583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[0] = vld1q_f32(pSrc+56 ); 584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab8.val[1] = vld1q_f32(pSrc+60 ); 585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab9.val[0] = vld1q_f32(pSrc+64 ); 586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab9.val[1] = vld1q_f32(pSrc+68 ); 587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab10.val[0] = vld1q_f32(pSrc+72 ); 588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab10.val[1] = vld1q_f32(pSrc+76 ); 589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab11.val[0] = vld1q_f32(pSrc+80 ); 590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab11.val[1] = vld1q_f32(pSrc+84 ); 591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab12.val[0] = vld1q_f32(pSrc+88 ); 592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab12.val[1] = vld1q_f32(pSrc+92 ); 593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab13.val[0] = vld1q_f32(pSrc+96 ); 594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab13.val[1] = vld1q_f32(pSrc+100); 595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab14.val[0] = vld1q_f32(pSrc+104); 596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab14.val[1] = vld1q_f32(pSrc+108); 597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab15.val[0] = vld1q_f32(pSrc+112); 598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab15.val[1] = vld1q_f32(pSrc+116); 599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab16.val[0] = vld1q_f32(pSrc+120); 600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab16.val[1] = vld1q_f32(pSrc+124); 601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd16.val[1], pSrc+128); 603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd16.val[0], pSrc+132); 604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd15.val[1], pSrc+136); 605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd15.val[0], pSrc+140); 606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd14.val[1], pSrc+144); 607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd14.val[0], pSrc+148); 608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd13.val[1], pSrc+152); 609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd13.val[0], pSrc+156); 610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd12.val[1], pSrc+160); 611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd12.val[0], pSrc+164); 612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd11.val[1], pSrc+168); 613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd11.val[0], pSrc+172); 614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd10.val[1], pSrc+176); 615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd10.val[0], pSrc+180); 616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd9.val[1] , pSrc+184); 617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd9.val[0] , pSrc+188); 618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd8.val[1] , pSrc+192); 619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd8.val[0] , pSrc+196); 620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd7.val[1] , pSrc+200); 621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd7.val[0] , pSrc+204); 622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd6.val[1] , pSrc+208); 623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd6.val[0] , pSrc+212); 624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd5.val[1] , pSrc+216); 625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd5.val[0] , pSrc+220); 626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[1] , pSrc+224); 627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd4.val[0] , pSrc+228); 628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[1] , pSrc+232); 629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd3.val[0] , pSrc+236); ARM GAS /tmp/cce2LIhc.s page 35 630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[1] , pSrc+240); 631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd2.val[0] , pSrc+244); 632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[1] , pSrc+248); 633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vldrev128q_f32(cd1.val[0] , pSrc+252); 634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1 , cd1 ); 639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2 , cd2 ); 640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3 , cd3 ); 641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4 , cd4 ); 642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab5 , cd5 ); 643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab6 , cd6 ); 644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab7 , cd7 ); 645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab8 , cd8 ); 646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab9 , cd9 ); 647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab10, cd10); 648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab11, cd11); 649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab12, cd12); 650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab13, cd13); 651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab14, cd14); 652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab15, cd15); 653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab16, cd16); 654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1 , ab1 ); 658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2 , ab2 ); 659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3 , ab3 ); 660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4 , ab4 ); 661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd5 , ab5 ); 662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd6 , ab6 ); 663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd7 , ab7 ); 664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd8 , ab8 ); 665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd9 , ab9 ); 666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd10, ab10); 667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd11, ab11); 668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd12, ab12); 669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd13, ab13); 670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd14, ab14); 671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd15, ab15); 672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd16, ab16); 673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t temp; 677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab9.val[0]; 679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab9.val[0] = cd1.val[0]; 680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[0] = temp; 681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab9.val[1]; 682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab9.val[1] = cd1.val[1]; 683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd1.val[1] = temp; 684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab10.val[0]; 685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab10.val[0] = cd2.val[0]; 686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[0] = temp; ARM GAS /tmp/cce2LIhc.s page 36 687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab10.val[1]; 688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab10.val[1] = cd2.val[1]; 689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd2.val[1] = temp; 690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab11.val[0]; 691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab11.val[0] = cd3.val[0]; 692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd3.val[0] = temp; 693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab11.val[1]; 694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab11.val[1] = cd3.val[1]; 695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd3.val[1] = temp; 696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab12.val[0]; 697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab12.val[0] = cd4.val[0]; 698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd4.val[0] = temp; 699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab12.val[1]; 700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab12.val[1] = cd4.val[1]; 701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd4.val[1] = temp; 702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab13.val[0]; 703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab13.val[0] = cd5.val[0]; 704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd5.val[0] = temp; 705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab13.val[1]; 706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab13.val[1] = cd5.val[1]; 707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd5.val[1] = temp; 708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab14.val[0]; 709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab14.val[0] = cd6.val[0]; 710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd6.val[0] = temp; 711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab14.val[1]; 712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab14.val[1] = cd6.val[1]; 713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd6.val[1] = temp; 714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab15.val[0]; 715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab15.val[0] = cd7.val[0]; 716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd7.val[0] = temp; 717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab15.val[1]; 718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab15.val[1] = cd7.val[1]; 719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd7.val[1] = temp; 720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab16.val[0]; 721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab16.val[0] = cd8.val[0]; 722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd8.val[0] = temp; 723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = ab16.val[1]; 724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab16.val[1] = cd8.val[1]; 725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** cd8.val[1] = temp; 726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Compare 728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(dir) 729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab1 , cd1 ); 731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab2 , cd2 ); 732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab3 , cd3 ); 733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab4 , cd4 ); 734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab5 , cd5 ); 735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab6 , cd6 ); 736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab7 , cd7 ); 737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab8 , cd8 ); 738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab9 , cd9 ); 739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab10, cd10); 740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab11, cd11); 741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab12, cd12); 742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab13, cd13); 743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab14, cd14); ARM GAS /tmp/cce2LIhc.s page 37 744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab15, cd15); 745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(ab16, cd16); 746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd1 , ab1 ); 750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd2 , ab2 ); 751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd3 , ab3 ); 752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd4 , ab4 ); 753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd5 , ab5 ); 754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd6 , ab6 ); 755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd7 , ab7 ); 756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd8 , ab8 ); 757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd9 , ab9 ); 758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd10, ab10); 759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd11, ab11); 760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd12, ab12); 761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd13, ab13); 762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd14, ab14); 763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd15, ab15); 764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vminmax256q(cd16, ab16); 765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc, ab1.val[0] ); 768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+4, ab1.val[1] ); 769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+8, ab2.val[0] ); 770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+12, ab2.val[1] ); 771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+16, ab3.val[0] ); 772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+20, ab3.val[1] ); 773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+24, ab4.val[0] ); 774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+28, ab4.val[1] ); 775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+32, ab5.val[0] ); 776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+36, ab5.val[1] ); 777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+40, ab6.val[0] ); 778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+44, ab6.val[1] ); 779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+48, ab7.val[0] ); 780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+52, ab7.val[1] ); 781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+56, ab8.val[0] ); 782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+60, ab8.val[1] ); 783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+64, cd1.val[0] ); 784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+68, cd1.val[1] ); 785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+72, cd2.val[0] ); 786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+76, cd2.val[1] ); 787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+80, cd3.val[0] ); 788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+84, cd3.val[1] ); 789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+88, cd4.val[0] ); 790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+92, cd4.val[1] ); 791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+96, cd5.val[0] ); 792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+100, cd5.val[1] ); 793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+104, cd6.val[0] ); 794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+108, cd6.val[1] ); 795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+112, cd7.val[0] ); 796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+116, cd7.val[1] ); 797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+120, cd8.val[0] ); 798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+124, cd8.val[1] ); 799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+128, ab9.val[0] ); 800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+132, ab9.val[1] ); ARM GAS /tmp/cce2LIhc.s page 38 801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+136, ab10.val[0]); 802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+140, ab10.val[1]); 803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+144, ab11.val[0]); 804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+148, ab11.val[1]); 805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+152, ab12.val[0]); 806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+156, ab12.val[1]); 807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+160, ab13.val[0]); 808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+164, ab13.val[1]); 809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+168, ab14.val[0]); 810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+172, ab14.val[1]); 811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+176, ab15.val[0]); 812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+180, ab15.val[1]); 813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+184, ab16.val[0]); 814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+188, ab16.val[1]); 815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+192, cd9.val[0] ); 816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+196, cd9.val[1] ); 817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+200, cd10.val[0]); 818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+204, cd10.val[1]); 819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+208, cd11.val[0]); 820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+212, cd11.val[1]); 821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+216, cd12.val[0]); 822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+220, cd12.val[1]); 823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+224, cd13.val[0]); 824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+228, cd13.val[1]); 825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+232, cd14.val[0]); 826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+236, cd14.val[1]); 827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+240, cd15.val[0]); 828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+244, cd15.val[1]); 829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+248, cd16.val[0]); 830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pSrc+252, cd16.val[1]); 831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** //Transpose 833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_128_f32(pSrc+0 , dir); 834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** arm_bitonic_merge_128_f32(pSrc+128, dir); 835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #define SWAP(a,i,j) \ 838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = vgetq_lane_f32(a, j); \ 839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = vsetq_lane_f32(vgetq_lane_f32(a, i), a, j);\ 840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = vsetq_lane_f32(temp, a, i); 841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static float32x4_t arm_bitonic_sort_4_f32(float32x4_t a, uint8_t dir) 843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t temp; 845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 0) > vgetq_lane_f32(a, 1)) ) 848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,0,1); 850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 2) > vgetq_lane_f32(a, 3)) ) 852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,2,3); 854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 0) > vgetq_lane_f32(a, 3)) ) 857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 39 858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,0,3); 859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 1) > vgetq_lane_f32(a, 2)) ) 861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,1,2); 863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 0) > vgetq_lane_f32(a, 1)) ) 866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,0,1); 868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(vgetq_lane_f32(a, 2)>vgetq_lane_f32(a, 3)) ) 870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** SWAP(a,2,3); 872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** return a; 875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** static float32x4x2_t arm_bitonic_sort_8_f32(float32x4_t a, float32x4_t b, uint8_t dir) 878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = arm_bitonic_sort_4_f32(a, dir); 880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** b = arm_bitonic_sort_4_f32(b, dir); 881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** return arm_bitonic_merge_8_f32(a, b, dir); 882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #endif 887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /** 889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** @ingroup groupSupport 890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /** 893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** @defgroup Sorting Vector sorting algorithms 894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** Sort the elements of a vector 896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** There are separate functions for floating-point, Q31, Q15, and Q7 data types. 898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /** 901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** @addtogroup Sorting 902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** @{ 903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** /** 906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * @private 907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * @param[in] S points to an instance of the sorting structure. 908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * @param[in] pSrc points to the block of input data. 909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * @param[out] pDst points to the block of output data 910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** * @param[in] blockSize number of samples to process. 911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** */ 912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** void arm_bitonic_sort_f32( 913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** const arm_sort_instance_f32 * S, 914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t * pSrc, ARM GAS /tmp/cce2LIhc.s page 40 915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t * pDst, 916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint32_t blockSize) 917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 652 .loc 4 917 0 653 .cfi_startproc 654 @ args = 0, pretend = 0, frame = 16 655 @ frame_needed = 0, uses_anonymous_args = 0 656 .LVL64: 657 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 658 .LCFI7: 659 .cfi_def_cfa_offset 36 660 .cfi_offset 4, -36 661 .cfi_offset 5, -32 662 .cfi_offset 6, -28 663 .cfi_offset 7, -24 664 .cfi_offset 8, -20 665 .cfi_offset 9, -16 666 .cfi_offset 10, -12 667 .cfi_offset 11, -8 668 .cfi_offset 14, -4 918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint16_t s, i; 919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint8_t dir = S->dir; 920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** #ifdef ARM_MATH_NEON 922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** (void)s; 923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t * pOut; 925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** uint16_t counter = blockSize>>5; 926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( (blockSize & (blockSize-1)) == 0 ) // Powers of 2 only 928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(pSrc == pDst) // in-place 930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut = pSrc; 931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut = pDst; 933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab1, ab2; 935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t cd1, cd2; 936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if(blockSize == 1) 938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut = pSrc; 939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else if(blockSize == 2) 940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32_t temp; 942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** if( dir==(pSrc[0]>pSrc[1]) ) 944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** temp = pSrc[1]; 946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut[1] = pSrc[0]; 947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut[0] = temp; 948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else 950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** pOut = pSrc; 951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else if(blockSize == 4) 953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t a = vld1q_f32(pSrc); ARM GAS /tmp/cce2LIhc.s page 41 955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = arm_bitonic_sort_4_f32(a, dir); 957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut, a); 959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else if(blockSize == 8) 961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t a; 963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4_t b; 964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** float32x4x2_t ab; 965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** a = vld1q_f32(pSrc); 967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** b = vld1q_f32(pSrc+4); 968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** ab = arm_bitonic_sort_8_f32(a, b, dir); 970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** 971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut, ab.val[0]); 972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** vst1q_f32(pOut+4, ab.val[1]); 973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** } 974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** else if(blockSize >=16) 975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** { 976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** // Order 16 bits long vectors 977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(i=0; i>1; 998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(i=0; i>1; 1002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(i=0; i>1; 1006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bitonic_sort_f32.c **** for(i=0; idir; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint32_t i; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint8_t swapped =1; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** float32_t * pA; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** float32_t temp; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** if(pSrc != pDst) // out-of-place 870 .loc 5 72 0 871 0000 8A42 cmp r2, r1 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint8_t dir = S->dir; 872 .loc 5 65 0 873 0002 F8B5 push {r3, r4, r5, r6, r7, lr} 874 .LCFI10: 875 .cfi_def_cfa_offset 24 876 .cfi_offset 3, -24 877 .cfi_offset 4, -20 878 .cfi_offset 5, -16 879 .cfi_offset 6, -12 880 .cfi_offset 7, -8 881 .cfi_offset 14, -4 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint8_t dir = S->dir; 882 .loc 5 65 0 883 0004 1746 mov r7, r2 884 0006 1E46 mov r6, r3 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint8_t dir = S->dir; 885 .loc 5 66 0 886 0008 4578 ldrb r5, [r0, #1] @ zero_extendqisi2 887 .LVL94: ARM GAS /tmp/cce2LIhc.s page 48 888 .loc 5 72 0 889 000a 03D0 beq .L113 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** memcpy(pDst, pSrc, blockSize*sizeof(float32_t) ); 890 .loc 5 74 0 891 000c 9A00 lsls r2, r3, #2 892 .LVL95: 893 000e 3846 mov r0, r7 894 .LVL96: 895 0010 FFF7FEFF bl memcpy 896 .LVL97: 897 .L113: 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA = pDst; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** else 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA = pSrc; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** while(swapped==1) // If nothing has been swapped after one loop stop 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** swapped=0; 898 .loc 5 82 0 899 0014 0023 movs r3, #0 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** for(i=0; ipA[i+1])) 912 .loc 5 86 0 is_stmt 1 913 0022 D2ED007A vldr.32 s15, [r2] 914 0026 0432 adds r2, r2, #4 915 0028 92ED007A vldr.32 s14, [r2] 916 002c F4EEC77A vcmpe.f32 s15, s14 917 0030 F1EE10FA vmrs APSR_nzcv, FPSCR 918 0034 CCBF ite gt 919 0036 0124 movgt r4, #1 920 0038 0024 movle r4, #0 921 003a AC42 cmp r4, r5 922 003c 01F10101 add r1, r1, #1 923 0040 EAD1 bne .L114 924 .LVL100: 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 925 .loc 5 84 0 926 0042 8142 cmp r1, r0 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** // Swap 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** temp = pA[i]; ARM GAS /tmp/cce2LIhc.s page 49 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA[i] = pA[i+1]; 927 .loc 5 90 0 928 0044 02ED017A vstr.32 s14, [r2, #-4] 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA[i+1] = temp; 929 .loc 5 91 0 930 0048 C2ED007A vstr.32 s15, [r2] 931 .LVL101: 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** // Update flag 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** swapped = 1; 932 .loc 5 94 0 933 004c 4FF00103 mov r3, #1 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 934 .loc 5 84 0 935 0050 E7D3 bcc .L115 936 0052 0646 mov r6, r0 937 .LVL102: 938 0054 0021 movs r1, #0 939 0056 012E cmp r6, #1 940 0058 00F1FF30 add r0, r0, #-1 941 005c 0B46 mov r3, r1 942 005e DED1 bne .L117 943 .LVL103: 944 .L112: 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** blockSize--; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 945 .loc 5 100 0 946 0060 F8BD pop {r3, r4, r5, r6, r7, pc} 947 .LVL104: 948 .L123: 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 949 .loc 5 80 0 950 0062 002B cmp r3, #0 951 0064 FCD0 beq .L112 952 0066 0646 mov r6, r0 953 .LVL105: 954 0068 0021 movs r1, #0 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 955 .loc 5 84 0 956 006a 012E cmp r6, #1 957 006c 00F1FF30 add r0, r0, #-1 958 .LVL106: 959 0070 0B46 mov r3, r1 960 0072 D4D1 bne .L117 961 0074 F4E7 b .L112 962 .cfi_endproc 963 .LFE151: 965 0076 00BF .section .text.arm_copy_f32,"ax",%progbits 966 .align 1 967 .p2align 2,,3 968 .global arm_copy_f32 969 .syntax unified 970 .thumb ARM GAS /tmp/cce2LIhc.s page 50 971 .thumb_func 972 .fpu fpv4-sp-d16 974 arm_copy_f32: 975 .LFB152: 976 .file 6 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Title: arm_copy_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Description: Copies the elements of a floating-point vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @defgroup copy Vector Copy 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** Copies sample by sample from source vector to destination vector. 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c ****
  41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c ****       pDst[n] = pSrc[n];   0 <= n < blockSize.
  42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c ****   
43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** There are separate functions for floating point, Q31, Q15, and Q7 data types. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @addtogroup copy 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @{ 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /** ARM GAS /tmp/cce2LIhc.s page 51 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @brief Copies the elements of a floating-point vector. 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @param[in] pSrc points to input vector 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @param[out] pDst points to output vector 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @param[in] blockSize number of samples in each vector 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** @return none 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** void arm_copy_f32( 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** const float32_t * pSrc, 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** float32_t * pDst, 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blockSize) 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blkCnt; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize >> 2U; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Compute 4 outputs at a time */ 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** vstrwq_f32(pDst, vldrwq_f32(pSrc)); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Decrement the blockSize loop counter 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** * Advance vector source and destination pointers 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** pSrc += 4; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** pDst += 4; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt --; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize & 3; 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* C = A */ 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Copy and store result in destination buffer */ 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Decrement loop counter */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt--; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #else 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #if defined(ARM_MATH_NEON_EXPERIMENTAL) 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** void arm_copy_f32( 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** const float32_t * pSrc, 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** float32_t * pDst, 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blockSize) 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blkCnt; /* loop counter */ 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** float32x4_t inV; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize >> 2U; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** ARM GAS /tmp/cce2LIhc.s page 52 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Compute 4 outputs at a time. 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** ** a second loop below computes the remaining 1 to 3 samples. */ 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* C = A */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Copy and then store the results in the destination buffer */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** inV = vld1q_f32(pSrc); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** vst1q_f32(pDst, inV); 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** pSrc += 4; 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** pDst += 4; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Decrement the loop counter */ 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt--; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** ** No loop unrolling is used. */ 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize & 3; 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* C = A */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Copy and then store the results in the destination buffer */ 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Decrement the loop counter */ 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt--; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #else 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** void arm_copy_f32( 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** const float32_t * pSrc, 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** float32_t * pDst, 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blockSize) 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 977 .loc 6 144 0 978 .cfi_startproc 979 @ args = 0, pretend = 0, frame = 0 980 @ frame_needed = 0, uses_anonymous_args = 0 981 @ link register save eliminated. 982 .LVL107: 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** uint32_t blkCnt; /* Loop counter */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #if defined (ARM_MATH_LOOPUNROLL) 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Loop unrolling: Compute 4 outputs at a time */ 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize >> 2U; 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* C = A */ 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Copy and store result in destination buffer */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; ARM GAS /tmp/cce2LIhc.s page 53 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Decrement loop counter */ 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt--; 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Loop unrolling: Compute remaining outputs */ 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize % 0x4U; 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #else 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Initialize blkCnt with number of samples */ 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt = blockSize; 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** while (blkCnt > 0U) 983 .loc 6 176 0 984 0000 2AB1 cbz r2, .L124 985 .LVL108: 986 .L126: 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* C = A */ 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Copy and store result in destination buffer */ 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** *pDst++ = *pSrc++; 987 .loc 6 181 0 988 0002 50F8043B ldr r3, [r0], #4 @ float 989 .LVL109: 990 0006 41F8043B str r3, [r1], #4 @ float 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** { 991 .loc 6 176 0 992 000a 013A subs r2, r2, #1 993 .LVL110: 994 000c F9D1 bne .L126 995 .LVL111: 996 .L124: 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** /* Decrement loop counter */ 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** blkCnt--; 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c **** } 997 .loc 6 186 0 998 000e 7047 bx lr 999 .cfi_endproc 1000 .LFE152: 1002 .section .text.arm_copy_q15,"ax",%progbits 1003 .align 1 1004 .p2align 2,,3 1005 .global arm_copy_q15 1006 .syntax unified 1007 .thumb 1008 .thumb_func 1009 .fpu fpv4-sp-d16 1011 arm_copy_q15: 1012 .LFB153: 1013 .file 7 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* ---------------------------------------------------------------------- ARM GAS /tmp/cce2LIhc.s page 54 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Title: arm_copy_q15.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Description: Copies the elements of a Q15 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @addtogroup copy 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @brief Copies the elements of a Q15 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @param[in] pSrc points to input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** void arm_copy_q15( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** const q15_t * pSrc, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** q15_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt = blockSize >> 3; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** while (blkCnt > 0U) 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** vstrhq_s16(pDst,vldrhq_s16(pSrc)); ARM GAS /tmp/cce2LIhc.s page 55 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Decrement the blockSize loop counter 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** * Advance vector source and destination pointers 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** */ 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** pSrc += 8; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** pDst += 8; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt --; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt = blockSize & 7; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** while (blkCnt > 0U) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* C = A */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Copy and store result in destination buffer */ 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** *pDst++ = *pSrc++; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Decrement loop counter */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt--; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #else 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** void arm_copy_q15( 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** const q15_t * pSrc, 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** q15_t * pDst, 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** uint32_t blockSize) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 1014 .loc 7 85 0 1015 .cfi_startproc 1016 @ args = 0, pretend = 0, frame = 0 1017 @ frame_needed = 0, uses_anonymous_args = 0 1018 @ link register save eliminated. 1019 .LVL112: 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** uint32_t blkCnt; /* Loop counter */ 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Loop unrolling: Compute 4 outputs at a time */ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt = blockSize >> 2U; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** while (blkCnt > 0U) 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* C = A */ 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* read 2 times 2 samples at a time */ 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** write_q15x2_ia (&pDst, read_q15x2_ia ((q15_t **) &pSrc)); 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** write_q15x2_ia (&pDst, read_q15x2_ia ((q15_t **) &pSrc)); 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Decrement loop counter */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt--; 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Loop unrolling: Compute remaining outputs */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt = blockSize % 0x4U; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #else 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** ARM GAS /tmp/cce2LIhc.s page 56 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Initialize blkCnt with number of samples */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt = blockSize; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** while (blkCnt > 0U) 1020 .loc 7 115 0 1021 0000 002A cmp r2, #0 1022 0002 41D0 beq .L155 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** uint32_t blkCnt; /* Loop counter */ 1023 .loc 7 85 0 1024 0004 F0B4 push {r4, r5, r6, r7} 1025 .LCFI11: 1026 .cfi_def_cfa_offset 16 1027 .cfi_offset 4, -16 1028 .cfi_offset 5, -12 1029 .cfi_offset 6, -8 1030 .cfi_offset 7, -4 1031 0006 031D adds r3, r0, #4 1032 0008 0C1D adds r4, r1, #4 1033 000a A042 cmp r0, r4 1034 000c 38BF it cc 1035 000e 9942 cmpcc r1, r3 1036 0010 31D3 bcc .L133 1037 0012 0D2A cmp r2, #13 1038 0014 2FD9 bls .L133 1039 0016 C0F34003 ubfx r3, r0, #1, #1 1040 001a 561E subs r6, r2, #1 1041 001c 3BB3 cbz r3, .L139 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* C = A */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Copy and store result in destination buffer */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** *pDst++ = *pSrc++; 1042 .loc 7 120 0 1043 001e B0F90040 ldrsh r4, [r0] 1044 0022 0C80 strh r4, [r1] @ movhi 1045 0024 00F1020C add ip, r0, #2 1046 .LVL113: 1047 0028 8F1C adds r7, r1, #2 1048 .LVL114: 1049 .L134: 1050 002a D21A subs r2, r2, r3 1051 .LVL115: 1052 002c 5B00 lsls r3, r3, #1 1053 002e 1844 add r0, r0, r3 1054 0030 1944 add r1, r1, r3 1055 0032 5508 lsrs r5, r2, #1 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 1056 .loc 7 115 0 1057 0034 0023 movs r3, #0 1058 .LVL116: 1059 .L135: 1060 0036 0133 adds r3, r3, #1 1061 .loc 7 120 0 1062 0038 50F8044B ldr r4, [r0], #4 1063 003c 41F8044B str r4, [r1], #4 @ unaligned ARM GAS /tmp/cce2LIhc.s page 57 1064 0040 AB42 cmp r3, r5 1065 0042 F8D3 bcc .L135 1066 0044 22F00103 bic r3, r2, #1 1067 0048 5900 lsls r1, r3, #1 1068 004a 9A42 cmp r2, r3 1069 004c 0CEB0100 add r0, ip, r1 1070 0050 A6EB0306 sub r6, r6, r3 1071 0054 3944 add r1, r1, r7 1072 0056 08D0 beq .L131 1073 .LVL117: 1074 0058 3CF91320 ldrsh r2, [ip, r3, lsl #1] 1075 005c 27F81320 strh r2, [r7, r3, lsl #1] @ movhi 1076 .LVL118: 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 1077 .loc 7 115 0 1078 0060 012E cmp r6, #1 1079 0062 02D0 beq .L131 1080 .LVL119: 1081 .loc 7 120 0 1082 0064 B0F90230 ldrsh r3, [r0, #2] 1083 0068 4B80 strh r3, [r1, #2] @ movhi 1084 .LVL120: 1085 .L131: 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** /* Decrement loop counter */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** blkCnt--; 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** } 1086 .loc 7 125 0 1087 006a F0BC pop {r4, r5, r6, r7} 1088 .LCFI12: 1089 .cfi_remember_state 1090 .cfi_restore 7 1091 .cfi_restore 6 1092 .cfi_restore 5 1093 .cfi_restore 4 1094 .cfi_def_cfa_offset 0 1095 006c 7047 bx lr 1096 .LVL121: 1097 .L139: 1098 .LCFI13: 1099 .cfi_restore_state 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 1100 .loc 7 115 0 1101 006e 1646 mov r6, r2 1102 0070 0F46 mov r7, r1 1103 0072 8446 mov ip, r0 1104 0074 D9E7 b .L134 1105 .L133: 1106 0076 0239 subs r1, r1, #2 1107 .LVL122: 1108 .L137: 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** 1109 .loc 7 120 0 1110 0078 30F9023B ldrsh r3, [r0], #2 1111 .LVL123: 1112 007c 21F8023F strh r3, [r1, #2]! @ movhi ARM GAS /tmp/cce2LIhc.s page 58 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c **** { 1113 .loc 7 115 0 1114 0080 013A subs r2, r2, #1 1115 .LVL124: 1116 0082 F9D1 bne .L137 1117 .loc 7 125 0 1118 0084 F0BC pop {r4, r5, r6, r7} 1119 .LCFI14: 1120 .cfi_restore 7 1121 .cfi_restore 6 1122 .cfi_restore 5 1123 .cfi_restore 4 1124 .cfi_def_cfa_offset 0 1125 .LVL125: 1126 0086 7047 bx lr 1127 .LVL126: 1128 .L155: 1129 0088 7047 bx lr 1130 .cfi_endproc 1131 .LFE153: 1133 008a 00BF .section .text.arm_copy_q31,"ax",%progbits 1134 .align 1 1135 .p2align 2,,3 1136 .global arm_copy_q31 1137 .syntax unified 1138 .thumb 1139 .thumb_func 1140 .fpu fpv4-sp-d16 1142 arm_copy_q31: 1143 .LFB154: 1144 .file 8 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Title: arm_copy_q31.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Description: Copies the elements of a Q31 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * limitations under the License. ARM GAS /tmp/cce2LIhc.s page 59 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @addtogroup copy 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @brief Copies the elements of a Q31 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @param[in] pSrc points to input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** void arm_copy_q31( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** const q31_t * pSrc, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** q31_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt = blockSize >> 2U; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Compute 4 outputs at a time */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** while (blkCnt > 0U) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** vstrwq_s32(pDst,vldrwq_s32(pSrc)); 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Decrement the blockSize loop counter 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** * Advance vector source and destination pointers 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** */ 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** pSrc += 4; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** pDst += 4; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt --; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt = blockSize & 3; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** while (blkCnt > 0U) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* C = A */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Copy and store result in destination buffer */ 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Decrement loop counter */ 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt--; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #else ARM GAS /tmp/cce2LIhc.s page 60 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** void arm_copy_q31( 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** const q31_t * pSrc, 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** q31_t * pDst, 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** uint32_t blockSize) 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 1145 .loc 8 88 0 1146 .cfi_startproc 1147 @ args = 0, pretend = 0, frame = 0 1148 @ frame_needed = 0, uses_anonymous_args = 0 1149 @ link register save eliminated. 1150 .LVL127: 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** uint32_t blkCnt; /* Loop counter */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Loop unrolling: Compute 4 outputs at a time */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt = blockSize >> 2U; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** while (blkCnt > 0U) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* C = A */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Copy and store result in destination buffer */ 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Decrement loop counter */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt--; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Loop unrolling: Compute remaining outputs */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt = blockSize % 0x4U; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #else 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Initialize blkCnt with number of samples */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt = blockSize; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** while (blkCnt > 0U) 1151 .loc 8 120 0 1152 0000 32B1 cbz r2, .L158 1153 0002 0439 subs r1, r1, #4 1154 .LVL128: 1155 .L160: 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* C = A */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Copy and store result in destination buffer */ 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** *pDst++ = *pSrc++; 1156 .loc 8 125 0 1157 0004 50F8043B ldr r3, [r0], #4 1158 .LVL129: 1159 0008 41F8043F str r3, [r1, #4]! ARM GAS /tmp/cce2LIhc.s page 61 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** { 1160 .loc 8 120 0 1161 000c 013A subs r2, r2, #1 1162 .LVL130: 1163 000e F9D1 bne .L160 1164 .LVL131: 1165 .L158: 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** /* Decrement loop counter */ 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** blkCnt--; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c **** } 1166 .loc 8 130 0 1167 0010 7047 bx lr 1168 .cfi_endproc 1169 .LFE154: 1171 .section .text.arm_copy_q7,"ax",%progbits 1172 .align 1 1173 .p2align 2,,3 1174 .global arm_copy_q7 1175 .syntax unified 1176 .thumb 1177 .thumb_func 1178 .fpu fpv4-sp-d16 1180 arm_copy_q7: 1181 .LFB155: 1182 .file 9 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Title: arm_copy_q7.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Description: Copies the elements of a Q7 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** ARM GAS /tmp/cce2LIhc.s page 62 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @addtogroup copy 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @brief Copies the elements of a Q7 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @param[in] pSrc points to input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** void arm_copy_q7( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** const q7_t * pSrc, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** q7_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** uint32_t blkCnt; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt = blockSize >> 4; 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** while (blkCnt > 0U) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** vstrbq_s8(pDst,vldrbq_s8(pSrc)); 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Decrement the blockSize loop counter 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** * Advance vector source and destination pointers 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** */ 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** pSrc += 16; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** pDst += 16; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt --; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt = blockSize & 0xF; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** while (blkCnt > 0U) 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* C = A */ 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Copy and store result in destination buffer */ 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** *pDst++ = *pSrc++; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Decrement loop counter */ 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt--; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #else 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** void arm_copy_q7( 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** const q7_t * pSrc, 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** q7_t * pDst, 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** uint32_t blockSize) ARM GAS /tmp/cce2LIhc.s page 63 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1183 .loc 9 88 0 1184 .cfi_startproc 1185 @ args = 0, pretend = 0, frame = 0 1186 @ frame_needed = 0, uses_anonymous_args = 0 1187 @ link register save eliminated. 1188 .LVL132: 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** uint32_t blkCnt; /* Loop counter */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Loop unrolling: Compute 4 outputs at a time */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt = blockSize >> 2U; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** while (blkCnt > 0U) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* C = A */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* read 4 samples at a time */ 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** write_q7x4_ia (&pDst, read_q7x4_ia ((q7_t **) &pSrc)); 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Decrement loop counter */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt--; 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Loop unrolling: Compute remaining outputs */ 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt = blockSize % 0x4U; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #else 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Initialize blkCnt with number of samples */ 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt = blockSize; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** while (blkCnt > 0U) 1189 .loc 9 117 0 1190 0000 002A cmp r2, #0 1191 0002 6BD0 beq .L205 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** uint32_t blkCnt; /* Loop counter */ 1192 .loc 9 88 0 1193 0004 F0B4 push {r4, r5, r6, r7} 1194 .LCFI15: 1195 .cfi_def_cfa_offset 16 1196 .cfi_offset 4, -16 1197 .cfi_offset 5, -12 1198 .cfi_offset 6, -8 1199 .cfi_offset 7, -4 1200 0006 031D adds r3, r0, #4 1201 0008 0C1D adds r4, r1, #4 1202 000a A042 cmp r0, r4 1203 000c 38BF it cc 1204 000e 9942 cmpcc r1, r3 1205 0010 5AD3 bcc .L167 1206 0012 0B2A cmp r2, #11 1207 0014 58D9 bls .L167 1208 0016 4342 negs r3, r0 ARM GAS /tmp/cce2LIhc.s page 64 1209 0018 13F00303 ands r3, r3, #3 1210 001c 02F1FF35 add r5, r2, #-1 1211 0020 4ED0 beq .L174 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* C = A */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Copy and store result in destination buffer */ 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** *pDst++ = *pSrc++; 1212 .loc 9 122 0 1213 0022 90F90040 ldrsb r4, [r0] 1214 0026 0C70 strb r4, [r1] 1215 0028 012B cmp r3, #1 1216 002a 00F1010C add ip, r0, #1 1217 .LVL133: 1218 002e 01F10107 add r7, r1, #1 1219 .LVL134: 1220 0032 11D0 beq .L168 1221 .LVL135: 1222 0034 90F90140 ldrsb r4, [r0, #1] 1223 0038 4C70 strb r4, [r1, #1] 1224 003a 032B cmp r3, #3 1225 003c 00F1020C add ip, r0, #2 1226 .LVL136: 1227 0040 01F10207 add r7, r1, #2 1228 .LVL137: 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** /* Decrement loop counter */ 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** blkCnt--; 1229 .loc 9 125 0 1230 0044 A2F10205 sub r5, r2, #2 1231 .LVL138: 1232 0048 06D1 bne .L168 1233 .LVL139: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1234 .loc 9 122 0 1235 004a 90F90240 ldrsb r4, [r0, #2] 1236 004e 8C70 strb r4, [r1, #2] 1237 0050 00F1030C add ip, r0, #3 1238 .LVL140: 1239 0054 CF1C adds r7, r1, #3 1240 .LVL141: 1241 .loc 9 125 0 1242 0056 D51E subs r5, r2, #3 1243 .LVL142: 1244 .L168: 1245 0058 D21A subs r2, r2, r3 1246 .LVL143: 1247 005a 1844 add r0, r0, r3 1248 005c 1944 add r1, r1, r3 1249 005e 9608 lsrs r6, r2, #2 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1250 .loc 9 117 0 1251 0060 0023 movs r3, #0 1252 .L170: 1253 0062 0133 adds r3, r3, #1 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1254 .loc 9 122 0 ARM GAS /tmp/cce2LIhc.s page 65 1255 0064 50F8044B ldr r4, [r0], #4 1256 0068 41F8044B str r4, [r1], #4 @ unaligned 1257 006c 9E42 cmp r6, r3 1258 006e F8D8 bhi .L170 1259 0070 22F00301 bic r1, r2, #3 1260 0074 8A42 cmp r2, r1 1261 0076 A5EB0103 sub r3, r5, r1 1262 007a 0CEB0104 add r4, ip, r1 1263 007e 07EB0100 add r0, r7, r1 1264 0082 1BD0 beq .L165 1265 .LVL144: 1266 0084 1CF90120 ldrsb r2, [ip, r1] 1267 0088 7A54 strb r2, [r7, r1] 1268 .LVL145: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1269 .loc 9 117 0 1270 008a 012B cmp r3, #1 1271 008c 16D0 beq .L165 1272 .LVL146: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1273 .loc 9 122 0 1274 008e 94F90120 ldrsb r2, [r4, #1] 1275 0092 4270 strb r2, [r0, #1] 1276 .LVL147: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1277 .loc 9 117 0 1278 0094 022B cmp r3, #2 1279 0096 11D0 beq .L165 1280 .LVL148: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1281 .loc 9 122 0 1282 0098 94F90220 ldrsb r2, [r4, #2] 1283 009c 8270 strb r2, [r0, #2] 1284 .LVL149: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1285 .loc 9 117 0 1286 009e 032B cmp r3, #3 1287 00a0 0CD0 beq .L165 1288 .LVL150: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1289 .loc 9 122 0 1290 00a2 94F90320 ldrsb r2, [r4, #3] 1291 00a6 C270 strb r2, [r0, #3] 1292 .LVL151: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1293 .loc 9 117 0 1294 00a8 042B cmp r3, #4 1295 00aa 07D0 beq .L165 1296 .LVL152: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1297 .loc 9 122 0 1298 00ac 94F90420 ldrsb r2, [r4, #4] 1299 00b0 0271 strb r2, [r0, #4] 1300 .LVL153: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1301 .loc 9 117 0 1302 00b2 052B cmp r3, #5 ARM GAS /tmp/cce2LIhc.s page 66 1303 00b4 02D0 beq .L165 1304 .LVL154: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1305 .loc 9 122 0 1306 00b6 94F90530 ldrsb r3, [r4, #5] 1307 .LVL155: 1308 00ba 4371 strb r3, [r0, #5] 1309 .LVL156: 1310 .L165: 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** } 1311 .loc 9 127 0 1312 00bc F0BC pop {r4, r5, r6, r7} 1313 .LCFI16: 1314 .cfi_remember_state 1315 .cfi_restore 7 1316 .cfi_restore 6 1317 .cfi_restore 5 1318 .cfi_restore 4 1319 .cfi_def_cfa_offset 0 1320 00be 7047 bx lr 1321 .LVL157: 1322 .L174: 1323 .LCFI17: 1324 .cfi_restore_state 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1325 .loc 9 117 0 1326 00c0 1546 mov r5, r2 1327 00c2 0F46 mov r7, r1 1328 00c4 8446 mov ip, r0 1329 00c6 C7E7 b .L168 1330 .L167: 1331 00c8 0139 subs r1, r1, #1 1332 .LVL158: 1333 00ca 0244 add r2, r2, r0 1334 .LVL159: 1335 .L172: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** 1336 .loc 9 122 0 1337 00cc 10F9013B ldrsb r3, [r0], #1 1338 .LVL160: 1339 00d0 01F8013F strb r3, [r1, #1]! 1340 .LVL161: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c **** { 1341 .loc 9 117 0 1342 00d4 9042 cmp r0, r2 1343 00d6 F9D1 bne .L172 1344 .loc 9 127 0 1345 00d8 F0BC pop {r4, r5, r6, r7} 1346 .LCFI18: 1347 .cfi_restore 7 1348 .cfi_restore 6 1349 .cfi_restore 5 1350 .cfi_restore 4 1351 .cfi_def_cfa_offset 0 1352 .LVL162: 1353 00da 7047 bx lr ARM GAS /tmp/cce2LIhc.s page 67 1354 .LVL163: 1355 .L205: 1356 00dc 7047 bx lr 1357 .cfi_endproc 1358 .LFE155: 1360 00de 00BF .section .text.arm_fill_f32,"ax",%progbits 1361 .align 1 1362 .p2align 2,,3 1363 .global arm_fill_f32 1364 .syntax unified 1365 .thumb 1366 .thumb_func 1367 .fpu fpv4-sp-d16 1369 arm_fill_f32: 1370 .LFB156: 1371 .file 10 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Title: arm_fill_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Description: Fills a constant value into a floating-point vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @defgroup Fill Vector Fill 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** Fills the destination vector with a constant value. 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c ****
  41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c ****       pDst[n] = value;   0 <= n < blockSize.
ARM GAS  /tmp/cce2LIhc.s 			page 68


  42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c ****   
43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** There are separate functions for floating point, Q31, Q15, and Q7 data types. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @addtogroup Fill 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @{ 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @brief Fills a constant value into a floating-point vector. 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @param[in] value input value to be filled 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @param[out] pDst points to output vector 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @param[in] blockSize number of samples in each vector 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** @return none 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** void arm_fill_f32( 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t value, 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t * pDst, 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blockSize) 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blkCnt; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize >> 2U; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Compute 4 outputs at a time */ 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** vstrwq_f32(pDst,vdupq_n_f32(value)); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Decrement the blockSize loop counter 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** * Advance vector source and destination pointers 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** pDst += 4; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt --; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize & 3; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* C = value */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Fill value in destination buffer */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Decrement loop counter */ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt--; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #else 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #if defined(ARM_MATH_NEON_EXPERIMENTAL) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** void arm_fill_f32( 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t value, ARM GAS /tmp/cce2LIhc.s page 69 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t * pDst, 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blockSize) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blkCnt; /* loop counter */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32x4_t inV = vdupq_n_f32(value); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize >> 2U; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Compute 4 outputs at a time. 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** ** a second loop below computes the remaining 1 to 3 samples. */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* C = value */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Fill the value in the destination buffer */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** vst1q_f32(pDst, inV); 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** pDst += 4; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Decrement the loop counter */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt--; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** ** No loop unrolling is used. */ 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize & 3; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* C = value */ 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Fill the value in the destination buffer */ 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Decrement the loop counter */ 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt--; 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #else 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** void arm_fill_f32( 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t value, 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** float32_t * pDst, 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blockSize) 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 1372 .loc 10 141 0 1373 .cfi_startproc 1374 @ args = 0, pretend = 0, frame = 0 1375 @ frame_needed = 0, uses_anonymous_args = 0 1376 @ link register save eliminated. 1377 .LVL164: 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** uint32_t blkCnt; /* Loop counter */ 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #if defined (ARM_MATH_LOOPUNROLL) 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Loop unrolling: Compute 4 outputs at a time */ 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize >> 2U; 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) ARM GAS /tmp/cce2LIhc.s page 70 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* C = value */ 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Fill value in destination buffer */ 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Decrement loop counter */ 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt--; 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Loop unrolling: Compute remaining outputs */ 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize % 0x4U; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #else 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Initialize blkCnt with number of samples */ 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt = blockSize; 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** while (blkCnt > 0U) 1378 .loc 10 173 0 1379 0000 19B1 cbz r1, .L208 1380 .LVL165: 1381 .L210: 1382 0002 0139 subs r1, r1, #1 1383 .LVL166: 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* C = value */ 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Fill value in destination buffer */ 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** *pDst++ = value; 1384 .loc 10 178 0 1385 0004 A0EC010A vstmia.32 r0!, {s0} 1386 .LVL167: 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** { 1387 .loc 10 173 0 1388 0008 FBD1 bne .L210 1389 .L208: 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** /* Decrement loop counter */ 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** blkCnt--; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c **** } 1390 .loc 10 183 0 1391 000a 7047 bx lr 1392 .cfi_endproc 1393 .LFE156: 1395 .section .text.arm_fill_q15,"ax",%progbits 1396 .align 1 1397 .p2align 2,,3 1398 .global arm_fill_q15 1399 .syntax unified 1400 .thumb ARM GAS /tmp/cce2LIhc.s page 71 1401 .thumb_func 1402 .fpu fpv4-sp-d16 1404 arm_fill_q15: 1405 .LFB157: 1406 .file 11 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Title: arm_fill_q15.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Description: Fills a constant value into a Q15 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @addtogroup Fill 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @brief Fills a constant value into a Q15 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @param[in] value input value to be filled 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** void arm_fill_q15( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** q15_t value, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** q15_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { ARM GAS /tmp/cce2LIhc.s page 72 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt = blockSize >> 3; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** while (blkCnt > 0U) 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** vstrhq_s16(pDst,vdupq_n_s16(value)); 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Decrement the blockSize loop counter 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** * Advance vector source and destination pointers 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** */ 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** pDst += 8; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt --; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt = blockSize & 7; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** while (blkCnt > 0U) 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* C = value */ 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Fill value in destination buffer */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** *pDst++ = value; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Decrement loop counter */ 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt--; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #else 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** void arm_fill_q15( 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** q15_t value, 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** q15_t * pDst, 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** uint32_t blockSize) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1407 .loc 11 85 0 1408 .cfi_startproc 1409 @ args = 0, pretend = 0, frame = 0 1410 @ frame_needed = 0, uses_anonymous_args = 0 1411 @ link register save eliminated. 1412 .LVL168: 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** uint32_t blkCnt; /* Loop counter */ 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** q31_t packedValue; /* value packed to 32 bits */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Packing two 16 bit values to 32 bit value in order to use SIMD */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** packedValue = __PKHBT(value, value, 16U); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Loop unrolling: Compute 4 outputs at a time */ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt = blockSize >> 2U; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** while (blkCnt > 0U) 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* C = value */ 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* fill 2 times 2 samples at a time */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** write_q15x2_ia (&pDst, packedValue); 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** write_q15x2_ia (&pDst, packedValue); ARM GAS /tmp/cce2LIhc.s page 73 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Decrement loop counter */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt--; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Loop unrolling: Compute remaining outputs */ 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt = blockSize % 0x4U; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #else 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Initialize blkCnt with number of samples */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt = blockSize; 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** while (blkCnt > 0U) 1413 .loc 11 119 0 1414 0000 92B3 cbz r2, .L239 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** uint32_t blkCnt; /* Loop counter */ 1415 .loc 11 85 0 1416 0002 F0B4 push {r4, r5, r6, r7} 1417 .LCFI19: 1418 .cfi_def_cfa_offset 16 1419 .cfi_offset 4, -16 1420 .cfi_offset 5, -12 1421 .cfi_offset 6, -8 1422 .cfi_offset 7, -4 1423 0004 551E subs r5, r2, #1 1424 0006 042D cmp r5, #4 1425 0008 2C46 mov r4, r5 1426 000a C1F34003 ubfx r3, r1, #1, #1 1427 000e 1AD9 bls .L217 1428 0010 3BB3 cbz r3, .L221 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* C = value */ 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Fill value in destination buffer */ 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** *pDst++ = value; 1429 .loc 11 124 0 1430 0012 0880 strh r0, [r1] @ movhi 1431 0014 8F1C adds r7, r1, #2 1432 .LVL169: 1433 .L218: 1434 0016 0024 movs r4, #0 1435 0018 D61A subs r6, r2, r3 1436 001a 60F30F04 bfi r4, r0, #0, #16 1437 .LVL170: 1438 001e 01EB4301 add r1, r1, r3, lsl #1 1439 0022 60F31F44 bfi r4, r0, #16, #16 1440 0026 7208 lsrs r2, r6, #1 1441 .LVL171: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1442 .loc 11 119 0 1443 0028 0023 movs r3, #0 1444 .LVL172: 1445 .L219: 1446 002a 0133 adds r3, r3, #1 ARM GAS /tmp/cce2LIhc.s page 74 1447 002c 9342 cmp r3, r2 1448 .loc 11 124 0 1449 002e 41F8044B str r4, [r1], #4 1450 0032 FAD3 bcc .L219 1451 0034 26F00103 bic r3, r6, #1 1452 0038 9E42 cmp r6, r3 1453 003a 07EB4301 add r1, r7, r3, lsl #1 1454 003e A5EB0302 sub r2, r5, r3 1455 0042 0CD0 beq .L215 1456 0044 541E subs r4, r2, #1 1457 .L217: 1458 .LVL173: 1459 0046 0880 strh r0, [r1] @ movhi 1460 .LVL174: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1461 .loc 11 119 0 1462 0048 4CB1 cbz r4, .L215 1463 .LVL175: 1464 004a 022A cmp r2, #2 1465 .loc 11 124 0 1466 004c 4880 strh r0, [r1, #2] @ movhi 1467 .LVL176: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1468 .loc 11 119 0 1469 004e 06D0 beq .L215 1470 .LVL177: 1471 0050 032A cmp r2, #3 1472 .loc 11 124 0 1473 0052 8880 strh r0, [r1, #4] @ movhi 1474 .LVL178: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1475 .loc 11 119 0 1476 0054 03D0 beq .L215 1477 .LVL179: 1478 0056 042A cmp r2, #4 1479 .loc 11 124 0 1480 0058 C880 strh r0, [r1, #6] @ movhi 1481 .LVL180: 1482 005a 18BF it ne 1483 005c 0881 strhne r0, [r1, #8] @ movhi 1484 .LVL181: 1485 .L215: 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** /* Decrement loop counter */ 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** blkCnt--; 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** } 1486 .loc 11 129 0 1487 005e F0BC pop {r4, r5, r6, r7} 1488 .LCFI20: 1489 .cfi_remember_state 1490 .cfi_restore 7 1491 .cfi_restore 6 1492 .cfi_restore 5 1493 .cfi_restore 4 1494 .cfi_def_cfa_offset 0 1495 0060 7047 bx lr ARM GAS /tmp/cce2LIhc.s page 75 1496 .LVL182: 1497 .L221: 1498 .LCFI21: 1499 .cfi_restore_state 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c **** { 1500 .loc 11 119 0 1501 0062 1546 mov r5, r2 1502 0064 0F46 mov r7, r1 1503 0066 D6E7 b .L218 1504 .L239: 1505 .LCFI22: 1506 .cfi_def_cfa_offset 0 1507 .cfi_restore 4 1508 .cfi_restore 5 1509 .cfi_restore 6 1510 .cfi_restore 7 1511 0068 7047 bx lr 1512 .cfi_endproc 1513 .LFE157: 1515 006a 00BF .section .text.arm_fill_q31,"ax",%progbits 1516 .align 1 1517 .p2align 2,,3 1518 .global arm_fill_q31 1519 .syntax unified 1520 .thumb 1521 .thumb_func 1522 .fpu fpv4-sp-d16 1524 arm_fill_q31: 1525 .LFB158: 1526 .file 12 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Title: arm_fill_q31.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Description: Fills a constant value into a Q31 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** */ ARM GAS /tmp/cce2LIhc.s page 76 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @addtogroup Fill 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @brief Fills a constant value into a Q31 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @param[in] value input value to be filled 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** void arm_fill_q31( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** q31_t value, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** q31_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt = blockSize >> 2U; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Compute 4 outputs at a time */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** while (blkCnt > 0U) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** vstrwq_s32(pDst,vdupq_n_s32(value)); 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Decrement the blockSize loop counter 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** * Advance vector source and destination pointers 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** */ 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** pDst += 4; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt --; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt = blockSize & 3; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** while (blkCnt > 0U) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* C = value */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Fill value in destination buffer */ 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Decrement loop counter */ 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt--; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #else 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** void arm_fill_q31( ARM GAS /tmp/cce2LIhc.s page 77 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** q31_t value, 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** q31_t * pDst, 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** uint32_t blockSize) 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 1527 .loc 12 88 0 1528 .cfi_startproc 1529 @ args = 0, pretend = 0, frame = 0 1530 @ frame_needed = 0, uses_anonymous_args = 0 1531 @ link register save eliminated. 1532 .LVL183: 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** uint32_t blkCnt; /* Loop counter */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Loop unrolling: Compute 4 outputs at a time */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt = blockSize >> 2U; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** while (blkCnt > 0U) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* C = value */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Fill value in destination buffer */ 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Decrement loop counter */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt--; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Loop unrolling: Compute remaining outputs */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt = blockSize % 0x4U; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #else 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Initialize blkCnt with number of samples */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt = blockSize; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** while (blkCnt > 0U) 1533 .loc 12 120 0 1534 0000 1AB1 cbz r2, .L242 1535 .LVL184: 1536 .L244: 1537 0002 013A subs r2, r2, #1 1538 .LVL185: 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* C = value */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Fill value in destination buffer */ 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** *pDst++ = value; 1539 .loc 12 125 0 1540 0004 41F8040B str r0, [r1], #4 1541 .LVL186: 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** { ARM GAS /tmp/cce2LIhc.s page 78 1542 .loc 12 120 0 1543 0008 FBD1 bne .L244 1544 .L242: 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** /* Decrement loop counter */ 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** blkCnt--; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c **** } 1545 .loc 12 130 0 1546 000a 7047 bx lr 1547 .cfi_endproc 1548 .LFE158: 1550 .section .text.arm_fill_q7,"ax",%progbits 1551 .align 1 1552 .p2align 2,,3 1553 .global arm_fill_q7 1554 .syntax unified 1555 .thumb 1556 .thumb_func 1557 .fpu fpv4-sp-d16 1559 arm_fill_q7: 1560 .LFB159: 1561 .file 13 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Title: arm_fill_q7.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Description: Fills a constant value into a Q7 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** ARM GAS /tmp/cce2LIhc.s page 79 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @addtogroup Fill 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @brief Fills a constant value into a Q7 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @param[in] value input value to be filled 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @param[out] pDst points to output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #if defined(ARM_MATH_MVEI) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** void arm_fill_q7( 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** q7_t value, 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** q7_t * pDst, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt = blockSize >> 4; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** while (blkCnt > 0U) 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** vstrbq_s8(pDst,vdupq_n_s8(value)); 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Decrement the blockSize loop counter 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** * Advance vector source and destination pointers 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** */ 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** pDst += 16; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt --; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt = blockSize & 0xF; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** while (blkCnt > 0U) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* C = value */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Fill value in destination buffer */ 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** *pDst++ = value; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Decrement loop counter */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt--; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #else 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** void arm_fill_q7( 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** q7_t value, 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** q7_t * pDst, 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** uint32_t blockSize) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 1562 .loc 13 85 0 1563 .cfi_startproc 1564 @ args = 0, pretend = 0, frame = 0 1565 @ frame_needed = 0, uses_anonymous_args = 0 1566 @ link register save eliminated. 1567 .LVL187: ARM GAS /tmp/cce2LIhc.s page 80 1568 .loc 13 85 0 1569 0000 0B46 mov r3, r1 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** uint32_t blkCnt; /* Loop counter */ 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** q31_t packedValue; /* value packed to 32 bits */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Packing four 8 bit values to 32 bit value in order to use SIMD */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** packedValue = __PACKq7(value, value, value, value); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Loop unrolling: Compute 4 outputs at a time */ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt = blockSize >> 2U; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** while (blkCnt > 0U) 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* C = value */ 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* fill 4 samples at a time */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** write_q7x4_ia (&pDst, packedValue); 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Decrement loop counter */ 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt--; 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Loop unrolling: Compute remaining outputs */ 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt = blockSize % 0x4U; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #else 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Initialize blkCnt with number of samples */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt = blockSize; 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** while (blkCnt > 0U) 1570 .loc 13 118 0 1571 0002 1AB1 cbz r2, .L249 1572 0004 0146 mov r1, r0 1573 .LVL188: 1574 0006 1846 mov r0, r3 1575 .LVL189: 1576 0008 FFF7FEBF b memset 1577 .LVL190: 1578 .L249: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** { 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* C = value */ 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Fill value in destination buffer */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** *pDst++ = value; 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** /* Decrement loop counter */ 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** blkCnt--; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c **** } 1579 .loc 13 128 0 1580 000c 7047 bx lr 1581 .cfi_endproc ARM GAS /tmp/cce2LIhc.s page 81 1582 .LFE159: 1584 000e 00BF .section .text.arm_heap_sort_f32,"ax",%progbits 1585 .align 1 1586 .p2align 2,,3 1587 .global arm_heap_sort_f32 1588 .syntax unified 1589 .thumb 1590 .thumb_func 1591 .fpu fpv4-sp-d16 1593 arm_heap_sort_f32: 1594 .LFB161: 1595 .file 14 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Title: arm_heap_sort_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Description: Floating point heap sort 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** static void arm_heapify(float32_t * pSrc, uint32_t n, uint32_t i, uint8_t dir) 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /* Put all the elements of pSrc in heap order */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t k = i; // Initialize largest/smallest as root 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t l = 2*i + 1; // left = 2*i + 1 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t r = 2*i + 2; // right = 2*i + 2 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t temp; 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** if (l < n && dir==(pSrc[l] > pSrc[k]) ) 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = l; 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** if (r < n && dir==(pSrc[r] > pSrc[k]) ) ARM GAS /tmp/cce2LIhc.s page 82 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = r; 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** if (k != i) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** temp = pSrc[i]; 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pSrc[i]=pSrc[k]; 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pSrc[k]=temp; 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** arm_heapify(pSrc, n, k, dir); 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** } 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** } 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** @ingroup groupSupport 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** */ 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** @addtogroup Sorting 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** @{ 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** */ 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** /** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @private 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @param[in] S points to an instance of the sorting structure. 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @param[in] pSrc points to the block of input data. 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @param[out] pDst points to the block of output data 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @param[in] blockSize number of samples to process. 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @par Algorithm 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * The heap sort algorithm is a comparison algorithm that 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * divides the input array into a sorted and an unsorted region, 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * and shrinks the unsorted region by extracting the largest 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * element and moving it to the sorted region. A heap data 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * structure is used to find the maximum. 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * @par It's an in-place algorithm. In order to obtain an out-of-place 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** * function, a memcpy of the source vector is performed. 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** */ 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** void arm_heap_sort_f32( 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** const arm_sort_instance_f32 * S, 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t * pSrc, 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t * pDst, 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t blockSize) 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 1596 .loc 14 89 0 1597 .cfi_startproc 1598 @ args = 0, pretend = 0, frame = 0 1599 @ frame_needed = 0, uses_anonymous_args = 0 1600 .LVL191: 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t * pA; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** int32_t i; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t temp; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** if(pSrc != pDst) // out-of-place 1601 .loc 14 94 0 1602 0000 8A42 cmp r2, r1 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t * pA; ARM GAS /tmp/cce2LIhc.s page 83 1603 .loc 14 89 0 1604 0002 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1605 .LCFI23: 1606 .cfi_def_cfa_offset 24 1607 .cfi_offset 4, -24 1608 .cfi_offset 5, -20 1609 .cfi_offset 6, -16 1610 .cfi_offset 7, -12 1611 .cfi_offset 8, -8 1612 .cfi_offset 14, -4 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t * pA; 1613 .loc 14 89 0 1614 0006 1446 mov r4, r2 1615 0008 0646 mov r6, r0 1616 000a 1D46 mov r5, r3 1617 .loc 14 94 0 1618 000c 03D0 beq .L252 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** memcpy(pDst, pSrc, blockSize*sizeof(float32_t) ); 1619 .loc 14 96 0 1620 000e 9A00 lsls r2, r3, #2 1621 .LVL192: 1622 0010 2046 mov r0, r4 1623 .LVL193: 1624 0012 FFF7FEFF bl memcpy 1625 .LVL194: 1626 .L252: 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA = pDst; 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** } 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** else 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA = pSrc; 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** // Build the heap array so that the largest value is the root 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** for (i = blockSize/2 - 1; i >= 0; i--) 1627 .loc 14 103 0 1628 0016 6B08 lsrs r3, r5, #1 1629 .LVL195: 1630 0018 03F1FF38 add r8, r3, #-1 1631 .LVL196: 1632 001c 002B cmp r3, #0 1633 001e 45D0 beq .L253 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** arm_heapify(pA, blockSize, i, S->dir); 1634 .loc 14 104 0 1635 0020 96F801E0 ldrb lr, [r6, #1] @ zero_extendqisi2 1636 .LVL197: 1637 .L258: 1638 .loc 14 104 0 is_stmt 0 discriminator 3 1639 0024 4246 mov r2, r8 1640 .LVL198: 1641 0026 22E0 b .L257 1642 .LVL199: 1643 .L254: 1644 .LBB70: 1645 .LBB71: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = r; 1646 .loc 14 45 0 is_stmt 1 1647 0028 8542 cmp r5, r0 ARM GAS /tmp/cce2LIhc.s page 84 1648 002a 3CD9 bls .L256 1649 002c 1346 mov r3, r2 1650 .LVL200: 1651 002e 9100 lsls r1, r2, #2 1652 .LVL201: 1653 .L265: 1654 0030 2144 add r1, r1, r4 1655 0032 04EB8007 add r7, r4, r0, lsl #2 1656 0036 D7ED007A vldr.32 s15, [r7] 1657 003a 91ED007A vldr.32 s14, [r1] 1658 003e F4EEC77A vcmpe.f32 s15, s14 1659 0042 F1EE10FA vmrs APSR_nzcv, FPSCR 1660 0046 CCBF ite gt 1661 0048 4FF0010C movgt ip, #1 1662 004c 4FF0000C movle ip, #0 1663 0050 F445 cmp ip, lr 1664 0052 1ABF itte ne 1665 0054 F0EE477A vmovne.f32 s15, s14 1666 0058 0F46 movne r7, r1 1667 005a 0346 moveq r3, r0 1668 .LVL202: 1669 .L255: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 1670 .loc 14 48 0 1671 005c 9A42 cmp r2, r3 1672 005e 22D0 beq .L256 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pSrc[i]=pSrc[k]; 1673 .loc 14 50 0 1674 0060 04EB8202 add r2, r4, r2, lsl #2 1675 0064 1168 ldr r1, [r2] @ float 1676 .LVL203: 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pSrc[k]=temp; 1677 .loc 14 51 0 1678 0066 C2ED007A vstr.32 s15, [r2] 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 1679 .loc 14 52 0 1680 006a 1A46 mov r2, r3 1681 006c 3960 str r1, [r7] @ float 1682 .LVL204: 1683 .L257: 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t r = 2*i + 2; // right = 2*i + 2 1684 .loc 14 38 0 1685 006e 5100 lsls r1, r2, #1 1686 0070 4B1C adds r3, r1, #1 1687 .LVL205: 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = l; 1688 .loc 14 42 0 1689 0072 9D42 cmp r5, r3 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t temp; 1690 .loc 14 39 0 1691 0074 01F10200 add r0, r1, #2 1692 .LVL206: 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = l; 1693 .loc 14 42 0 1694 0078 D6D9 bls .L254 1695 007a 9900 lsls r1, r3, #2 1696 007c 04EB820C add ip, r4, r2, lsl #2 ARM GAS /tmp/cce2LIhc.s page 85 1697 0080 6718 adds r7, r4, r1 1698 0082 9CED007A vldr.32 s14, [ip] 1699 0086 D7ED007A vldr.32 s15, [r7] 1700 008a F4EEC77A vcmpe.f32 s15, s14 1701 008e F1EE10FA vmrs APSR_nzcv, FPSCR 1702 0092 CCBF ite gt 1703 0094 4FF0010C movgt ip, #1 1704 0098 4FF0000C movle ip, #0 1705 009c F445 cmp ip, lr 1706 009e C3D1 bne .L254 1707 .LVL207: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = r; 1708 .loc 14 45 0 1709 00a0 8542 cmp r5, r0 1710 00a2 DBD9 bls .L255 1711 00a4 C4E7 b .L265 1712 .LVL208: 1713 .L256: 1714 .LBE71: 1715 .LBE70: 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** arm_heapify(pA, blockSize, i, S->dir); 1716 .loc 14 103 0 discriminator 3 1717 00a6 18F1FF38 adds r8, r8, #-1 1718 .LVL209: 1719 00aa BBD2 bcs .L258 1720 .LVL210: 1721 .L253: 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** for (i = blockSize - 1; i >= 0; i--) 1722 .loc 14 106 0 1723 00ac 6F1E subs r7, r5, #1 1724 .LVL211: 1725 00ae 49D4 bmi .L251 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** // Swap 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** temp = pA[i]; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA[i] = pA[0]; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA[0] = temp; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** // Restore heap order 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** arm_heapify(pA, i, 0, S->dir); 1726 .loc 14 114 0 1727 00b0 7678 ldrb r6, [r6, #1] @ zero_extendqisi2 1728 .LVL212: 1729 00b2 04EB8505 add r5, r4, r5, lsl #2 1730 .LVL213: 1731 .L264: 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA[i] = pA[0]; 1732 .loc 14 109 0 discriminator 3 1733 00b6 35ED017A vldmdb.32 r5!, {s14} 1734 .LVL214: 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pA[0] = temp; 1735 .loc 14 110 0 discriminator 3 1736 00ba 2268 ldr r2, [r4] @ float 1737 00bc 2A60 str r2, [r5] @ float 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 1738 .loc 14 111 0 discriminator 3 ARM GAS /tmp/cce2LIhc.s page 86 1739 00be 0023 movs r3, #0 1740 00c0 84ED007A vstr.32 s14, [r4] 1741 .LVL215: 1742 00c4 21E0 b .L263 1743 .LVL216: 1744 .L260: 1745 .LBB72: 1746 .LBB73: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = r; 1747 .loc 14 45 0 1748 00c6 9742 cmp r7, r2 1749 00c8 39D9 bls .L262 1750 00ca F0EE476A vmov.f32 s13, s14 1751 00ce 1946 mov r1, r3 1752 .LVL217: 1753 .L266: 1754 00d0 04EB8200 add r0, r4, r2, lsl #2 1755 00d4 D0ED007A vldr.32 s15, [r0] 1756 00d8 F4EEE67A vcmpe.f32 s15, s13 1757 00dc F1EE10FA vmrs APSR_nzcv, FPSCR 1758 00e0 CCBF ite gt 1759 00e2 4FF0010C movgt ip, #1 1760 00e6 4FF0000C movle ip, #0 1761 00ea B445 cmp ip, r6 1762 00ec 1ABF itte ne 1763 00ee F0EE667A vmovne.f32 s15, s13 1764 00f2 04EB8100 addne r0, r4, r1, lsl #2 1765 00f6 1146 moveq r1, r2 1766 .LVL218: 1767 .L261: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 1768 .loc 14 48 0 1769 00f8 8B42 cmp r3, r1 1770 00fa 20D0 beq .L262 1771 .LVL219: 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** pSrc[k]=temp; 1772 .loc 14 51 0 1773 00fc 04EB8303 add r3, r4, r3, lsl #2 1774 .LVL220: 1775 0100 C3ED007A vstr.32 s15, [r3] 1776 .LVL221: 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** 1777 .loc 14 52 0 1778 0104 0B46 mov r3, r1 1779 0106 80ED007A vstr.32 s14, [r0] 1780 .LVL222: 1781 .L263: 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** uint32_t r = 2*i + 2; // right = 2*i + 2 1782 .loc 14 38 0 1783 010a 5A00 lsls r2, r3, #1 1784 010c 511C adds r1, r2, #1 1785 .LVL223: 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = l; 1786 .loc 14 42 0 1787 010e 8F42 cmp r7, r1 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** float32_t temp; 1788 .loc 14 39 0 ARM GAS /tmp/cce2LIhc.s page 87 1789 0110 02F10202 add r2, r2, #2 1790 .LVL224: 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = l; 1791 .loc 14 42 0 1792 0114 D7D9 bls .L260 1793 0116 04EB8100 add r0, r4, r1, lsl #2 1794 011a D0ED007A vldr.32 s15, [r0] 1795 011e B4EEE77A vcmpe.f32 s14, s15 1796 0122 F1EE10FA vmrs APSR_nzcv, FPSCR 1797 0126 4CBF ite mi 1798 0128 4FF0010C movmi ip, #1 1799 012c 4FF0000C movpl ip, #0 1800 0130 B445 cmp ip, r6 1801 0132 C8D1 bne .L260 1802 .LVL225: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** k = r; 1803 .loc 14 45 0 1804 0134 9742 cmp r7, r2 1805 0136 DFD9 bls .L261 1806 0138 F0EE676A vmov.f32 s13, s15 1807 013c C8E7 b .L266 1808 .LVL226: 1809 .L262: 1810 .LBE73: 1811 .LBE72: 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** { 1812 .loc 14 106 0 discriminator 3 1813 013e 17F1FF37 adds r7, r7, #-1 1814 .LVL227: 1815 0142 B8D2 bcs .L264 1816 .LVL228: 1817 .L251: 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** } 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_heap_sort_f32.c **** } 1818 .loc 14 116 0 1819 0144 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1820 .cfi_endproc 1821 .LFE161: 1823 .section .text.arm_insertion_sort_f32,"ax",%progbits 1824 .align 1 1825 .p2align 2,,3 1826 .global arm_insertion_sort_f32 1827 .syntax unified 1828 .thumb 1829 .thumb_func 1830 .fpu fpv4-sp-d16 1832 arm_insertion_sort_f32: 1833 .LFB162: 1834 .file 15 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Title: arm_insertion_sort_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Description: Floating point insertion sort 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * ARM GAS /tmp/cce2LIhc.s page 88 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** @ingroup groupSupport 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** */ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** /** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** @addtogroup Sorting 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** @{ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** */ 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @private 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @param[in] S points to an instance of the sorting structure. 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @param[in] pSrc points to the block of input data. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @param[out] pDst points to the block of output data 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @param[in] blockSize number of samples to process. 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @par Algorithm 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * The insertion sort is a simple sorting algorithm that 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * reads all the element of the input array and removes one element 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * at a time, finds the location it belongs in the final sorted list, 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * and inserts it there. 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * @par It's an in-place algorithm. In order to obtain an out-of-place 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** * function, a memcpy of the source vector is performed. 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** void arm_insertion_sort_f32( 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** const arm_sort_instance_f32 * S, 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t *pSrc, 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t* pDst, 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** uint32_t blockSize) 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 1835 .loc 15 63 0 1836 .cfi_startproc ARM GAS /tmp/cce2LIhc.s page 89 1837 @ args = 0, pretend = 0, frame = 0 1838 @ frame_needed = 0, uses_anonymous_args = 0 1839 .LVL229: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t * pA; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** uint8_t dir = S->dir; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** uint32_t i, j; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t temp; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** if(pSrc != pDst) // out-of-place 1840 .loc 15 69 0 1841 0000 8A42 cmp r2, r1 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t * pA; 1842 .loc 15 63 0 1843 0002 F8B5 push {r3, r4, r5, r6, r7, lr} 1844 .LCFI24: 1845 .cfi_def_cfa_offset 24 1846 .cfi_offset 3, -24 1847 .cfi_offset 4, -20 1848 .cfi_offset 5, -16 1849 .cfi_offset 6, -12 1850 .cfi_offset 7, -8 1851 .cfi_offset 14, -4 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** float32_t * pA; 1852 .loc 15 63 0 1853 0004 1446 mov r4, r2 1854 0006 1F46 mov r7, r3 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** uint32_t i, j; 1855 .loc 15 65 0 1856 0008 4678 ldrb r6, [r0, #1] @ zero_extendqisi2 1857 .LVL230: 1858 .loc 15 69 0 1859 000a 03D0 beq .L278 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** memcpy(pDst, pSrc, blockSize*sizeof(float32_t) ); 1860 .loc 15 71 0 1861 000c 9A00 lsls r2, r3, #2 1862 .LVL231: 1863 000e 2046 mov r0, r4 1864 .LVL232: 1865 0010 FFF7FEFF bl memcpy 1866 .LVL233: 1867 .L278: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** pA = pDst; 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** } 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** else 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** pA = pSrc; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** // Real all the element of the input array 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** for(i=0; i0 && dir==(pA[j]buffer, pSrc, blockSize*sizeof(float32_t)); 1977 .loc 2 121 0 1978 001e 3A46 mov r2, r7 1979 0020 3146 mov r1, r6 1980 0022 D8F80400 ldr r0, [r8, #4] 1981 0026 FFF7FEFF bl memcpy 1982 .LVL246: 1983 .LBB79: 1984 .LBB80: ARM GAS /tmp/cce2LIhc.s page 93 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 1985 .loc 2 63 0 1986 002a 012D cmp r5, #1 1987 002c 02DC bgt .L305 1988 .LVL247: 1989 .L295: 1990 .LBE80: 1991 .LBE79: 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(S->buffer, 0, blockSize, pA, S->dir); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 1992 .loc 2 124 0 1993 002e 02B0 add sp, sp, #8 1994 .LCFI27: 1995 .cfi_remember_state 1996 .cfi_def_cfa_offset 24 1997 @ sp needed 1998 0030 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1999 .LVL248: 2000 .L305: 2001 .LCFI28: 2002 .cfi_restore_state 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 2003 .loc 2 123 0 2004 0034 D8F80460 ldr r6, [r8, #4] 2005 .LVL249: 2006 0038 98F80080 ldrb r8, [r8] @ zero_extendqisi2 2007 .LVL250: 2008 .LBB85: 2009 .LBB84: 2010 .LBB81: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, middle, end, pB, dir); // Sort the right part 2011 .loc 2 67 0 2012 003c CDF80080 str r8, [sp] 2013 .LVL251: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 2014 .loc 2 65 0 2015 0040 6F08 lsrs r7, r5, #1 2016 .LVL252: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** arm_merge_sort_core_f32(pA, middle, end, pB, dir); // Sort the right part 2017 .loc 2 67 0 2018 0042 3346 mov r3, r6 2019 0044 3A46 mov r2, r7 2020 0046 0021 movs r1, #0 2021 0048 2046 mov r0, r4 2022 004a FFF7FEFF bl arm_merge_sort_core_f32 2023 .LVL253: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** 2024 .loc 2 68 0 2025 004e 3346 mov r3, r6 2026 0050 3946 mov r1, r7 2027 0052 2A46 mov r2, r5 2028 0054 2046 mov r0, r4 2029 0056 CDF80080 str r8, [sp] 2030 005a FFF7FEFF bl arm_merge_sort_core_f32 2031 .LVL254: 2032 .LBB82: ARM GAS /tmp/cce2LIhc.s page 94 2033 .LBB83: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 2034 .loc 2 45 0 2035 005e 0023 movs r3, #0 2036 0060 2246 mov r2, r4 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** uint32_t k; 2037 .loc 2 41 0 2038 0062 3946 mov r1, r7 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** uint32_t j = middle; 2039 .loc 2 40 0 2040 0064 1846 mov r0, r3 2041 0066 18E0 b .L302 2042 .LVL255: 2043 .L306: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 2044 .loc 2 48 0 2045 0068 8D42 cmp r5, r1 2046 006a 06EB810C add ip, r6, r1, lsl #2 2047 006e 94ED007A vldr.32 s14, [r4] 2048 0072 1BD9 bls .L299 2049 0074 DCED007A vldr.32 s15, [ip] 2050 0078 B4EEE77A vcmpe.f32 s14, s15 2051 007c F1EE10FA vmrs APSR_nzcv, FPSCR 2052 0080 94BF ite ls 2053 0082 0124 movls r4, #1 2054 0084 0024 movhi r4, #0 2055 0086 4445 cmp r4, r8 2056 0088 10D0 beq .L299 2057 .L300: 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** j++; 2058 .loc 2 55 0 2059 008a C2ED007A vstr.32 s15, [r2] 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 2060 .loc 2 56 0 2061 008e 0131 adds r1, r1, #1 2062 .LVL256: 2063 .L301: 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 2064 .loc 2 45 0 2065 0090 0133 adds r3, r3, #1 2066 .LVL257: 2067 0092 9D42 cmp r5, r3 2068 0094 02F10402 add r2, r2, #4 2069 0098 C9D0 beq .L295 2070 .LVL258: 2071 .L302: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** { 2072 .loc 2 48 0 2073 009a 8742 cmp r7, r0 2074 009c 06EB8004 add r4, r6, r0, lsl #2 2075 00a0 E2D8 bhi .L306 2076 00a2 06EB8104 add r4, r6, r1, lsl #2 2077 00a6 D4ED007A vldr.32 s15, [r4] 2078 00aa EEE7 b .L300 2079 .L299: 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** i++; 2080 .loc 2 50 0 ARM GAS /tmp/cce2LIhc.s page 95 2081 00ac 82ED007A vstr.32 s14, [r2] 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_f32.c **** } 2082 .loc 2 51 0 2083 00b0 0130 adds r0, r0, #1 2084 .LVL259: 2085 00b2 EDE7 b .L301 2086 .LBE83: 2087 .LBE82: 2088 .LBE81: 2089 .LBE84: 2090 .LBE85: 2091 .cfi_endproc 2092 .LFE165: 2094 .section .text.arm_merge_sort_init_f32,"ax",%progbits 2095 .align 1 2096 .p2align 2,,3 2097 .global arm_merge_sort_init_f32 2098 .syntax unified 2099 .thumb 2100 .thumb_func 2101 .fpu fpv4-sp-d16 2103 arm_merge_sort_init_f32: 2104 .LFB166: 2105 .file 16 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_ 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Title: arm_merge_sort_init_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Description: Floating point merge sort initialization function 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** */ ARM GAS /tmp/cce2LIhc.s page 96 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** @addtogroup Sorting 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * @param[in,out] S points to an instance of the sorting structure. 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * @param[in] dir Sorting order. 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** * @param[in] buffer Working buffer. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** void arm_merge_sort_init_f32(arm_merge_sort_instance_f32 * S, arm_sort_dir dir, float32_t * buffer) 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** { 2106 .loc 16 47 0 2107 .cfi_startproc 2108 @ args = 0, pretend = 0, frame = 0 2109 @ frame_needed = 0, uses_anonymous_args = 0 2110 @ link register save eliminated. 2111 .LVL260: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** S->dir = dir; 2112 .loc 16 48 0 2113 0000 0170 strb r1, [r0] 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** S->buffer = buffer; 2114 .loc 16 49 0 2115 0002 4260 str r2, [r0, #4] 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_merge_sort_init_f32.c **** } 2116 .loc 16 50 0 2117 0004 7047 bx lr 2118 .cfi_endproc 2119 .LFE166: 2121 0006 00BF .section .text.arm_quick_sort_f32,"ax",%progbits 2122 .align 1 2123 .p2align 2,,3 2124 .global arm_quick_sort_f32 2125 .syntax unified 2126 .thumb 2127 .thumb_func 2128 .fpu fpv4-sp-d16 2130 arm_quick_sort_f32: 2131 .LFB169: 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** @ingroup groupSupport 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** @addtogroup Sorting 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** @{ 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** */ 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @private 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @param[in] S points to an instance of the sorting structure. 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @param[in,out] pSrc points to the block of input data. 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @param[out] pDst points to the block of output data. 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @param[in] blockSize number of samples to process. ARM GAS /tmp/cce2LIhc.s page 97 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @par Algorithm 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * The quick sort algorithm is a comparison algorithm that 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * divides the input array into two smaller sub-arrays and 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * recursively sort them. An element of the array (the pivot) 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * is chosen, all the elements with values smaller than the 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * pivot are moved before the pivot, while all elements with 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * values greater than the pivot are moved after it (partition). 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @par 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * In this implementation the Hoare partition scheme has been 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * used [Hoare, C. A. R. (1 January 1962). "Quicksort". The Computer 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * Journal. 5 (1): 10–16.] The first element has always been chosen 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * as the pivot. The partition algorithm guarantees that the returned 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * pivot is never placed outside the vector, since it is returned only 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * when the pointers crossed each other. In this way it isn't 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * possible to obtain empty partitions and infinite recursion is avoided. 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * @par 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * It's an in-place algorithm. In order to obtain an out-of-place 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * function, a memcpy of the source vector is performed. 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** void arm_quick_sort_f32( 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** const arm_sort_instance_f32 * S, 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t * pSrc, 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t * pDst, 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** uint32_t blockSize) 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 2132 .loc 1 163 0 2133 .cfi_startproc 2134 @ args = 0, pretend = 0, frame = 0 2135 @ frame_needed = 0, uses_anonymous_args = 0 2136 .LVL261: 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t * pA; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* Out-of-place */ 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** if(pSrc != pDst) 2137 .loc 1 167 0 2138 0000 8A42 cmp r2, r1 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t * pA; 2139 .loc 1 163 0 2140 0002 70B5 push {r4, r5, r6, lr} 2141 .LCFI29: 2142 .cfi_def_cfa_offset 16 2143 .cfi_offset 4, -16 2144 .cfi_offset 5, -12 2145 .cfi_offset 6, -8 2146 .cfi_offset 14, -4 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** float32_t * pA; 2147 .loc 1 163 0 2148 0004 1446 mov r4, r2 2149 0006 0646 mov r6, r0 2150 0008 1D46 mov r5, r3 2151 .loc 1 167 0 2152 000a 03D0 beq .L309 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 98 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** memcpy(pDst, pSrc, blockSize*sizeof(float32_t) ); 2153 .loc 1 169 0 2154 000c 9A00 lsls r2, r3, #2 2155 .LVL262: 2156 000e 2046 mov r0, r4 2157 .LVL263: 2158 0010 FFF7FEFF bl memcpy 2159 .LVL264: 2160 .L309: 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pA = pDst; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** else 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pA = pSrc; 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** arm_quick_sort_core_f32(pA, 0, blockSize-1, S->dir); 2161 .loc 1 175 0 2162 0014 7378 ldrb r3, [r6, #1] @ zero_extendqisi2 2163 0016 6A1E subs r2, r5, #1 2164 0018 2046 mov r0, r4 2165 001a 0021 movs r1, #0 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The previous function could be called recursively a maximum 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** * of (blockSize-1) times, generating a stack consumption of 4*(blockSize-1) bytes. */ 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** } 2166 .loc 1 178 0 2167 001c BDE87040 pop {r4, r5, r6, lr} 2168 .LCFI30: 2169 .cfi_restore 14 2170 .cfi_restore 6 2171 .cfi_restore 5 2172 .cfi_restore 4 2173 .cfi_def_cfa_offset 0 2174 .LVL265: 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The previous function could be called recursively a maximum 2175 .loc 1 175 0 2176 0020 FFF7FEBF b arm_quick_sort_core_f32 2177 .LVL266: 2178 .cfi_endproc 2179 .LFE169: 2181 .section .text.arm_selection_sort_f32,"ax",%progbits 2182 .align 1 2183 .p2align 2,,3 2184 .global arm_selection_sort_f32 2185 .syntax unified 2186 .thumb 2187 .thumb_func 2188 .fpu fpv4-sp-d16 2190 arm_selection_sort_f32: 2191 .LFB170: 2192 .file 17 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Title: arm_selection_sort_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Description: Floating point selection sort 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * ARM GAS /tmp/cce2LIhc.s page 99 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** @ingroup groupSupport 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** */ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** @addtogroup Sorting 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** @{ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** */ 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @private 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @param[in] S points to an instance of the sorting structure. 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @param[in] pSrc points to the block of input data. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @param[out] pDst points to the block of output data 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @param[in] blockSize number of samples to process. 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @par Algorithm 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * The Selection sort algorithm is a comparison algorithm that 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * divides the input array into a sorted and an unsorted sublist 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * (initially the sorted sublist is empty and the unsorted sublist 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * is the input array), looks for the smallest (or biggest) 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * element in the unsorted sublist, swapping it with the leftmost 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * one, and moving the sublists boundary one element to the right. 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * @par It's an in-place algorithm. In order to obtain an out-of-place 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** * function, a memcpy of the source vector is performed. 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** */ 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** void arm_selection_sort_f32( 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** const arm_sort_instance_f32 * S, 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t * pSrc, 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t * pDst, 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** uint32_t blockSize) 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 100 2193 .loc 17 65 0 2194 .cfi_startproc 2195 @ args = 0, pretend = 0, frame = 0 2196 @ frame_needed = 0, uses_anonymous_args = 0 2197 .LVL267: 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** uint32_t i, j, k; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** uint8_t dir = S->dir; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t temp; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t * pA; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** if(pSrc != pDst) // out-of-place 2198 .loc 17 72 0 2199 0000 8A42 cmp r2, r1 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** uint32_t i, j, k; 2200 .loc 17 65 0 2201 0002 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2202 .LCFI31: 2203 .cfi_def_cfa_offset 32 2204 .cfi_offset 4, -32 2205 .cfi_offset 5, -28 2206 .cfi_offset 6, -24 2207 .cfi_offset 7, -20 2208 .cfi_offset 8, -16 2209 .cfi_offset 9, -12 2210 .cfi_offset 10, -8 2211 .cfi_offset 14, -4 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** uint32_t i, j, k; 2212 .loc 17 65 0 2213 0006 9046 mov r8, r2 2214 0008 1E46 mov r6, r3 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t temp; 2215 .loc 17 67 0 2216 000a 4778 ldrb r7, [r0, #1] @ zero_extendqisi2 2217 .LVL268: 2218 .loc 17 72 0 2219 000c 03D0 beq .L312 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** memcpy(pDst, pSrc, blockSize*sizeof(float32_t) ); 2220 .loc 17 74 0 2221 000e 9A00 lsls r2, r3, #2 2222 .LVL269: 2223 0010 4046 mov r0, r8 2224 .LVL270: 2225 0012 FFF7FEFF bl memcpy 2226 .LVL271: 2227 .L312: 2228 0016 06F1FF3A add r10, r6, #-1 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** pA = pDst; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** } 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** else 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** pA = pSrc; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** /* Move the boundary one element to the right */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** for (i=0; ialg) 2329 .loc 18 57 0 2330 0006 0078 ldrb r0, [r0] @ zero_extendqisi2 2331 .LVL283: 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** switch(S->alg) 2332 .loc 18 56 0 2333 0008 1446 mov r4, r2 2334 000a 1D46 mov r5, r3 2335 .loc 18 57 0 2336 000c 0528 cmp r0, #5 2337 000e 32D8 bhi .L325 2338 0010 DFE800F0 tbb [pc, r0] 2339 .LVL284: 2340 .L328: 2341 0014 6C .byte (.L327-.L328)/2 2342 0015 03 .byte (.L329-.L328)/2 2343 0016 72 .byte (.L330-.L328)/2 2344 0017 78 .byte (.L331-.L328)/2 2345 0018 AD .byte (.L332-.L328)/2 2346 0019 33 .byte (.L333-.L328)/2 2347 .p2align 1 2348 .L329: 2349 .LBB94: 2350 .LBB95: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2351 .loc 5 72 0 2352 001a 9142 cmp r1, r2 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** uint32_t i; 2353 .loc 5 66 0 2354 001c 7678 ldrb r6, [r6, #1] @ zero_extendqisi2 2355 .LVL285: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2356 .loc 5 72 0 2357 001e 03D0 beq .L334 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA = pDst; 2358 .loc 5 74 0 2359 0020 AA00 lsls r2, r5, #2 2360 .LVL286: 2361 0022 2046 mov r0, r4 2362 0024 FFF7FEFF bl memcpy 2363 .LVL287: 2364 .L334: 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 2365 .loc 5 82 0 2366 0028 0027 movs r7, #0 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2367 .loc 5 84 0 2368 002a 3A46 mov r2, r7 2369 .LVL288: ARM GAS /tmp/cce2LIhc.s page 105 2370 .L335: 2371 002c 691E subs r1, r5, #1 2372 002e 8A42 cmp r2, r1 2373 0030 80F0AB80 bcs .L369 2374 .LVL289: 2375 .L338: 2376 0034 04EB8203 add r3, r4, r2, lsl #2 2377 .L336: 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2378 .loc 5 86 0 2379 0038 D3ED007A vldr.32 s15, [r3] 2380 003c 0433 adds r3, r3, #4 2381 003e 93ED007A vldr.32 s14, [r3] 2382 0042 F4EEC77A vcmpe.f32 s15, s14 2383 0046 F1EE10FA vmrs APSR_nzcv, FPSCR 2384 004a CCBF ite gt 2385 004c 0120 movgt r0, #1 2386 004e 0020 movle r0, #0 2387 0050 B042 cmp r0, r6 2388 0052 02F10102 add r2, r2, #1 2389 0056 E9D1 bne .L335 2390 .LVL290: 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2391 .loc 5 84 0 2392 0058 8A42 cmp r2, r1 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** pA[i+1] = temp; 2393 .loc 5 90 0 2394 005a 03ED017A vstr.32 s14, [r3, #-4] 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** 2395 .loc 5 91 0 2396 005e C3ED007A vstr.32 s15, [r3] 2397 .LVL291: 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** } 2398 .loc 5 94 0 2399 0062 4FF00107 mov r7, #1 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2400 .loc 5 84 0 2401 0066 E7D3 bcc .L336 2402 .LVL292: 2403 .L368: 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2404 .loc 5 80 0 2405 0068 0D46 mov r5, r1 2406 .LVL293: 2407 006a 0022 movs r2, #0 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2408 .loc 5 84 0 2409 006c 012D cmp r5, #1 2410 006e 01F1FF31 add r1, r1, #-1 2411 0072 1746 mov r7, r2 2412 0074 DED1 bne .L338 2413 .LVL294: 2414 .L325: 2415 .LBE95: 2416 .LBE94: 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_BITONIC: ARM GAS /tmp/cce2LIhc.s page 106 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_bitonic_sort_f32(S, pSrc, pDst, blockSize); 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_BUBBLE: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_bubble_sort_f32(S, pSrc, pDst, blockSize); 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_HEAP: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_heap_sort_f32(S, pSrc, pDst, blockSize); 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_INSERTION: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_insertion_sort_f32(S, pSrc, pDst, blockSize); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_QUICK: 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_quick_sort_f32(S, pSrc, pDst, blockSize); 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** case ARM_SORT_SELECTION: 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** arm_selection_sort_f32(S, pSrc, pDst, blockSize); 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** } 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** } 2417 .loc 18 83 0 2418 0076 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2419 .LVL295: 2420 .L333: 2421 .LBB97: 2422 .LBB98: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2423 .loc 17 72 0 2424 007a 9142 cmp r1, r2 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** float32_t temp; 2425 .loc 17 67 0 2426 007c 7778 ldrb r7, [r6, #1] @ zero_extendqisi2 2427 .LVL296: 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2428 .loc 17 72 0 2429 007e 03D0 beq .L346 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** pA = pDst; 2430 .loc 17 74 0 2431 0080 AA00 lsls r2, r5, #2 2432 .LVL297: 2433 0082 2046 mov r0, r4 2434 0084 FFF7FEFF bl memcpy 2435 .LVL298: 2436 .L346: 2437 0088 05F1FF3A add r10, r5, #-1 2438 008c A146 mov r9, r4 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2439 .loc 17 81 0 2440 008e 4FF0000C mov ip, #0 2441 .LVL299: 2442 .L347: 2443 0092 D445 cmp ip, r10 2444 0094 EFD0 beq .L325 ARM GAS /tmp/cce2LIhc.s page 107 2445 .LVL300: 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2446 .loc 17 87 0 2447 0096 0CF10108 add r8, ip, #1 2448 .LVL301: 2449 009a 4545 cmp r5, r8 2450 009c 79D9 bls .L370 2451 009e CE46 mov lr, r9 2452 00a0 FEEC016A vldmia.32 lr!, {s13} 2453 00a4 6646 mov r6, ip 2454 00a6 B0EE667A vmov.f32 s14, s13 2455 00aa 7246 mov r2, lr 2456 00ac 4346 mov r3, r8 2457 .LVL302: 2458 .L350: 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2459 .loc 17 89 0 2460 00ae 1046 mov r0, r2 2461 00b0 F2EC017A vldmia.32 r2!, {s15} 2462 00b4 F4EEC77A vcmpe.f32 s15, s14 2463 00b8 F1EE10FA vmrs APSR_nzcv, FPSCR 2464 00bc 4CBF ite mi 2465 00be 0121 movmi r1, #1 2466 00c0 0021 movpl r1, #0 2467 00c2 B942 cmp r1, r7 2468 00c4 08BF it eq 2469 00c6 1E46 moveq r6, r3 2470 .LVL303: 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2471 .loc 17 87 0 2472 00c8 03F10103 add r3, r3, #1 2473 .LVL304: 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2474 .loc 17 89 0 2475 00cc 14BF ite ne 2476 00ce 04EB8600 addne r0, r4, r6, lsl #2 2477 00d2 B0EE677A vmoveq.f32 s14, s15 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2478 .loc 17 87 0 2479 00d6 9D42 cmp r5, r3 2480 00d8 E9D1 bne .L350 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { 2481 .loc 17 96 0 2482 00da B445 cmp ip, r6 2483 .LVL305: 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** pA[k]=temp; 2484 .loc 17 100 0 2485 00dc 1CBF itt ne 2486 00de 89ED007A vstrne.32 s14, [r9] 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** } 2487 .loc 17 101 0 2488 00e2 C0ED006A vstrne.32 s13, [r0] 2489 .LVL306: 2490 .L348: 2491 00e6 F146 mov r9, lr 2492 .LVL307: 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_selection_sort_f32.c **** { ARM GAS /tmp/cce2LIhc.s page 108 2493 .loc 17 87 0 2494 00e8 C446 mov ip, r8 2495 00ea D2E7 b .L347 2496 .LVL308: 2497 .L327: 2498 .LBE98: 2499 .LBE97: 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 2500 .loc 18 60 0 2501 00ec 2B46 mov r3, r5 2502 00ee 3046 mov r0, r6 2503 .loc 18 83 0 2504 00f0 BDE8F047 pop {r4, r5, r6, r7, r8, r9, r10, lr} 2505 .LCFI33: 2506 .cfi_remember_state 2507 .cfi_restore 14 2508 .cfi_restore 10 2509 .cfi_restore 9 2510 .cfi_restore 8 2511 .cfi_restore 7 2512 .cfi_restore 6 2513 .cfi_restore 5 2514 .cfi_restore 4 2515 .cfi_def_cfa_offset 0 2516 .LVL309: 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 2517 .loc 18 60 0 2518 00f4 FFF7FEBF b arm_bitonic_sort_f32 2519 .LVL310: 2520 .L330: 2521 .LCFI34: 2522 .cfi_restore_state 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 2523 .loc 18 68 0 2524 00f8 2B46 mov r3, r5 2525 00fa 3046 mov r0, r6 2526 .loc 18 83 0 2527 00fc BDE8F047 pop {r4, r5, r6, r7, r8, r9, r10, lr} 2528 .LCFI35: 2529 .cfi_remember_state 2530 .cfi_restore 14 2531 .cfi_restore 10 2532 .cfi_restore 9 2533 .cfi_restore 8 2534 .cfi_restore 7 2535 .cfi_restore 6 2536 .cfi_restore 5 2537 .cfi_restore 4 2538 .cfi_def_cfa_offset 0 2539 .LVL311: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_f32.c **** break; 2540 .loc 18 68 0 2541 0100 FFF7FEBF b arm_heap_sort_f32 2542 .LVL312: 2543 .L331: 2544 .LCFI36: 2545 .cfi_restore_state ARM GAS /tmp/cce2LIhc.s page 109 2546 .LBB99: 2547 .LBB100: 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 2548 .loc 15 69 0 2549 0104 9142 cmp r1, r2 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** uint32_t i, j; 2550 .loc 15 65 0 2551 0106 7678 ldrb r6, [r6, #1] @ zero_extendqisi2 2552 .LVL313: 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 2553 .loc 15 69 0 2554 0108 03D0 beq .L340 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** pA = pDst; 2555 .loc 15 71 0 2556 010a AA00 lsls r2, r5, #2 2557 .LVL314: 2558 010c 2046 mov r0, r4 2559 010e FFF7FEFF bl memcpy 2560 .LVL315: 2561 .L340: 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 2562 .loc 15 78 0 2563 0112 002D cmp r5, #0 2564 0114 AFD0 beq .L325 2565 0116 2246 mov r2, r4 2566 0118 0027 movs r7, #0 2567 .LVL316: 2568 .L341: 2569 011a 0137 adds r7, r7, #1 2570 .LVL317: 2571 011c BD42 cmp r5, r7 2572 011e AAD0 beq .L325 2573 .LVL318: 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 2574 .loc 15 81 0 2575 0120 92ED017A vldr.32 s14, [r2, #4] 2576 0124 D2ED007A vldr.32 s15, [r2] 2577 0128 F4EEC77A vcmpe.f32 s15, s14 2578 012c F1EE10FA vmrs APSR_nzcv, FPSCR 2579 0130 CCBF ite gt 2580 0132 0123 movgt r3, #1 2581 0134 0023 movle r3, #0 2582 0136 B342 cmp r3, r6 2583 0138 02F1040C add ip, r2, #4 2584 013c 15D1 bne .L342 2585 013e 6046 mov r0, ip 2586 0140 02F10801 add r1, r2, #8 2587 0144 3B46 mov r3, r7 2588 0146 0AE0 b .L343 2589 .LVL319: 2590 .L371: 2591 0148 72ED017A vldmdb.32 r2!, {s15} 2592 014c F4EEC77A vcmpe.f32 s15, s14 2593 0150 F1EE10FA vmrs APSR_nzcv, FPSCR 2594 0154 CCBF ite gt 2595 0156 0124 movgt r4, #1 2596 0158 0024 movle r4, #0 ARM GAS /tmp/cce2LIhc.s page 110 2597 015a B442 cmp r4, r6 2598 015c 05D1 bne .L342 2599 .LVL320: 2600 .L343: 2601 015e 013B subs r3, r3, #1 2602 .LVL321: 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** pA[j-1] = temp; 2603 .loc 15 85 0 2604 0160 61ED017A vstmdb.32 r1!, {s15} 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** } 2605 .loc 15 86 0 2606 0164 20ED017A vstmdb.32 r0!, {s14} 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_insertion_sort_f32.c **** { 2607 .loc 15 81 0 2608 0168 EED1 bne .L371 2609 .LVL322: 2610 .L342: 2611 016a 6246 mov r2, ip 2612 016c D5E7 b .L341 2613 .LVL323: 2614 .L332: 2615 .LBE100: 2616 .LBE99: 2617 .LBB101: 2618 .LBB102: 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** { 2619 .loc 1 167 0 2620 016e 9142 cmp r1, r2 2621 0170 03D0 beq .L345 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** pA = pDst; 2622 .loc 1 169 0 2623 0172 AA00 lsls r2, r5, #2 2624 .LVL324: 2625 0174 2046 mov r0, r4 2626 0176 FFF7FEFF bl memcpy 2627 .LVL325: 2628 .L345: 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The previous function could be called recursively a maximum 2629 .loc 1 175 0 2630 017a 7378 ldrb r3, [r6, #1] @ zero_extendqisi2 2631 017c 6A1E subs r2, r5, #1 2632 017e 2046 mov r0, r4 2633 0180 0021 movs r1, #0 2634 .LBE102: 2635 .LBE101: 2636 .loc 18 83 0 2637 0182 BDE8F047 pop {r4, r5, r6, r7, r8, r9, r10, lr} 2638 .LCFI37: 2639 .cfi_remember_state 2640 .cfi_restore 14 2641 .cfi_restore 10 2642 .cfi_restore 9 2643 .cfi_restore 8 2644 .cfi_restore 7 2645 .cfi_restore 6 2646 .cfi_restore 5 2647 .cfi_restore 4 ARM GAS /tmp/cce2LIhc.s page 111 2648 .cfi_def_cfa_offset 0 2649 .LVL326: 2650 .LBB104: 2651 .LBB103: 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_quick_sort_f32.c **** /* The previous function could be called recursively a maximum 2652 .loc 1 175 0 2653 0186 FFF7FEBF b arm_quick_sort_core_f32 2654 .LVL327: 2655 .L369: 2656 .LCFI38: 2657 .cfi_restore_state 2658 .LBE103: 2659 .LBE104: 2660 .LBB105: 2661 .LBB96: 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_bubble_sort_f32.c **** { 2662 .loc 5 80 0 2663 018a 002F cmp r7, #0 2664 018c 7FF46CAF bne .L368 2665 0190 71E7 b .L325 2666 .LVL328: 2667 .L370: 2668 0192 09F1040E add lr, r9, #4 2669 0196 A6E7 b .L348 2670 .LBE96: 2671 .LBE105: 2672 .cfi_endproc 2673 .LFE171: 2675 .section .text.arm_sort_init_f32,"ax",%progbits 2676 .align 1 2677 .p2align 2,,3 2678 .global arm_sort_init_f32 2679 .syntax unified 2680 .thumb 2681 .thumb_func 2682 .fpu fpv4-sp-d16 2684 arm_sort_init_f32: 2685 .LFB172: 2686 .file 19 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Title: arm_sort_init_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Description: Floating point sort initialization function 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * $Date: 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * You may obtain a copy of the License at ARM GAS /tmp/cce2LIhc.s page 112 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** #include "arm_sorting.h" 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** @ingroup groupSupport 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** */ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** /** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** @addtogroup Sorting 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** @{ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** */ 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** /** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * @param[in,out] S points to an instance of the sorting structure. 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * @param[in] alg Selected algorithm. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** * @param[in] dir Sorting order. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** void arm_sort_init_f32(arm_sort_instance_f32 * S, arm_sort_alg alg, arm_sort_dir dir) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** { 2687 .loc 19 48 0 2688 .cfi_startproc 2689 @ args = 0, pretend = 0, frame = 0 2690 @ frame_needed = 0, uses_anonymous_args = 0 2691 @ link register save eliminated. 2692 .LVL329: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** S->alg = alg; 2693 .loc 19 49 0 2694 0000 0170 strb r1, [r0] 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** S->dir = dir; 2695 .loc 19 50 0 2696 0002 4270 strb r2, [r0, #1] 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_sort_init_f32.c **** } 2697 .loc 19 51 0 2698 0004 7047 bx lr 2699 .cfi_endproc 2700 .LFE172: 2702 0006 00BF .section .text.arm_spline_f32,"ax",%progbits 2703 .align 1 2704 .p2align 2,,3 2705 .global arm_spline_f32 2706 .syntax unified 2707 .thumb 2708 .thumb_func 2709 .fpu fpv4-sp-d16 2711 arm_spline_f32: 2712 .LFB173: ARM GAS /tmp/cce2LIhc.s page 113 2713 .file 20 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f3 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Title: arm_spline_interp_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Description: Floating-point cubic spline interpolation 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * $Date: 13 November 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @defgroup SplineInterpolate Cubic Spline Interpolation 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** Spline interpolation is a method of interpolation where the interpolant 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** is a piecewise-defined polynomial called "spline". 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @par Introduction 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** Given a function f defined on the interval [a,b], a set of n nodes x(i) 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** where a=x(1) 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** S1(x) x(1) < x < x(2) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** S(x) = ... 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** Sn-1(x) x(n-1) < x < x(n) 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** where 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
 
  56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   Si(x) = a_i+b_i(x-xi)+c_i(x-xi)^2+d_i(x-xi)^3    i=1, ..., n-1
ARM GAS  /tmp/cce2LIhc.s 			page 114


  57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @par Algorithm 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** Having defined h(i) = x(i+1) - x(i) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
  64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   h(i-1)c(i-1)+2[h(i-1)+h(i)]c(i)+h(i)c(i+1) = 3/h(i)*[a(i+1)-a(i)]-3/h(i-1)*[a(i)-a(i-1)]    i=2, 
  65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** It is possible to write the previous conditions in matrix form (Ax=B). 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** In order to solve the system two boundary conidtions are needed. 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** - Natural spline: S1''(x1)=2*c(1)=0 ; Sn''(xn)=2*c(n)=0 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** In matrix form: 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
  73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  1        0         0  ...    0         0           0     ||  c(1)  | |                        
  74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   | h(0) 2[h(0)+h(1)] h(1) ...    0         0           0     ||  c(2)  | |      3/h(2)*[a(3)-a(2)]
  75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   | ...      ...       ... ...   ...       ...         ...    ||  ...   |=|                       .
  76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  0        0         0  ... h(n-2) 2[h(n-2)+h(n-1)] h(n-1) || c(n-1) | | 3/h(n-1)*[a(n)-a(n-1)]-
  77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  0        0         0  ...    0         0           1     ||  c(n)  | |                        
  78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** - Parabolic runout spline: S1''(x1)=2*c(1)=S2''(x2)=2*c(2) ; Sn-1''(xn-1)=2*c(n-1)=Sn''(xn)=2*c(n 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** In matrix form: 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
  84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  1       -1         0  ...    0         0           0     ||  c(1)  | |                        
  85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   | h(0) 2[h(0)+h(1)] h(1) ...    0         0           0     ||  c(2)  | |      3/h(2)*[a(3)-a(2)]
  86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   | ...      ...       ... ...   ...       ...         ...    ||  ...   |=|                       .
  87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  0        0         0  ... h(n-2) 2[h(n-2)+h(n-1)] h(n-1) || c(n-1) | | 3/h(n-1)*[a(n)-a(n-1)]-
  88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   |  0        0         0  ...    0        -1           1     ||  c(n)  | |                        
  89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** A is a tridiagonal matrix (a band matrix of bandwidth 3) of size N=n+1. The factorization 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** algorithms (A=LU) can be simplified considerably because a large number of zeros appear 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** in regular patterns. The Crout method has been used: 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 1) Solve LZ=B 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
  97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   u(1,2) = A(1,2)/A(1,1)
  98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   z(1)   = B(1)/l(11)
  99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****  
 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   FOR i=2, ..., N-1
 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****     l(i,i)   = A(i,i)-A(i,i-1)u(i-1,i)
 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****     u(i,i+1) = a(i,i+1)/l(i,i)
 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****     z(i)     = [B(i)-A(i,i-1)z(i-1)]/l(i,i)
 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   l(N,N) = A(N,N)-A(N,N-1)u(N-1,N)
 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   z(N)   = [B(N)-A(N,N-1)z(N-1)]/l(N,N)
 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 2) Solve UX=Z 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****
 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   c(N)=z(N)
 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
ARM GAS  /tmp/cce2LIhc.s 			page 115


 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   FOR i=N-1, ..., 1
 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****     c(i)=z(i)-u(i,i+1)c(i+1) 
 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c ****   
117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** c(i) for i=1, ..., n-1 are needed to compute the n-1 polynomials. 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** b(i) and d(i) are computed as: 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** - b(i) = [y(i+1)-y(i)]/h(i)-h(i)*[c(i+1)+2*c(i)]/3 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** - d(i) = [c(i+1)-c(i)]/[3*h(i)] 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** Moreover, a(i)=y(i). 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @par Behaviour outside the given intervals 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** It is possible to compute the interpolated vector for x values outside the 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** input range (xqx(n)). The coefficients used to compute the y values for 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** xqx(n) the 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** coefficients used for the last interval. 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @addtogroup SplineInterpolate 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** @{ 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** */ 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * @brief Processing function for the floating-point cubic spline interpolation. 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * @param[in] S points to an instance of the floating-point spline structure. 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * @param[in] xq points to the x values ot the interpolated data points. 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * @param[out] pDst points to the block of output data. 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** * @param[in] blockSize number of samples of output data. 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** */ 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** void arm_spline_f32( 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** arm_spline_instance_f32 * S, 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** const float32_t * xq, 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * pDst, 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** uint32_t blockSize) 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2714 .loc 20 151 0 2715 .cfi_startproc 2716 @ args = 0, pretend = 0, frame = 8 2717 @ frame_needed = 0, uses_anonymous_args = 0 2718 .LVL330: 2719 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 2720 .LCFI39: 2721 .cfi_def_cfa_offset 36 2722 .cfi_offset 4, -36 2723 .cfi_offset 5, -32 2724 .cfi_offset 6, -28 2725 .cfi_offset 7, -24 2726 .cfi_offset 8, -20 2727 .cfi_offset 9, -16 2728 .cfi_offset 10, -12 2729 .cfi_offset 11, -8 2730 .cfi_offset 14, -4 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** const float32_t * x = S->x; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** const float32_t * y = S->y; ARM GAS /tmp/cce2LIhc.s page 116 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** int32_t n = S->n_x; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Coefficients (a==y for i<=n-1) */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * b = (S->coeffs); 2731 .loc 20 157 0 2732 0004 D0E9034E ldrd r4, lr, [r0, #12] 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * c = (S->coeffs)+(n-1); 2733 .loc 20 158 0 2734 0008 04F1804B add fp, r4, #1073741824 2735 000c 0BF1FF3B add fp, fp, #-1 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** const float32_t * x = S->x; 2736 .loc 20 151 0 2737 0010 83B0 sub sp, sp, #12 2738 .LCFI40: 2739 .cfi_def_cfa_offset 48 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * d = (S->coeffs)+(2*(n-1)); 2740 .loc 20 159 0 2741 0012 04F1FF3C add ip, r4, #-1 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * c = (S->coeffs)+(n-1); 2742 .loc 20 158 0 2743 0016 4FEA8B0B lsl fp, fp, #2 2744 001a 0EEB0B06 add r6, lr, fp 2745 .loc 20 159 0 2746 001e 0EEBCC05 add r5, lr, ip, lsl #3 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** const float32_t * pXq = xq; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** int32_t blkCnt = (int32_t)blockSize; 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** int32_t blkCnt2; 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** int32_t i; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t x_sc; 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #ifdef ARM_MATH_NEON 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t xiv; 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t aiv; 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t biv; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t civ; 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t div; 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t xqv; 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t temp; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t diff; 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32x4_t yv; 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #endif 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Create output for x(i)n_x; 2749 .loc 20 153 0 2750 0026 D0E90189 ldrd r8, r9, [r0, #4] 2751 .LVL331: 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** float32_t * d = (S->coeffs)+(2*(n-1)); 2752 .loc 20 158 0 2753 002a 0096 str r6, [sp] 2754 .LVL332: ARM GAS /tmp/cce2LIhc.s page 117 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 2755 .loc 20 159 0 2756 002c 0195 str r5, [sp, #4] 2757 .LVL333: 2758 .loc 20 182 0 2759 002e 69DD ble .L383 2760 0030 D1ED007A vldr.32 s15, [r1] 2761 0034 C344 add fp, fp, r8 2762 0036 4446 mov r4, r8 2763 .LVL334: 2764 0038 CA46 mov r10, r9 2765 003a 7746 mov r7, lr 2766 .LVL335: 2767 .L375: 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #ifdef ARM_MATH_NEON 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** xiv = vdupq_n_f32(x[i]); 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** aiv = vdupq_n_f32(y[i]); 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** biv = vdupq_n_f32(b[i]); 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** civ = vdupq_n_f32(c[i]); 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** div = vdupq_n_f32(d[i]); 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** while( *(pXq+4) <= x[i+1] && blkCnt > 4 ) 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Load [xq(k) xq(k+1) xq(k+2) xq(k+3)] */ 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** xqv = vld1q_f32(pXq); 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pXq+=4; 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Compute [xq(k)-x(i) xq(k+1)-x(i) xq(k+2)-x(i) xq(k+3)-x(i)] */ 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** diff = vsubq_f32(xqv, xiv); 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = diff; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* y(i) = a(i) + ... */ 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = aiv; 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + b(i)*(x-x(i)) + ... */ 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, biv, temp); 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + c(i)*(x-x(i))^2 + ... */ 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = vmulq_f32(temp, diff); 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, civ, temp); 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + d(i)*(x-x(i))^3 */ 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = vmulq_f32(temp, diff); 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, div, temp); 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Store [y(k) y(k+1) y(k+2) y(k+3)] */ 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** vst1q_f32(pDst, yv); 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pDst+=4; 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt-=4; 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #endif 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** while( *pXq <= x[i+1] && blkCnt > 0 ) 2768 .loc 20 220 0 2769 003c 94ED017A vldr.32 s14, [r4, #4] 2770 0040 B4EEE77A vcmpe.f32 s14, s15 2771 0044 F1EE10FA vmrs APSR_nzcv, FPSCR 2772 0048 26DB blt .L376 ARM GAS /tmp/cce2LIhc.s page 118 2773 004a 002B cmp r3, #0 2774 004c C8BF it gt 2775 004e 081D addgt r0, r1, #4 2776 0050 01DC bgt .L378 2777 0052 21E0 b .L376 2778 .LVL336: 2779 .L391: 2780 .loc 20 220 0 is_stmt 0 discriminator 1 2781 0054 03B3 cbz r3, .L376 2782 .L378: 2783 .LVL337: 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** x_sc = *pXq++; 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** *pDst = y[i]+b[i]*(x_sc-x[i])+c[i]*(x_sc-x[i])*(x_sc-x[i])+d[i]*(x_sc-x[i])*(x_sc-x[i]) 2784 .loc 20 224 0 is_stmt 1 2785 0056 94ED007A vldr.32 s14, [r4] 2786 005a D6ED005A vldr.32 s11, [r6] 2787 005e 95ED005A vldr.32 s10, [r5] 2788 0062 97ED006A vldr.32 s12, [r7] 2789 0066 DAED006A vldr.32 s13, [r10] 2790 006a 77EEC77A vsub.f32 s15, s15, s14 2791 006e B0EE657A vmov.f32 s14, s11 2792 0072 A7EE857A vfma.f32 s14, s15, s10 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 2793 .loc 20 222 0 2794 0076 0146 mov r1, r0 2795 .LVL338: 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pDst++; 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt--; 2796 .loc 20 227 0 2797 0078 013B subs r3, r3, #1 2798 .LVL339: 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 2799 .loc 20 224 0 2800 007a A7EE876A vfma.f32 s12, s15, s14 2801 007e E7EE866A vfma.f32 s13, s15, s12 2802 0082 E2EC016A vstmia.32 r2!, {s13} 2803 .LVL340: 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2804 .loc 20 220 0 2805 0086 F0EC017A vldmia.32 r0!, {s15} 2806 .LVL341: 2807 008a 94ED017A vldr.32 s14, [r4, #4] 2808 008e F4EEC77A vcmpe.f32 s15, s14 2809 0092 F1EE10FA vmrs APSR_nzcv, FPSCR 2810 0096 DDD9 bls .L391 2811 .L376: 2812 0098 0434 adds r4, r4, #4 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2813 .loc 20 182 0 discriminator 2 2814 009a A345 cmp fp, r4 2815 009c 0AF1040A add r10, r10, #4 2816 00a0 07F10407 add r7, r7, #4 2817 00a4 06F10406 add r6, r6, #4 2818 00a8 05F10405 add r5, r5, #4 ARM GAS /tmp/cce2LIhc.s page 119 2819 00ac C6D1 bne .L375 2820 .LVL342: 2821 .L374: 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Create output for remaining samples (x>=x(n)) */ 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #ifdef ARM_MATH_NEON 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Compute 4 outputs at a time */ 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt2 = blkCnt >> 2; 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** while(blkCnt2 > 0) 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Load [xq(k) xq(k+1) xq(k+2) xq(k+3)] */ 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** xqv = vld1q_f32(pXq); 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pXq+=4; 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Compute [xq(k)-x(i) xq(k+1)-x(i) xq(k+2)-x(i) xq(k+3)-x(i)] */ 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** diff = vsubq_f32(xqv, xiv); 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = diff; 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* y(i) = a(i) + ... */ 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = aiv; 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + b(i)*(x-x(i)) + ... */ 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, biv, temp); 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + c(i)*(x-x(i))^2 + ... */ 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = vmulq_f32(temp, diff); 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, civ, temp); 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* ... + d(i)*(x-x(i))^3 */ 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** temp = vmulq_f32(temp, diff); 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** yv = vmlaq_f32(yv, div, temp); 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Store [y(k) y(k+1) y(k+2) y(k+3)] */ 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** vst1q_f32(pDst, yv); 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pDst+=4; 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt2--; 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** /* Tail */ 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt2 = blkCnt & 3; 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #else 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt2 = blkCnt; 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** #endif 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** while(blkCnt2 > 0) 2822 .loc 20 270 0 2823 00ae 002B cmp r3, #0 2824 00b0 25DD ble .L373 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** x_sc = *pXq++; 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** *pDst = y[i-1]+b[i-1]*(x_sc-x[i-1])+c[i-1]*(x_sc-x[i-1])*(x_sc-x[i-1])+d[i-1]*(x_sc-x[i-1]) 2825 .loc 20 274 0 2826 00b2 0CF18040 add r0, ip, #1073741824 2827 00b6 0138 subs r0, r0, #1 2828 00b8 019D ldr r5, [sp, #4] ARM GAS /tmp/cce2LIhc.s page 120 2829 00ba 009C ldr r4, [sp] 2830 00bc 8000 lsls r0, r0, #2 2831 00be 0544 add r5, r5, r0 2832 00c0 8144 add r9, r9, r0 2833 .LVL343: 2834 00c2 8644 add lr, lr, r0 2835 .LVL344: 2836 00c4 8044 add r8, r8, r0 2837 00c6 0444 add r4, r4, r0 2838 00c8 2846 mov r0, r5 2839 .LVL345: 2840 .L382: 2841 00ca B1EC017A vldmia.32 r1!, {s14} 2842 .LVL346: 2843 00ce D8ED007A vldr.32 s15, [r8] 2844 00d2 D4ED005A vldr.32 s11, [r4] 2845 00d6 90ED005A vldr.32 s10, [r0] 2846 00da 9EED006A vldr.32 s12, [lr] 2847 00de D9ED006A vldr.32 s13, [r9] 2848 00e2 77EE677A vsub.f32 s15, s14, s15 2849 00e6 B0EE657A vmov.f32 s14, s11 2850 00ea A7EE857A vfma.f32 s14, s15, s10 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2851 .loc 20 270 0 2852 00ee 013B subs r3, r3, #1 2853 .LVL347: 2854 .loc 20 274 0 2855 00f0 A7EE876A vfma.f32 s12, s15, s14 2856 00f4 E7EE866A vfma.f32 s13, s15, s12 2857 00f8 E2EC016A vstmia.32 r2!, {s13} 2858 .LVL348: 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2859 .loc 20 270 0 2860 00fc E5D1 bne .L382 2861 .L373: 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** pDst++; 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** blkCnt2--; 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** } 2862 .loc 20 279 0 2863 00fe 03B0 add sp, sp, #12 2864 .LCFI41: 2865 .cfi_remember_state 2866 .cfi_def_cfa_offset 36 2867 .LVL349: 2868 @ sp needed 2869 0100 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 2870 .LVL350: 2871 .L383: 2872 .LCFI42: 2873 .cfi_restore_state 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_f32.c **** { 2874 .loc 20 182 0 2875 0104 4FF0000C mov ip, #0 2876 0108 D1E7 b .L374 2877 .cfi_endproc ARM GAS /tmp/cce2LIhc.s page 121 2878 .LFE173: 2880 010a 00BF .section .text.arm_spline_init_f32,"ax",%progbits 2881 .align 1 2882 .p2align 2,,3 2883 .global arm_spline_init_f32 2884 .syntax unified 2885 .thumb 2886 .thumb_func 2887 .fpu fpv4-sp-d16 2889 arm_spline_init_f32: 2890 .LFB174: 2891 .file 21 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_in 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Title: arm_spline_interp_init_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Description: Floating-point cubic spline initialization function 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * $Date: 13 November 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** @addtogroup SplineInterpolate 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** @par Initialization function 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** The initialization function takes as input two arrays that the user has to allocate: 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** coeffs will contain the b, c, and d coefficients for the (n-1) intervals 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** (n is the number of known points), hence its size must be 3*(n-1); tempBuffer 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** is temporally used for internal computations and its size is n+n-1. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** ARM GAS /tmp/cce2LIhc.s page 122 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** @par 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** The x input array must be strictly sorted in ascending order and it must 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** not contain twice the same value (x(i)x = x; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** S->y = y; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** S->n_x = n; 2925 .loc 21 96 0 2926 0018 C560 str r5, [r0, #12] 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** float32_t * d = coeffs+(2*(n-1)); 2927 .loc 21 81 0 2928 001a A400 lsls r4, r4, #2 2929 .LVL353: 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2930 .loc 21 82 0 2931 001c F600 lsls r6, r6, #3 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** S->n_x = n; 2932 .loc 21 95 0 2933 001e C0E90123 strd r2, r3, [r0, #4] 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2934 .loc 21 85 0 2935 0022 07EB0408 add r8, r7, r4 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2936 .loc 21 82 0 2937 0026 0196 str r6, [sp, #4] 2938 .LVL354: 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* == Solve LZ=B to obtain z(i) and u(i) == */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* -- Row 1 -- */ 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* B(0) = 0, not computed */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* u(1,2) = a(1,2)/a(1,1) = a(1,2) */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** if(type == ARM_SPLINE_NATURAL) 2939 .loc 21 103 0 2940 0028 0029 cmp r1, #0 2941 002a 40F0AA80 bne .L393 ARM GAS /tmp/cce2LIhc.s page 124 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** u[0] = 0; /* a(1,2) = 0 */ 2942 .loc 21 104 0 2943 002e 0026 movs r6, #0 2944 .LVL355: 2945 0030 3E60 str r6, [r7] @ float 2946 .L394: 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** else if(type == ARM_SPLINE_PARABOLIC_RUNOUT) 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** u[0] = -1; /* a(1,2) = -1 */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[0] = 0; /* z(1) = B(1)/a(1,1) = 0 always */ 2947 .loc 21 108 0 2948 0032 0026 movs r6, #0 2949 0034 C8F80060 str r6, [r8] @ float 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* -- Rows 2 to N-1 (N=n+1) -- */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** hm1 = x[1] - x[0]; /* Initialize h(i-1) = h(1) = x(2)-x(1) */ 2950 .loc 21 111 0 2951 0038 92ED015A vldr.32 s10, [r2, #4] 2952 003c D2ED007A vldr.32 s15, [r2] 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** for (i=1; i<(int32_t)n-1; i++) 2953 .loc 21 113 0 2954 0040 022D cmp r5, #2 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2955 .loc 21 111 0 2956 0042 35EE675A vsub.f32 s10, s10, s15 2957 .LVL356: 2958 .loc 21 113 0 2959 0046 44DD ble .L395 2960 0048 DDF838C0 ldr ip, [sp, #56] 2961 004c 161D adds r6, r2, #4 2962 004e 9E46 mov lr, r3 2963 0050 4746 mov r7, r8 2964 .LVL357: 2965 0052 02EB040B add fp, r2, r4 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* Compute B(i) */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** hi = x[i+1]-x[i]; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** Bi = 3*(y[i+1]-y[i])/hi - 3*(y[i]-y[i-1])/hm1; 2966 .loc 21 117 0 2967 0056 F0EE084A vmov.f32 s9, #3.0e+0 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* l(i) = a(i)-a(i,i-1)*u(i-1) = 2[h(i-1)+h(i)]-h(i-1)*u(i-1) */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** li = 2*(hi+hm1) - hm1*u[i-1]; 2968 .loc 21 120 0 2969 005a F0EE003A vmov.f32 s7, #2.0e+0 2970 .LVL358: 2971 .L396: 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** Bi = 3*(y[i+1]-y[i])/hi - 3*(y[i]-y[i-1])/hm1; 2972 .loc 21 116 0 discriminator 3 2973 005e 96ED017A vldr.32 s14, [r6, #4] 2974 0062 D6ED007A vldr.32 s15, [r6] 2975 .loc 21 120 0 discriminator 3 2976 0066 DCED005A vldr.32 s11, [ip] 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** Bi = 3*(y[i+1]-y[i])/hi - 3*(y[i]-y[i-1])/hm1; 2977 .loc 21 116 0 discriminator 3 2978 006a 77EE677A vsub.f32 s15, s14, s15 ARM GAS /tmp/cce2LIhc.s page 125 2979 .LVL359: 2980 .loc 21 120 0 discriminator 3 2981 006e 65EE655A vnmul.f32 s11, s10, s11 2982 0072 37EE857A vadd.f32 s14, s15, s10 2983 0076 F146 mov r9, lr 2984 0078 E7EE235A vfma.f32 s11, s14, s7 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2985 .loc 21 117 0 discriminator 3 2986 007c 0EF1040E add lr, lr, #4 2987 0080 0436 adds r6, r6, #4 2988 0082 D9ED006A vldr.32 s13, [r9] 2989 0086 9EED007A vldr.32 s14, [lr] 2990 008a 99ED026A vldr.32 s12, [r9, #8] 2991 008e 36EE476A vsub.f32 s12, s12, s14 2992 0092 36EEC77A vsub.f32 s14, s13, s14 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* u(i) = a(i,i+1)/l(i) = h(i)/l(i) */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** u[i] = hi/li; 2993 .loc 21 123 0 discriminator 3 2994 0096 87EEA54A vdiv.f32 s8, s15, s11 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 2995 .loc 21 113 0 discriminator 3 2996 009a B345 cmp fp, r6 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 2997 .loc 21 117 0 discriminator 3 2998 009c 66EE246A vmul.f32 s13, s12, s9 2999 00a0 27EE247A vmul.f32 s14, s14, s9 3000 00a4 86EEA76A vdiv.f32 s12, s13, s15 3001 00a8 C7EE056A vdiv.f32 s13, s14, s10 3002 .loc 21 123 0 discriminator 3 3003 00ac 14EE109A vmov r9, s8 3004 00b0 4CF8049F str r9, [ip, #4]! @ float 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* z(i) = [B(i)-h(i-1)*z(i-1)]/l(i) */ 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[i] = (Bi-hm1*z[i-1])/li; 3005 .loc 21 126 0 discriminator 3 3006 00b4 97ED004A vldr.32 s8, [r7] 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3007 .loc 21 117 0 discriminator 3 3008 00b8 36EE267A vadd.f32 s14, s12, s13 3009 .LVL360: 3010 .loc 21 126 0 discriminator 3 3011 00bc A4EE457A vfms.f32 s14, s8, s10 3012 .LVL361: 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* Update h(i-1) for next iteration */ 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** hm1 = hi; 3013 .loc 21 129 0 discriminator 3 3014 00c0 B0EE675A vmov.f32 s10, s15 3015 .LVL362: 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3016 .loc 21 126 0 discriminator 3 3017 00c4 C7EE257A vdiv.f32 s15, s14, s11 3018 .LVL363: 3019 00c8 17EE909A vmov r9, s15 3020 00cc 47F8049F str r9, [r7, #4]! @ float 3021 .LVL364: ARM GAS /tmp/cce2LIhc.s page 126 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 3022 .loc 21 113 0 discriminator 3 3023 00d0 C5D1 bne .L396 3024 .LVL365: 3025 .L395: 3026 00d2 08EB0407 add r7, r8, r4 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* -- Row N -- */ 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* l(N) = a(N,N)-a(N,N-1)u(N-1) */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* z(N) = [-a(N,N-1)z(N-1)]/l(N) */ 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** if(type == ARM_SPLINE_NATURAL) 3027 .loc 21 135 0 3028 00d6 0029 cmp r1, #0 3029 00d8 4ED1 bne .L397 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* li = 1; a(N,N) = 1; a(N,N-1) = 0 */ 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[n-1] = 0; /* a(N,N-1) = 0 */ 3030 .loc 21 138 0 3031 00da DFED356A vldr.32 s13, .L405 3032 00de C7ED006A vstr.32 s13, [r7] 3033 .LVL366: 3034 .L398: 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** else if(type == ARM_SPLINE_PARABOLIC_RUNOUT) 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** li = 1+u[n-2]; /* a(N,N) = 1; a(N,N-1) = -1 */ 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[n-1] = z[n-2]/li; /* a(N,N-1) = -1 */ 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* == Solve UX = Z to obtain c(i) and */ 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* compute b(i) and d(i) from c(i) == */ 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** cp1 = z[n-1]; /* Initialize c(i+1) = c(N) = z(N) */ 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** for (i=n-2; i>=0; i--) 3035 .loc 21 151 0 3036 00e2 023D subs r5, r5, #2 3037 .LVL367: 3038 00e4 43D4 bmi .L400 3039 00e6 0199 ldr r1, [sp, #4] 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* c(i) = z(i)-u(i+1)c(i+1) */ 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** c[i] = z[i]-u[i]*cp1; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** hi = x[i+1]-x[i]; 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* b(i) = [y(i+1)-y(i)]/h(i)-h(i)*[c(i+1)+2*c(i)]/3 */ 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** b[i] = (y[i+1]-y[i])/hi-hi*(cp1+2*c[i])/3; 3040 .loc 21 158 0 3041 00e8 DFED323A vldr.32 s7, .L405+4 3042 00ec 2144 add r1, r1, r4 3043 00ee 04F1040C add ip, r4, #4 3044 00f2 0E46 mov r6, r1 3045 00f4 02EB0C0E add lr, r2, ip 3046 00f8 0AEB4401 add r1, r10, r4, lsl #1 3047 00fc 9C44 add ip, ip, r3 3048 00fe 2244 add r2, r2, r4 ARM GAS /tmp/cce2LIhc.s page 127 3049 .LVL368: 3050 0100 2344 add r3, r3, r4 3051 .LVL369: 3052 0102 5644 add r6, r6, r10 3053 0104 5444 add r4, r4, r10 3054 .LVL370: 3055 0106 B0EE004A vmov.f32 s8, #2.0e+0 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* d(i) = [c(i+1)-c(i)]/[3*h(i)] */ 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** d[i] = (cp1-c[i])/(3*hi); 3056 .loc 21 161 0 3057 010a F0EE084A vmov.f32 s9, #3.0e+0 3058 .LVL371: 3059 .L401: 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3060 .loc 21 154 0 discriminator 3 3061 010e 78ED017A vldmdb.32 r8!, {s15} 3062 0112 37ED015A vldmdb.32 r7!, {s10} 3063 0116 A7EEE65A vfms.f32 s10, s15, s13 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 3064 .loc 21 151 0 discriminator 3 3065 011a 013D subs r5, r5, #1 3066 .LVL372: 3067 011c B5F1FF3F cmp r5, #-1 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3068 .loc 21 154 0 discriminator 3 3069 0120 21ED015A vstmdb.32 r1!, {s10} 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* b(i) = [y(i+1)-y(i)]/h(i)-h(i)*[c(i+1)+2*c(i)]/3 */ 3070 .loc 21 156 0 discriminator 3 3071 0124 3EED017A vldmdb.32 lr!, {s14} 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3072 .loc 21 158 0 discriminator 3 3073 0128 7CED015A vldmdb.32 ip!, {s11} 3074 012c 33ED016A vldmdb.32 r3!, {s12} 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* b(i) = [y(i+1)-y(i)]/h(i)-h(i)*[c(i+1)+2*c(i)]/3 */ 3075 .loc 21 156 0 discriminator 3 3076 0130 72ED017A vldmdb.32 r2!, {s15} 3077 0134 77EE677A vsub.f32 s15, s14, s15 3078 .LVL373: 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3079 .loc 21 158 0 discriminator 3 3080 0138 35EEC67A vsub.f32 s14, s11, s12 3081 013c F0EE665A vmov.f32 s11, s13 3082 0140 87EE276A vdiv.f32 s12, s14, s15 3083 0144 E5EE045A vfma.f32 s11, s10, s8 3084 0148 27EEA37A vmul.f32 s14, s15, s7 3085 .loc 21 161 0 discriminator 3 3086 014c 67EEA47A vmul.f32 s15, s15, s9 3087 .LVL374: 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3088 .loc 21 158 0 discriminator 3 3089 0150 A5EEC76A vfms.f32 s12, s11, s14 3090 0154 24ED016A vstmdb.32 r4!, {s12} 3091 .LVL375: 3092 .loc 21 161 0 discriminator 3 3093 0158 91ED007A vldr.32 s14, [r1] 3094 015c 76EEC76A vsub.f32 s13, s13, s14 ARM GAS /tmp/cce2LIhc.s page 128 3095 .LVL376: 3096 0160 86EEA77A vdiv.f32 s14, s13, s15 3097 0164 26ED017A vstmdb.32 r6!, {s14} 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* Update c(i+1) for next iteration */ 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** cp1 = c[i]; 3098 .loc 21 164 0 discriminator 3 3099 0168 D1ED006A vldr.32 s13, [r1] 3100 .LVL377: 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 3101 .loc 21 151 0 discriminator 3 3102 016c CFD1 bne .L401 3103 .LVL378: 3104 .L400: 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** /* == Finally, store the coefficients in the instance == */ 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** S->coeffs = coeffs; 3105 .loc 21 169 0 3106 016e C0F810A0 str r10, [r0, #16] 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 3107 .loc 21 170 0 3108 0172 03B0 add sp, sp, #12 3109 .LCFI45: 3110 .cfi_remember_state 3111 .cfi_def_cfa_offset 36 3112 @ sp needed 3113 0174 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 3114 .LVL379: 3115 .L397: 3116 .LCFI46: 3117 .cfi_restore_state 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** { 3118 .loc 21 140 0 3119 0178 0129 cmp r1, #1 3120 017a 07D0 beq .L399 3121 017c D7ED006A vldr.32 s13, [r7] 3122 0180 AFE7 b .L398 3123 .LVL380: 3124 .L393: 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** u[0] = -1; /* a(1,2) = -1 */ 3125 .loc 21 105 0 3126 0182 0129 cmp r1, #1 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** 3127 .loc 21 106 0 3128 0184 04BF itt eq 3129 0186 0C4E ldreq r6, .L405+8 3130 .LVL381: 3131 0188 3E60 streq r6, [r7] @ float 3132 018a 52E7 b .L394 3133 .LVL382: 3134 .L399: 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[n-1] = z[n-2]/li; /* a(N,N-1) = -1 */ 3135 .loc 21 142 0 3136 018c 0E99 ldr r1, [sp, #56] 3137 .LVL383: ARM GAS /tmp/cce2LIhc.s page 129 3138 018e 261F subs r6, r4, #4 3139 .LVL384: 3140 0190 3144 add r1, r1, r6 3141 .LVL385: 3142 0192 D1ED007A vldr.32 s15, [r1] 3143 0196 B7EE007A vmov.f32 s14, #1.0e+0 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 3144 .loc 21 143 0 3145 019a 4644 add r6, r6, r8 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** z[n-1] = z[n-2]/li; /* a(N,N-1) = -1 */ 3146 .loc 21 142 0 3147 019c 77EE877A vadd.f32 s15, s15, s14 3148 .LVL386: 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_spline_interp_init_f32.c **** } 3149 .loc 21 143 0 3150 01a0 96ED007A vldr.32 s14, [r6] 3151 01a4 C7EE276A vdiv.f32 s13, s14, s15 3152 01a8 C7ED006A vstr.32 s13, [r7] 3153 01ac 99E7 b .L398 3154 .L406: 3155 01ae 00BF .align 2 3156 .L405: 3157 01b0 00000000 .word 0 3158 01b4 ABAAAA3E .word 1051372203 3159 01b8 000080BF .word -1082130432 3160 .cfi_endproc 3161 .LFE174: 3163 .section .text.arm_weighted_sum_f32,"ax",%progbits 3164 .align 1 3165 .p2align 2,,3 3166 .global arm_weighted_sum_f32 3167 .syntax unified 3168 .thumb 3169 .thumb_func 3170 .fpu fpv4-sp-d16 3172 arm_weighted_sum_f32: 3173 .LFB175: 3174 .file 22 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Title: arm_weighted_sum_f32.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Description: Weighted Sum 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Target Processor: Cortex-M and Cortex-A cores 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * -------------------------------------------------------------------- */ 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** /* 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * SPDX-License-Identifier: Apache-2.0 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * not use this file except in compliance with the License. 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * You may obtain a copy of the License at 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * www.apache.org/licenses/LICENSE-2.0 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * ARM GAS /tmp/cce2LIhc.s page 130 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * Unless required by applicable law or agreed to in writing, software 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * See the License for the specific language governing permissions and 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * limitations under the License. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** */ 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #include "arm_math.h" 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #include 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @addtogroup groupSupport 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @{ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** */ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** /** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @brief Weighted sum 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @param[in] *in Array of input values. 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @param[in] *weigths Weights 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @param[in] blockSize Number of samples in the input array. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * @return Weighted sum 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** * 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** */ 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #include "arm_helium_utils.h" 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t arm_weighted_sum_f32(const float32_t *in,const float32_t *weigths, uint32_t blockSize) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t accum1, accum2; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** f32x4_t accum1V, accum2V; 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** f32x4_t inV, wV; 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** const float32_t *pIn, *pW; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** uint32_t blkCnt; 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pIn = in; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pW = weigths; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1V = vdupq_n_f32(0.0); 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2V = vdupq_n_f32(0.0); 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt = blockSize >> 2; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** while (blkCnt > 0) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** inV = vld1q(pIn); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** wV = vld1q(pW); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pIn += 4; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pW += 4; ARM GAS /tmp/cce2LIhc.s page 131 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1V = vfmaq(accum1V, inV, wV); 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2V = vaddq(accum2V, wV); 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt--; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1 = vecAddAcrossF32Mve(accum1V); 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 = vecAddAcrossF32Mve(accum2V); 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt = blockSize & 3; 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** while(blkCnt > 0) 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1 += *pIn++ * *pW; 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 += *pW++; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt--; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** return (accum1 / accum2); 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #else 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #if defined(ARM_MATH_NEON) 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #include "NEMath.h" 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t arm_weighted_sum_f32(const float32_t *in,const float32_t *weigths, uint32_t blockSize) 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t accum1, accum2; 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32x4_t accum1V, accum2V; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32x2_t tempV; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32x4_t inV,wV; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** const float32_t *pIn, *pW; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** uint32_t blkCnt; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pIn = in; 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pW = weigths; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1=0.0f; 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2=0.0f; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1V = vdupq_n_f32(0.0f); 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2V = vdupq_n_f32(0.0f); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt = blockSize >> 2; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** while(blkCnt > 0) 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** inV = vld1q_f32(pIn); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** wV = vld1q_f32(pW); 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pIn += 4; 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pW += 4; 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1V = vmlaq_f32(accum1V,inV,wV); ARM GAS /tmp/cce2LIhc.s page 132 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2V = vaddq_f32(accum2V,wV); 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt--; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** tempV = vpadd_f32(vget_low_f32(accum1V),vget_high_f32(accum1V)); 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1 = vget_lane_f32(tempV, 0) + vget_lane_f32(tempV, 1); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** tempV = vpadd_f32(vget_low_f32(accum2V),vget_high_f32(accum2V)); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 = vget_lane_f32(tempV, 0) + vget_lane_f32(tempV, 1); 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt = blockSize & 3; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** while(blkCnt > 0) 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1 += *pIn++ * *pW; 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 += *pW++; 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt--; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** return(accum1 / accum2); 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** #else 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t arm_weighted_sum_f32(const float32_t *in, const float32_t *weigths, uint32_t blockSize) 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 3175 .loc 22 157 0 3176 .cfi_startproc 3177 @ args = 0, pretend = 0, frame = 0 3178 @ frame_needed = 0, uses_anonymous_args = 0 3179 @ link register save eliminated. 3180 .LVL387: 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** float32_t accum1, accum2; 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** const float32_t *pIn, *pW; 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** uint32_t blkCnt; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pIn = in; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** pW = weigths; 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1=0.0f; 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2=0.0f; 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt = blockSize; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** while(blkCnt > 0) 3181 .loc 22 171 0 3182 0000 82B1 cbz r2, .L410 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 3183 .loc 22 168 0 3184 0002 9FED0A7A vldr.32 s14, .L412 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2=0.0f; 3185 .loc 22 167 0 3186 0006 F0EE476A vmov.f32 s13, s14 3187 .LVL388: 3188 .L409: 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum1 += *pIn++ * *pW; 3189 .loc 22 173 0 ARM GAS /tmp/cce2LIhc.s page 133 3190 000a F1EC017A vldmia.32 r1!, {s15} 3191 .LVL389: 3192 000e B0EC016A vldmia.32 r0!, {s12} 3193 .LVL390: 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 3194 .loc 22 171 0 3195 0012 013A subs r2, r2, #1 3196 .LVL391: 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 += *pW++; 3197 .loc 22 174 0 3198 0014 37EE277A vadd.f32 s14, s14, s15 3199 .LVL392: 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** accum2 += *pW++; 3200 .loc 22 173 0 3201 0018 E6EE276A vfma.f32 s13, s12, s15 3202 .LVL393: 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** { 3203 .loc 22 171 0 3204 001c F5D1 bne .L409 3205 001e 86EE870A vdiv.f32 s0, s13, s14 3206 0022 7047 bx lr 3207 .LVL394: 3208 .L410: 3209 0024 9FED020A vldr.32 s0, .L412+4 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** blkCnt--; 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** return(accum1 / accum2); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_weighted_sum_f32.c **** } 3210 .loc 22 179 0 3211 0028 7047 bx lr 3212 .L413: 3213 002a 00BF .align 2 3214 .L412: 3215 002c 00000000 .word 0 3216 0030 0000C07F .word 2143289344 3217 .cfi_endproc 3218 .LFE175: 3220 .section .text.arm_float_to_q15,"ax",%progbits 3221 .align 1 3222 .p2align 2,,3 3223 .global arm_float_to_q15 3224 .syntax unified 3225 .thumb 3226 .thumb_func 3227 .fpu fpv4-sp-d16 3229 arm_float_to_q15: 3230 .LFB176: 3231 .file 23 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Title: arm_float_to_q15.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Description: Converts the elements of the floating-point vector to Q15 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * ARM GAS /tmp/cce2LIhc.s page 134 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @addtogroup float_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @brief Converts the elements of the floating-point vector to Q15 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @param[in] pSrc points to the floating-point input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @param[out] pDst points to the Q15 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c ****       pDst[n] = (q15_t)(pSrc[n] * 32768);   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @par Scaling and Overflow Behavior 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** The function uses saturating arithmetic. 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated. 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** @note 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** In order to apply rounding, the library should be rebuilt with the ROUNDING macr 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** defined in the preprocessor section of project options. 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** */ 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** void arm_float_to_q15( 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** const float32_t * pSrc, 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** q15_t * pDst, ARM GAS /tmp/cce2LIhc.s page 135 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blockSize) 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blkCnt; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32_t maxQ = (float32_t) Q15_MAX; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** f32x4x2_t tmp; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** q15x8_t vecDst; 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32_t in; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize >> 3; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* convert from float to q15 and then store the results in the destination buffer */ 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** tmp = vld2q(pSrc); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** tmp.val[0] = vmulq(tmp.val[0], maxQ); 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** tmp.val[1] = vmulq(tmp.val[1], maxQ); 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** vecDst = vqmovnbq(vecDst, vcvtaq_s32_f32(tmp.val[0])); 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** vecDst = vqmovntq(vecDst, vcvtaq_s32_f32(tmp.val[1])); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** vst1q(pDst, vecDst); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** * Decrement the blockSize loop counter 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** */ 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pDst += 8; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pSrc += 8; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize & 7; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* convert from float to Q15 and store result in destination buffer */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pSrc++ * 32768.0f); 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pSrc++ * 32768.0f), 16); 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Decrement loop counter */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** ARM GAS /tmp/cce2LIhc.s page 136 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #if defined(ARM_MATH_NEON_EXPERIMENTAL) 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** void arm_float_to_q15( 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** const float32_t * pSrc, 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** q15_t * pDst, 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blockSize) 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** const float32_t *pIn = pSrc; /* Src pointer */ 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blkCnt; /* loop counter */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32x4_t inV; 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32x4_t zeroV = vdupq_n_f32(0.0f); 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32x4_t pHalf = vdupq_n_f32(0.5f / 32768.0f); 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32x4_t mHalf = vdupq_n_f32(-0.5f / 32768.0f); 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32x4_t r; 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32x4_t cmp; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32_t in; 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** int32x4_t cvt; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** int16x4_t outV; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize >> 2U; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Compute 4 outputs at a time. 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** ** a second loop below computes the remaining 1 to 3 samples. */ 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** inV = vld1q_f32(pIn); 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** cmp = vcgtq_f32(inV,zeroV); 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** r = vbslq_f32(cmp,pHalf,mHalf); 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** inV = vaddq_f32(inV, r); 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pIn += 4; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** cvt = vcvtq_n_s32_f32(inV,15); 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** outV = vqmovn_s32(cvt); 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** vst1_s16(pDst, outV); 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pDst += 4; 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** inV = vld1q_f32(pIn); 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** cvt = vcvtq_n_s32_f32(inV,15); 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** outV = vqmovn_s32(cvt); 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** vst1_s16(pDst, outV); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pDst += 4; ARM GAS /tmp/cce2LIhc.s page 137 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** pIn += 4; 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Decrement the loop counter */ 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** ** No loop unrolling is used. */ 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize & 3; 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = *pIn++; 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (in * 32768.0f); 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Decrement the loop counter */ 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** void arm_float_to_q15( 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** const float32_t * pSrc, 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** q15_t * pDst, 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blockSize) 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 3232 .loc 23 220 0 3233 .cfi_startproc 3234 @ args = 0, pretend = 0, frame = 0 3235 @ frame_needed = 0, uses_anonymous_args = 0 3236 @ link register save eliminated. 3237 .LVL395: 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** uint32_t blkCnt; /* Loop counter */ 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** const float32_t *pIn = pSrc; /* Source pointer */ 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** float32_t in; 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Loop unrolling: Compute 4 outputs at a time */ ARM GAS /tmp/cce2LIhc.s page 138 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize >> 2U; 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* convert from float to Q15 and store result in destination buffer */ 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pIn++ * 32768.0f); 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pIn++ * 32768.0f); 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pIn++ * 32768.0f); 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pIn++ * 32768.0f); 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Decrement loop counter */ 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Loop unrolling: Compute remaining outputs */ 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize % 0x4U; 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Initialize blkCnt with number of samples */ 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt = blockSize; 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** while (blkCnt > 0U) 3238 .loc 23 279 0 3239 0000 5AB1 cbz r2, .L414 3240 .LVL396: 3241 .L416: 3242 .LBB106: 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** ARM GAS /tmp/cce2LIhc.s page 139 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* convert from float to Q15 and store result in destination buffer */ 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #ifdef ARM_MATH_ROUNDING 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in = (*pIn++ * 32768.0f); 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** in += in > 0.0f ? 0.5f : -0.5f; 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #else 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* C = A * 32768 */ 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Convert from float to q15 and then store the results in the destination buffer */ 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); 3243 .loc 23 294 0 3244 0002 F0EC017A vldmia.32 r0!, {s15} 3245 .LVL397: 3246 0006 FEEEE87A vcvt.s32.f32 s15, s15, #15 3247 .LBE106: 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 3248 .loc 23 279 0 3249 000a 013A subs r2, r2, #1 3250 .LVL398: 3251 .LBB107: 3252 .loc 23 294 0 3253 000c 17EE903A vmov r3, s15 @ int 3254 .syntax unified 3255 @ 294 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c" 1 3256 0010 03F30F03 ssat r3, #16, r3 3257 @ 0 "" 2 3258 .LVL399: 3259 .thumb 3260 .syntax unified 3261 .LBE107: 3262 0014 21F8023B strh r3, [r1], #2 @ movhi 3263 .LVL400: 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** { 3264 .loc 23 279 0 3265 0018 F3D1 bne .L416 3266 .LVL401: 3267 .L414: 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** /* Decrement loop counter */ 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** blkCnt--; 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c **** } 3268 .loc 23 302 0 3269 001a 7047 bx lr 3270 .cfi_endproc 3271 .LFE176: 3273 .global __aeabi_f2lz 3274 .section .text.arm_float_to_q31,"ax",%progbits 3275 .align 1 3276 .p2align 2,,3 3277 .global arm_float_to_q31 3278 .syntax unified ARM GAS /tmp/cce2LIhc.s page 140 3279 .thumb 3280 .thumb_func 3281 .fpu fpv4-sp-d16 3283 arm_float_to_q31: 3284 .LFB177: 3285 .file 24 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Title: arm_float_to_q31.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Description: Converts the elements of the floating-point vector to Q31 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * @defgroup float_to_x Convert 32-bit floating point value 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @addtogroup float_to_x 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @{ 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @brief Converts the elements of the floating-point vector to Q31 vector. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @param[in] pSrc points to the floating-point input vector 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @param[out] pDst points to the Q31 output vector 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @param[in] blockSize number of samples in each vector 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @return none 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @par Details ARM GAS /tmp/cce2LIhc.s page 141 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** The equation used for the conversion process is: 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c ****
  54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c ****       pDst[n] = (q31_t)(pSrc[n] * 2147483648);   0 <= n < blockSize.
  55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c ****   
56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @par Scaling and Overflow Behavior 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** The function uses saturating arithmetic. 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] are saturated. 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** @note 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** In order to apply rounding, the library should be rebuilt with the ROUNDING macr 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** defined in the preprocessor section of project options. 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** void arm_float_to_q31( 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** const float32_t * pSrc, 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** q31_t * pDst, 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blockSize) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blkCnt; 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32_t maxQ = (float32_t) Q31_MAX; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** f32x4_t vecDst; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32_t in; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize >> 2U; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Compute 4 outputs at a time. */ 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** vecDst = vldrwq_f32(pSrc); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* convert from float to Q31 and then store the results in the destination buffer */ 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** vecDst = vmulq(vecDst, maxQ); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** vstrwq_s32(pDst, vcvtaq_s32_f32(vecDst)); 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Decrement the blockSize loop counter 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** * Advance vector source and destination pointers 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** */ 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pSrc += 4; 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pDst += 4; 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt --; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize & 3; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* convert from float to Q31 and store result in destination buffer */ 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING ARM GAS /tmp/cce2LIhc.s page 142 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pSrc++ * 2147483648.0f); 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pSrc++ * 2147483648.0f)); 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Decrement loop counter */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt--; 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #if defined(ARM_MATH_NEON) 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** void arm_float_to_q31( 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** const float32_t * pSrc, 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** q31_t * pDst, 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blockSize) 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** const float32_t *pIn = pSrc; /* Src pointer */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blkCnt; /* loop counter */ 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32x4_t inV; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32_t in; 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32x4_t zeroV = vdupq_n_f32(0.0f); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32x4_t pHalf = vdupq_n_f32(0.5f / 2147483648.0f); 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32x4_t mHalf = vdupq_n_f32(-0.5f / 2147483648.0f); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32x4_t r; 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32x4_t cmp; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** int32x4_t outV; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize >> 2U; 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Compute 4 outputs at a time. 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** ** a second loop below computes the remaining 1 to 3 samples. */ 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 32768 */ 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** inV = vld1q_f32(pIn); 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** cmp = vcgtq_f32(inV,zeroV); 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** r = vbslq_f32(cmp,pHalf,mHalf); 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** inV = vaddq_f32(inV, r); 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pIn += 4; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** ARM GAS /tmp/cce2LIhc.s page 143 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** outV = vcvtq_n_s32_f32(inV,31); 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** vst1q_s32(pDst, outV); 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pDst += 4; 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** inV = vld1q_f32(pIn); 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** outV = vcvtq_n_s32_f32(inV,31); 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** vst1q_s32(pDst, outV); 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pDst += 4; 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** pIn += 4; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Decrement the loop counter */ 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt--; 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** ** No loop unrolling is used. */ 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize & 3; 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = *pIn++; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (in * 2147483648.0f); 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Decrement the loop counter */ 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt--; 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** void arm_float_to_q31( 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** const float32_t * pSrc, 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** q31_t * pDst, ARM GAS /tmp/cce2LIhc.s page 144 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blockSize) 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 3286 .loc 24 224 0 3287 .cfi_startproc 3288 @ args = 0, pretend = 0, frame = 0 3289 @ frame_needed = 0, uses_anonymous_args = 0 3290 .LVL402: 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blkCnt; /* Loop counter */ 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** const float32_t *pIn = pSrc; /* Source pointer */ 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** float32_t in; 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Loop unrolling: Compute 4 outputs at a time */ 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize >> 2U; 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* convert from float to Q31 and store result in destination buffer */ 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pIn++ * 2147483648.0f); 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pIn++ * 2147483648.0f); 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pIn++ * 2147483648.0f); 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pIn++ * 2147483648.0f); 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Decrement loop counter */ 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt--; 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** ARM GAS /tmp/cce2LIhc.s page 145 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Loop unrolling: Compute remaining outputs */ 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize % 0x4U; 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Initialize blkCnt with number of samples */ 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt = blockSize; 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** while (blkCnt > 0U) 3291 .loc 24 285 0 3292 0000 22B3 cbz r2, .L430 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** uint32_t blkCnt; /* Loop counter */ 3293 .loc 24 224 0 3294 0002 F8B5 push {r3, r4, r5, r6, r7, lr} 3295 .LCFI47: 3296 .cfi_def_cfa_offset 24 3297 .cfi_offset 3, -24 3298 .cfi_offset 4, -20 3299 .cfi_offset 5, -16 3300 .cfi_offset 6, -12 3301 .cfi_offset 7, -8 3302 .cfi_offset 14, -4 3303 0004 2DED028B vpush.64 {d8} 3304 .LCFI48: 3305 .cfi_def_cfa_offset 32 3306 .cfi_offset 80, -32 3307 .cfi_offset 81, -28 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* convert from float to Q31 and store result in destination buffer */ 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #ifdef ARM_MATH_ROUNDING 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in = (*pIn++ * 2147483648.0f); 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** in += in > 0.0f ? 0.5f : -0.5f; 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (in)); 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #else 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* C = A * 2147483648 */ 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Convert from float to Q31 and then store the results in the destination buffer */ 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); 3308 .loc 24 300 0 3309 0008 9FED118A vldr.32 s16, .L433 3310 000c 0646 mov r6, r0 3311 000e 1446 mov r4, r2 3312 0010 0D1F subs r5, r1, #4 3313 .LBB108: 3314 .LBB109: 3315 .file 25 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /****************************************************************************** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @file arm_math.h 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Public header file for CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @version V1.7.0 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @date 18. March 2019 ARM GAS /tmp/cce2LIhc.s page 146 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ******************************************************************************/ 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Copyright (c) 2010-2019 Arm Limited or its affiliates. All rights reserved. 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * SPDX-License-Identifier: Apache-2.0 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * not use this file except in compliance with the License. 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * You may obtain a copy of the License at 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * www.apache.org/licenses/LICENSE-2.0 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Unless required by applicable law or agreed to in writing, software 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * See the License for the specific language governing permissions and 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * limitations under the License. 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \mainpage CMSIS DSP Software Library 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Introduction 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This user manual describes the CMSIS DSP software library, 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * a suite of common signal processing functions for use on Cortex-M and Cortex-A processor 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * based devices. 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library is divided into a number of functions each covering a specific category: 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Basic math functions 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Fast math functions 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Complex math functions 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Filtering functions 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Matrix functions 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Transform functions 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Motor control functions 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Statistical functions 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Support functions 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Interpolation functions 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Support Vector Machine functions (SVM) 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Bayes classifier functions 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Distance functions 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library has generally separate functions for operating on 8-bit integers, 16-bit integers, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 32-bit integer and 32-bit floating-point values. 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Using the Library 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library installer contains prebuilt versions of the libraries in the Lib fold 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Here is the list of pre-built libraries : 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit) 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on ARM GAS /tmp/cce2LIhc.s page 147 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7l_math.lib (Cortex-M7, Little endian) 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7b_math.lib (Cortex-M7, Big endian) 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit) 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit) 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4l_math.lib (Cortex-M4, Little endian) 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4b_math.lib (Cortex-M4, Big endian) 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM3l_math.lib (Cortex-M3, Little endian) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM3b_math.lib (Cortex-M3, Big endian) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian) 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian) 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian) 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian) 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions) 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precis 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library functions are declared in the public file arm_math.h which is placed 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Simply include this file and link the appropriate library in the application and begin calling 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * public header file arm_math.h for Cortex-M cores with little endian and big endi 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Examples 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * -------- 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library ships with a number of examples which demonstrate how to use the library functions 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Toolchain Support 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library is now tested on Fast Models building with cmake. 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Core M0, M7, A5 are tested. 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Building the Library 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library installer contains a project file to rebuild libraries on MDK toolchain in the 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * CMSIS-DSP in ARM::CMSIS Pack 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ----------------------------- 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The following files relevant to CMSIS-DSP are present in the ARM::CMSIS Pack directorie 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |File/Folder |Content 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |---------------------------------|----------------------------------------------------------- 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\Documentation\\DSP | This documentation 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\DSP_Lib_TestSuite | DSP_Lib test suite 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Examples | Example projects demonstrating the usage of the library fu 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Include | DSP_Lib include files 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Lib | DSP_Lib binaries 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Projects | Projects to rebuild DSP_Lib binaries 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Source | DSP_Lib source files 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Revision History of CMSIS-DSP 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Please refer to \ref ChangeLog_pg. ARM GAS /tmp/cce2LIhc.s page 149 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupMath Basic Math Functions 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupFastMath Fast Math Functions 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions provides a fast approximation to sine, cosine, and square root. 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * As compared to most of the other functions in the CMSIS math library, the fast math functions 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * operate on individual values and not arrays. 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are separate functions for Q15, Q31, and floating-point data. 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupCmplxMath Complex Math Functions 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions operates on complex data vectors. 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The data in the complex arrays is stored in an interleaved fashion 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * (real, imag, real, imag, ...). 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In the API functions, the number of samples in a complex array refers 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * to the number of complex values; the array contains twice this number of 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * real values. 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupFilters Filtering Functions 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupMatrix Matrix Functions 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions provides basic matrix math operations. 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The functions operate on matrix data structures. For example, 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the type 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * definition for the floating-point matrix structure is shown 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * below: 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     typedef struct
 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     {
 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       uint16_t numRows;     // number of rows of the matrix.
 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       uint16_t numCols;     // number of columns of the matrix.
 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       float32_t *pData;     // points to the data of the matrix.
 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     } arm_matrix_instance_f32;
 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are similar definitions for Q15 and Q31 data types. 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The structure specifies the size of the matrix and then points to 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * an array of data. The array is of size numRows X numCols 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and the values are arranged in row order. That is, the 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * matrix element (i, j) is stored at: 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     pData[i*numCols + j]
 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Init Functions ARM GAS /tmp/cce2LIhc.s page 150 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is an associated initialization function for each type of matrix 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * data structure. 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The initialization function sets the values of the internal structure fields. 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to \ref arm_mat_init_f32(), \ref arm_mat_init_q31() and \ref arm_mat_init_q15() 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * for floating-point, Q31 and Q15 types, respectively. 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Use of the initialization function is optional. However, if initialization function is used 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * then the instance structure cannot be placed into a const data section. 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * To place the instance structure in a const data 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * section, manually initialize the data structure. For example: 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where nRows specifies the number of rows, nColumns 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * specifies the number of columns, and pData points to the 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * data array. 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Size Checking 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * By default all of the matrix functions perform size checking on the input and 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * output matrices. For example, the matrix addition function verifies that the 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * two input matrices and the output matrix all have the same number of rows and 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * columns. If the size check fails the functions return: 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_SIZE_MISMATCH
 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Otherwise the functions return 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_SUCCESS
 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is some overhead associated with this matrix size checking. 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The matrix size checking is enabled via the \#define 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_MATRIX_CHECK
 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * within the library project settings. By default this macro is defined 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and size checking is enabled. By changing the project settings and 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * undefining this macro size checking is eliminated and the functions 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * run a bit faster. With size checking disabled the functions always 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * return ARM_MATH_SUCCESS. 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupTransforms Transform Functions 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupController Controller Functions 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupStats Statistics Functions 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/cce2LIhc.s page 151 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupSupport Support Functions 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupInterpolation Interpolation Functions 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * These functions perform 1- and 2-dimensional interpolation of data. 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Linear interpolation is used for 1-dimensional data and 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * bilinear interpolation is used for 2-dimensional data. 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupExamples Examples 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupSVM SVM Functions 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions is implementing SVM classification on 2 classes. 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The training must be done from scikit-learn. The parameters can be easily 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * generated from the scikit-learn object. Some examples are given in 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * DSP/Testing/PatternGeneration/SVM.py 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * If more than 2 classes are needed, the functions in this folder 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * will have to be used, as building blocks, to do multi-class classification. 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * No multi-class classification is provided in this SVM folder. 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupBayes Bayesian estimators 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Implement the naive gaussian Bayes estimator. 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The training must be done from scikit-learn. 325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The parameters can be easily 327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * generated from the scikit-learn object. Some examples are given in 328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * DSP/Testing/PatternGeneration/Bayes.py 329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupDistance Distance functions 333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Distance functions for use with clustering algorithms. 335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are distance functions for float vectors and boolean vectors. 336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef _ARM_MATH_H 341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define _ARM_MATH_H 342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __cplusplus 344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** extern "C" 345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 152 348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Compiler specific diagnostic adjustment */ 349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( __CC_ARM ) 350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) 352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __GNUC__ ) 354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic push 355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wconversion" 357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ICCARM__ ) 360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TI_ARM__ ) 362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __CSMC__ ) 364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TASKING__ ) 366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( _MSC_VER ) 368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #error Unknown compiler 371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Included for instrinsics definitions */ 375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (_MSC_VER ) 376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_FORCEINLINE static __forceinline 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_INLINE static __inline 379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __ALIGNED(x) __declspec(align(x)) 380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined (__GNUC_PYTHON__) 382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_FORCEINLINE static __attribute__((inline)) 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_INLINE static __attribute__((inline)) 386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wunused-function" 387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wattributes" 388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include "cmsis_compiler.h" 391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_MAX ((float64_t)DBL_MAX) 402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_MAX ((float32_t)FLT_MAX) 403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) ARM GAS /tmp/cce2LIhc.s page 153 405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_MAX ((float16_t)FLT_MAX) 406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_MIN (-DBL_MAX) 409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_MIN (-FLT_MAX) 410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_MIN (-(float16_t)FLT_MAX) 413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_ABSMAX ((float64_t)DBL_MAX) 416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_ABSMAX ((float32_t)FLT_MAX) 417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_ABSMAX ((float16_t)FLT_MAX) 420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_ABSMIN ((float64_t)0.0) 423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_ABSMIN ((float32_t)0.0) 424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_ABSMIN ((float16_t)0.0) 427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_MAX ((q31_t)(0x7FFFFFFFL)) 430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_MAX ((q15_t)(0x7FFF)) 431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_MAX ((q7_t)(0x7F)) 432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_MIN ((q31_t)(0x80000000L)) 433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_MIN ((q15_t)(0x8000)) 434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_MIN ((q7_t)(0x80)) 435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_ABSMAX ((q31_t)(0x7FFFFFFFL)) 437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_ABSMAX ((q15_t)(0x7FFF)) 438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_ABSMAX ((q7_t)(0x7F)) 439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_ABSMIN ((q31_t)0) 440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_ABSMIN ((q15_t)0) 441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_ABSMIN ((q7_t)0) 442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* evaluate ARM DSP feature */ 444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) 445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_DSP 1 446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) 449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_HELIUM) 453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_MVEF 454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_FLOAT16 455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_MVEF) 458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_MVEI 459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_FLOAT16 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 154 462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF) || defined(ARM_MATH_MVEI) 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for reciprocal calculation in Normalized LMS 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define DELTA_Q31 ((q31_t)(0x100)) 472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define DELTA_Q15 ((q15_t)0x5) 473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define INDEX_MASK 0x0000003F 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef PI 475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define PI 3.14159265358979f 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for SINE and COSINE Fast math approximations 480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_TABLE_SIZE 512 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_Q31_SHIFT (32 - 10) 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_Q15_SHIFT (16 - 10) 485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define CONTROLLER_Q31_SHIFT (32 - 9) 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define TABLE_SPACING_Q31 0x400000 487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define TABLE_SPACING_Q15 0x80 488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for SINE and COSINE Controller functions 491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.31(q31) Fixed value of 2/360 */ 493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* -1 to +1 is divided into 360 values so total spacing is (2/360) */ 494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define INPUT_SPACING 0xB60B61 495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros for complex numbers 498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Dimension C vector space */ 501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define CMPLX_DIM 2 502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Error status returned by some functions in the library. 505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef enum 508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SUCCESS = 0, /**< No error */ 510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SINGULAR = -5, /**< Input matrix is singular and cannot be inverted */ 515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */ 516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_status; 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/cce2LIhc.s page 155 519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional data type in 1.7 format. 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8_t q7_t; 522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional data type in 1.15 format. 525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16_t q15_t; 527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional data type in 1.31 format. 530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32_t q31_t; 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit fractional data type in 1.63 format. 535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64_t q63_t; 537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point type definition. 540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float float32_t; 542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit floating-point type definition. 545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef double float64_t; 547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief vector types 550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) || defined (ARM_MATH_MVEI) 552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit fractional 128-bit vector data type in 1.63 format 554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64x2_t q63x2_t; 556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector data type in 1.31 format. 559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t q31x4_t; 561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector data type with 16-bit alignement in 1.15 format. 564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) int16x8_t q15x8_t; 566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector data type with 8-bit alignement in 1.7 format. 569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(1) int8x16_t q7x16_t; 571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector pair data type in 1.31 format. 574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x2_t q31x4x2_t; ARM GAS /tmp/cce2LIhc.s page 156 576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector quadruplet data type in 1.31 format. 579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x4_t q31x4x4_t; 581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector pair data type in 1.15 format. 584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x2_t q15x8x2_t; 586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector quadruplet data type in 1.15 format. 589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x4_t q15x8x4_t; 591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector pair data type in 1.7 format. 594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x2_t q7x16x2_t; 596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector quadruplet data type in 1.7 format. 599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x4_t q7x16x4_t; 601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional data type in 9.23 format. 604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32_t q23_t; 606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector data type in 9.23 format. 609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t q23x4_t; 611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit status 128-bit vector data type. 614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64x2_t status64x2_t; 616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit status 128-bit vector data type. 619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t status32x4_t; 621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit status 128-bit vector data type. 624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8_t status16x8_t; 626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit status 128-bit vector data type. 629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16_t status8x16_t; 631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 157 633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) || defined(ARM_MATH_MVEF) /* floating point vector*/ 636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector type 638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4_t f32x4_t; 640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector data type 644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) float16x8_t f16x8_t; 646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector pair data type 650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x2_t f32x4x2_t; 652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector quadruplet data type 655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x4_t f32x4x4_t; 657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector pair data type 661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x2_t f16x8x2_t; 663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector quadruplet data type 666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x4_t f16x8x4_t; 668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit ubiquitous 128-bit vector data type 672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any32x4_t 674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32x4_t f; 676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32x4_t i; 677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any32x4_t; 678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit ubiquitous 128-bit vector data type 682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any16x8_t 684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float16x8_t f; 686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int16x8_t i; 687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any16x8_t; 688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 158 690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) 693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector data type in 1.31 format. 695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2_t q31x2_t; 697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector data type in 1.15 format. 700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) int16x4_t q15x4_t; 702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector data type in 1.7 format. 705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(1) int8x8_t q7x8_t; 707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit float 64-bit vector data type. 710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2_t f32x2_t; 712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit float 64-bit vector data type. 716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) float16x4_t f16x4_t; 718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector triplet data type 722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x3_t f32x4x3_t; 724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector triplet data type 728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x3_t f16x8x3_t; 730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector triplet data type in 1.31 format 734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x3_t q31x4x3_t; 736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector triplet data type in 1.15 format 739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x3_t q15x8x3_t; 741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector triplet data type in 1.7 format 744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x3_t q7x16x3_t; 746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 159 747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector pair data type 749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x2_t f32x2x2_t; 751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector triplet data type 754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x3_t f32x2x3_t; 756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector quadruplet data type 759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x4_t f32x2x4_t; 761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector pair data type 765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x2_t f16x4x2_t; 767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector triplet data type 770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x3_t f16x4x3_t; 772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector quadruplet data type 775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x4_t f16x4x4_t; 777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector pair data type in 1.31 format 781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2x2_t q31x2x2_t; 783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector triplet data type in 1.31 format 786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2x3_t q31x2x3_t; 788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector quadruplet data type in 1.31 format 791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x3_t q31x2x4_t; 793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector pair data type in 1.15 format 796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x2_t q15x4x2_t; 798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector triplet data type in 1.15 format 801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x2_t q15x4x3_t; 803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 160 804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector quadruplet data type in 1.15 format 806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x3_t q15x4x4_t; 808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector pair data type in 1.7 format 811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x2_t q7x8x2_t; 813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector triplet data type in 1.7 format 816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x3_t q7x8x3_t; 818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector quadruplet data type in 1.7 format 821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x4_t q7x8x4_t; 823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit ubiquitous 64-bit vector data type 826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any32x2_t 828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32x2_t f; 830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32x2_t i; 831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any32x2_t; 832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit ubiquitous 64-bit vector data type 836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any16x4_t 838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float16x4_t f; 840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int16x4_t i; 841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any16x4_t; 842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit status 64-bit vector data type. 846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t status32x2_t; 848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit status 64-bit vector data type. 851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8_t status16x4_t; 853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit status 64-bit vector data type. 856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16_t status8x8_t; 858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 161 861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief definition to read/write two 16 bit values. 865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @deprecated 866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( __CC_ARM ) 868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t __packed 869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) 870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __GNUC__ ) 872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ICCARM__ ) 874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t __packed 875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TI_ARM__ ) 876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __CSMC__ ) 878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TASKING__ ) 880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE __un(aligned) int32_t 881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined(_MSC_VER ) 882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #error Unknown compiler 885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) 888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_CONST(addr) ( (__SIMD32_TYPE * ) (addr)) 889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE * ) (addr)) 890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD64(addr) (*( int64_t **) & (addr)) 891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define STEP(x) (x) <= 0 ? 0 : 1 893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define SQ(x) ((x) * (x)) 894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* SIMD replacement */ 896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer. 900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2 ( 904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pQ15) 905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, pQ15, 4); 910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = (pQ15[1] << 16) | (pQ15[0] & 0x0FFFF) ; 912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/cce2LIhc.s page 162 918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer and increment pointer afterwards. 919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2_ia ( 923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15) 924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ15, 4); 929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((*pQ15)[1] << 16) | ((*pQ15)[0] & 0x0FFFF); 931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 += 2; 934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer and decrement pointer afterwards. 939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2_da ( 943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15) 944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ15, 4); 949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((*pQ15)[1] << 16) | ((*pQ15)[0] & 0x0FFFF); 951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 -= 2; 954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 2 Q15 to Q15 pointer and increment pointer afterwards. 959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q15x2_ia ( 964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15, 965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (*pQ15, &val, 4); 970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ15)[0] = (val & 0x0FFFF); 972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ15)[1] = (val >> 16) & 0x0FFFF; 973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/cce2LIhc.s page 163 975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 += 2; 976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 2 Q15 to Q15 pointer. 980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q15x2 ( 985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pQ15, 986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (pQ15, &val, 4); 992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** pQ15[0] = val & 0x0FFFF; 994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** pQ15[1] = val >> 16; 995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 4 Q7 from Q7 pointer and increment pointer afterwards. 1001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 1003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q7x4_ia ( 1005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7) 1006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 1008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ7, 4); 1012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val =(((*pQ7)[3] & 0x0FF) << 24) | (((*pQ7)[2] & 0x0FF) << 16) | (((*pQ7)[1] & 0x0FF) << 8) | 1014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 += 4; 1017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 1019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 4 Q7 from Q7 pointer and decrement pointer afterwards. 1023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 1025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q7x4_da ( 1027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7) 1028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 1030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ7, 4); ARM GAS /tmp/cce2LIhc.s page 164 1032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((((*pQ7)[3]) & 0x0FF) << 24) | ((((*pQ7)[2]) & 0x0FF) << 16) | ((((*pQ7)[1]) & 0x0FF) << 1034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 -= 4; 1036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 1038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 4 Q7 to Q7 pointer and increment pointer afterwards. 1042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 1044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 1045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q7x4_ia ( 1047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7, 1048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 1049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 1051:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (*pQ7, &val, 4); 1053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[0] = val & 0x0FF; 1055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[1] = (val >> 8) & 0x0FF; 1056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[2] = (val >> 16) & 0x0FF; 1057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[3] = (val >> 24) & 0x0FF; 1058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 += 4; 1061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** Normally those kind of definitions are in a compiler file 1066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** in Core or Core_A. 1067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** But for MSVC compiler it is a bit special. The goal is very specific 1069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** to CMSIS-DSP and only to allow the use of this library from other 1070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** systems like Python or Matlab. 1071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** MSVC is not going to be used to cross-compile to ARM. So, having a MSVC 1073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** compiler file in Core or Core_A would not make sense. 1074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( _MSC_VER ) || defined(__GNUC_PYTHON__) 1077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t data) 1078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (data == 0U) { return 32U; } 1080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t count = 0U; 1082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t mask = 0x80000000U; 1083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** while ((data & mask) == 0U) 1085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** count += 1U; 1087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** mask = mask >> 1U; 1088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } ARM GAS /tmp/cce2LIhc.s page 165 1089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return count; 1090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) 1093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if ((sat >= 1U) && (sat <= 32U)) 1095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); 1097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const int32_t min = -1 - max ; 1098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (val > max) 1099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return max; 1101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (val < min) 1103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return min; 1105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return val; 1108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) 1111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (sat <= 31U) 1113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t max = ((1U << sat) - 1U); 1115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (val > (int32_t)max) 1116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return max; 1118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (val < 0) 1120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return 0U; 1122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (uint32_t)val; 1125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef ARM_MATH_DSP 1129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief definition to pack two 16 bit values. 1131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ 1133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) 1134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ 1135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) 1136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief definition to pack four 8 bit values. 1140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef ARM_MATH_BIG_ENDIAN 1142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ 1143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ 1144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ 1145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) ARM GAS /tmp/cce2LIhc.s page 166 1146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ 1148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ 1149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ 1150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) 1151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Clips Q63 to Q31 values. 1156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t clip_q63_to_q31( 1158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t x) 1159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? 1161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x; 3316 .loc 25 1161 0 3317 0012 6FF00047 mvn r7, #-2147483648 3318 .LVL403: 3319 .L423: 3320 .LBE109: 3321 .LBE108: 3322 .loc 24 300 0 3323 0016 F6EC017A vldmia.32 r6!, {s15} 3324 .LVL404: 3325 001a 67EE887A vmul.f32 s15, s15, s16 3326 001e 17EE900A vmov r0, s15 3327 0022 FFF7FEFF bl __aeabi_f2lz 3328 .LVL405: 3329 .LBB111: 3330 .LBB110: 3331 .loc 25 1161 0 3332 0026 B1EBE07F cmp r1, r0, asr #31 3333 002a 87EAE173 eor r3, r7, r1, asr #31 3334 002e 06D0 beq .L424 3335 .LBE110: 3336 .LBE111: 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 3337 .loc 24 285 0 3338 0030 013C subs r4, r4, #1 3339 .LVL406: 3340 .loc 24 300 0 3341 0032 45F8043F str r3, [r5, #4]! 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 3342 .loc 24 285 0 3343 0036 EED1 bne .L423 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** /* Decrement loop counter */ 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** blkCnt--; 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** } 3344 .loc 24 308 0 3345 0038 BDEC028B vldm sp!, {d8} 3346 .LCFI49: ARM GAS /tmp/cce2LIhc.s page 167 3347 .cfi_remember_state 3348 .cfi_restore 80 3349 .cfi_restore 81 3350 .cfi_def_cfa_offset 24 3351 003c F8BD pop {r3, r4, r5, r6, r7, pc} 3352 .LVL407: 3353 .L424: 3354 .LCFI50: 3355 .cfi_restore_state 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 3356 .loc 24 285 0 3357 003e 013C subs r4, r4, #1 3358 .LVL408: 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** 3359 .loc 24 300 0 3360 0040 45F8040F str r0, [r5, #4]! 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c **** { 3361 .loc 24 285 0 3362 0044 E7D1 bne .L423 3363 .loc 24 308 0 3364 0046 BDEC028B vldm sp!, {d8} 3365 .LCFI51: 3366 .cfi_restore 80 3367 .cfi_restore 81 3368 .cfi_def_cfa_offset 24 3369 004a F8BD pop {r3, r4, r5, r6, r7, pc} 3370 .LVL409: 3371 .L430: 3372 .LCFI52: 3373 .cfi_def_cfa_offset 0 3374 .cfi_restore 3 3375 .cfi_restore 4 3376 .cfi_restore 5 3377 .cfi_restore 6 3378 .cfi_restore 7 3379 .cfi_restore 14 3380 004c 7047 bx lr 3381 .L434: 3382 004e 00BF .align 2 3383 .L433: 3384 0050 0000004F .word 1325400064 3385 .cfi_endproc 3386 .LFE177: 3388 .section .text.arm_float_to_q7,"ax",%progbits 3389 .align 1 3390 .p2align 2,,3 3391 .global arm_float_to_q7 3392 .syntax unified 3393 .thumb 3394 .thumb_func 3395 .fpu fpv4-sp-d16 3397 arm_float_to_q7: 3398 .LFB178: 3399 .file 26 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Title: arm_float_to_q7.c ARM GAS /tmp/cce2LIhc.s page 168 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Description: Converts the elements of the floating-point vector to Q7 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** @addtogroup float_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * @brief Converts the elements of the floating-point vector to Q7 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * @param[in] *pSrc points to the floating-point input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * @param[out] *pDst points to the Q7 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * @param[in] blockSize length of the input vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * @return none. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *\par Description: 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * \par 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * The equation used for the conversion process is: 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c ****  * 	pDst[n] = (q7_t)(pSrc[n] * 128);   0 <= n < blockSize.
  52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c ****  * 
53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * \par Scaling and Overflow Behavior: 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * \par 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * The function uses saturating arithmetic. 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * \note 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * In order to apply rounding, the library should be rebuilt with the ROUNDING macro 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * defined in the preprocessor section of project options. 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ ARM GAS /tmp/cce2LIhc.s page 169 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** void arm_float_to_q7( 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** const float32_t * pSrc, 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** q7_t * pDst, 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blockSize) 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blkCnt; /* loop counters */ 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32_t maxQ = powf(2.0, 7); 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** f32x4x4_t tmp; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** q15x8_t evVec, oddVec; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** q7x16_t vecDst; 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32_t const *pSrcVec; 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32_t in; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pSrcVec = (float32_t const *) pSrc; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize >> 4; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) { 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** tmp = vld4q(pSrcVec); 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pSrcVec += 16; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * C = A * 128.0 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * convert from float to q7 and then store the results in the destination buffer 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** tmp.val[0] = vmulq(tmp.val[0], maxQ); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** tmp.val[1] = vmulq(tmp.val[1], maxQ); 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** tmp.val[2] = vmulq(tmp.val[2], maxQ); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** tmp.val[3] = vmulq(tmp.val[3], maxQ); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * convert and pack evens 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** evVec = vqmovnbq(evVec, vcvtaq_s32_f32(tmp.val[0])); 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** evVec = vqmovntq(evVec, vcvtaq_s32_f32(tmp.val[2])); 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * convert and pack odds 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** oddVec = vqmovnbq(oddVec, vcvtaq_s32_f32(tmp.val[1])); 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** oddVec = vqmovntq(oddVec, vcvtaq_s32_f32(tmp.val[3])); 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * merge 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** vecDst = vqmovnbq(vecDst, evVec); 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** vecDst = vqmovntq(vecDst, oddVec); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** vst1q(pDst, vecDst); 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pDst += 16; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** * Decrement the blockSize loop counter 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** */ 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize & 0xF; 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { ARM GAS /tmp/cce2LIhc.s page 170 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and store result in destination buffer */ 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pSrcVec++ * 128); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) __SSAT((q31_t) (*pSrcVec++ * 128.0f), 8); 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Decrement loop counter */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #if defined(ARM_MATH_NEON) 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** void arm_float_to_q7( 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** const float32_t * pSrc, 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** q7_t * pDst, 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blockSize) 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** const float32_t *pIn = pSrc; /* Src pointer */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blkCnt; /* loop counter */ 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32x4_t inV; 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32_t in; 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32x4_t zeroV = vdupq_n_f32(0.0f); 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32x4_t pHalf = vdupq_n_f32(0.5f / 128.0f); 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32x4_t mHalf = vdupq_n_f32(-0.5f / 128.0f); 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32x4_t r; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32x4_t cmp; 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** int16x4_t cvt1,cvt2; 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** int8x8_t outV; 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize >> 3U; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Compute 8 outputs at a time. 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** ** a second loop below computes the remaining 1 to 7 samples. */ 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and then store the results in the destination buffer */ 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vld1q_f32(pIn); 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cmp = vcgtq_f32(inV,zeroV); 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** r = vbslq_f32(cmp,pHalf,mHalf); 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vaddq_f32(inV, r); ARM GAS /tmp/cce2LIhc.s page 171 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cvt1 = vqmovn_s32(vcvtq_n_s32_f32(inV,7)); 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pIn += 4; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vld1q_f32(pIn); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cmp = vcgtq_f32(inV,zeroV); 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** r = vbslq_f32(cmp,pHalf,mHalf); 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vaddq_f32(inV, r); 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cvt2 = vqmovn_s32(vcvtq_n_s32_f32(inV,7)); 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pIn += 4; 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** outV = vqmovn_s16(vcombine_s16(cvt1,cvt2)); 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** vst1_s8(pDst, outV); 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pDst += 8; 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and then store the results in the destination buffer */ 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vld1q_f32(pIn); 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cvt1 = vqmovn_s32(vcvtq_n_s32_f32(inV,7)); 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pIn += 4; 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** inV = vld1q_f32(pIn); 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** cvt2 = vqmovn_s32(vcvtq_n_s32_f32(inV,7)); 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pIn += 4; 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** outV = vqmovn_s16(vcombine_s16(cvt1,cvt2)); 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** vst1_s8(pDst, outV); 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** pDst += 8; 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Decrement the loop counter */ 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** ** No loop unrolling is used. */ 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize & 7; 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and then store the results in the destination buffer */ 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = *pIn++; 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (in * 128); 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and then store the results in the destination buffer */ 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** ARM GAS /tmp/cce2LIhc.s page 172 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Decrement the loop counter */ 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** void arm_float_to_q7( 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** const float32_t * pSrc, 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** q7_t * pDst, 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blockSize) 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 3400 .loc 26 244 0 3401 .cfi_startproc 3402 @ args = 0, pretend = 0, frame = 0 3403 @ frame_needed = 0, uses_anonymous_args = 0 3404 @ link register save eliminated. 3405 .LVL410: 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** uint32_t blkCnt; /* Loop counter */ 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** const float32_t *pIn = pSrc; /* Source pointer */ 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** float32_t in; 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Loop unrolling: Compute 4 outputs at a time */ 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize >> 2U; 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and store result in destination buffer */ 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pIn++ * 128); 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pIn++ * 128); 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pIn++ * 128); 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pIn++ * 128); 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); ARM GAS /tmp/cce2LIhc.s page 173 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Decrement loop counter */ 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Loop unrolling: Compute remaining outputs */ 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize % 0x4U; 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Initialize blkCnt with number of samples */ 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt = blockSize; 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** while (blkCnt > 0U) 3406 .loc 26 303 0 3407 0000 62B1 cbz r2, .L435 3408 0002 0A44 add r2, r2, r1 3409 .LVL411: 3410 .L437: 3411 .LBB112: 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* C = A * 128 */ 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Convert from float to q7 and store result in destination buffer */ 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #ifdef ARM_MATH_ROUNDING 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in = (*pIn++ * 128); 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** in += in > 0.0f ? 0.5f : -0.5f; 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #else 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** *pDst++ = (q7_t) __SSAT((q31_t) (*pIn++ * 128.0f), 8); 3412 .loc 26 316 0 3413 0004 F0EC017A vldmia.32 r0!, {s15} 3414 .LVL412: 3415 0008 FEEEEC7A vcvt.s32.f32 s15, s15, #7 3416 000c 17EE903A vmov r3, s15 @ int 3417 .syntax unified 3418 @ 316 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c" 1 3419 0010 03F30703 ssat r3, #8, r3 3420 @ 0 "" 2 3421 .LVL413: 3422 .thumb 3423 .syntax unified 3424 .LBE112: 3425 0014 01F8013B strb r3, [r1], #1 3426 .LVL414: 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** { 3427 .loc 26 303 0 ARM GAS /tmp/cce2LIhc.s page 174 3428 0018 9142 cmp r1, r2 3429 001a F3D1 bne .L437 3430 .LVL415: 3431 .L435: 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** #endif /* #ifdef ARM_MATH_ROUNDING */ 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** /* Decrement loop counter */ 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** blkCnt--; 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c **** } 3432 .loc 26 324 0 3433 001c 7047 bx lr 3434 .cfi_endproc 3435 .LFE178: 3437 001e 00BF .section .text.arm_q15_to_float,"ax",%progbits 3438 .align 1 3439 .p2align 2,,3 3440 .global arm_q15_to_float 3441 .syntax unified 3442 .thumb 3443 .thumb_func 3444 .fpu fpv4-sp-d16 3446 arm_q15_to_float: 3447 .LFB179: 3448 .file 27 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Title: arm_q15_to_float.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Description: Converts the elements of the Q15 vector to floating-point vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** ARM GAS /tmp/cce2LIhc.s page 175 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * @defgroup q15_to_x Convert 16-bit Integer value 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @addtogroup q15_to_x 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @{ 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @brief Converts the elements of the Q15 vector to floating-point vector. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @param[in] pSrc points to the Q15 input vector 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @param[out] pDst points to the floating-point output vector 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @param[in] blockSize number of samples in each vector 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @return none 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** @par Details 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** The equation used for the conversion process is: 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c ****
  54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c ****       pDst[n] = (float32_t) pSrc[n] / 32768;   0 <= n < blockSize.
  55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c ****   
56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** void arm_q15_to_float( 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** const q15_t * pSrc, 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** float32_t * pDst, 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blockSize) 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blkCnt; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** q15x8_t vecDst; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** q15_t const *pSrcVec; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pSrcVec = (q15_t const *) pSrc; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize >> 2; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* convert from q15 to float and then store the results in the destination buffer */ 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** vecDst = vldrhq_s32(pSrcVec); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pSrcVec += 4; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** vstrwq(pDst, vcvtq_n_f32_s32(vecDst, 15)); 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pDst += 4; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** * Decrement the blockSize loop counter 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** */ 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize & 3; 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { ARM GAS /tmp/cce2LIhc.s page 176 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Convert from q15 to float and store result in destination buffer */ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) *pSrcVec++ / 32768.0f); 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Decrement loop counter */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #else 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #if defined(ARM_MATH_NEON_EXPERIMENTAL) 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** void arm_q15_to_float( 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** const q15_t * pSrc, 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** float32_t * pDst, 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blockSize) 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** const q15_t *pIn = pSrc; /* Src pointer */ 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blkCnt; /* loop counter */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** int16x8_t inV; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** int32x4_t inV0, inV1; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** float32x4_t outV; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize >> 3U; 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Compute 8 outputs at a time. 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** ** a second loop below computes the remaining 1 to 7 samples. */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* convert from q15 to float and then store the results in the destination buffer */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** inV = vld1q_s16(pIn); 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pIn += 8; 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** inV0 = vmovl_s16(vget_low_s16(inV)); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** inV1 = vmovl_s16(vget_high_s16(inV)); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** outV = vcvtq_n_f32_s32(inV0,15); 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** vst1q_f32(pDst, outV); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pDst += 4; 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** outV = vcvtq_n_f32_s32(inV1,15); 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** vst1q_f32(pDst, outV); 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** pDst += 4; 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Decrement the loop counter */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* If the blockSize is not a multiple of 8, compute any remaining output samples here. 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** ** No loop unrolling is used. */ 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize & 7; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ ARM GAS /tmp/cce2LIhc.s page 177 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* convert from q15 to float and then store the results in the destination buffer */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 32768.0f); 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Decrement the loop counter */ 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #else 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** void arm_q15_to_float( 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** const q15_t * pSrc, 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** float32_t * pDst, 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blockSize) 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 3449 .loc 27 157 0 3450 .cfi_startproc 3451 @ args = 0, pretend = 0, frame = 0 3452 @ frame_needed = 0, uses_anonymous_args = 0 3453 @ link register save eliminated. 3454 .LVL416: 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** uint32_t blkCnt; /* Loop counter */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** const q15_t *pIn = pSrc; /* Source pointer */ 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #if defined (ARM_MATH_LOOPUNROLL) 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Loop unrolling: Compute 4 outputs at a time */ 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize >> 2U; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Convert from q15 to float and store result in destination buffer */ 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 32768.0f); 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 32768.0f); 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 32768.0f); 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 32768.0f); 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Decrement loop counter */ 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Loop unrolling: Compute remaining outputs */ 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize % 0x4U; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #else 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Initialize blkCnt with number of samples */ 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt = blockSize; 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** while (blkCnt > 0U) 3455 .loc 27 190 0 3456 0000 6AB1 cbz r2, .L442 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* C = (float32_t) A / 32768 */ 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** ARM GAS /tmp/cce2LIhc.s page 178 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Convert from q15 to float and store result in destination buffer */ 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 32768.0f); 3457 .loc 27 195 0 3458 0002 9FED077A vldr.32 s14, .L449 3459 .LVL417: 3460 .L444: 3461 0006 30F9023B ldrsh r3, [r0], #2 3462 .LVL418: 3463 000a 07EE903A vmov s15, r3 @ int 3464 .LVL419: 3465 000e F8EEE77A vcvt.f32.s32 s15, s15 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 3466 .loc 27 190 0 3467 0012 013A subs r2, r2, #1 3468 .LVL420: 3469 .loc 27 195 0 3470 0014 67EE877A vmul.f32 s15, s15, s14 3471 0018 E1EC017A vstmia.32 r1!, {s15} 3472 .LVL421: 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** { 3473 .loc 27 190 0 3474 001c F3D1 bne .L444 3475 .L442: 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** /* Decrement loop counter */ 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** blkCnt--; 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c **** } 3476 .loc 27 201 0 3477 001e 7047 bx lr 3478 .L450: 3479 .align 2 3480 .L449: 3481 0020 00000038 .word 939524096 3482 .cfi_endproc 3483 .LFE179: 3485 .section .text.arm_q15_to_q31,"ax",%progbits 3486 .align 1 3487 .p2align 2,,3 3488 .global arm_q15_to_q31 3489 .syntax unified 3490 .thumb 3491 .thumb_func 3492 .fpu fpv4-sp-d16 3494 arm_q15_to_q31: 3495 .LFB180: 3496 .file 28 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Title: arm_q15_to_q31.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Description: Converts the elements of the Q15 vector to Q31 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Target Processor: Cortex-M cores ARM GAS /tmp/cce2LIhc.s page 179 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @addtogroup q15_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @brief Converts the elements of the Q15 vector to Q31 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @param[in] pSrc points to the Q15 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @param[out] pDst points to the Q31 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c ****       pDst[n] = (q31_t) pSrc[n] << 16;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #if defined(ARM_MATH_MVEI) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** void arm_q15_to_q31( 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** const q15_t * pSrc, 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** q31_t * pDst, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** uint32_t blockSize) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** uint32_t blkCnt; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** q31x4_t vecDst; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt = blockSize>> 2; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** while (blkCnt > 0U) 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { ARM GAS /tmp/cce2LIhc.s page 180 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* C = (q31_t)A << 16 */ 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* convert from q15 to q31 and then store the results in the destination buffer */ 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* load q15 + 32-bit widening */ 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** vecDst = vldrhq_s32((q15_t const *) pSrc); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** vecDst = vshlq_n(vecDst, 16); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** vstrwq_s32(pDst, vecDst); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Decrement the blockSize loop counter 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** * Advance vector source and destination pointers 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** */ 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** pDst += 4; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** pSrc += 4; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt --; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt = blockSize & 3; 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** while (blkCnt > 0U) 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* C = (q31_t) A << 16 */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Convert from q15 to q31 and store result in destination buffer */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = (q31_t) *pSrc++ << 16; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Decrement loop counter */ 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt--; 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #else 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** void arm_q15_to_q31( 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** const q15_t * pSrc, 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** q31_t * pDst, 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** uint32_t blockSize) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 3497 .loc 28 101 0 3498 .cfi_startproc 3499 @ args = 0, pretend = 0, frame = 0 3500 @ frame_needed = 0, uses_anonymous_args = 0 3501 @ link register save eliminated. 3502 .LVL422: 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** uint32_t blkCnt; /* Loop counter */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** const q15_t *pIn = pSrc; /* Source pointer */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** q31_t in1, in2; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** q31_t out1, out2, out3, out4; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #endif 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Loop unrolling: Compute 4 outputs at a time */ 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt = blockSize >> 2U; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** while (blkCnt > 0U) 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* C = (q31_t)A << 16 */ ARM GAS /tmp/cce2LIhc.s page 181 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Convert from q15 to q31 and store result in destination buffer */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** in1 = read_q15x2_ia ((q15_t **) &pIn); 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** in2 = read_q15x2_ia ((q15_t **) &pIn); 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #ifndef ARM_MATH_BIG_ENDIAN 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract lower 16 bits to 32 bit result */ 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out1 = in1 << 16U; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract upper 16 bits to 32 bit result */ 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out2 = in1 & 0xFFFF0000; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract lower 16 bits to 32 bit result */ 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out3 = in2 << 16U; 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract upper 16 bits to 32 bit result */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out4 = in2 & 0xFFFF0000; 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #else 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract upper 16 bits to 32 bit result */ 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out1 = in1 & 0xFFFF0000; 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract lower 16 bits to 32 bit result */ 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out2 = in1 << 16U; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract upper 16 bits to 32 bit result */ 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out3 = in2 & 0xFFFF0000; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* extract lower 16 bits to 32 bit result */ 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** out4 = in2 << 16U; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #endif /* #ifndef ARM_MATH_BIG_ENDIAN */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = out1; 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = out2; 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = out3; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = out4; 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Decrement loop counter */ 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt--; 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Loop unrolling: Compute remaining outputs */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt = blockSize % 0x4U; 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #else 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Initialize blkCnt with number of samples */ 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt = blockSize; 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** while (blkCnt > 0U) 3503 .loc 28 166 0 3504 0000 3AB1 cbz r2, .L451 3505 .LVL423: 3506 .L453: 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* C = (q31_t) A << 16 */ 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Convert from q15 to q31 and store result in destination buffer */ ARM GAS /tmp/cce2LIhc.s page 182 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** *pDst++ = (q31_t) *pIn++ << 16; 3507 .loc 28 171 0 3508 0002 30F9023B ldrsh r3, [r0], #2 3509 .LVL424: 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 3510 .loc 28 166 0 3511 0006 013A subs r2, r2, #1 3512 .LVL425: 3513 .loc 28 171 0 3514 0008 4FEA0343 lsl r3, r3, #16 3515 000c 41F8043B str r3, [r1], #4 3516 .LVL426: 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** { 3517 .loc 28 166 0 3518 0010 F7D1 bne .L453 3519 .L451: 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** /* Decrement loop counter */ 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** blkCnt--; 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c **** } 3520 .loc 28 177 0 3521 0012 7047 bx lr 3522 .cfi_endproc 3523 .LFE180: 3525 .section .text.arm_q15_to_q7,"ax",%progbits 3526 .align 1 3527 .p2align 2,,3 3528 .global arm_q15_to_q7 3529 .syntax unified 3530 .thumb 3531 .thumb_func 3532 .fpu fpv4-sp-d16 3534 arm_q15_to_q7: 3535 .LFB181: 3536 .file 29 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Title: arm_q15_to_q7.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Description: Converts the elements of the Q15 vector to Q7 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * www.apache.org/licenses/LICENSE-2.0 ARM GAS /tmp/cce2LIhc.s page 183 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @addtogroup q15_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @brief Converts the elements of the Q15 vector to Q7 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @param[in] pSrc points to the Q15 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @param[out] pDst points to the Q7 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c ****       pDst[n] = (q7_t) pSrc[n] >> 8;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #if defined(ARM_MATH_MVEI) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** void arm_q15_to_q7( 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** const q15_t * pSrc, 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q7_t * pDst, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** uint32_t blockSize) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** uint32_t blkCnt; /* loop counters */ 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q15x8x2_t tmp; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q15_t const *pSrcVec; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q7x16_t vecDst; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** pSrcVec = (q15_t const *) pSrc; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt = blockSize >> 4; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** while (blkCnt > 0U) 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* C = (q7_t) A >> 8 */ 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* convert from q15 to q7 and then store the results in the destination buffer */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** tmp = vld2q(pSrcVec); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** pSrcVec += 16; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** vecDst = vqshrnbq_n_s16(vecDst, tmp.val[0], 8); 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** vecDst = vqshrntq_n_s16(vecDst, tmp.val[1], 8); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** vst1q(pDst, vecDst); 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** pDst += 16; ARM GAS /tmp/cce2LIhc.s page 184 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** * Decrement the blockSize loop counter 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt--; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt = blockSize & 0xF; 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** while (blkCnt > 0U) 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* C = (q7_t) A >> 8 */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Convert from q15 to q7 and store result in destination buffer */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pSrcVec++ >> 8); 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Decrement loop counter */ 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt--; 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #else 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** void arm_q15_to_q7( 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** const q15_t * pSrc, 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q7_t * pDst, 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** uint32_t blockSize) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 3537 .loc 29 101 0 3538 .cfi_startproc 3539 @ args = 0, pretend = 0, frame = 0 3540 @ frame_needed = 0, uses_anonymous_args = 0 3541 @ link register save eliminated. 3542 .LVL427: 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** uint32_t blkCnt; /* Loop counter */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** const q15_t *pIn = pSrc; /* Source pointer */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) && defined (ARM_MATH_DSP) 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q31_t in1, in2; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** q31_t out1, out2; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #endif 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Loop unrolling: Compute 4 outputs at a time */ 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt = blockSize >> 2U; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** while (blkCnt > 0U) 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* C = (q7_t) A >> 8 */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Convert from q15 to q7 and store result in destination buffer */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #if defined (ARM_MATH_DSP) 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** in1 = read_q15x2_ia ((q15_t **) &pIn); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** in2 = read_q15x2_ia ((q15_t **) &pIn); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #ifndef ARM_MATH_BIG_ENDIAN 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out1 = __PKHTB(in2, in1, 16); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out2 = __PKHBT(in2, in1, 16); ARM GAS /tmp/cce2LIhc.s page 185 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #else 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out1 = __PKHTB(in1, in2, 16); 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out2 = __PKHBT(in1, in2, 16); 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #endif /* #ifndef ARM_MATH_BIG_ENDIAN */ 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* rotate packed value by 24 */ 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out2 = ((uint32_t) out2 << 8) | ((uint32_t) out2 >> 24); 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* anding with 0xff00ff00 to get two 8 bit values */ 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out1 = out1 & 0xFF00FF00; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* anding with 0x00ff00ff to get two 8 bit values */ 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out2 = out2 & 0x00FF00FF; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* oring two values(contains two 8 bit values) to get four packed 8 bit values */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** out1 = out1 | out2; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* store 4 samples at a time to destiantion buffer */ 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** write_q7x4_ia (&pDst, out1); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #else 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 8); 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 8); 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 8); 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 8); 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #endif /* #if defined (ARM_MATH_DSP) */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Decrement loop counter */ 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt--; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Loop unrolling: Compute remaining outputs */ 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt = blockSize % 0x4U; 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #else 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Initialize blkCnt with number of samples */ 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt = blockSize; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** while (blkCnt > 0U) 3543 .loc 29 174 0 3544 0000 3AB1 cbz r2, .L458 3545 0002 0A44 add r2, r2, r1 3546 .LVL428: 3547 .L460: 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* C = (q7_t) A >> 8 */ 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Convert from q15 to q7 and store result in destination buffer */ 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 8); 3548 .loc 29 179 0 ARM GAS /tmp/cce2LIhc.s page 186 3549 0004 30F9023B ldrsh r3, [r0], #2 3550 .LVL429: 3551 0008 1B12 asrs r3, r3, #8 3552 000a 01F8013B strb r3, [r1], #1 3553 .LVL430: 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** { 3554 .loc 29 174 0 3555 000e 9142 cmp r1, r2 3556 0010 F8D1 bne .L460 3557 .L458: 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** /* Decrement loop counter */ 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** blkCnt--; 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c **** } 3558 .loc 29 185 0 3559 0012 7047 bx lr 3560 .cfi_endproc 3561 .LFE181: 3563 .section .text.arm_q31_to_float,"ax",%progbits 3564 .align 1 3565 .p2align 2,,3 3566 .global arm_q31_to_float 3567 .syntax unified 3568 .thumb 3569 .thumb_func 3570 .fpu fpv4-sp-d16 3572 arm_q31_to_float: 3573 .LFB182: 3574 .file 30 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Title: arm_q31_to_float.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Description: Converts the elements of the Q31 vector to floating-point vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * limitations under the License. ARM GAS /tmp/cce2LIhc.s page 187 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * @defgroup q31_to_x Convert 32-bit Integer value 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @addtogroup q31_to_x 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @{ 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @brief Converts the elements of the Q31 vector to floating-point vector. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @param[in] pSrc points to the Q31 input vector 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @param[out] pDst points to the floating-point output vector 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @param[in] blockSize number of samples in each vector 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @return none 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** @par Details 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** The equation used for the conversion process is: 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c ****
  54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c ****       pDst[n] = (float32_t) pSrc[n] / 2147483648;   0 <= n < blockSize.
  55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c ****   
56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** void arm_q31_to_float( 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** const q31_t * pSrc, 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** float32_t * pDst, 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blockSize) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blkCnt; /* loop counters */ 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** q31x4_t vecDst; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** q31_t const *pSrcVec; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** pSrcVec = (q31_t const *) pSrc; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize >> 2; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* convert from q31 to float and then store the results in the destination buffer */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** vecDst = vld1q(pSrcVec); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** pSrcVec += 4; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** vstrwq(pDst, vcvtq_n_f32_s32(vecDst, 31)); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** pDst += 4; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * Decrement the blockSize loop counter 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * tail ARM GAS /tmp/cce2LIhc.s page 188 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** * (will be merged thru tail predication) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize & 3; 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Convert from q31 to float and store result in destination buffer */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pSrcVec++ / 2147483648.0f); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Decrement loop counter */ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #else 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #if defined(ARM_MATH_NEON_EXPERIMENTAL) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** void arm_q31_to_float( 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** const q31_t * pSrc, 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** float32_t * pDst, 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blockSize) 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** const q31_t *pIn = pSrc; /* Src pointer */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blkCnt; /* loop counter */ 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** int32x4_t inV; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** float32x4_t outV; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize >> 2U; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Compute 4 outputs at a time. 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** ** a second loop below computes the remaining 1 to 3 samples. */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Convert from q31 to float and then store the results in the destination buffer */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** inV = vld1q_s32(pIn); 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** pIn += 4; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** outV = vcvtq_n_f32_s32(inV,31); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** vst1q_f32(pDst, outV); 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** pDst += 4; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Decrement the loop counter */ 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* If the blockSize is not a multiple of 4, compute any remaining output samples here. 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** ** No loop unrolling is used. */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize & 3; 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Convert from q31 to float and then store the results in the destination buffer */ ARM GAS /tmp/cce2LIhc.s page 189 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Decrement the loop counter */ 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #else 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** void arm_q31_to_float( 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** const q31_t * pSrc, 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** float32_t * pDst, 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blockSize) 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 3575 .loc 30 152 0 3576 .cfi_startproc 3577 @ args = 0, pretend = 0, frame = 0 3578 @ frame_needed = 0, uses_anonymous_args = 0 3579 @ link register save eliminated. 3580 .LVL431: 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** const q31_t *pIn = pSrc; /* Src pointer */ 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** uint32_t blkCnt; /* loop counter */ 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #if defined (ARM_MATH_LOOPUNROLL) 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Loop unrolling */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize >> 2U; 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Convert from q31 to float and store result in destination buffer */ 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 2147483648.0f); 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 2147483648.0f); 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 2147483648.0f); 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 2147483648.0f); 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Decrement loop counter */ 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Loop unrolling: Compute remaining outputs */ 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize % 0x4U; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #else 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Initialize blkCnt with number of samples */ 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt = blockSize; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** while (blkCnt > 0U) 3581 .loc 30 185 0 3582 0000 5AB1 cbz r2, .L465 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* C = (float32_t) A / 2147483648 */ 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Convert from q31 to float and store result in destination buffer */ ARM GAS /tmp/cce2LIhc.s page 190 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** *pDst++ = ((float32_t) *pIn++ / 2147483648.0f); 3583 .loc 30 190 0 3584 0002 9FED067A vldr.32 s14, .L472 3585 .LVL432: 3586 .L467: 3587 0006 F0EC017A vldmia.32 r0!, {s15} @ int 3588 .LVL433: 3589 000a F8EEE77A vcvt.f32.s32 s15, s15 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 3590 .loc 30 185 0 3591 000e 013A subs r2, r2, #1 3592 .LVL434: 3593 .loc 30 190 0 3594 0010 67EE877A vmul.f32 s15, s15, s14 3595 0014 E1EC017A vstmia.32 r1!, {s15} 3596 .LVL435: 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** { 3597 .loc 30 185 0 3598 0018 F5D1 bne .L467 3599 .L465: 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** /* Decrement loop counter */ 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** blkCnt--; 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c **** } 3600 .loc 30 196 0 3601 001a 7047 bx lr 3602 .L473: 3603 .align 2 3604 .L472: 3605 001c 00000030 .word 805306368 3606 .cfi_endproc 3607 .LFE182: 3609 .section .text.arm_q31_to_q15,"ax",%progbits 3610 .align 1 3611 .p2align 2,,3 3612 .global arm_q31_to_q15 3613 .syntax unified 3614 .thumb 3615 .thumb_func 3616 .fpu fpv4-sp-d16 3618 arm_q31_to_q15: 3619 .LFB183: 3620 .file 31 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Title: arm_q31_to_q15.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Description: Converts the elements of the Q31 vector to Q15 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. ARM GAS /tmp/cce2LIhc.s page 191 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @addtogroup q31_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @brief Converts the elements of the Q31 vector to Q15 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @param[in] pSrc points to the Q31 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @param[out] pDst points to the Q15 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c ****       pDst[n] = (q15_t) pSrc[n] >> 16;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #if defined(ARM_MATH_MVEI) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** void arm_q31_to_q15( 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** const q31_t * pSrc, 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q15_t * pDst, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** uint32_t blockSize) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** uint32_t blkCnt; /* loop counters */ 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q31x4x2_t tmp; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q15x8_t vecDst; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q31_t const *pSrcVec; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** pSrcVec = (q31_t const *) pSrc; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt = blockSize >> 3; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** while (blkCnt > 0U) 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* C = (q15_t) A >> 16 */ ARM GAS /tmp/cce2LIhc.s page 192 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* convert from q31 to q15 and then store the results in the destination buffer */ 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** tmp = vld2q(pSrcVec); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** pSrcVec += 8; 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** vecDst = vshrnbq_n_s32(vecDst, tmp.val[0], 16); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** vecDst = vshrntq_n_s32(vecDst, tmp.val[1], 16); 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** vst1q(pDst, vecDst); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** pDst += 8; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * Decrement the blockSize loop counter 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt--; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** * tail 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt = blockSize & 7; 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** while (blkCnt > 0U) 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* C = (q15_t) (A >> 16) */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Convert from q31 to q15 and store result in destination buffer */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pSrcVec++ >> 16); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Decrement loop counter */ 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt--; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #else 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** void arm_q31_to_q15( 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** const q31_t * pSrc, 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q15_t * pDst, 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** uint32_t blockSize) 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 3621 .loc 31 104 0 3622 .cfi_startproc 3623 @ args = 0, pretend = 0, frame = 0 3624 @ frame_needed = 0, uses_anonymous_args = 0 3625 @ link register save eliminated. 3626 .LVL436: 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** uint32_t blkCnt; /* Loop counter */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** const q31_t *pIn = pSrc; /* Source pointer */ 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) && defined (ARM_MATH_DSP) 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q31_t in1, in2, in3, in4; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** q31_t out1, out2; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #endif 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Loop unrolling: Compute 4 outputs at a time */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt = blockSize >> 2U; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** while (blkCnt > 0U) 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* C = (q15_t) (A >> 16) */ ARM GAS /tmp/cce2LIhc.s page 193 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Convert from q31 to q15 and store result in destination buffer */ 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #if defined (ARM_MATH_DSP) 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** in1 = *pIn++; 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** in2 = *pIn++; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** in3 = *pIn++; 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** in4 = *pIn++; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* pack two higher 16-bit values from two 32-bit values */ 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #ifndef ARM_MATH_BIG_ENDIAN 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** out1 = __PKHTB(in2, in1, 16); 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** out2 = __PKHTB(in4, in3, 16); 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #else 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** out1 = __PKHTB(in1, in2, 16); 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** out2 = __PKHTB(in3, in4, 16); 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #endif /* #ifdef ARM_MATH_BIG_ENDIAN */ 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** write_q15x2_ia (&pDst, out1); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** write_q15x2_ia (&pDst, out2); 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #else 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pIn++ >> 16); 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pIn++ >> 16); 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pIn++ >> 16); 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pIn++ >> 16); 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #endif /* #if defined (ARM_MATH_DSP) */ 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Decrement loop counter */ 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt--; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Loop unrolling: Compute remaining outputs */ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt = blockSize % 0x4U; 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #else 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Initialize blkCnt with number of samples */ 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt = blockSize; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** while (blkCnt > 0U) 3627 .loc 31 165 0 3628 0000 3AB1 cbz r2, .L474 3629 .LVL437: 3630 .L476: 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* C = (q15_t) (A >> 16) */ 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Convert from q31 to q15 and store result in destination buffer */ 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** *pDst++ = (q15_t) (*pIn++ >> 16); 3631 .loc 31 170 0 3632 0002 50F8043B ldr r3, [r0], #4 3633 .LVL438: ARM GAS /tmp/cce2LIhc.s page 194 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 3634 .loc 31 165 0 3635 0006 013A subs r2, r2, #1 3636 .LVL439: 3637 .loc 31 170 0 3638 0008 4FEA2343 asr r3, r3, #16 3639 000c 21F8023B strh r3, [r1], #2 @ movhi 3640 .LVL440: 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** { 3641 .loc 31 165 0 3642 0010 F7D1 bne .L476 3643 .L474: 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** /* Decrement loop counter */ 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** blkCnt--; 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c **** } 3644 .loc 31 176 0 3645 0012 7047 bx lr 3646 .cfi_endproc 3647 .LFE183: 3649 .section .text.arm_q31_to_q7,"ax",%progbits 3650 .align 1 3651 .p2align 2,,3 3652 .global arm_q31_to_q7 3653 .syntax unified 3654 .thumb 3655 .thumb_func 3656 .fpu fpv4-sp-d16 3658 arm_q31_to_q7: 3659 .LFB184: 3660 .file 32 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Title: arm_q31_to_q7.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Description: Converts the elements of the Q31 vector to Q7 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ARM GAS /tmp/cce2LIhc.s page 195 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @addtogroup q31_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @brief Converts the elements of the Q31 vector to Q7 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @param[in] pSrc points to the Q31 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @param[out] pDst points to the Q7 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c ****       pDst[n] = (q7_t) pSrc[n] >> 24;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #if defined(ARM_MATH_MVEI) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** void arm_q31_to_q7( 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** const q31_t * pSrc, 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q7_t * pDst, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** uint32_t blockSize) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** uint32_t blkCnt; /* loop counters */ 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q31x4x4_t tmp; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q15x8_t evVec, oddVec; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q7x16_t vecDst; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q31_t const *pSrcVec; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** pSrcVec = (q31_t const *) pSrc; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt = blockSize >> 4; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** while (blkCnt > 0U) 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** tmp = vld4q(pSrcVec); 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** pSrcVec += 16; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* C = (q7_t) A >> 24 */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* convert from q31 to q7 and then store the results in the destination buffer */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * narrow and pack evens 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** evVec = vshrnbq_n_s32(evVec, tmp.val[0], 16); 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** evVec = vshrntq_n_s32(evVec, tmp.val[2], 16); 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * narrow and pack odds 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** oddVec = vshrnbq_n_s32(oddVec, tmp.val[1], 16); ARM GAS /tmp/cce2LIhc.s page 196 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** oddVec = vshrntq_n_s32(oddVec, tmp.val[3], 16); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * narrow & merge 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** vecDst = vshrnbq_n_s16(vecDst, evVec, 8); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** vecDst = vshrntq_n_s16(vecDst, oddVec, 8); 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** vst1q(pDst, vecDst); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** pDst += 16; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * Decrement the blockSize loop counter 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt--; 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** * tail 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** */ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt = blockSize & 0xF; 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** while (blkCnt > 0U) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* C = (q7_t) (A >> 24) */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Convert from q31 to q7 and store result in destination buffer */ 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** *pDst++ = (q7_t) (*pSrcVec++ >> 24); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Decrement loop counter */ 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt--; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #else 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** void arm_q31_to_q7( 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** const q31_t * pSrc, 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q7_t * pDst, 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** uint32_t blockSize) 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 3661 .loc 32 116 0 3662 .cfi_startproc 3663 @ args = 0, pretend = 0, frame = 0 3664 @ frame_needed = 0, uses_anonymous_args = 0 3665 @ link register save eliminated. 3666 .LVL441: 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** uint32_t blkCnt; /* Loop counter */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** const q31_t *pIn = pSrc; /* Source pointer */ 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #if defined (ARM_MATH_LOOPUNROLL) 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** q7_t out1, out2, out3, out4; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Loop unrolling: Compute 4 outputs at a time */ 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt = blockSize >> 2U; 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** while (blkCnt > 0U) 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* C = (q7_t) (A >> 24) */ 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Convert from q31 to q7 and store result in destination buffer */ 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** ARM GAS /tmp/cce2LIhc.s page 197 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** out1 = (q7_t) (*pIn++ >> 24); 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** out2 = (q7_t) (*pIn++ >> 24); 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** out3 = (q7_t) (*pIn++ >> 24); 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** out4 = (q7_t) (*pIn++ >> 24); 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** write_q7x4_ia (&pDst, __PACKq7(out1, out2, out3, out4)); 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Decrement loop counter */ 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt--; 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Loop unrolling: Compute remaining outputs */ 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt = blockSize % 0x4U; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #else 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Initialize blkCnt with number of samples */ 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt = blockSize; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** while (blkCnt > 0U) 3667 .loc 32 153 0 3668 0000 3AB1 cbz r2, .L481 3669 0002 0A44 add r2, r2, r1 3670 .LVL442: 3671 .L483: 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* C = (q7_t) (A >> 24) */ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Convert from q31 to q7 and store result in destination buffer */ 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** *pDst++ = (q7_t) (*pIn++ >> 24); 3672 .loc 32 158 0 3673 0004 50F8043B ldr r3, [r0], #4 3674 .LVL443: 3675 0008 1B16 asrs r3, r3, #24 3676 000a 01F8013B strb r3, [r1], #1 3677 .LVL444: 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** { 3678 .loc 32 153 0 3679 000e 9142 cmp r1, r2 3680 0010 F8D1 bne .L483 3681 .L481: 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** /* Decrement loop counter */ 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** blkCnt--; 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c **** } 3682 .loc 32 164 0 3683 0012 7047 bx lr 3684 .cfi_endproc 3685 .LFE184: 3687 .section .text.arm_q7_to_float,"ax",%progbits 3688 .align 1 3689 .p2align 2,,3 3690 .global arm_q7_to_float 3691 .syntax unified ARM GAS /tmp/cce2LIhc.s page 198 3692 .thumb 3693 .thumb_func 3694 .fpu fpv4-sp-d16 3696 arm_q7_to_float: 3697 .LFB185: 3698 .file 33 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Title: arm_q7_to_float.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Description: Converts the elements of the Q7 vector to floating-point vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * @defgroup q7_to_x Convert 8-bit Integer value 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @addtogroup q7_to_x 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @{ 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @brief Converts the elements of the Q7 vector to floating-point vector. 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @param[in] pSrc points to the Q7 input vector 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @param[out] pDst points to the floating-point output vector 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @param[in] blockSize number of samples in each vector 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @return none 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** @par Details ARM GAS /tmp/cce2LIhc.s page 199 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** The equation used for the conversion process is: 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c ****
  54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c ****       pDst[n] = (float32_t) pSrc[n] / 128;   0 <= n < blockSize.
  55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c ****   
56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** void arm_q7_to_float( 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** const q7_t * pSrc, 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** float32_t * pDst, 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blockSize) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blkCnt; /* loop counters */ 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** q7x16_t vecDst; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** q7_t const *pSrcVec; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pSrcVec = (q7_t const *) pSrc; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize >> 2; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 32768 */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* convert from q7 to float and then store the results in the destination buffer */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vecDst = vldrbq_s32(pSrcVec); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pSrcVec += 4; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vstrwq(pDst, vcvtq_n_f32_s32(vecDst, 7)); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pDst += 4; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** * Decrement the blockSize loop counter 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** */ 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize & 3; 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 128 */ 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Convert from q7 to float and store result in destination buffer */ 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pSrcVec++ / 128.0f); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Decrement loop counter */ 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #else 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #if defined(ARM_MATH_NEON) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** void arm_q7_to_float( 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** const q7_t * pSrc, 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** float32_t * pDst, 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blockSize) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** const q7_t *pIn = pSrc; /* Src pointer */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blkCnt; /* loop counter */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** int8x16_t inV; 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** int16x8_t inVLO, inVHI; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** int32x4_t inVLL, inVLH, inVHL, inVHH; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** float32x4_t outV; ARM GAS /tmp/cce2LIhc.s page 200 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize >> 4U; 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Compute 16 outputs at a time. 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** ** a second loop below computes the remaining 1 to 15 samples. */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 128 */ 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Convert from q7 to float and then store the results in the destination buffer */ 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inV = vld1q_s8(pIn); 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pIn += 16; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVLO = vmovl_s8(vget_low_s8(inV)); 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVHI = vmovl_s8(vget_high_s8(inV)); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVLL = vmovl_s16(vget_low_s16(inVLO)); 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVLH = vmovl_s16(vget_high_s16(inVLO)); 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVHL = vmovl_s16(vget_low_s16(inVHI)); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** inVHH = vmovl_s16(vget_high_s16(inVHI)); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** outV = vcvtq_n_f32_s32(inVLL,7); 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vst1q_f32(pDst, outV); 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pDst += 4; 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** outV = vcvtq_n_f32_s32(inVLH,7); 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vst1q_f32(pDst, outV); 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pDst += 4; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** outV = vcvtq_n_f32_s32(inVHL,7); 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vst1q_f32(pDst, outV); 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pDst += 4; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** outV = vcvtq_n_f32_s32(inVHH,7); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** vst1q_f32(pDst, outV); 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** pDst += 4; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Decrement the loop counter */ 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* If the blockSize is not a multiple of 16, compute any remaining output samples here. 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** ** No loop unrolling is used. */ 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize & 0xF; 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 128 */ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Convert from q7 to float and then store the results in the destination buffer */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Decrement the loop counter */ 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #else 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** void arm_q7_to_float( 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** const q7_t * pSrc, ARM GAS /tmp/cce2LIhc.s page 201 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** float32_t * pDst, 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blockSize) 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 3699 .loc 33 168 0 3700 .cfi_startproc 3701 @ args = 0, pretend = 0, frame = 0 3702 @ frame_needed = 0, uses_anonymous_args = 0 3703 @ link register save eliminated. 3704 .LVL445: 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** uint32_t blkCnt; /* Loop counter */ 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** const q7_t *pIn = pSrc; /* Source pointer */ 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #if defined (ARM_MATH_LOOPUNROLL) 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Loop unrolling: Compute 4 outputs at a time */ 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize >> 2U; 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 128 */ 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Convert from q7 to float and store result in destination buffer */ 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Decrement loop counter */ 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Loop unrolling: Compute remaining outputs */ 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize % 0x4U; 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #else 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Initialize blkCnt with number of samples */ 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt = blockSize; 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** while (blkCnt > 0U) 3705 .loc 33 201 0 3706 0000 72B1 cbz r2, .L488 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* C = (float32_t) A / 128 */ 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Convert from q7 to float and store result in destination buffer */ 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** *pDst++ = ((float32_t) * pIn++ / 128.0f); 3707 .loc 33 206 0 3708 0002 9FED087A vldr.32 s14, .L495 3709 0006 0244 add r2, r2, r0 3710 .LVL446: 3711 .L490: 3712 0008 10F9013B ldrsb r3, [r0], #1 3713 .LVL447: 3714 000c 07EE903A vmov s15, r3 @ int ARM GAS /tmp/cce2LIhc.s page 202 3715 0010 F8EEE77A vcvt.f32.s32 s15, s15 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 3716 .loc 33 201 0 3717 0014 9042 cmp r0, r2 3718 .loc 33 206 0 3719 0016 67EE877A vmul.f32 s15, s15, s14 3720 001a E1EC017A vstmia.32 r1!, {s15} 3721 .LVL448: 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** { 3722 .loc 33 201 0 3723 001e F3D1 bne .L490 3724 .LVL449: 3725 .L488: 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** /* Decrement loop counter */ 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** blkCnt--; 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c **** } 3726 .loc 33 212 0 3727 0020 7047 bx lr 3728 .L496: 3729 0022 00BF .align 2 3730 .L495: 3731 0024 0000003C .word 1006632960 3732 .cfi_endproc 3733 .LFE185: 3735 .section .text.arm_q7_to_q15,"ax",%progbits 3736 .align 1 3737 .p2align 2,,3 3738 .global arm_q7_to_q15 3739 .syntax unified 3740 .thumb 3741 .thumb_func 3742 .fpu fpv4-sp-d16 3744 arm_q7_to_q15: 3745 .LFB186: 3746 .file 34 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Title: arm_q7_to_q15.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Description: Converts the elements of the Q7 vector to Q15 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * ARM GAS /tmp/cce2LIhc.s page 203 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @addtogroup q7_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @brief Converts the elements of the Q7 vector to Q15 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @param[in] pSrc points to the Q7 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @param[out] pDst points to the Q15 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c ****       pDst[n] = (q15_t) pSrc[n] << 8;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #if defined(ARM_MATH_MVEI) 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** void arm_q7_to_q15( 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** const q7_t * pSrc, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q15_t * pDst, 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** uint32_t blockSize) 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** uint32_t blkCnt; /* loop counters */ 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q15x8_t vecDst; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q7_t const *pSrcVec; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** pSrcVec = (q7_t const *) pSrc; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt = blockSize >> 3; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** while (blkCnt > 0U) 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* C = (q15_t) A << 8 */ 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* convert from q7 to q15 and then store the results in the destination buffer */ 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* load q7 + 32-bit widening */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** vecDst = vldrbq_s16(pSrcVec); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** pSrcVec += 8; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** vecDst = vecDst << 8; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** vstrhq(pDst, vecDst); ARM GAS /tmp/cce2LIhc.s page 204 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** pDst += 8; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** * Decrement the blockSize loop counter 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt--; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt = blockSize & 7; 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** while (blkCnt > 0U) 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* C = (q15_t) A << 8 */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Convert from q7 to q15 and store result in destination buffer */ 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) * pSrcVec++ << 8; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Decrement loop counter */ 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt--; 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #else 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** void arm_q7_to_q15( 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** const q7_t * pSrc, 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q15_t * pDst, 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** uint32_t blockSize) 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 3747 .loc 34 102 0 3748 .cfi_startproc 3749 @ args = 0, pretend = 0, frame = 0 3750 @ frame_needed = 0, uses_anonymous_args = 0 3751 @ link register save eliminated. 3752 .LVL450: 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** uint32_t blkCnt; /* Loop counter */ 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** const q7_t *pIn = pSrc; /* Source pointer */ 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) && defined (ARM_MATH_DSP) 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q31_t in; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q31_t in1, in2; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** q31_t out1, out2; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #endif 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #if defined (ARM_MATH_LOOPUNROLL) 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Loop unrolling: Compute 4 outputs at a time */ 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt = blockSize >> 2U; 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** while (blkCnt > 0U) 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* C = (q15_t) A << 8 */ 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Convert from q7 to q15 and store result in destination buffer */ 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #if defined (ARM_MATH_DSP) 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in = read_q7x4_ia ((q7_t **) &pIn); 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* rotatate in by 8 and extend two q7_t values to q15_t values */ 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in1 = __SXTB16(__ROR(in, 8)); ARM GAS /tmp/cce2LIhc.s page 205 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* extend remainig two q7_t values to q15_t values */ 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in2 = __SXTB16(in); 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in1 = in1 << 8U; 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in2 = in2 << 8U; 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in1 = in1 & 0xFF00FF00; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** in2 = in2 & 0xFF00FF00; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #ifndef ARM_MATH_BIG_ENDIAN 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** out2 = __PKHTB(in1, in2, 16); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** out1 = __PKHBT(in2, in1, 16); 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #else 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** out1 = __PKHTB(in1, in2, 16); 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** out2 = __PKHBT(in2, in1, 16); 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #endif 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** write_q15x2_ia (&pDst, out1); 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** write_q15x2_ia (&pDst, out2); 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #else 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) *pIn++ << 8; 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) *pIn++ << 8; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) *pIn++ << 8; 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) *pIn++ << 8; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #endif /* #if defined (ARM_MATH_DSP) */ 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Decrement loop counter */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt--; 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Loop unrolling: Compute remaining outputs */ 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt = blockSize % 0x4U; 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #else 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Initialize blkCnt with number of samples */ 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt = blockSize; 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** while (blkCnt > 0U) 3753 .loc 34 172 0 3754 0000 3AB1 cbz r2, .L497 3755 0002 0244 add r2, r2, r0 3756 .LVL451: 3757 .L499: 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* C = (q15_t) A << 8 */ 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Convert from q7 to q15 and store result in destination buffer */ 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** *pDst++ = (q15_t) * pIn++ << 8; 3758 .loc 34 177 0 3759 0004 10F9013B ldrsb r3, [r0], #1 ARM GAS /tmp/cce2LIhc.s page 206 3760 .LVL452: 3761 0008 1B02 lsls r3, r3, #8 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 3762 .loc 34 172 0 3763 000a 9042 cmp r0, r2 3764 .loc 34 177 0 3765 000c 21F8023B strh r3, [r1], #2 @ movhi 3766 .LVL453: 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** { 3767 .loc 34 172 0 3768 0010 F8D1 bne .L499 3769 .LVL454: 3770 .L497: 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** /* Decrement loop counter */ 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** blkCnt--; 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c **** } 3771 .loc 34 183 0 3772 0012 7047 bx lr 3773 .cfi_endproc 3774 .LFE186: 3776 .section .text.arm_q7_to_q31,"ax",%progbits 3777 .align 1 3778 .p2align 2,,3 3779 .global arm_q7_to_q31 3780 .syntax unified 3781 .thumb 3782 .thumb_func 3783 .fpu fpv4-sp-d16 3785 arm_q7_to_q31: 3786 .LFB187: 3787 .file 35 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* ---------------------------------------------------------------------- 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Project: CMSIS DSP Library 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Title: arm_q7_to_q31.c 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Description: Converts the elements of the Q7 vector to Q31 vector 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * $Date: 18. March 2019 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * $Revision: V1.6.0 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Target Processor: Cortex-M cores 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * -------------------------------------------------------------------- */ 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * SPDX-License-Identifier: Apache-2.0 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * not use this file except in compliance with the License. 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * You may obtain a copy of the License at 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * www.apache.org/licenses/LICENSE-2.0 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Unless required by applicable law or agreed to in writing, software 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT ARM GAS /tmp/cce2LIhc.s page 207 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * See the License for the specific language governing permissions and 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * limitations under the License. 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** */ 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #include "arm_math.h" 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @ingroup groupSupport 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** */ 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /** 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @addtogroup q7_to_x 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @{ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @brief Converts the elements of the Q7 vector to Q31 vector. 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @param[in] pSrc points to the Q7 input vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @param[out] pDst points to the Q31 output vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @param[in] blockSize number of samples in each vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @return none 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** @par Details 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** The equation used for the conversion process is: 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c ****
  50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c ****       pDst[n] = (q31_t) pSrc[n] << 24;   0 <= n < blockSize.
  51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c ****   
52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** */ 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #if defined(ARM_MATH_MVEI) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** void arm_q7_to_q31( 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** const q7_t * pSrc, 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** q31_t * pDst, 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** uint32_t blockSize) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** uint32_t blkCnt; 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** q31x4_t vecDst; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt = blockSize >> 2; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** while (blkCnt > 0U) 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* C = (q31_t)A << 16 */ 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* convert from q15 to q31 and then store the results in the destination buffer */ 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* load q15 + 32-bit widening */ 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** vecDst = vldrbq_s32((q7_t const *) pSrc); 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** vecDst = vshlq_n(vecDst, 24); 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** vstrwq_s32(pDst, vecDst); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Decrement the blockSize loop counter 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** * Advance vector source and destination pointers 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** pDst += 4; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** pSrc += 4; 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt --; 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } ARM GAS /tmp/cce2LIhc.s page 208 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt = blockSize & 3; 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** while (blkCnt > 0U) 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* C = (q31_t) A << 24 */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Convert from q7 to q31 and store result in destination buffer */ 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (q31_t) *pSrc++ << 24; 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Decrement loop counter */ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt--; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #else 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** void arm_q7_to_q31( 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** const q7_t * pSrc, 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** q31_t * pDst, 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** uint32_t blockSize) 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 3788 .loc 35 100 0 3789 .cfi_startproc 3790 @ args = 0, pretend = 0, frame = 0 3791 @ frame_needed = 0, uses_anonymous_args = 0 3792 @ link register save eliminated. 3793 .LVL455: 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** uint32_t blkCnt; /* Loop counter */ 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** const q7_t *pIn = pSrc; /* Source pointer */ 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #if defined (ARM_MATH_LOOPUNROLL) 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** q31_t in; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Loop unrolling: Compute 4 outputs at a time */ 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt = blockSize >> 2U; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** while (blkCnt > 0U) 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* C = (q31_t) A << 24 */ 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Convert from q7 to q31 and store result in destination buffer */ 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** in = read_q7x4_ia ((q7_t **) &pIn); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #ifndef ARM_MATH_BIG_ENDIAN 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 8)) & 0xFF000000; 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 16)) & 0xFF000000; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 24)) & 0xFF000000; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (in & 0xFF000000); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #else 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (in & 0xFF000000); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 24)) & 0xFF000000; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 16)) & 0xFF000000; 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (__ROR(in, 8)) & 0xFF000000; 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** ARM GAS /tmp/cce2LIhc.s page 209 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #endif /* #ifndef ARM_MATH_BIG_ENDIAN */ 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Decrement loop counter */ 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt--; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Loop unrolling: Compute remaining outputs */ 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt = blockSize % 0x4U; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #else 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Initialize blkCnt with number of samples */ 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt = blockSize; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** #endif /* #if defined (ARM_MATH_LOOPUNROLL) */ 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** while (blkCnt > 0U) 3794 .loc 35 148 0 3795 0000 3AB1 cbz r2, .L504 3796 0002 0244 add r2, r2, r0 3797 .LVL456: 3798 .L506: 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* C = (q31_t) A << 24 */ 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Convert from q7 to q31 and store result in destination buffer */ 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** *pDst++ = (q31_t) * pIn++ << 24; 3799 .loc 35 153 0 3800 0004 10F9013B ldrsb r3, [r0], #1 3801 .LVL457: 3802 0008 1B06 lsls r3, r3, #24 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 3803 .loc 35 148 0 3804 000a 9042 cmp r0, r2 3805 .loc 35 153 0 3806 000c 41F8043B str r3, [r1], #4 3807 .LVL458: 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** { 3808 .loc 35 148 0 3809 0010 F8D1 bne .L506 3810 .LVL459: 3811 .L504: 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** /* Decrement loop counter */ 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** blkCnt--; 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c **** } 3812 .loc 35 159 0 3813 0012 7047 bx lr 3814 .cfi_endproc 3815 .LFE187: 3817 .text 3818 .Letext0: 3819 .file 36 "/usr/include/newlib/machine/_default_types.h" 3820 .file 37 "/usr/include/newlib/sys/_stdint.h" 3821 .file 38 "/usr/include/newlib/sys/lock.h" ARM GAS /tmp/cce2LIhc.s page 210 3822 .file 39 "/usr/include/newlib/sys/_types.h" 3823 .file 40 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h" 3824 .file 41 "/usr/include/newlib/sys/reent.h" 3825 .file 42 "/usr/include/newlib/math.h" 3826 .file 43 "" ARM GAS /tmp/cce2LIhc.s page 211 DEFINED SYMBOLS *ABS*:0000000000000000 SupportFunctions.c /tmp/cce2LIhc.s:16 .text.arm_quick_sort_core_f32:0000000000000000 $t /tmp/cce2LIhc.s:23 .text.arm_quick_sort_core_f32:0000000000000000 arm_quick_sort_core_f32 /tmp/cce2LIhc.s:183 .text.arm_merge_sort_core_f32:0000000000000000 $t /tmp/cce2LIhc.s:190 .text.arm_merge_sort_core_f32:0000000000000000 arm_merge_sort_core_f32 /tmp/cce2LIhc.s:514 .text.arm_barycenter_f32:0000000000000000 $t /tmp/cce2LIhc.s:522 .text.arm_barycenter_f32:0000000000000000 arm_barycenter_f32 /tmp/cce2LIhc.s:636 .text.arm_barycenter_f32:000000000000007c $d /tmp/cce2LIhc.s:641 .text.arm_bitonic_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:649 .text.arm_bitonic_sort_f32:0000000000000000 arm_bitonic_sort_f32 /tmp/cce2LIhc.s:854 .text.arm_bubble_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:862 .text.arm_bubble_sort_f32:0000000000000000 arm_bubble_sort_f32 /tmp/cce2LIhc.s:966 .text.arm_copy_f32:0000000000000000 $t /tmp/cce2LIhc.s:974 .text.arm_copy_f32:0000000000000000 arm_copy_f32 /tmp/cce2LIhc.s:1003 .text.arm_copy_q15:0000000000000000 $t /tmp/cce2LIhc.s:1011 .text.arm_copy_q15:0000000000000000 arm_copy_q15 /tmp/cce2LIhc.s:1134 .text.arm_copy_q31:0000000000000000 $t /tmp/cce2LIhc.s:1142 .text.arm_copy_q31:0000000000000000 arm_copy_q31 /tmp/cce2LIhc.s:1172 .text.arm_copy_q7:0000000000000000 $t /tmp/cce2LIhc.s:1180 .text.arm_copy_q7:0000000000000000 arm_copy_q7 /tmp/cce2LIhc.s:1361 .text.arm_fill_f32:0000000000000000 $t /tmp/cce2LIhc.s:1369 .text.arm_fill_f32:0000000000000000 arm_fill_f32 /tmp/cce2LIhc.s:1396 .text.arm_fill_q15:0000000000000000 $t /tmp/cce2LIhc.s:1404 .text.arm_fill_q15:0000000000000000 arm_fill_q15 /tmp/cce2LIhc.s:1516 .text.arm_fill_q31:0000000000000000 $t /tmp/cce2LIhc.s:1524 .text.arm_fill_q31:0000000000000000 arm_fill_q31 /tmp/cce2LIhc.s:1551 .text.arm_fill_q7:0000000000000000 $t /tmp/cce2LIhc.s:1559 .text.arm_fill_q7:0000000000000000 arm_fill_q7 /tmp/cce2LIhc.s:1585 .text.arm_heap_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:1593 .text.arm_heap_sort_f32:0000000000000000 arm_heap_sort_f32 /tmp/cce2LIhc.s:1824 .text.arm_insertion_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:1832 .text.arm_insertion_sort_f32:0000000000000000 arm_insertion_sort_f32 /tmp/cce2LIhc.s:1931 .text.arm_merge_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:1939 .text.arm_merge_sort_f32:0000000000000000 arm_merge_sort_f32 /tmp/cce2LIhc.s:2095 .text.arm_merge_sort_init_f32:0000000000000000 $t /tmp/cce2LIhc.s:2103 .text.arm_merge_sort_init_f32:0000000000000000 arm_merge_sort_init_f32 /tmp/cce2LIhc.s:2122 .text.arm_quick_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:2130 .text.arm_quick_sort_f32:0000000000000000 arm_quick_sort_f32 /tmp/cce2LIhc.s:2182 .text.arm_selection_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:2190 .text.arm_selection_sort_f32:0000000000000000 arm_selection_sort_f32 /tmp/cce2LIhc.s:2300 .text.arm_sort_f32:0000000000000000 $t /tmp/cce2LIhc.s:2308 .text.arm_sort_f32:0000000000000000 arm_sort_f32 /tmp/cce2LIhc.s:2341 .text.arm_sort_f32:0000000000000014 $d /tmp/cce2LIhc.s:2347 .text.arm_sort_f32:000000000000001a $t /tmp/cce2LIhc.s:2676 .text.arm_sort_init_f32:0000000000000000 $t /tmp/cce2LIhc.s:2684 .text.arm_sort_init_f32:0000000000000000 arm_sort_init_f32 /tmp/cce2LIhc.s:2703 .text.arm_spline_f32:0000000000000000 $t /tmp/cce2LIhc.s:2711 .text.arm_spline_f32:0000000000000000 arm_spline_f32 /tmp/cce2LIhc.s:2881 .text.arm_spline_init_f32:0000000000000000 $t /tmp/cce2LIhc.s:2889 .text.arm_spline_init_f32:0000000000000000 arm_spline_init_f32 /tmp/cce2LIhc.s:3157 .text.arm_spline_init_f32:00000000000001b0 $d /tmp/cce2LIhc.s:3164 .text.arm_weighted_sum_f32:0000000000000000 $t /tmp/cce2LIhc.s:3172 .text.arm_weighted_sum_f32:0000000000000000 arm_weighted_sum_f32 /tmp/cce2LIhc.s:3215 .text.arm_weighted_sum_f32:000000000000002c $d /tmp/cce2LIhc.s:3221 .text.arm_float_to_q15:0000000000000000 $t /tmp/cce2LIhc.s:3229 .text.arm_float_to_q15:0000000000000000 arm_float_to_q15 ARM GAS /tmp/cce2LIhc.s page 212 /tmp/cce2LIhc.s:3275 .text.arm_float_to_q31:0000000000000000 $t /tmp/cce2LIhc.s:3283 .text.arm_float_to_q31:0000000000000000 arm_float_to_q31 /tmp/cce2LIhc.s:3384 .text.arm_float_to_q31:0000000000000050 $d /tmp/cce2LIhc.s:3389 .text.arm_float_to_q7:0000000000000000 $t /tmp/cce2LIhc.s:3397 .text.arm_float_to_q7:0000000000000000 arm_float_to_q7 /tmp/cce2LIhc.s:3438 .text.arm_q15_to_float:0000000000000000 $t /tmp/cce2LIhc.s:3446 .text.arm_q15_to_float:0000000000000000 arm_q15_to_float /tmp/cce2LIhc.s:3481 .text.arm_q15_to_float:0000000000000020 $d /tmp/cce2LIhc.s:3486 .text.arm_q15_to_q31:0000000000000000 $t /tmp/cce2LIhc.s:3494 .text.arm_q15_to_q31:0000000000000000 arm_q15_to_q31 /tmp/cce2LIhc.s:3526 .text.arm_q15_to_q7:0000000000000000 $t /tmp/cce2LIhc.s:3534 .text.arm_q15_to_q7:0000000000000000 arm_q15_to_q7 /tmp/cce2LIhc.s:3564 .text.arm_q31_to_float:0000000000000000 $t /tmp/cce2LIhc.s:3572 .text.arm_q31_to_float:0000000000000000 arm_q31_to_float /tmp/cce2LIhc.s:3605 .text.arm_q31_to_float:000000000000001c $d /tmp/cce2LIhc.s:3610 .text.arm_q31_to_q15:0000000000000000 $t /tmp/cce2LIhc.s:3618 .text.arm_q31_to_q15:0000000000000000 arm_q31_to_q15 /tmp/cce2LIhc.s:3650 .text.arm_q31_to_q7:0000000000000000 $t /tmp/cce2LIhc.s:3658 .text.arm_q31_to_q7:0000000000000000 arm_q31_to_q7 /tmp/cce2LIhc.s:3688 .text.arm_q7_to_float:0000000000000000 $t /tmp/cce2LIhc.s:3696 .text.arm_q7_to_float:0000000000000000 arm_q7_to_float /tmp/cce2LIhc.s:3731 .text.arm_q7_to_float:0000000000000024 $d /tmp/cce2LIhc.s:3736 .text.arm_q7_to_q15:0000000000000000 $t /tmp/cce2LIhc.s:3744 .text.arm_q7_to_q15:0000000000000000 arm_q7_to_q15 /tmp/cce2LIhc.s:3777 .text.arm_q7_to_q31:0000000000000000 $t /tmp/cce2LIhc.s:3785 .text.arm_q7_to_q31:0000000000000000 arm_q7_to_q31 UNDEFINED SYMBOLS memset memcpy __aeabi_f2lz