On vect256 branch, I got [...@gnu-6 prxxx]$ cat x.c extern void abort (void);
static float Yf[] = { 2.0, -2.0, -2.0, -2.0, -2.0, 2.0, -0.0, __builtin_inff () }; static const float Zf[] = { 1.0, -1.0, -1.0, -0.0, -0.0, 0.0, -__builtin_inff (), __builtin_nanf ("") }; void testf (void) { float r[8]; int i; r[0] = __builtin_copysignf (1.0, Yf[0]); r[1] = __builtin_copysignf (1.0, Yf[1]); r[2] = __builtin_copysignf (-1.0, Yf[2]); r[3] = __builtin_copysignf (0.0, Yf[3]); r[4] = __builtin_copysignf (-0.0, Yf[4]); r[5] = __builtin_copysignf (-0.0, Yf[5]); r[6] = __builtin_copysignf (__builtin_inff (), Yf[6]); r[7] = __builtin_copysignf (-__builtin_nanf (""), Yf[7]); for (i = 0; i < 8; ++i) if (__builtin_memcmp (r+i, Zf+i, sizeof(float)) != 0) abort (); } [...@gnu-6 prxxx]$ make /export/build/gnu/gcc-avx256/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-avx256/build-x86_64-linux/gcc/ -mavx -O2 -ftree-vectorize -S x.c [...@gnu-6 prxxx]$ cat x.s .file "x.c" .text .p2align 4,,15 .globl testf .type testf, @function testf: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 xorl %eax, %eax movl $4, %edx movq %rsp, %rbp .cfi_offset 6, -16 .cfi_def_cfa_register 6 subq $32, %rsp vmovaps .LC0(%rip), %ymm0 movq %rsp, %r8 vmovaps %ymm0, (%rsp) .p2align 4,,10 .p2align 3 .L3: leaq (%r8,%rax), %rsi leaq Zf(%rax), %rdi movq %rdx, %rcx repz cmpsb jne .L6 addq $4, %rax cmpq $32, %rax jne .L3 leave .cfi_remember_state .cfi_def_cfa 7, 8 ret .L6: .cfi_restore_state call abort .cfi_endproc .LFE0: .size testf, .-testf There is no stack alignment. -- Summary: [vect256] SLP failed to update stack alignment Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end 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=44130