1/* Test that the correct data prefetch instructions are generated for i386 2 variants that use SSE prefetch instructions. */ 3 4/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ 5/* { dg-require-effective-target ilp32 } */ 6 7extern void exit (int); 8 9char *msg = "howdy there"; 10 11void 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 23int main () 24{ 25 foo (msg); 26 exit (0); 27} 28 29/* { dg-final { scan-assembler "prefetchnta" } } */ 30/* { dg-final { scan-assembler "prefetcht0" } } */ 31/* { dg-final { scan-assembler "prefetcht1" } } */ 32/* { dg-final { scan-assembler "prefetcht2" } } */ 33/* { dg-final { scan-assembler-not "prefetchw" } } */ 34