Landing: 793da440da5c
Project / Subsystem
gcc / gcc/i386
Date
2026-06-06
Author
Jakub Jelinek
Commit
793da440da5c84090af9e864b824157db02cdc82
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- gcc/i386
- patch_id
- —
- commit_hash
- 793da440da5c84090af9e864b824157db02cdc82
- source_type
- github
- headline
- Align predicates for SSSE3/AVX2 pmulhrsw/smulhrs expanders
- tldr
- GCC now correctly aligns predicates for SSSE3/AVX2 vector multiplication expanders on i386, resolving an internal compiler error when handling unaligned memory.
- author
- Jakub Jelinek
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • i386
- • vectorization
- • bugfix
- • code generation
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-06-06T00:00:00.000Z
This commit fixes an internal compiler error (ICE) in GCC on i386 related to vector multiplication, specifically for SSSE3 and AVX2 pmulhrsw and smulhrs instructions. The issue arose because a previous change updated the pattern predicates from nonimmediate_operand to vector_operand, but the corresponding expanders retained the old predicates. This discrepancy meant that when unaligned memory was involved, the pattern would not match while the expander tried to expand it directly as memory, leading to a crash. The fix updates the expander predicates to use vector_operand, aligning them with the patterns.