[Bug tree-optimization/114969] [13/14/15/16 Regression] Missed optimization: (bool)((std::max((unsigned long long) 0, (unsigned long long) var_0)) | ( var_0 ? 1 : 0)) => (bool) var_0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114969 --- Comment #5 from GCC Commits --- The master branch has been updated by Daniel Barboza : https://gcc.gnu.org/g:7b2e9d01d325f091ab7615985f413dda78415fec commit r16-7367-g7b2e9d01d325f091ab7615985f413dda78415fec Author: Daniel Barboza Date: Fri Jan 23 13:10:30 2026 -0300 match.pd: (A | (convert?)(A != 0)) EQ|NE 0 -> A EQ|NE 0 [PR114969] The NE variant is a gimple pattern that comes from the following C++ code: bool result = (std::max( (unsigned long long) 0, (unsigned long long) var_0)) | ( var_0 ? 1 : 0); PR tree-optimization/114969 gcc/ChangeLog: * match.pd (`(A | (convert?)(A != 0)) EQ|NE 0`): New pattern. gcc/testsuite/ChangeLog: * g++.dg/pr114969.C: New test.
[Bug tree-optimization/114969] [13/14/15/16 Regression] Missed optimization: (bool)((std::max((unsigned long long) 0, (unsigned long long) var_0)) | ( var_0 ? 1 : 0)) => (bool) var_0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114969 Daniel Henrique Barboza changed: What|Removed |Added CC||daniel.barboza at oss dot qualcomm ||.com --- Comment #4 from Daniel Henrique Barboza --- Just sent a patch for it: https://gcc.gnu.org/pipermail/gcc-patches/2026-January/706627.html Unfortunately I wasn't able to figure out a more generic/granular pattern to handle it in match.pd.
[Bug tree-optimization/114969] [13/14/15/16 Regression] Missed optimization: (bool)((std::max((unsigned long long) 0, (unsigned long long) var_0)) | ( var_0 ? 1 : 0)) => (bool) var_0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114969 Richard Biener changed: What|Removed |Added Target Milestone|12.5|13.5 --- Comment #3 from Richard Biener --- GCC 12 branch is being closed.
