1 /* { dg-do assemble } */
2 /* { dg-options "-O --save-temps" } */
3 /* { dg-final { check-function-bodies "**" "" "" } } */
4
5 #pragma GCC target "+nothing+nosimd+fp"
6
7 /*
8 ** fpr_to_fpr:
9 ** fmov s0, s1
10 ** ret
11 */
12 float
13 fpr_to_fpr (float q0, float q1)
14 {
15 return q1;
16 }
17
18 /*
19 ** gpr_to_fpr:
20 ** fmov s0, w0
21 ** ret
22 */
23 float
24 gpr_to_fpr ()
25 {
26 register float w0 asm ("w0");
27 asm volatile ("" : "=r" (w0));
28 return w0;
29 }
30
31 /*
32 ** zero_to_fpr:
33 ** fmov s0, wzr
34 ** ret
35 */
36 float
37 zero_to_fpr ()
38 {
39 return 0;
40 }
41
42 /*
43 ** fpr_to_gpr:
44 ** fmov w0, s0
45 ** ret
46 */
47 void
48 fpr_to_gpr (float q0)
49 {
50 register float w0 asm ("w0");
51 w0 = q0;
52 asm volatile ("" :: "r" (w0));
53 }