https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124280
Bug ID: 124280
Summary: [16 regression] ICE in expand_vector_broadcast after
r16-7717-g1139fdadc85a0b
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: soumyaa at gcc dot gnu.org
CC: xry111 at gcc dot gnu.org
Target Milestone: ---
Hi,
521.wrf_r [SPEC2017] is ICE'ing after gcc.gnu.org/g:1139fdadc85
Backtrace:
during RTL pass: expand
./obj/module_bl_boulac.f90:35:7:
35 | subroutine boulac(frc_urb2d,idiff,flag_bep,dz8w,dt,u_phy,v_phy
&
| ^~~~~~~~~~~~~~~~~
internal compiler error: in expand_vector_broadcast, at optabs.cc:442
0x25077b7 internal_error(char const*, ...)
../../gcc_src/gcc/diagnostic-global-context.cc:787
0x882d1f fancy_abort(char const*, int, char const*)
../../gcc_src/gcc/diagnostics/context.cc:1812
0xfdf81f expand_vector_broadcast(machine_mode, rtx_def*)
../../gcc_src/gcc/optabs.cc:442
0xc699af expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
../../gcc_src/gcc/expr.cc:11246
0xc770c3 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc_src/gcc/expr.cc:11353
0xc7366f expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc_src/gcc/expr.cc:11543
0xc7f86f expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
../../gcc_src/gcc/expr.h:323
0xc7f86f expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**,
rtx_def**, expand_modifier)
../../gcc_src/gcc/expr.cc:9198
0xc68573 expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
../../gcc_src/gcc/expr.cc:11277
0xc770c3 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc_src/gcc/expr.cc:11353
0xc7366f expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc_src/gcc/expr.cc:11543
0xe1b66f expand_normal(tree_node*)
../../gcc_src/gcc/expr.h:329
0xe1b66f expand_vec_cond_mask_optab_fn
../../gcc_src/gcc/internal-fn.cc:3232
0xe1b66f expand_VCOND_MASK
../../gcc_src/gcc/internal-fn.def:240
0xc738f3 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc_src/gcc/expr.cc:11558
0xe2826b expand_normal(tree_node*)
../../gcc_src/gcc/expr.h:329
0xe2826b expand_partial_store_optab_fn
../../gcc_src/gcc/internal-fn.cc:3199
0xb18e13 expand_call_stmt
../../gcc_src/gcc/cfgexpand.cc:3110
0xb18e13 expand_gimple_stmt_1
../../gcc_src/gcc/cfgexpand.cc:4243
0xb18e13 expand_gimple_stmt
../../gcc_src/gcc/cfgexpand.cc:439
Compilation flags:
-O2 -fno-trapping-math -mcpu=neoverse-v2 -c obj/module_bl_boulac.f90
Reproducer:
subroutine foo(a, pblh, res, n)
implicit none
integer :: n,i,wts,a(n),res(n),pblh
wts = a(1)
res = 0
do i = 1, n
if (a(i) .le. pblh .and. wts .gt. 0) then
res(i) = a(i)
endif
enddo
end subroutine foo