https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113062
Bug ID: 113062 Summary: [14 Regression][aarch64] ICE in fuse_pair, at config/aarch64/aarch64-ldp-fusion.cc:1456 since r14-6605-gc0911c6b357ba9 Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: mjires at suse dot cz CC: acoplan at gcc dot gnu.org Target Milestone: --- Target: aarch64 Compiling reduced testcase gcc.dg/compat/struct-return-10_x.c results in ICE since r14-6605-gc0911c6b357ba9. $ cat struct-return-10_x.c long double foo; double bar; void abort(); void check() { if (foo == bar) abort(); } $ aarch64-linux-gnu-gcc struct-return-10_x.c -Oz -fharden-conditional-branches during RTL pass: ldp_fusion struct-return-10_x.c: In function ‘check’: struct-return-10_x.c:7:1: internal compiler error: in fuse_pair, at config/aarch64/aarch64-ldp-fusion.cc:1456 7 | } | ^ 0x1e2c0c8 ldp_bb_info::fuse_pair(bool, unsigned int, int, rtl_ssa::insn_info*, rtl_ssa::insn_info*, base_cand&, rtl_ssa::insn_range_info const&) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:1456 0x1e2da97 ldp_bb_info::try_fuse_pair(bool, unsigned int, rtl_ssa::insn_info*, rtl_ssa::insn_info*) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2217 0x1e2de0f ldp_bb_info::merge_pairs(std::__cxx11::list<rtl_ssa::insn_info*, std::allocator<rtl_ssa::insn_info*> >&, std::__cxx11::list<rtl_ssa::insn_info*, std::allocator<rtl_ssa::insn_info*> >&, bool, unsigned int) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2306 0x1e2e034 ldp_bb_info::transform_for_base(int, access_group&) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2339 0x1e306c8 void ldp_bb_info::traverse_base_map<ordered_hash_map<pair_hash<tree_operand_hash, int_hash<int, -1, -2> >, access_group, simple_hashmap_traits<default_hash_traits<pair_hash<tree_operand_hash, int_hash<int, -1, -2> > >, access_group> > >(ordered_hash_map<pair_hash<tree_operand_hash, int_hash<int, -1, -2> >, access_group, simple_hashmap_traits<default_hash_traits<pair_hash<tree_operand_hash, int_hash<int, -1, -2> > >, access_group> >&) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2398 0x1e2e27c ldp_bb_info::transform() /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2405 0x1e2968c ldp_fusion_bb(rtl_ssa::bb_info*) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2634 0x1e29716 ldp_fusion() /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2643 0x1e29828 execute /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2693 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. $ aarch64-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/home/mjires/built/master/libexec/gcc/aarch64-linux-gnu/14.0.0/lto-wrapper Target: aarch64-linux-gnu Configured with: /home/mjires/git/GCC/master/configure --prefix=/home/mjires/built/master --target=aarch64-linux-gnu --disable-bootstrap --enable-languages=c,c++,fortran --disable-multilib --disable-libsanitizer --enable-checking Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.0.0 20231218 (experimental) (GCC)