You copied the Doc URL to your clipboard.

21.56 QN, DN, and SN

The QN, DN, and SN directives define names for Advanced SIMD and floating-point registers.


name directive expr{.type}{[x]}



is QN, DN,or SN.


is the name to be assigned to the extension register. name cannotbe the same as any of the predefined names.


Can be:

  • An expression that evaluates to a number in the range:

    • 0-15 if you are using QN in A32/T32 Advanced SIMD code.

    • 0-31 otherwise.

  • A predefined register name, or a register name that has already been defined in a previous directive.


is any Advanced SIMD or floating-point datatype.


is only available for Advanced SIMD code. [x] is a scalar index into a register.

type and [x] are Extendednotation.


Use QN, DN,or SN to allocate convenient names to extensionregisters, to help you to remember what you use each one for.

The QN directive defines a name for a specified 128-bit extension register.

The DN directive defines a name for a specified 64-bit extension register.

The SN directive defines a name for a specified single-precision floating-point register.


Avoid conflicting uses of the same register under different names.

You cannot specify a vector length in a DN or SN directive.


energy  DN  6   ; defines energy as a symbol for                ; floating-point double-precision register 6mass    SN  16  ; defines mass as a symbol for                ; floating-point single-precision register 16

Extended notation examples

varA    DN      d1.U16varB    DN      d2.U16varC    DN      d3.U16        VADD    varA,varB,varC       ; VADD.U16 d1,d2,d3index   DN      d4.U16[0]result  QN      q5.I32        VMULL   result,varA,index    ; VMULL.U16 q5,d1,d4[0]
Was this page helpful? Yes No