https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110083
Bug ID: 110083 Summary: [14 Regression] ICEs for testcase on fp-int-convert*timode after r14-1466-g3635e8c67e1 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: haochen.jiang at intel dot com Target Milestone: --- Currently we get testcase regressions following: https://gcc.gnu.org/pipermail/gcc-regression/2023-June/077808.html I checked my bisect script, at least for fp-int-convert-timode.c, it points to commit r14-1466-g3635e8c67e1 when using -march=cascadelake. Actually, it will cause ICEs when using -msse4 and higher ISA set. I reproduce it by: /export/users/haochenj/env/build_no_bootstrap_master/gcc/xgcc -B/export/users/haochenj/env/build_no_bootstrap_master/gcc/ /export/users/haochenj/src/gcc/master/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c -m64 -msse4 -fdiagnostics-plain-output -O2 -lm -o ./fp-int-convert-timode.exe with backtrace: during RTL pass: cse2 /export/users/haochenj/src/gcc/master/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c: In function ‘main’: /export/users/haochenj/src/gcc/master/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c:22:1: internal compiler error: in as_a, at machmode.h:381 0xcc405f scalar_mode as_a<scalar_mode>(machine_mode) /export/users/haochenj/src/gcc/master/./gcc/machmode.h:381 0xf9eb33 wi::int_traits<std::pair<rtx_def*, machine_mode> >::get_precision(std::pair<rtx_def*, machine_mode> const&) /export/users/haochenj/src/gcc/master/./gcc/rtl.h:2282 0xfb7fce unsigned int wi::get_precision<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*, machine_mode> const&) /export/users/haochenj/src/gcc/master/./gcc/wide-int.h:1795 0xfb21aa wide_int_ref_storage<false, false>::wide_int_ref_storage<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*, machine_mode> const&) /export/users/haochenj/src/gcc/master/./gcc/wide-int.h:1029 0xfa7c7c generic_wide_int<wide_int_ref_storage<false, false> >::generic_wide_int<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*, machine_mode> const&) /export/users/haochenj/src/gcc/master/./gcc/wide-int.h:787 0x103f74b poly_int<1u, generic_wide_int<wide_int_ref_storage<false, false> > >::poly_int<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*, machine_mode> const&) /export/users/haochenj/src/gcc/master/./gcc/poly-int.h:670 0x103ef15 wi::to_poly_wide(rtx_def const*, machine_mode) /export/users/haochenj/src/gcc/master/./gcc/rtl.h:2382 0x1558c20 neg_poly_int_rtx /export/users/haochenj/src/gcc/master/./gcc/simplify-rtx.cc:57 0x156521c simplify_context::simplify_binary_operation_1(rtx_code, machine_mode, rtx_def*, rtx_def*, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/simplify-rtx.cc:3171 0x1562b50 simplify_context::simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/simplify-rtx.cc:2641 0xfcbd31 simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/rtl.h:3485 0x15730be simplify_const_relational_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/simplify-rtx.cc:6173 0x1571a01 simplify_context::simplify_relational_operation(rtx_code, machine_mode, machine_mode, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/simplify-rtx.cc:5759 0xf0607d simplify_relational_operation(rtx_code, machine_mode, machine_mode, rtx_def*, rtx_def*) /export/users/haochenj/src/gcc/master/./gcc/rtl.h:3500 0x29418dd fold_rtx /export/users/haochenj/src/gcc/master/./gcc/cse.cc:3487 0x2940e75 fold_rtx /export/users/haochenj/src/gcc/master/./gcc/cse.cc:3227 0x29443e9 cse_insn /export/users/haochenj/src/gcc/master/./gcc/cse.cc:4667 0x29498ce cse_extended_basic_block /export/users/haochenj/src/gcc/master/./gcc/cse.cc:6566 0x2949ddd cse_main /export/users/haochenj/src/gcc/master/./gcc/cse.cc:6711 0x294c0c6 rest_of_handle_cse2 /export/users/haochenj/src/gcc/master/./gcc/cse.cc:7609