2015-12-10 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / funcspec-1.c
blob742e3a19e23a64b6bd46a1c3fc81a0a1ff19ced2
1 /* Test whether using target specific options, we can generate SSE2 code on
2 32-bit, which does not generate SSE2 by default, but still generate 387 code
3 for a function that doesn't use attribute((option)). */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target ia32 } */
6 /* { dg-options "-O3 -ftree-vectorize -mno-sse" } */
8 #ifndef SIZE
9 #define SIZE 1024
10 #endif
12 float a[SIZE] __attribute__((__aligned__(16)));
13 float b[SIZE] __attribute__((__aligned__(16)));
14 float c[SIZE] __attribute__((__aligned__(16)));
16 void sse_addnums (void) __attribute__ ((__target__ ("sse2")));
18 void
19 sse_addnums (void)
21 int i = 0;
22 for (; i < SIZE; ++i)
23 a[i] = b[i] + c[i];
26 void
27 i387_subnums (void)
29 int i = 0;
30 for (; i < SIZE; ++i)
31 a[i] = b[i] - c[i];
34 /* { dg-final { scan-assembler "addps\[ \t\]" } } */
35 /* { dg-final { scan-assembler "fsubs\[ \t\]" } } */