1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-toplevel-reorder -mtune=bdver2" } */
3 /* { dg-additional-options "-mregparm=1 -msse -mfpmath=sse" { target ia32 } } */
4
5 void __attribute__ ((hot))
f1(int x)6 f1 (int x)
7 {
8 register float f asm ("%xmm0") = x;
9 asm volatile ("" :: "x" (f));
10 }
11
12 void __attribute__ ((cold))
f2(int x)13 f2 (int x)
14 {
15 register float f asm ("%xmm1") = x;
16 asm volatile ("" :: "x" (f));
17 }
18
19 void __attribute__ ((hot))
f3(int x)20 f3 (int x)
21 {
22 register float f asm ("%xmm2") = x;
23 asm volatile ("" :: "x" (f));
24 }
25
26 void __attribute__ ((cold))
f4(int x)27 f4 (int x)
28 {
29 register float f asm ("%xmm3") = x;
30 asm volatile ("" :: "x" (f));
31 }
32
33 /* { dg-final { scan-assembler "sp\\\), %xmm0" } } */
34 /* { dg-final { scan-assembler "(ax|di), %xmm1" } } */
35 /* { dg-final { scan-assembler "sp\\\), %xmm2" } } */
36 /* { dg-final { scan-assembler "(ax|di), %xmm3" } } */
37