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
5void __attribute__ ((hot))
6f1 (int x)
7{
8  register float f asm ("%xmm0") = x;
9  asm volatile ("" :: "x" (f));
10}
11
12void __attribute__ ((cold))
13f2 (int x)
14{
15  register float f asm ("%xmm1") = x;
16  asm volatile ("" :: "x" (f));
17}
18
19void __attribute__ ((hot))
20f3 (int x)
21{
22  register float f asm ("%xmm2") = x;
23  asm volatile ("" :: "x" (f));
24}
25
26void __attribute__ ((cold))
27f4 (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