This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/44180] New: [vect256] Wrong


[hjl@gnu-6 gcc]$ cat z.c
#define N 16

float b[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
float a[N];

void
test (void)
{
  int i;
  for (i = 0; i < N/2; i++)
    a[i] = b[2*i+1] * c[2*i+1];
}
[hjl@gnu-6 gcc]$ ./xgcc -B./ -O2 -ftree-vectorize -mavx -S z.c
[hjl@gnu-6 gcc]$ cat z.s
        .file   "z.c"
        .text
        .p2align 4,,15
.globl test
        .type   test, @function
test:
.LFB0:
        .cfi_startproc
        vxorps  %xmm0, %xmm0, %xmm0
        pushq   %rbp
        .cfi_def_cfa_offset 16
        movq    %rsp, %rbp
        .cfi_offset 6, -16
        .cfi_def_cfa_register 6
        vmovaps %ymm0, a(%rip)
        leave
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc

The probem is "vec_extract_evenv8sf" and "vec_extract_oddv8sf" call
expand_vec_perm_even_odd_1 which calls expand_vselect and
expand_vec_perm_vpermil without checking return values. For V4SF,
those functions return false.


-- 
           Summary: [vect256] Wrong
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44180


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]