https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125597
Bug ID: 125597
Summary: ICE: SIGSEGV in analyze_scalar_evolution_1
(tree-scalar-evolution.cc:2026) with -O3
-mcpu=c1-ultra -mautovec-preference=sve-only
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: zsojka at seznam dot cz
Target Milestone: ---
Host: x86_64-pc-linux-gnu
Target: aarch64-unknown-linux-gnu
Created attachment 64622
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=64622&action=edit
reduced testcase
Compiler output:
$ aarch64-unknown-linux-gnu-gcc -O3 -mcpu=c1-ultra
-mautovec-preference=sve-only testcase.c -wrapper valgrind,-q,--num-callers=40
==2360351== Invalid read of size 8
==2360351== at 0x15F5369: analyze_scalar_evolution_1(loop*, tree_node*)
(tree-scalar-evolution.cc:2026)
==2360351== by 0x15F5DA5: analyze_scalar_evolution(loop*, tree_node*)
(tree-scalar-evolution.cc:2118)
==2360351== by 0x15F7B7D: interpret_rhs_expr(loop*, gimple*, tree_node*,
tree_node*, tree_code, tree_node*) (tree-scalar-evolution.cc:1706)
==2360351== by 0x15F5586: interpret_gimple_assign
(tree-scalar-evolution.cc:1998)
==2360351== by 0x15F5586: analyze_scalar_evolution_1(loop*, tree_node*)
(tree-scalar-evolution.cc:2049)
==2360351== by 0x15F5DA5: analyze_scalar_evolution(loop*, tree_node*)
(tree-scalar-evolution.cc:2118)
==2360351== by 0x15F53F3: interpret_condition_phi
(tree-scalar-evolution.cc:1676)
==2360351== by 0x15F53F3: analyze_scalar_evolution_1(loop*, tree_node*)
(tree-scalar-evolution.cc:2056)
==2360351== by 0x15F5E82: analyze_scalar_evolution(loop*, tree_node*)
(tree-scalar-evolution.cc:2118)
==2360351== by 0x1933A29: get_scev_info (vr-values.cc:211)
==2360351== by 0x1933A29: range_of_var_in_loop(vrange&, tree_node*, loop*,
gimple*, range_query*) (vr-values.cc:304)
==2360351== by 0x10D4E1A:
fold_using_range::range_of_ssa_name_with_loop_info(vrange&, tree_node*, loop*,
gphi*, fur_source&) (gimple-range-fold.cc:1488)
==2360351== by 0x10D5565: fold_using_range::range_of_phi(vrange&, gphi*,
fur_source&) (gimple-range-fold.cc:1236)
==2360351== by 0x10D9870: fold_using_range::fold_stmt(vrange&, gimple*,
fur_source&, tree_node*) (gimple-range-fold.cc:681)
==2360351== by 0x10C4DB2: fold_range_internal (gimple-range.cc:282)
==2360351== by 0x10C4DB2: gimple_ranger::range_of_stmt(vrange&, gimple*,
tree_node*) (gimple-range.cc:343)
==2360351== by 0x10C68B6: gimple_ranger::range_of_expr(vrange&, tree_node*,
gimple*) (gimple-range.cc:112)
==2360351== by 0x17A5B0E: ssa_name_has_boolean_range(tree_node*, gimple*)
(tree-ssanames.cc:645)
==2360351== by 0x1EE3FA6: generic_simplify_MINUS_EXPR(unsigned long,
tree_code, tree_node*, tree_node*, tree_node*) (generic-match-1.cc:5565)
==2360351== by 0x102FCCC: fold_binary_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:10777)
==2360351== by 0x10377BE: fold_build2_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:13613)
==2360351== by 0x1FC0091: generic_simplify_64(unsigned long, tree_node*,
tree_node*, tree_node*, tree_node**, tree_code) (generic-match-5.cc:429)
==2360351== by 0x209F210: generic_simplify_PLUS_EXPR(unsigned long,
tree_code, tree_node*, tree_node*, tree_node*) (generic-match-10.cc:6058)
==2360351== by 0x102FCCC: fold_binary_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:10777)
==2360351== by 0x10377BE: fold_build2_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:13613)
==2360351== by 0x1EE4257: generic_simplify_MINUS_EXPR(unsigned long,
tree_code, tree_node*, tree_node*, tree_node*) (generic-match-1.cc:5283)
==2360351== by 0x102FCCC: fold_binary_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:10777)
==2360351== by 0x10377BE: fold_build2_loc(unsigned long, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.cc:13613)
==2360351== by 0x1837557: vect_do_peeling(_loop_vec_info*, tree_node*,
tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool,
tree_node**) (tree-vect-loop-manip.cc:3956)
==2360351== by 0x180C0DD: vect_transform_loop(_loop_vec_info*, gimple*)
(tree-vect-loop.cc:11253)
==2360351== by 0x1878384: vect_transform_loops(hash_table<simduid_to_vf,
false, xcallocator>*&, loop*, gimple*, function*) (tree-vectorizer.cc:1036)
==2360351== by 0x1878A04: try_vectorize_loop_1 (tree-vectorizer.cc:1185)
==2360351== by 0x1878A04: try_vectorize_loop(hash_table<simduid_to_vf,
false, xcallocator>*&, unsigned int*, loop*, function*)
(tree-vectorizer.cc:1215)
==2360351== by 0x1879004: (anonymous
namespace)::pass_vectorize::execute(function*) (tree-vectorizer.cc:1332)
==2360351== by 0x1386ACF: execute_one_pass(opt_pass*) (passes.cc:2646)
==2360351== by 0x13873EF: execute_pass_list_1(opt_pass*) (passes.cc:2757)
==2360351== by 0x1387401: execute_pass_list_1(opt_pass*) (passes.cc:2758)
==2360351== by 0x1387401: execute_pass_list_1(opt_pass*) (passes.cc:2758)
==2360351== by 0x1387428: execute_pass_list(function*, opt_pass*)
(passes.cc:2768)
==2360351== by 0xEE4C18: expand (cgraphunit.cc:1874)
==2360351== by 0xEE4C18: cgraph_node::expand() (cgraphunit.cc:1827)
==2360351== by 0xEE6AFA: expand_all_functions (cgraphunit.cc:2057)
==2360351== by 0xEE6AFA: symbol_table::compile() [clone .part.0]
(cgraphunit.cc:2435)
==2360351== by 0xEE93E2: compile (cgraphunit.cc:2345)
==2360351== by 0xEE93E2: symbol_table::finalize_compilation_unit()
(cgraphunit.cc:2626)
==2360351== by 0x14E8E73: compile_file() (toplev.cc:482)
==2360351== by 0xCB4E3F: do_compile (toplev.cc:2228)
==2360351== by 0xCB4E3F: toplev::main(int, char**) (toplev.cc:2392)
==2360351== by 0xCB679A: main (main.cc:39)
==2360351== Address 0x18 is not stack'd, malloc'd or (recently) free'd
==2360351==
during GIMPLE pass: vect
testcase.c: In function 'foo':
testcase.c:4:1: internal compiler error: Segmentation fault
4 | foo()
| ^~~
0x28f882d internal_error(char const*, ...)
/repo/gcc-trunk/gcc/diagnostic-global-context.cc:787
0x14e87af crash_signal
/repo/gcc-trunk/gcc/toplev.cc:325
0x15f5369 analyze_scalar_evolution_1
/repo/gcc-trunk/gcc/tree-scalar-evolution.cc:2026
...
0x17a5b0e ssa_name_has_boolean_range(tree_node*, gimple*)
/repo/gcc-trunk/gcc/tree-ssanames.cc:645
/repo/gcc-trunk/binary-trunk-20260604085222-r17-1281-g0d82756a365ee6-checking-yes-rtl-df-extra-aarch64/bin/../libexec/gcc/aarch64-unknown-linux-gnu/17.0.0/cc1
-quiet -iprefix
/repo/gcc-trunk/binary-trunk-20260604085222-r17-1281-g0d82756a365ee6-checking-yes-rtl-df-extra-aarch64/bin/../lib/gcc/aarch64-unknown-linux-gnu/17.0.0/
testcase.c -mno-fix-cortex-a53-835769 -mno-fix-cortex-a53-843419 -quiet
-dumpdir a- -dumpbase testcase.c -dumpbase-ext .c -mcpu=c1-ultra
-mautovec-preference=sve-only -mlittle-endian -mabi=lp64 -O3 -o /tmp/ccK8Q6Vh.s
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.