Landing: c31b7a09eea3

Project / Subsystem

gcc / rs6000

Date

2026-08-04

Author

Avinash Jayakar

Commit

c31b7a09eea3c33bccca12bab4a7bb6b01da1ff6

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
rs6000
patch_id
—
commit_hash
c31b7a09eea3c33bccca12bab4a7bb6b01da1ff6
source_type
github
headline
Fix type size checks for __builtin_ppc_atomic_cas_local
tldr
Corrected type size validation for PowerPC atomic compare-and-swap builtin.
author
Avinash Jayakar
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • powerpc
  • • atomic
  • • compiler
discussion_id_link
—
bugzilla_pr
—
date
2026-08-04T00:00:00.000Z

This patch addresses several issues in the __builtin_ppc_atomic_cas_local intrinsic for the PowerPC rs6000 target. It introduces necessary type size checks for the first three operands, ensuring they are of the same size and not function pointers. Additionally, it handles cases where the 128-bit quad-memory-atomic option is disabled but 128-bit operands are used, and resolves an ICE that occurred when the builtin was not assigned to a left-hand side by adding a check to allocate a register RTX if the target is null.