https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108950
Bug ID: 108950
Summary: [11/12/13 Regression] ICE: verify_gimple failed
(error: conversion of register to a different size in
'view_convert_expr'; error: type mismatch in
'widen_sum_expr')
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: aarch64-linux-gnu
gcc 13.0.1 20230226 snapshot (g:e6d39f68d03c46637ca6e1bede3d28eae6278df3) ICEs
when compiling the following testcase w/ -O1:
int m;
short int n;
__attribute__ ((simd)) int
foo (void)
{
m += n;
m += n;
}
% aarch64-linux-gnu-gcc-13 -O1 -c t0pgrthf.c
t0pgrthf.c: In function 'foo.simdclone.0':
t0pgrthf.c:5:1: error: conversion of register to a different size in
'view_convert_expr'
5 | foo (void)
| ^~~
VIEW_CONVERT_EXPR<int>(n.0_1);
_21 = VIEW_CONVERT_EXPR<int>(n.0_1);
t0pgrthf.c:5:1: error: type mismatch in 'widen_sum_expr'
vector(4) int
vector(4) int
vector(4) int
vect_patt_19.21_28 = _25 w+ vect_m_lsm.20_27;
during GIMPLE pass: vect
t0pgrthf.c:5:1: internal compiler error: verify_gimple failed
0xf7c152 verify_gimple_in_cfg(function*, bool, bool)
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-cfg.cc:5648
0xe39450 execute_function_todo
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/passes.cc:2091
0xe3993e execute_todo
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/passes.cc:2145