https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84406

            Bug ID: 84406
           Summary: [8 Regression][MSP430] ICE on valid code in
                    find_widening_optab_handler_and_mode, at
                    optabs-query.c:476
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jozefl.gcc at gmail dot com
  Target Milestone: ---

Trunk currently fails to build for the msp430-elf target due to an ICE. 

A reduced testcase is below.

# 1 "testcase.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "testcase.c"
void a (void) {
  __int20 a, b;
  __int20 c = a * b;
}

$ ./gcc/xgcc -B./gcc/ -S testcase.i

during RTL pass: expand
testcase.c: In function 'a':
testcase.c:3:11: internal compiler error: in
find_widening_optab_handler_and_mode, at optabs-query.c:476
   __int20 c = a * b;
           ^
0xaaa5cc find_widening_optab_handler_and_mode(optab_tag, machine_mode,
machine_mode, machine_mode*)
        ../../gcc/optabs-query.c:476
0xa9f399 expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*,
int, optab_methods)
        ../../gcc/optabs.c:1290
0x8355fd expand_mult(machine_mode, rtx_def*, rtx_def*, rtx_def*, int, bool)
        ../../gcc/expmed.c:3536
0x85b492 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
        ../../gcc/expr.c:8946
0x726b49 expand_gimple_stmt_1
        ../../gcc/cfgexpand.c:3730
0x726b49 expand_gimple_stmt
        ../../gcc/cfgexpand.c:3790
0x72881b expand_gimple_basic_block
        ../../gcc/cfgexpand.c:5819
0x72e196 execute
        ../../gcc/cfgexpand.c:6425

Started with:

commit d2a1b4530f1d00fb35c2aee051b00398a624bd27
Author: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Wed Nov 1 12:30:39 2017 +0000

    Widening optab cleanup
    ...

The ICE appears to be caused by the fact there is no widening multiply insn for
PSImode currently implemented for msp430, which is what
find_widening_optab_handler_and_mode is searching for.

Reply via email to