Using NEON Support Vector multiply subtract with scalar int16x4_t vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t v, __constrange(0,3) int l); // VMLS.I16 d0, d0, d0[0] int32x2_t vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t v, __constrange(0,1) int l); // VMLS.I32 d0, d0, d0[0] uint16x4_t vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t v, __constrange(0,3) int l); // VMLS.I16 d0, d0, d0[0] uint32x2_t vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t v, __constrange(0,1) int l); // VMLS.I32 d0, d0, d0[0] float32x2_t vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t v, __constrange(0,1) int l); // VMLS.F32 d0, d0, d0[0] int16x8_t vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t v, __constrange(0,3) int l); // VMLS.I16 q0, q0, d0[0] int32x4_t vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t v, __constrange(0,1) int l); // VMLS.I32 q0, q0, d0[0] uint16x8_t vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t v, __constrange(0,3) int l); // VMLS.I16 q0, q0, d0[0] uint32x4_t vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t v, __constrange(0,1) int l); // VMLS.I32 q0, q0, d0[0] float32x4_t vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t v, __constrange(0,1) int l); // VMLS.F32 q0, q0, d0[0] Vector widening multiply subtract with scalar int32x4_t vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v, __constrange(0,3) int l); // VMLSL.S16 q0, d0, d0[0] int64x2_t vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v, __constrange(0,1) int l); // VMLSL.S32 q0, d0, d0[0] uint32x4_t vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t v, __constrange(0,3) int l); // VMLSL.U16 q0, d0, d0[0] uint64x2_t vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t v, __constrange(0,1) int l); // VMLSL.U32 q0, d0, d0[0] Vector widening saturating doubling multiply subtract with scalar int32x4_t int64x2_t vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v, __constrange(0,3) int l); // VQDMLSL.S16 q0, d0, d0[0] vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v, __constrange(0,1) int l); // VQDMLSL.S32 q0, d0, d0[0] Vector multiply by scalar int16x4_t vmul_n_s16(int16x4_t a, int16_t b); // VMUL.I16 d0,d0,d0[0] int32x2_t vmul_n_s32(int32x2_t a, int32_t b); // VMUL.I32 d0,d0,d0[0] float32x2_t vmul_n_f32(float32x2_t a, float32_t b); // VMUL.F32 d0,d0,d0[0] uint16x4_t vmul_n_u16(uint16x4_t a, uint16_t b); // VMUL.I16 d0,d0,d0[0] uint32x2_t vmul_n_u32(uint32x2_t a, uint32_t b); // VMUL.I32 d0,d0,d0[0] E-48 Copyright © 2007, 2010 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348A Non-Confidential
Using NEON Support int16x8_t vmulq_n_s16(int16x8_t a, int16_t b); // VMUL.I16 q0,q0,d0[0] int32x4_t vmulq_n_s32(int32x4_t a, int32_t b); // VMUL.I32 q0,q0,d0[0] float32x4_t vmulq_n_f32(float32x4_t a, float32_t b); // VMUL.F32 q0,q0,d0[0] uint16x8_t vmulq_n_u16(uint16x8_t a, uint16_t b); // VMUL.I16 q0,q0,d0[0] uint32x4_t vmulq_n_u32(uint32x4_t a, uint32_t b); // VMUL.I32 q0,q0,d0[0] Vector long multiply with scalar int32x4_t vmull_n_s16(int16x4_t vec1, int16_t val2); // VMULL.S16 q0,d0,d0[0] int64x2_t vmull_n_s32(int32x2_t vec1, int32_t val2); // VMULL.S32 q0,d0,d0[0] uint32x4_t vmull_n_u16(uint16x4_t vec1, uint16_t val2); // VMULL.U16 q0,d0,d0[0] uint64x2_t vmull_n_u32(uint32x2_t vec1, uint32_t val2); // VMULL.U32 q0,d0,d0[0] Vector long multiply by scalar int32x4_t vmull_lane_s16(int16x4_t vec1, int16x4_t val2, __constrange(0, 3) int val3); // VMULL.S16 q0,d0,d0[0] int64x2_t vmull_lane_s32(int32x2_t vec1, int32x2_t val2, __constrange(0, 1) int val3); // VMULL.S32 q0,d0,d0[0] uint32x4_t vmull_lane_u16(uint16x4_t vec1, uint16x4_t val2, __constrange(0, 3) int val3); // VMULL.U16 q0,d0,d0[0] uint64x2_t vmull_lane_u32(uint32x2_t vec1, uint32x2_t val2, __constrange(0, 1) int val3); // VMULL.U32 q0,d0,d0[0] Vector saturating doubling long multiply with scalar int32x4_t vqdmull_n_s16(int16x4_t vec1, int16_t val2); int64x2_t vqdmull_n_s32(int32x2_t vec1, int32_t val2); // VQDMULL.S16 q0,d0,d0[0] // VQDMULL.S32 q0,d0,d0[0] Vector saturating doubling long multiply by scalar int32x4_t vqdmull_lane_s16(int16x4_t vec1, int16x4_t val2, __constrange(0, 3) int val3); // VQDMULL.S16 q0,d0,d0[0] int64x2_t vqdmull_lane_s32(int32x2_t vec1, int32x2_t val2, __constrange(0, 1) int val3); // VQDMULL.S32 q0,d0,d0[0] Vector saturating doubling multiply high with scalar int16x4_t vqdmulh_n_s16(int16x4_t vec1, int16_t val2); int32x2_t vqdmulh_n_s32(int32x2_t vec1, int32_t val2); int16x8_t vqdmulhq_n_s16(int16x8_t vec1, int16_t val2); int32x4_t vqdmulhq_n_s32(int32x4_t vec1, int32_t val2); // VQDMULH.S16 d0,d0,d0[0] // VQDMULH.S32 d0,d0,d0[0] // VQDMULH.S16 q0,q0,d0[0] // VQDMULH.S32 q0,q0,d0[0] Vector saturating doubling multiply high by scalar int16x4_t vqdmulh_lane_s16(int16x4_t vec1, int16x4_t val2, __constrange(0, 3) int val3); // VQDMULH.S16 d0,d0,d0[0] <strong>ARM</strong> DUI 0348A Copyright © 2007, 2010 <strong>ARM</strong> Limited. All rights reserved. E-49 Non-Confidential
- Page 1 and 2:
® RealView Compilation Tools Versi
- Page 3 and 4:
Contents RealView Compilation Tools
- Page 5 and 6:
Preface This preface introduces the
- Page 7 and 8:
Preface Appendix A Via File Syntax
- Page 9 and 10:
Preface • ARM datasheet or techni
- Page 11 and 12:
Chapter 1 Introduction This chapter
- Page 13 and 14:
Introduction 1.2 Source language mo
- Page 15 and 16:
Introduction 1.3 Language extension
- Page 17 and 18:
Introduction • Compiling a C sour
- Page 19 and 20:
Chapter 2 Compiler Command-line Opt
- Page 21 and 22:
Compiler Command-line Options 2.1.2
- Page 23 and 24:
Compiler Command-line Options Defau
- Page 25 and 26:
Compiler Command-line Options Note
- Page 27 and 28:
Compiler Command-line Options Table
- Page 29 and 30:
Compiler Command-line Options int m
- Page 31 and 32:
Compiler Command-line Options See a
- Page 33 and 34:
Compiler Command-line Options • -
- Page 35 and 36:
Compiler Command-line Options • T
- Page 37 and 38:
Compiler Command-line Options Where
- Page 39 and 40:
Compiler Command-line Options Defau
- Page 41 and 42:
Compiler Command-line Options Mode
- Page 43 and 44:
Compiler Command-line Options Defau
- Page 45 and 46:
Compiler Command-line Options • #
- Page 47 and 48:
Compiler Command-line Options Synta
- Page 49 and 50:
Compiler Command-line Options 2.1.3
- Page 51 and 52:
Compiler Command-line Options See a
- Page 53 and 54:
Compiler Command-line Options 2.1.4
- Page 55 and 56:
Compiler Command-line Options When
- Page 57 and 58:
Compiler Command-line Options Examp
- Page 59 and 60:
Compiler Command-line Options A num
- Page 61 and 62:
Compiler Command-line Options softv
- Page 63 and 64:
Compiler Command-line Options If --
- Page 65 and 66:
Compiler Command-line Options • I
- Page 67 and 68:
Compiler Command-line Options Examp
- Page 69 and 70:
Compiler Command-line Options See a
- Page 71 and 72:
Compiler Command-line Options 2.1.7
- Page 73 and 74:
Compiler Command-line Options • -
- Page 75 and 76:
Compiler Command-line Options N #if
- Page 77 and 78:
Compiler Command-line Options 2.1.7
- Page 79 and 80:
Compiler Command-line Options • -
- Page 81 and 82:
Compiler Command-line Options Defau
- Page 83 and 84:
Compiler Command-line Options 2.1.8
- Page 85 and 86:
Compiler Command-line Options 1 Res
- Page 87 and 88:
Compiler Command-line Options Defau
- Page 89 and 90:
Compiler Command-line Options Restr
- Page 91 and 92:
Compiler Command-line Options • #
- Page 93 and 94:
Compiler Command-line Options Synta
- Page 95 and 96:
Compiler Command-line Options Note
- Page 97 and 98:
Compiler Command-line Options Restr
- Page 99 and 100:
Compiler Command-line Options Note
- Page 101 and 102:
Compiler Command-line Options • S
- Page 103 and 104:
Compiler Command-line Options Examp
- Page 105 and 106:
Compiler Command-line Options See a
- Page 107 and 108:
Compiler Command-line Options --no_
- Page 109 and 110:
Compiler Command-line Options Defau
- Page 111 and 112:
Compiler Command-line Options --apc
- Page 113 and 114:
Compiler Command-line Options Selec
- Page 115 and 116:
Chapter 3 Language Extensions This
- Page 117 and 118:
Language Extensions 3.1.2 #include_
- Page 119 and 120:
Language Extensions 3.2 C99 languag
- Page 121 and 122:
Language Extensions 3.3 C99 languag
- Page 123 and 124:
Language Extensions Example void co
- Page 125 and 126:
Language Extensions static int y =
- Page 127 and 128:
Language Extensions 3.4.4 Dollar si
- Page 129 and 130:
Language Extensions 3.5 Standard C+
- Page 131 and 132:
Language Extensions Example 3-2 Lin
- Page 133 and 134:
Language Extensions 3.6 Standard C
- Page 135 and 136:
Language Extensions 3.6.4 Assembler
- Page 137 and 138:
Language Extensions 3.6.12 Structur
- Page 139 and 140:
Language Extensions 3.7 GNU languag
- Page 141 and 142:
Language Extensions 3.7.5 Character
- Page 143 and 144:
Language Extensions 3.7.10 Inline T
- Page 145 and 146:
Language Extensions Example int bar
- Page 147 and 148:
Chapter 4 Compiler-specific Feature
- Page 149 and 150:
Compiler-specific Features Usage __
- Page 151 and 152:
Compiler-specific Features Example
- Page 153 and 154:
Compiler-specific Features 4.1.6 __
- Page 155 and 156:
Compiler-specific Features Example
- Page 157 and 158:
Compiler-specific Features 4.1.11 _
- Page 159 and 160:
Compiler-specific Features short x;
- Page 161 and 162:
Compiler-specific Features Where: s
- Page 163 and 164:
Compiler-specific Features typedef
- Page 165 and 166:
Compiler-specific Features • 0-25
- Page 167 and 168:
Compiler-specific Features Usage Fu
- Page 169 and 170:
Compiler-specific Features 4.1.20 _
- Page 171 and 172:
Compiler-specific Features 4.2.2 __
- Page 173 and 174:
Compiler-specific Features }; __dec
- Page 175 and 176:
Compiler-specific Features 4.3 Func
- Page 177 and 178:
Compiler-specific Features The comp
- Page 179 and 180:
Compiler-specific Features Note Thi
- Page 181 and 182:
Compiler-specific Features In the f
- Page 183 and 184:
Compiler-specific Features 4.4 Type
- Page 185 and 186:
Compiler-specific Features void cal
- Page 187 and 188:
Compiler-specific Features replaced
- Page 189 and 190:
Compiler-specific Features Note Thi
- Page 191 and 192:
Compiler-specific Features Example
- Page 193 and 194:
Compiler-specific Features 4.5.9 __
- Page 195 and 196:
Compiler-specific Features 4.6 Prag
- Page 197 and 198:
Compiler-specific Features • Temp
- Page 199 and 200:
Compiler-specific Features Syntax #
- Page 201 and 202:
Compiler-specific Features #pragma
- Page 203 and 204:
Compiler-specific Features • __at
- Page 205 and 206:
Compiler-specific Features 4.6.20 #
- Page 207 and 208:
Compiler-specific Features If the i
- Page 209 and 210:
Compiler-specific Features 4.7 Inst
- Page 211 and 212:
Compiler-specific Features 4.7.3 __
- Page 213 and 214:
Compiler-specific Features Example
- Page 215 and 216:
Compiler-specific Features Where: c
- Page 217 and 218:
Compiler-specific Features Return v
- Page 219 and 220:
Compiler-specific Features See also
- Page 221 and 222:
Compiler-specific Features Syntax v
- Page 223 and 224:
Compiler-specific Features Where: p
- Page 225 and 226:
Compiler-specific Features Syntax v
- Page 227 and 228:
Compiler-specific Features Where: v
- Page 229 and 230:
Compiler-specific Features Note The
- Page 231 and 232:
Compiler-specific Features 4.7.33 _
- Page 233 and 234:
Compiler-specific Features • BKPT
- Page 235 and 236:
Compiler-specific Features sat must
- Page 237 and 238:
Compiler-specific Features Syntax v
- Page 239 and 240:
Compiler-specific Features Example
- Page 241 and 242:
Compiler-specific Features See also
- Page 243 and 244:
Compiler-specific Features unsigned
- Page 245 and 246:
Compiler-specific Features int32_t
- Page 247 and 248:
Compiler-specific Features See also
- Page 249 and 250:
Compiler-specific Features 4.8 Comp
- Page 251 and 252:
Compiler-specific Features Table 4-
- Page 253 and 254:
Compiler-specific Features Table 4-
- Page 255 and 256:
Chapter 5 C and C++ Implementation
- Page 257 and 258:
C and C++ Implementation Details th
- Page 259 and 260:
C and C++ Implementation Details Se
- Page 261 and 262:
C and C++ Implementation Details Po
- Page 263 and 264:
C and C++ Implementation Details
- Page 265 and 266:
C and C++ Implementation Details st
- Page 267 and 268:
C and C++ Implementation Details 5.
- Page 269 and 270:
C and C++ Implementation Details No
- Page 271 and 272:
C and C++ Implementation Details na
- Page 273 and 274:
C and C++ Implementation Details 5.
- Page 275 and 276:
Appendix A Via File Syntax This app
- Page 277 and 278:
Via File Syntax A.2 Syntax Via file
- Page 279 and 280:
Appendix B Standard C Implementatio
- Page 281 and 282:
Standard C Implementation Definitio
- Page 283 and 284:
Standard C Implementation Definitio
- Page 285 and 286:
Standard C Implementation Definitio
- Page 287 and 288:
Standard C Implementation Definitio
- Page 289 and 290:
Appendix C Standard C++ Implementat
- Page 291 and 292:
Standard C++ Implementation Definit
- Page 293 and 294:
Standard C++ Implementation Definit
- Page 295 and 296:
Appendix D C and C++ Compiler Imple
- Page 297 and 298: C and C++ Compiler Implementation L
- Page 299 and 300: C and C++ Compiler Implementation L
- Page 301 and 302: Appendix E Using NEON Support This
- Page 303 and 304: Using NEON Support E.2 Vector data
- Page 305 and 306: Using NEON Support • Vector satur
- Page 307 and 308: Using NEON Support Vector add high
- Page 309 and 310: Using NEON Support Vector saturatin
- Page 311 and 312: Using NEON Support uint64x1_t vqsub
- Page 313 and 314: Using NEON Support uint32x2_t vcle_
- Page 315 and 316: Using NEON Support uint16x4_t vabd_
- Page 317 and 318: Using NEON Support Long pairwise ad
- Page 319 and 320: Using NEON Support int16x8_t vqshlq
- Page 321 and 322: Using NEON Support uint8x8_t vrshr_
- Page 323 and 324: Using NEON Support Vector signed->u
- Page 325 and 326: Using NEON Support uint8x16_t vld1q
- Page 327 and 328: Using NEON Support int64x1_t vld1_l
- Page 329 and 330: Using NEON Support // VST1.16 {d0[0
- Page 331 and 332: Using NEON Support // VLD3.32 {d0,
- Page 333 and 334: Using NEON Support // VLD3.16 {d0[]
- Page 335 and 336: Using NEON Support // VLD3.32 {d0[0
- Page 337 and 338: Using NEON Support void vst2_u64(__
- Page 339 and 340: Using NEON Support void vst2q_lane_
- Page 341 and 342: Using NEON Support float32_t vget_l
- Page 343 and 344: Using NEON Support uint8x16_t vdupq
- Page 345 and 346: Using NEON Support uint16x4_t vget_
- Page 347: Using NEON Support E.3.25 Operation
- Page 351 and 352: Using NEON Support Vector widening
- Page 353 and 354: Using NEON Support Absolute: Vd[i]
- Page 355 and 356: Using NEON Support uint8x8_t vmvn_u
- Page 357 and 358: Using NEON Support int16x8_t vornq_
- Page 359 and 360: Using NEON Support uint32x4x2_t vuz