Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: gcc/gcc/testsuite/gcc.target/i386/funcspec-2.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* Test whether using target specific options, we can generate SSE5 code. */ 1 /* Test whether using target specific options, we can generate FMA4 code. */
2 /* { dg-do compile } */ 2 /* { dg-do compile } */
3 /* { dg-require-effective-target lp64 } */ 3 /* { dg-require-effective-target lp64 } */
4 /* { dg-options "-O2 -march=k8" } */ 4 /* { dg-options "-O2 -march=k8" } */
5 5
6 extern void exit (int); 6 extern void exit (int);
7 7
8 #define SSE5_ATTR __attribute__((__target__("sse5,fused-madd"))) 8 #define FMA4_ATTR __attribute__((__target__("fma4")))
9 extern float flt_mul_add (float a, float b, float c) SSE5_ATTR; 9 extern float flt_mul_add (float a, float b, float c) FMA4_ATTR;
10 extern float flt_mul_sub (float a, float b, float c) SSE5_ATTR; 10 extern float flt_mul_sub (float a, float b, float c) FMA4_ATTR;
11 extern float flt_neg_mul_add (float a, float b, float c) SSE5_ATTR; 11 extern float flt_neg_mul_add (float a, float b, float c) FMA4_ATTR;
12 extern float flt_neg_mul_sub (float a, float b, float c) SSE5_ATTR; 12 extern float flt_neg_mul_sub (float a, float b, float c) FMA4_ATTR;
13 13
14 extern double dbl_mul_add (double a, double b, double c) SSE5_ATTR; 14 extern double dbl_mul_add (double a, double b, double c) FMA4_ATTR;
15 extern double dbl_mul_sub (double a, double b, double c) SSE5_ATTR; 15 extern double dbl_mul_sub (double a, double b, double c) FMA4_ATTR;
16 extern double dbl_neg_mul_add (double a, double b, double c) SSE5_ATTR; 16 extern double dbl_neg_mul_add (double a, double b, double c) FMA4_ATTR;
17 extern double dbl_neg_mul_sub (double a, double b, double c) SSE5_ATTR; 17 extern double dbl_neg_mul_sub (double a, double b, double c) FMA4_ATTR;
18 18
19 float 19 float
20 flt_mul_add (float a, float b, float c) 20 flt_mul_add (float a, float b, float c)
21 { 21 {
22 return (a * b) + c; 22 return (a * b) + c;
23 } 23 }
24 24
25 double 25 double
26 dbl_mul_add (double a, double b, double c) 26 dbl_mul_add (double a, double b, double c)
27 { 27 {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 f[5] = flt_neg_mul_add (f[0], f[1], f[2]); 74 f[5] = flt_neg_mul_add (f[0], f[1], f[2]);
75 f[6] = flt_neg_mul_sub (f[0], f[1], f[2]); 75 f[6] = flt_neg_mul_sub (f[0], f[1], f[2]);
76 76
77 d[3] = dbl_mul_add (d[0], d[1], d[2]); 77 d[3] = dbl_mul_add (d[0], d[1], d[2]);
78 d[4] = dbl_mul_sub (d[0], d[1], d[2]); 78 d[4] = dbl_mul_sub (d[0], d[1], d[2]);
79 d[5] = dbl_neg_mul_add (d[0], d[1], d[2]); 79 d[5] = dbl_neg_mul_add (d[0], d[1], d[2]);
80 d[6] = dbl_neg_mul_sub (d[0], d[1], d[2]); 80 d[6] = dbl_neg_mul_sub (d[0], d[1], d[2]);
81 exit (0); 81 exit (0);
82 } 82 }
83 83
84 /* { dg-final { scan-assembler "fmaddss" } } */ 84 /* { dg-final { scan-assembler "vfmaddss" } } */
85 /* { dg-final { scan-assembler "fmaddsd" } } */ 85 /* { dg-final { scan-assembler "vfmaddsd" } } */
86 /* { dg-final { scan-assembler "fmsubss" } } */ 86 /* { dg-final { scan-assembler "vfmsubss" } } */
87 /* { dg-final { scan-assembler "fmsubsd" } } */ 87 /* { dg-final { scan-assembler "vfmsubsd" } } */
88 /* { dg-final { scan-assembler "fnmaddss" } } */ 88 /* { dg-final { scan-assembler "vfnmaddss" } } */
89 /* { dg-final { scan-assembler "fnmaddsd" } } */ 89 /* { dg-final { scan-assembler "vfnmaddsd" } } */
90 /* { dg-final { scan-assembler "fnmsubss" } } */ 90 /* { dg-final { scan-assembler "vfnmsubss" } } */
91 /* { dg-final { scan-assembler "fnmsubsd" } } */ 91 /* { dg-final { scan-assembler "vfnmsubsd" } } */
92 /* { dg-final { scan-assembler "call\t(.*)flt_mul_add" } } */ 92 /* { dg-final { scan-assembler "call\t(.*)flt_mul_add" } } */
93 /* { dg-final { scan-assembler "call\t(.*)flt_mul_sub" } } */ 93 /* { dg-final { scan-assembler "call\t(.*)flt_mul_sub" } } */
94 /* { dg-final { scan-assembler "call\t(.*)flt_neg_mul_add" } } */ 94 /* { dg-final { scan-assembler "call\t(.*)flt_neg_mul_add" } } */
95 /* { dg-final { scan-assembler "call\t(.*)flt_neg_mul_sub" } } */ 95 /* { dg-final { scan-assembler "call\t(.*)flt_neg_mul_sub" } } */
96 /* { dg-final { scan-assembler "call\t(.*)dbl_mul_add" } } */ 96 /* { dg-final { scan-assembler "call\t(.*)dbl_mul_add" } } */
97 /* { dg-final { scan-assembler "call\t(.*)dbl_mul_sub" } } */ 97 /* { dg-final { scan-assembler "call\t(.*)dbl_mul_sub" } } */
98 /* { dg-final { scan-assembler "call\t(.*)dbl_neg_mul_add" } } */ 98 /* { dg-final { scan-assembler "call\t(.*)dbl_neg_mul_add" } } */
99 /* { dg-final { scan-assembler "call\t(.*)dbl_neg_mul_sub" } } */ 99 /* { dg-final { scan-assembler "call\t(.*)dbl_neg_mul_sub" } } */
OLDNEW
« no previous file with comments | « gcc/gcc/testsuite/gcc.target/i386/fpprec-1.c ('k') | gcc/gcc/testsuite/gcc.target/i386/funcspec-4.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698