Landing: 52d5a8870d21
Project / Subsystem
gcc / aarch64/sve
Date
2025-12-22
Author
Artemiy Volkov
Commit
52d5a8870d2108c660c34c8c1b7ea255809817d5
Source
github
Perf win
Yes
Breaking
No
All attributes
- project
- gcc
- subsystem
- aarch64/sve
- patch_id
- —
- commit_hash
- 52d5a8870d2108c660c34c8c1b7ea255809817d5
- source_type
- github
- headline
- AArch64 SVE now combines AdvSIMD and SVE vector duplicates.
- tldr
- GCC now combines AdvSIMD and SVE vector duplicates into a single instruction for AArch64, improving code generation.
- author
- Artemiy Volkov
- outcome
- committed
- performance_win
- true
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • aarch64
- • sve
- • vectorization
- • optimization
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2025-12-22T00:00:00.000Z
The compiler previously used an intermediate 128-bit AdvSIMD register when duplicating a 64-bit or narrower value into an SVE register. This change adds a pattern that combine can use to merge two vec_duplicate instructions (scalar -> AdvSIMD and AdvSIMD -> SVE) into a single one (scalar -> SVE). This results in more efficient code generation, reducing the number of instructions needed.