https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104133
Bug ID: 104133
Summary: OpenACC 'kernels' decomposition: internal compiler
error: 'verify_gimple' failed, error: invalid operands
in binary operation
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, openacc
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: asolokha at gmx dot com, pinskia at gcc dot gnu.org
Target Milestone: ---
A slight variation of what Andrew Pinski posted in
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104061#c3> (see PR104132):
int arr_0;
void
foo (void)
{
#pragma acc kernels
{
int k;
#pragma acc loop
for (k = 0; k < 2; k++)
arr_0 += k;
#pragma acc loop
for (k = 0; k < 2; k++)
arr_0 += k;
}
}
(Note 'arr_0 += k;' as originally in PR104061, not 'arr_0 = k;' as in
PR104132.)
Already with '-fopenacc --param openacc-kernels=decompose -O0 -g0' (so, not
involving 'GIMPLE_DEBUG's), for both C and C++, we run into:
pr.c: In function ‘foo’:
pr.c:37:13: error: invalid operands in binary operation
37 | arr_0 += k;
| ~~~~~~^~~~
D.2133 = arr_0.0 + k;
pr.c:37:13: error: invalid operands in binary operation
D.2135 = arr_0.1 + k;
during GIMPLE pass: lower
pr.c:37:13: internal compiler error: ‘verify_gimple’ failed