Landing: 087a400325f0

Project / Subsystem

gcc / gcc/match

Date

2026-05-01

Author

Andrew Pinski

Commit

087a400325f0fe155ed7fc7981c700c145980f27

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
gcc/match
patch_id
commit_hash
087a400325f0fe155ed7fc7981c700c145980f27
source_type
github
headline
Match: Only enable `(A>>bool) EQ 0 -> (unsigned)A LE bool` for non-vector types.
tldr
The `(A>>bool) EQ 0 -> (unsigned)A <= bool` optimization pattern now only applies to non-vector integral types.
author
Andrew Pinski
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • optimization
  • vectorization
  • bugfix
discussion_id_link
bugzilla_pr
date
2026-05-01T00:00:00.000Z

The (A>>bool) EQ 0 -> (unsigned)A <= bool optimization pattern was incorrectly applied to vector types. It now only triggers for non-vector integral types. This avoids generating incorrect code for vector types, as the transformation requires a vector duplicate of the boolean value.