Landing: 32160061ca6d

Project / Subsystem

gcc / bitintlower

Date

2026-04-29

Author

Jakub Jelinek

Commit

32160061ca6d0fc9588b3dea41ced503907f79ca

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
bitintlower
patch_id
commit_hash
32160061ca6d0fc9588b3dea41ced503907f79ca
source_type
github
headline
bitintlower: Padding bit fixes, part 6 [PR123635]
tldr
This commit fixes an issue in bitintlower on big-endian architectures related to padding bits and overflow handling in multiplication.
author
Jakub Jelinek
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • bitint
  • middle-end
  • bugfix
  • s390x
discussion_id_link
bugzilla_pr
date
2026-04-29T00:00:00.000Z

This commit addresses a failure in the bitintlower pass on big-endian architectures, specifically s390x-linux. The issue occurred during the handling of __builtin_mul_overflow for bitint types, where the code incorrectly extended the most significant limb due to an incorrect offset calculation. The fix involves recomputing obj_nelts before extending the bitint and adjusting the arguments passed to limb_access for big-endian systems, resolving the incorrect memory access and assertion failures.