Landing: 75ee89676c8c

Project / Subsystem

gcc / aarch64

Date

2026-08-06

Author

Kyrylo Tkachov

Commit

75ee89676c8c61263b21c1bbf90ad4fd42c417c1

Source

github

Perf win

Yes

Breaking

No

All attributes

project
gcc
subsystem
aarch64
patch_id
—
commit_hash
75ee89676c8c61263b21c1bbf90ad4fd42c417c1
source_type
github
headline
AArch64 SVE enables vector DImode high-part multiply.
tldr
Improves vectorizer capabilities on AArch64 by using SVE's UMULH/SMULH for 64x64 high-part multiplication.
author
Kyrylo Tkachov
outcome
committed
performance_win
true
breaking_change
false
series_id
—
series_parts
[]
tags
  • • aarch64
  • • sve
  • • vectorization
  • • optimization
discussion_id_link
—
bugzilla_pr
—
date
2026-08-06T00:00:00.000Z

This change enhances the AArch64 vectorizer by enabling it to perform vector DImode high-part multiplications using Scalable Vector Extension (SVE) instructions. Previously, Advanced SIMD lacked this capability, preventing optimization of loops requiring 64x64 high-part multiplies (e.g., calculating the upper 64 bits of a 128-bit product). By leveraging SVE’s UMULH and SMULH instructions on Z registers, GCC can now optimize these loops more effectively, generating more efficient machine code.