Landing: 8d0676db179a

Project / Subsystem

gcc / s390

Date

2026-08-07

Author

Jakub Jelinek

Commit

8d0676db179aa31207bc4dd29e1c310823988f4b

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
s390
patch_id
—
commit_hash
8d0676db179aa31207bc4dd29e1c310823988f4b
source_type
github
headline
s390: Fix ICE with usubc5 pattern by forcing operands to registers.
tldr
An internal compiler error (ICE) on s390x involving the `usubc5` pattern is fixed by ensuring operands are in registers.
author
Jakub Jelinek
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • s390
  • • compiler-bug
  • • backend
discussion_id_link
—
bugzilla_pr
—
date
2026-08-07T00:00:00.000Z

An ICE was occurring on the s390x architecture due to how the usubc5 pattern interacted with immediate operands. The pattern, intended for use with general operands, was sometimes being applied to immediate values in a way that conflicted with the xor instruction’s requirements. This fix forces the problematic operand into a register before it’s used in the xor instruction, allowing subsequent optimizations like CSE or combine to simplify it correctly.