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

Reply via email to