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.