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

Reply via email to