summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/conversion-2.c
blob: cca149a616655a04d03ac4dec3309154f78c6b54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* { dg-do compile } */
/* { dg-options "-O2 -fno-toplevel-reorder -mtune=bdver2" } */
/* { dg-additional-options "-mregparm=1 -msse -mfpmath=sse" { target ia32 } } */

void __attribute__ ((hot))
f1 (int x)
{
  register float f asm ("%xmm0") = x;
  asm volatile ("" :: "x" (f));
}

void __attribute__ ((cold))
f2 (int x)
{
  register float f asm ("%xmm1") = x;
  asm volatile ("" :: "x" (f));
}

void __attribute__ ((hot))
f3 (int x)
{
  register float f asm ("%xmm2") = x;
  asm volatile ("" :: "x" (f));
}

void __attribute__ ((cold))
f4 (int x)
{
  register float f asm ("%xmm3") = x;
  asm volatile ("" :: "x" (f));
}

/* { dg-final { scan-assembler "sp\\\), %xmm0" } } */
/* { dg-final { scan-assembler "(ax|di), %xmm1" } } */
/* { dg-final { scan-assembler "sp\\\), %xmm2" } } */
/* { dg-final { scan-assembler "(ax|di), %xmm3" } } */