Landing: 93ac5163b5d0

Project / Subsystem

gcc / arm

Date

2026-08-02

Author

Dominic P

Commit

93ac5163b5d02c2dfde88c3ec7b1f366caab9b45

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
arm
patch_id
—
commit_hash
93ac5163b5d02c2dfde88c3ec7b1f366caab9b45
source_type
github
headline
Arm NEON intrinsics incorrectly reject zero shift amounts.
tldr
Arm NEON widening shift-left intrinsics now correctly handle zero shifts by using VMOVL.
author
Dominic P
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • arm
  • • neon
  • • intrinsics
  • • optimization
discussion_id_link
—
bugzilla_pr
—
date
2026-08-02T00:00:00.000Z

Arm NEON widening shift-left intrinsics (vshll_n) that accept a zero shift amount were previously rejected by the assembler because the VSHLL instruction encoding does not support a zero shift. This change modifies the intrinsic to emit VMOVL for a zero shift, which has the same semantics and is correctly encoded, improving code quality for valid ACLE code. Additionally, it uses the signless form for intrinsics when the shift amount equals the element size.