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.