Landing: 9cf7c3266406

Project / Subsystem

gcc / vect

Date

2026-08-06

Author

Kyrylo Tkachov

Commit

9cf7c3266406e909891d2a40aeb468a091ccdaf2

Source

github

Perf win

Yes

Breaking

No

All attributes

project
gcc
subsystem
vect
patch_id
—
commit_hash
9cf7c3266406e909891d2a40aeb468a091ccdaf2
source_type
github
headline
Recognize high-part multiply for types lacking vector forms.
tldr
Enables vectorization of high-part multiplies for types without direct vector representations.
author
Kyrylo Tkachov
outcome
committed
performance_win
true
breaking_change
false
series_id
—
series_parts
[]
tags
  • • vectorization
  • • optimization
  • • AArch64
  • • SVE
discussion_id_link
—
bugzilla_pr
—
date
2026-08-06T00:00:00.000Z

This change enhances the vectorization pass to recognize high-part multiply operations even when the widened type (e.g., 128-bit result of a 64-bit multiply) does not have a direct vector form on the target architecture. Previously, the pattern matching would fail in such cases, preventing vectorization. Now, the pattern matching continues even without a vector type for the output, allowing the cast to be recognized and the over-widening machinery to handle it, thus enabling scalar code using these operations to be vectorized.