OSDN Git Service

gcc/testsuite/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.misc-tests / i386-pf-3dnow-1.c
1 /* Test that the correct data prefetch instructions are generated for i386
2    variants that use 3DNow! prefetch instructions.  */
3
4 /* { dg-do compile { target i?86-*-* x86_64-*-*} } */
5 /* { dg-require-effective-target ilp32 } */
6
7 extern void exit (int);
8
9 char *msg = "howdy there";
10
11 void foo (char *p)
12 {
13   __builtin_prefetch (p, 0, 0);
14   __builtin_prefetch (p, 0, 1);
15   __builtin_prefetch (p, 0, 2);
16   __builtin_prefetch (p, 0, 3);
17   __builtin_prefetch (p, 1, 0);
18   __builtin_prefetch (p, 1, 1);
19   __builtin_prefetch (p, 1, 2);
20   __builtin_prefetch (p, 1, 3);
21 }
22
23 int main ()
24 {
25   foo (msg);
26   exit (0);
27 }
28
29 /* { dg-final { scan-assembler "prefetch" } } */
30 /* { dg-final { scan-assembler "prefetchw" } } */
31 /* { dg-final { scan-assembler-not "prefetchnta" } } */
32 /* { dg-final { scan-assembler-not "prefetcht" } } */