1139825Simp/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ 290643Sbenno/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ 390643Sbenno/* { dg-require-effective-target powerpc_altivec_ok } */ 490643Sbenno/* { dg-options "-O2 -ftree-vectorize -mcpu=power6 -maltivec" } */ 590643Sbenno/* { dg-final { scan-assembler "vsel" } } */ 690643Sbenno/* { dg-final { scan-assembler "vrfim" } } */ 790643Sbenno/* { dg-final { scan-assembler "vrfip" } } */ 890643Sbenno/* { dg-final { scan-assembler "vrfiz" } } */ 990643Sbenno 1090643Sbenno#ifndef SIZE 1190643Sbenno#define SIZE 1024 1290643Sbenno#endif 1390643Sbenno 1490643Sbennofloat a[SIZE] __attribute__((__aligned__(32))); 1590643Sbennofloat b[SIZE] __attribute__((__aligned__(32))); 1690643Sbennofloat c[SIZE] __attribute__((__aligned__(32))); 1790643Sbennofloat d[SIZE] __attribute__((__aligned__(32))); 1890643Sbennofloat e[SIZE] __attribute__((__aligned__(32))); 1990643Sbenno 2090643Sbennoextern float floorf (float); 2190643Sbennoextern float ceilf (float); 2290643Sbennoextern float truncf (float); 2390643Sbennoextern float copysignf (float, float); 2490643Sbenno 2590643Sbennovoid 2690643Sbennovector_floor (void) 2790643Sbenno{ 2890643Sbenno int i; 2990643Sbenno 3090643Sbenno for (i = 0; i < SIZE; i++) 3190643Sbenno a[i] = floorf (b[i]); 3290643Sbenno} 3390643Sbenno 3490643Sbennovoid 3590643Sbennovector_ceil (void) 36139825Simp{ 3777957Sbenno int i; 3877957Sbenno 3977957Sbenno for (i = 0; i < SIZE; i++) 4077957Sbenno a[i] = ceilf (b[i]); 4177957Sbenno} 4277957Sbenno 4377957Sbennovoid 4477957Sbennovector_trunc (void) 4577957Sbenno{ 4677957Sbenno int i; 4777957Sbenno 4877957Sbenno for (i = 0; i < SIZE; i++) 4977957Sbenno a[i] = truncf (b[i]); 5077957Sbenno} 5177957Sbenno 5277957Sbennovoid 5377957Sbennovector_copysign (void) 5477957Sbenno{ 5577957Sbenno int i; 5677957Sbenno 5777957Sbenno for (i = 0; i < SIZE; i++) 5877957Sbenno a[i] = copysignf (b[i], c[i]); 5977957Sbenno} 6077957Sbenno