1/* { dg-do compile } */ 2/* { dg-require-effective-target ilp32 } */ 3/* { dg-options "-O1 -mvis3" } */ 4 5float fnegs (float a) 6{ 7 return -a; 8} 9 10double fnegd (double a) 11{ 12 return -a; 13} 14 15float fmuls (float a, float b) 16{ 17 return a * b; 18} 19 20double fmuld (double a, double b) 21{ 22 return a * b; 23} 24 25double fsmuld (float a, float b) 26{ 27 return (double)a * (double)b; 28} 29 30double fnsmuld (float a, float b) 31{ 32 return -((double)a * (double)b); 33} 34 35/* { dg-final { scan-assembler-times "movwtos\t%" 13 } } */ 36/* { dg-final { scan-assembler "fnegs\t%" } } */ 37/* { dg-final { scan-assembler "fnegd\t%" } } */ 38/* { dg-final { scan-assembler "fmuls\t%" } } */ 39/* { dg-final { scan-assembler "fmuld\t%" } } */ 40/* { dg-final { scan-assembler "fsmuld\t%" } } */ 41/* { dg-final { scan-assembler "fnsmuld\t%" } } */ 42