http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48614
Summary: gcc.target/i386/pr46084.c should require avx_runtime Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Currently, that test fails with -ftree-vectorize in RUNTESTFLAGS: $ gcc gcc.target/i386/pr46084.c -fsplit-stack -O2 -mavx -ftree-vectorize $ gdb ./a.out Program received signal SIGILL, Illegal instruction. 0x0000000000400d0e in use_buffer (buf=Unhandled dwarf expression opcode 0xf3 ) at gcc.target/i386/pr46084.c:21 21 for (i = 0; i < c; ++i) (gdb) disassemble Dump of assembler code for function use_buffer: ... 0x0000000000400d02 <+98>: lea 0x1(%rax),%rdx 0x0000000000400d06 <+102>: mov %rax,-0x10(%rsp) 0x0000000000400d0b <+107>: add %rdi,%rcx => 0x0000000000400d0e <+110>: vmovq -0x10(%rsp),%xmm0 0x0000000000400d14 <+116>: vpinsrq $0x1,%rdx,%xmm0,%xmm1 0x0000000000400d1a <+122>: vmovdqa 0x10ae(%rip),%xmm13 # 0x401dd0 0x0000000000400d22 <+130>: xor %edx,%edx 0x0000000000400d24 <+132>: vmovdqa 0x10b4(%rip),%xmm0 # 0x401de0 0x0000000000400d2c <+140>: vmovdqa 0x10bc(%rip),%xmm9 # 0x401df0 0x0000000000400d34 <+148>: vmovdqa 0x10c4(%rip),%xmm8 # 0x401e00 0x0000000000400d3c <+156>: vmovdqa 0x10cc(%rip),%xmm12 # 0x401e10 0x0000000000400d44 <+164>: vmovdqa 0x10d4(%rip),%xmm11 # 0x401e20 0x0000000000400d4c <+172>: jmp 0x400d54 <use_buffer+180> I know I am using custom RUNTESTFLAGS, but if the fix is as easy as adding "{ dg-require-effective-target avx_runtime }", it would be nice to have it fixed. Index: gcc/testsuite/gcc.target/i386/pr46084.c =================================================================== --- gcc/testsuite/gcc.target/i386/pr46084.c (revision 172439) +++ gcc/testsuite/gcc.target/i386/pr46084.c (working copy) @@ -2,6 +2,7 @@ only run on Unix. */ /* { dg-do run { target *-*-linux* *-*-solaris* *-*-darwin* } } */ /* { dg-require-effective-target avx } */ +/* { dg-require-effective-target avx_runtime } */ /* { dg-require-effective-target split_stack } */ /* { dg-options "-fsplit-stack -O2 -mavx" } */ Prevents the failure, but I am not sure if the line above the change isn't now redundant.