Landing: 1de4393ddec6

Project / Subsystem

gcc / s390

Date

2026-10-06

Author

Stefan Schulze Frielinghaus

Commit

1de4393ddec6ce2980184f32b0fd428c54d82a20

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
s390
patch_id
—
commit_hash
1de4393ddec6ce2980184f32b0fd428c54d82a20
source_type
github
headline
s390: Fix bswap:HI reg-reg splitter to avoid ICE
tldr
Fixes a compiler ICE on s390 by ensuring the bswap:HI reg-reg splitter only runs after register allocation.
author
Stefan Schulze Frielinghaus
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • s390
  • • compiler bug
  • • ICE
  • • register allocation
discussion_id_link
—
bugzilla_pr
—
date
2026-10-06T00:00:00.000Z

A compiler internal error (ICE) on s390 occurred because the bswap:HI reg-reg splitter was incorrectly firing before register allocation. This led to invalid subregister operations that simplified_gen_subreg could not handle, resulting in NULL_RTX and a crash. The fix ensures the splitter runs only after register allocation, when it operates on hard registers and avoids paradoxical subreg issues, while also adding a safety check for NULL_RTX.