On 6/15/2026 2:55 PM, Kael Andrew Franco wrote:
 From 045a3b18715f06398c4ad7bdc2264c7ea231d579 Mon Sep 17 00:00:00 2001
From: Kael Andrew Alonzo Franco <[email protected]>
Date: Mon, 15 Jun 2026 14:54:28 -0400
Subject: [PATCH] match: Optimize bit_ior/bit_and {bit_not} rshift to min/max 
[PR125641]

Fold x | (x >> (TYPE_PRECISION (type) - 1)) to max (x, -1)
Fold x | (~ (x >> (TYPE_PRECISION (type) - 1))) to min (x, -1)
Fold x & (x >> (TYPE_PRECISION (type) - 1)) to min (x, 0)
Fold x & (~ (x >> (TYPE_PRECISION (type) - 1))) to max (x, 0)

Bootstrapped and tested on x86_64-pc-linux-gnu

        PR tree-optimization/125641

gcc/ChangeLog:

        PR tree-optimization/125641
        * match.pd: Add bit_ior/bit_and {bit_not} rshift to min/max.

gcc/testsuite/ChangeLog:

        PR tree-optimization/125641
        * gcc.dg/pr125641.c: New test.
Thanks.  I've pushed this to the trunk.

jeff

Reply via email to