Bug 112618 - [13 Regression] internal compiler error: in expand_MASK_CALL, at internal-fn.cc:4529
Summary: [13 Regression] internal compiler error: in expand_MASK_CALL, at internal-fn....
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 13.2.1
: P2 normal
Target Milestone: 13.3
Assignee: Richard Biener
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks: vectorizer
  Show dependency treegraph
 
Reported: 2023-11-19 12:13 UTC by Jan Hubicka
Modified: 2025-03-07 00:25 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work: 12.1.0, 13.2.1, 14.0
Known to fail: 13.2.0
Last reconfirmed: 2023-11-19 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Hubicka 2023-11-19 12:13:57 UTC
jh@ryzen4:~/gcc/build4/stage1-gcc> cat b.c
/* PR tree-optimization/106433 */

int m, *p;

__attribute__ ((simd)) int
bar (int x)
{
  if (x)
    {
      if (m < 1)
        for (m = 0; m < 1; ++m)
          ++x;
      p = &x;
      for (;;)
        ++m;
    }
  return 0;
}

__attribute__ ((simd)) int
foo (int x)
{
 bar (x);
 return 0;
}
jh@ryzen4:~/gcc/build4/stage1-gcc> ./xgcc -B ./ -O2 b.c -fno-tree-vrp
during RTL pass: expand
b.c: In function ‘foo.simdclone.3’:
b.c:23:2: internal compiler error: in expand_MASK_CALL, at internal-fn.cc:5013
   23 |  bar (x);
      |  ^~~~~~~
0x12db307 expand_MASK_CALL(internal_fn, gcall*)
        ../../gcc/internal-fn.cc:5013
0x12daa47 expand_internal_call(internal_fn, gcall*)
        ../../gcc/internal-fn.cc:4920
0x12daa72 expand_internal_call(gcall*)
        ../../gcc/internal-fn.cc:4928
0xf7637e expand_call_stmt
        ../../gcc/cfgexpand.cc:2737
0xf7a5a8 expand_gimple_stmt_1
        ../../gcc/cfgexpand.cc:3880
0xf7ac2c expand_gimple_stmt
        ../../gcc/cfgexpand.cc:4044
0xf82d6f expand_gimple_basic_block
        ../../gcc/cfgexpand.cc:6100
0xf85322 execute
        ../../gcc/cfgexpand.cc:6835
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Comment 1 Andrew Pinski 2023-11-19 19:29:53 UTC
Confirmed.
Comment 2 Richard Biener 2023-11-20 10:14:36 UTC
Confirmed.  We're not marking the .MASK_CALL as relevant which is possibly
OK since 'bar' is const.  But we also fail to elide it.

/* For if-conversion of inbranch SIMD clones.  */
DEF_INTERNAL_FN (MASK_CALL, ECF_NOVOPS, NULL)

ECF_NOVOPS is a bit heavy.

We're "removing" scalar stmts in some places but do not care about
not relevant ones.

I have a patch.
Comment 3 GCC Commits 2023-11-20 14:01:57 UTC
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:57c028acbec4f7b594e6b024e02d6c799b51e03d

commit r14-5627-g57c028acbec4f7b594e6b024e02d6c799b51e03d
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Nov 20 11:12:43 2023 +0100

    tree-optimization/112618 - unused .MASK_CALL
    
    We have to make sure to remove unused .MASK_CALL internal function
    calls after vectorization.
    
            PR tree-optimization/112618
            * tree-vect-loop.cc (vect_transform_loop_stmt): For not
            relevant and unused .MASK_CALL make sure we remove the
            scalar stmt.
    
            * gcc.dg/pr112618.c: New testcase.
Comment 4 GCC Commits 2024-02-06 13:20:21 UTC
The releases/gcc-13 branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:016ca45dcba40ed73869caf37f09023fa7fca5f8

commit r13-8291-g016ca45dcba40ed73869caf37f09023fa7fca5f8
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Nov 20 11:12:43 2023 +0100

    tree-optimization/112618 - unused .MASK_CALL
    
    We have to make sure to remove unused .MASK_CALL internal function
    calls after vectorization.
    
            PR tree-optimization/112618
            * tree-vect-loop.cc (vect_transform_loop_stmt): For not
            relevant and unused .MASK_CALL make sure we remove the
            scalar stmt.
    
            * gcc.dg/pr112618.c: New testcase.
    
    (cherry picked from commit 57c028acbec4f7b594e6b024e02d6c799b51e03d)
Comment 5 Richard Biener 2024-02-06 13:21:35 UTC
Fixed.