https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63175
--- Comment #21 from rguenther at suse dot de <rguenther at suse dot de> --- On March 2, 2015 5:58:28 PM CET, "msebor at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63175 > >--- Comment #20 from Martin Sebor <msebor at gcc dot gnu.org> --- >(In reply to rguent...@suse.de from comment #19) > >Please remove the extern from the first test and try again (it's a >vestige of >the second test). Here's the assembly emitted by 4.8.3 for the first >test >(without the extern): > >$ cat u.c && gcc -DT="int" -O2 -ftree-vectorize -maltivec -S u.c && cat >u.s >const T a [] = { 1, 2, 3, 4, 5 }; >T b[sizeof a / sizeof *a]; > >void g (void) >{ > const T *p = a; > T *q = b + 1; > > *q++ = *p++; > *q++ = *p++; > *q++ = *p++; > *q++ = *p++; >} > .file "u.c" > .section ".toc","aw" > .section ".text" > .section ".toc","aw" >.LC0: > .quad b > .section ".text" > .align 2 > .p2align 4,,15 > .globl g > .section ".opd","aw" > .align 3 >g: > .quad .L.g,.TOC.@tocbase > .previous > .type g, @function >.L.g: > addis 9,2,.LC1@toc@ha > addis 10,2,.LC0@toc@ha > addi 9,9,.LC1@toc@l > lxvw4x 32,0,9 > ld 9,.LC0@toc@l(10) > li 10,4 > stxvw4x 32,9,10 But isn't this simply wrong-code?! > blr > .long 0 > .byte 0,0,0,0,0,0,0,0 > .size g,.-.L.g > .comm b,20,4 > .globl a > .section .rodata > .align 4 > .type a, @object > .size a, 20 >a: > .long 1 > .long 2 > .long 3 > .long 4 > .long 5 > .section .rodata.cst16,"aM",@progbits,16 > .align 4 >.LC1: > .4byte 1 > .4byte 2 > .4byte 3 > .4byte 4 > .ident "GCC: (GNU) 4.8.3 20140911 (Red Hat 4.8.3-9)" > .section .note.GNU-stack,"",@progbits