This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/44180] New: [vect256] Wrong
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 May 2010 23:13:34 -0000
- Subject: [Bug target/44180] New: [vect256] Wrong
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
[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