1/* { dg-do compile } */ 2/* { dg-options "-O2 -msse2 -mno-avx -fipa-ra -fomit-frame-pointer" } */ 3 4typedef double v2df __attribute__((vector_size (16))); 5 6static v2df __attribute__((noinline)) 7bar (v2df a) 8{ 9 return a + (v2df){ 3.0, 3.0 }; 10} 11 12v2df __attribute__((noinline)) 13foo (v2df y) 14{ 15 return y + bar (y); 16} 17 18/* For !nonpic && ia32 xfails, see PR64895. */ 19 20/* Check presence of all insns on xmm registers. These checks are expected to 21 pass with both -fipa-ra and -fno-ipa-ra. */ 22/* { dg-final { scan-assembler-times "addpd\t\\.?LC0.*, %xmm0" 1 } } */ 23/* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 { xfail { { ! nonpic } && ia32 } } } } */ 24/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { xfail { { ! nonpic } && ia32 } } } } */ 25 26/* Check absence of save/restore of xmm1 register. */ 27/* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */ 28/* { dg-final { scan-assembler-not "movapd\t\\(%\[re\]?sp\\), %xmm1" } } */ 29