https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126078

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |85316
   Last reconfirmed|                            |2026-07-02
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |missed-optimization

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
  <bb 2> [local count: 1073741824]:
  address_7 = (long unsigned int) uaddr_6(D);
  # RANGE [irange] unsigned int [0, 3] MASK 0x3 VALUE 0x0
  _10 = flags_9(D) & 3;
  # RANGE [irange] unsigned int [0, 0][128, 128] MASK 0x80 VALUE 0x0
  _1 = flags_9(D) & 128;
  if (_1 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870912]:

  <bb 4> [local count: 1073741824]:
  # _14 = PHI <1(3), 2(2)>
  # RANGE [irange] int [1, 2][4, 4][8, 8][16, 16] MASK 0x1f VALUE 0x0
  size_4 = _14 << _10;
  # RANGE [irange] long unsigned int [1, 2][4, 4][8, 8][16, 16] MASK 0x1f VALUE
0x0
  _2 = (long unsigned int) size_4;
  # RANGE [irange] long unsigned int [0, 15] MASK 0xf VALUE 0x0
  _3 = address_7 % _2;

so it seems the info is there, we just do not use it.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85316
[Bug 85316] [meta-bug] VRP range propagation missed cases

Reply via email to