https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118953
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The _7 range looks correct. And given Global Exported: _7 = [irange] int [-INF, 2146435123] MASK 0xffffc000 VALUE 0x34 I wonder why Folding statement: switch (_7) <default: <L5> [33.33%], case 8: <L7> [33.33%], case 24: <L6> [33.33%], case 32: <L6> [33.33%]> Not folded - neither 8, nor 24 nor 32 has the low 14 bits equal to 0x34, so I think it could be folded into just the default. Global Exported: i_20 = [irange] long long unsigned int [45, 45] MASK 0xffffffffffffc07d VALUE 0x0 is certainly wrong for # i_20 = PHI <_3(4), 0(3), _6(2)> where Global Exported: _3 = [irange] long long unsigned int [0, 2146435116][18446744071561019437, +INF] MASK 0xffffffffffffc000 VALUE 0x2d and Global Exported: _6 = [irange] long long unsigned int [0, 2146435160][18446744071562067968, +INF] MASK 0xffffffffffffc000 VALUE 0x59 45 == 0x2d.