Save the initial options after checking vzeroupper.
authorH.J. Lu <hongjiu.lu@intel.com>
Mon, 23 May 2011 16:51:42 +0000 (16:51 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Mon, 23 May 2011 16:51:42 +0000 (09:51 -0700)
gcc/

2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>

PR target/47315
* config/i386/i386.c (ix86_option_override_internal): Save the
initial options after checking vzeroupper.

gcc/testsuite/

2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>

PR target/47315
* gcc.target/i386/pr47315.c: New test.

From-SVN: r174078

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr47315.c [new file with mode: 0644]

index a3cb0f1087a3288487173b7616a08a8e7d6b0d21..1d46b04b63069fa1a691b1b69e27c365ca7d3eda 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/47315
+       * config/i386/i386.c (ix86_option_override_internal): Save the
+       initial options after checking vzeroupper.
+
 2011-05-23  David Li  <davidxl@google.com>
 
        PR tree-optimization/48988
index 0709be819fd7db034b260b3671e721dbcd6dba11..854e376b58e233495719252a57d1d470ae23577f 100644 (file)
@@ -4191,11 +4191,6 @@ ix86_option_override_internal (bool main_args_p)
 #endif
    }
 
-  /* Save the initial options in case the user does function specific options */
-  if (main_args_p)
-    target_option_default_node = target_option_current_node
-      = build_target_option_node ();
-
   if (TARGET_AVX)
     {
       /* When not optimize for size, enable vzeroupper optimization for
@@ -4217,6 +4212,12 @@ ix86_option_override_internal (bool main_args_p)
       /* Disable vzeroupper pass if TARGET_AVX is disabled.  */
       target_flags &= ~MASK_VZEROUPPER;
     }
+
+  /* Save the initial options in case the user does function specific
+     options.  */
+  if (main_args_p)
+    target_option_default_node = target_option_current_node
+      = build_target_option_node ();
 }
 
 /* Return TRUE if VAL is passed in register with 256bit AVX modes.  */
index 72aae61f3ef40a4c6e4a80121357ecef4832cb40..85137d00056f92bfde49c990c52bf416e4811e33 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/47315
+       * gcc.target/i386/pr47315.c: New test.
+
 2011-05-23  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/cpp0x/lambda/lambda-eh2.C: New.
diff --git a/gcc/testsuite/gcc.target/i386/pr47315.c b/gcc/testsuite/gcc.target/i386/pr47315.c
new file mode 100644 (file)
index 0000000..871d3f1
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -mvzeroupper" } */
+
+__attribute__ ((__target__ ("avx")))
+float bar (float f) {}
+
+void foo (float f)
+{
+    bar (f);
+}