https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118476
Bug ID: 118476
Summary: Internal compiler error: in predicate_for_phi_result,
at ipa-fnsummary.cc:2447
Product: gcc
Version: 14.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: egori at altlinux dot org
Target Milestone: ---
I initially found this bug when compiling simde[1] with gcc 14.2.1 on i586.
Here is a minimal reproducer.
```c
#include "stdint.h"
#include "stddef.h"
typedef uint64_t poly64x1 __attribute__((__vector_size__(8)));
poly64x1 vext_p64(poly64x1 a, poly64x1 b, const int n)
{
poly64x1 r = a;
size_t src = ((size_t) (n));
r[0] = (src < 1) ? a[src] : b[0];
return r;
}
```
```
$ gcc -O2 -c ./reproducer.c
during GIMPLE pass: local-fnsummary
./reproducer.c: In function 'vext_p64':
./reproducer.c:12:1: internal compiler error: in predicate_for_phi_result, at
ipa-fnsummary.cc:2447
12 | }
| ^
0x9133008 internal_error(char const*, ...)
???:0
0x91330d2 fancy_abort(char const*, int, char const*)
???:0
0x9291277 compute_fn_summary(cgraph_node*, bool)
???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-14/README.Bugs> for instructions.
```
```
$ gcc -O1 -c ./reproducer.c
during GIMPLE pass: uncprop
./reproducer.c: In function 'vext_p64':
./reproducer.c:6:10: internal compiler error: in promote_ssa_mode, at
explow.cc:923
6 | poly64x1 vext_p64(poly64x1 a, poly64x1 b, const int n)
| ^~~~~~~~
0x9133008 internal_error(char const*, ...)
???:0
0x91330d2 fancy_abort(char const*, int, char const*)
???:0
0x93bf7d9 gimple_can_coalesce_p(tree_node*, tree_node*)
???:0
0x944fe9d uncprop_dom_walker::before_dom_children(basic_block_def*)
???:0
0x958ed71 dom_walker::walk(basic_block_def*)
???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-14/README.Bugs> for instructions.
```
[1] https://github.com/simd-everywhere/simde/issues/1250