Landing: ec31d8cb81aa

Project / Subsystem

gcc / gcc

Date

2026-07-10

Author

Roger Sayle

Commit

ec31d8cb81aa2f9b74c3b91fb87080b9c86cea23

Source

github

Perf win

Yes

Breaking

No

All attributes

project
gcc
subsystem
gcc
patch_id
commit_hash
ec31d8cb81aa2f9b74c3b91fb87080b9c86cea23
source_type
github
headline
PR target/99668: Improved complex to vector RTL expansion.
tldr
Optimizes casting complex numbers to two-component vectors by avoiding memory spills.
author
Roger Sayle
outcome
committed
performance_win
true
breaking_change
false
series_id
series_parts
[]
tags
  • optimization
  • vectorization
  • complex numbers
  • bugfix
  • SSE
discussion_id_link
bugzilla_pr
date
2026-07-10T00:00:00.000Z

This commit enhances the RTL expansion for casting complex numbers to two-component vectors with the same inner type, addressing PR99668. Previously, this conversion involved spilling the complex number to memory. The improved process now uses the backend’s vec_init_optab to directly construct the vector from the real and imaginary parts, yielding significantly more efficient code.