1 /* { dg-do compile { target arm*-*-* } } */
2 /* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
4 extern float fabsf (float);
5 extern float sqrtf (float);
6 extern double fabs (double);
7 extern double sqrt (double);
9 volatile float f1, f2, f3;
13 /* { dg-final { scan-assembler "fabss" } } */
16 /* { dg-final { scan-assembler "fnegs" } } */
19 /* { dg-final { scan-assembler "fadds" } } */
22 /* { dg-final { scan-assembler "fsubs" } } */
25 /* { dg-final { scan-assembler "fdivs" } } */
28 /* { dg-final { scan-assembler "fmuls" } } */
31 /* { dg-final { scan-assembler "fnmuls" } } */
34 /* { dg-final { scan-assembler "fmacs" } } */
37 /* { dg-final { scan-assembler "fmscs" } } */
39 /* mulsf3negsfaddsf_vfp */
40 /* { dg-final { scan-assembler "fnmacs" } } */
42 /* mulsf3negsfsubsf_vfp */
43 /* { dg-final { scan-assembler "fnmscs" } } */
46 /* { dg-final { scan-assembler "fsqrts" } } */
50 volatile double d1, d2, d3;
54 /* { dg-final { scan-assembler "fabsd" } } */
57 /* { dg-final { scan-assembler "fnegd" } } */
60 /* { dg-final { scan-assembler "faddd" } } */
63 /* { dg-final { scan-assembler "fsubd" } } */
66 /* { dg-final { scan-assembler "fdivd" } } */
69 /* { dg-final { scan-assembler "fmuld" } } */
72 /* { dg-final { scan-assembler "fnmuld" } } */
75 /* { dg-final { scan-assembler "fmacd" } } */
78 /* { dg-final { scan-assembler "fmscd" } } */
80 /* muldf3negdfadddf_vfp */
81 /* { dg-final { scan-assembler "fnmacd" } } */
83 /* muldf3negdfsubdf_vfp */
84 /* { dg-final { scan-assembler "fnmscd" } } */
87 /* { dg-final { scan-assembler "fsqrtd" } } */
92 volatile unsigned int u1;
94 void test_convert () {
96 /* { dg-final { scan-assembler "fcvtds" } } */
99 /* { dg-final { scan-assembler "fcvtsd" } } */
102 /* { dg-final { scan-assembler "ftosizs" } } */
105 /* { dg-final { scan-assembler "ftosizd" } } */
107 /* fixuns_truncsfsi2 */
108 /* { dg-final { scan-assembler "ftouizs" } } */
110 /* fixuns_truncdfsi2 */
111 /* { dg-final { scan-assembler "ftouizd" } } */
114 /* { dg-final { scan-assembler "fsitos" } } */
117 /* { dg-final { scan-assembler "fsitod" } } */
120 /* { dg-final { scan-assembler "fuitos" } } */
123 /* { dg-final { scan-assembler "fuitod" } } */