/* { dg-additional-options "-O3" } */ #include "tree-vect.h" void abort (void); unsigned int a[256]; unsigned char b[256]; __attribute__ ((noinline)) void main1() { int i, z, x, y; for(i = 0; i < 256; i++) { a[i] = i % 5; __asm__ volatile (""); } for (z = 0; z < 16; z++) for (y = 0; y < 4; y++) for (x = 0; x < 4; x++) b[y*64 + z*4 + x] = a[z*16 + y*4 + x]; if (b[4] != 1) abort (); } int main (void) { check_vect (); main1 (); return 0; } /* { dg-final { scan-tree-dump "vectorized 1 loop" "vect" { target { vect_pack_trunc } } } } */