[Bug tree-optimization/106995] [13 Regression] ICE in expand_LOOP_VECTORIZED, at internal-fn.cc:2720 with -O2 since r13-1598-g0a7e721a6499a42f

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Sep 21 09:19:16 GMT 2022


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is that during if-conversion VN we figure the loop exit is
unreachable and thus elide the loop but not the if (.LOOP_VECTORIZED) call ...

Region does not contain all edges into the entry block, skipping its PHIs.
Processing block 0: BB8
Cannot trust state of predecessor edge 16 -> 8, marking executable
Value numbering stmt = _9 = (long unsigned int) iftmp.0_11;
Setting value number of _9 to _9 (changed)
Making available beyond BB8 _9 for value _9
Value numbering stmt = _6 = a.1_8 <= 1;
Setting value number of _6 to _6 (changed)
Making available beyond BB8 _6 for value _6
Value numbering stmt = iftmp.0_12 = _6 ? iftmp.0_11 : 0;
Setting value number of iftmp.0_12 to iftmp.0_12 (changed)
Making available beyond BB8 iftmp.0_12 for value iftmp.0_12
Value numbering stmt = prephitmp_10 = _6 ? _9 : 0;
Setting value number of prephitmp_10 to prephitmp_10 (changed)
Making available beyond BB8 prephitmp_10 for value prephitmp_10
Value numbering stmt = if (prephitmp_10 != 11)
marking destination block 16 reachable

probably a latent issue for a while.


More information about the Gcc-bugs mailing list