Page 383 - ARM 64 Bit Assembly Language
P. 383
Advanced SIMD instructions 373
10.8.1 Vector shift left by immediate
These instructions shift each element in a vector left by an immediate value:
shl Unsigned Shift Left Immediate,
qshl Saturating Signed or Unsigned Shift Left Immediate,
sqshlu Saturating Signed Shift Left Immediate Unsigned, and
shll Signed or Unsigned Shift Left Immediate Long.
Overflow conditions can be avoided by using the saturating version, or by using the long ver-
sion, in which case the destination is twice the size of the source.
10.8.1.1 Syntax
shl Vd.T, Vn.T, #shift
(s|u)qshl Vd.T, Vn.T, #shift
sqshlu Vd.T, Vn.T, #shift
(s|u)shll{2} Vd.Td, Vn.Ts, #shift
• UXTL Vd.Td, Vn.Ts is an alias for USHLL Vd.Td,Vn.Ts,#0.
• UXTL2 Vd.Td, Vn.Ts is an alias for USHLL2 Vd.Td,Vn.Ts,#0.
• SXTL Vd.Td, Vn.Ts is an alias for SSHLL Vd.Td,Vn.Ts,#0.
• SXTL2 Vd.Td, Vn.Ts is an alias for SSHLL2 Vd.Td,Vn.Ts,#0.
• T is 8b, 16b, 4h, 8h, 2s, 4s,or 2d.
• If 2 is present, then Td/Ts is 8h/16b, 4s/8h,or 2d/4s.
• If 2 is not present, then Td/Ts is 8h/8b, 4s/4h,or 2d/2s.
• shift is in the range 0 to size(T) − 1.
• If the instruction begins with u, then the elements are treated as unsigned integers.
• If s is present, then the elements are treated as signed integers.
10.8.1.2 Operations
Name Effect Description
shl Vd[] ← Vm[] imm Each element of Vm is shifted left by
the immediate value and stored in the
corresponding element of Vd. Bits
shifted past the end of an element are
lost.
continued on next page

