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

            Bug ID: 88587
           Summary: [6.1/trunk] internal compiler error: in
                    expand_debug_locations, at cfgexpand.c:5450
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nbkolchin at gmail dot com
  Target Milestone: ---

https://godbolt.org/z/I8yw2T

typedef float __attribute__((vector_size(16))) simd4f;

__attribute__((target_clones("default,sse2")))
void f(int n,const float *m,float *vertices)
{
    simd4f v0={m[ 0],m[ 4],m[ 8],m[12]};
    simd4f v1={m[ 1],m[ 5],m[ 9],m[13]};
    simd4f v2={m[ 2],m[ 6],m[10],m[14]};
    simd4f v3={m[ 3],m[ 7],m[11],m[15]};
    for(int i=0;i<n;++i)
    {
        float *src=vertices+4*i;
        simd4f v=
            src[0]*v0+
            src[1]*v1+
            src[2]*v2+
            src[3]*v3;
        __builtin_memcpy(src,&v,sizeof(v));
    }
// Replacing function body with
//    for(int i=0;i<n;++i)
//        vertices[i]+=m[0];
// yields no error.
}

GNU C++14 (GCC-Explorer-Build) version 9.0.0 20181223 (experimental)
(x86_64-linux-gnu)

        compiled by GNU C version 7.3.0, GMP version 6.1.0, MPFR version 3.1.4,
MPC version 1.0.3, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

Compiler executable checksum: 0ba50885fa199cf01b491d14c2f880b7

during RTL pass: expand

<source>: In function 'void _Z1fiPKfPf.sse2.0(int, const float*, float*)':

<source>:14:6: internal compiler error: in expand_debug_locations, at
cfgexpand.c:5450

   14 | void f(int n,const float *m,float *vertices)

      |      ^

Please submit a full bug report,

Reply via email to