]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- rel 5; branch diff updated auto/th/gcc-4_5_0-5
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 20 May 2010 12:17:23 +0000 (12:17 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-branch.diff -> 1.29
    gcc.spec -> 1.617

gcc-branch.diff
gcc.spec

index c4dd8e686c6a8215496d16a3714ad47cd731bf0a..205228ad1b8375b2fa6a74644291229169a0064b 100644 (file)
@@ -1,7 +1,7 @@
 Index: configure
 ===================================================================
---- configure  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ configure  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- configure  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ configure  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7610,7 +7610,7 @@
         mv conftest.o conftest.o.g0 &&
         ${CC} -c -g conftest.c &&
@@ -13,8 +13,8 @@ Index: configure
        BUILD_CONFIG=
 Index: libgcc/config.host
 ===================================================================
---- libgcc/config.host (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgcc/config.host (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libgcc/config.host (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgcc/config.host (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -600,6 +600,7 @@
  i[34567]86-*-darwin* | x86_64-*-darwin* | \
    i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
@@ -23,11 +23,31 @@ Index: libgcc/config.host
    i[34567]86-*-solaris2* | \
    i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
        if test "${host_address}" = 32; then
+Index: libgcc/config/i386/32/sfp-machine.h
+===================================================================
+--- libgcc/config/i386/32/sfp-machine.h        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgcc/config/i386/32/sfp-machine.h        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -142,8 +142,8 @@
+     if (_fex & FP_EX_DIVZERO)                                         \
+       {                                                                       \
+       float f = 1.0, g = 0.0;                                         \
+-      __asm__ __volatile__ ("fdivp" : "=t" (f)                        \
+-                                    : "0" (f), "u" (g)                \
++      __asm__ __volatile__ ("fdivp {%0, %y1|%y1, %0}"                 \
++                                    : "+t" (f) : "u" (g)              \
+                                     : "st(1)");                       \
+       __asm__ __volatile__ ("fwait");                                 \
+       }                                                                       \
 Index: libgcc/ChangeLog
 ===================================================================
---- libgcc/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgcc/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,10 @@
+--- libgcc/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgcc/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,15 @@
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * config/i386/32/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun
++      assembler syntax.
++
 +2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
 +
 +      Backport from mainline:
@@ -40,8 +60,8 @@ Index: libgcc/ChangeLog
        * GCC 4.5.0 released.
 Index: libgomp/sections.c
 ===================================================================
---- libgomp/sections.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgomp/sections.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libgomp/sections.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgomp/sections.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,4 @@
 -/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
 +/* Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@@ -77,8 +97,8 @@ Index: libgomp/sections.c
  /* This routine is called when first encountering a sections construct
 Index: libgomp/ChangeLog
 ===================================================================
---- libgomp/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgomp/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libgomp/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgomp/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,24 @@
 +2010-04-26  Jakub Jelinek  <jakub@redhat.com>
 +
@@ -107,7 +127,7 @@ Index: libgomp/ChangeLog
 Index: libgomp/testsuite/libgomp.c++/pr43893.C
 ===================================================================
 --- libgomp/testsuite/libgomp.c++/pr43893.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.c++/pr43893.C    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ libgomp/testsuite/libgomp.c++/pr43893.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,125 @@
 +// PR c/43893
 +// { dg-do run }
@@ -237,7 +257,7 @@ Index: libgomp/testsuite/libgomp.c++/pr43893.C
 Index: libgomp/testsuite/libgomp.fortran/vla8.f90
 ===================================================================
 --- libgomp/testsuite/libgomp.fortran/vla8.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.fortran/vla8.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ libgomp/testsuite/libgomp.fortran/vla8.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,254 @@
 +! { dg-do run }
 +
@@ -496,7 +516,7 @@ Index: libgomp/testsuite/libgomp.fortran/vla8.f90
 Index: libgomp/testsuite/libgomp.c/pr43893.c
 ===================================================================
 --- libgomp/testsuite/libgomp.c/pr43893.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.c/pr43893.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ libgomp/testsuite/libgomp.c/pr43893.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,61 @@
 +/* PR c/43893 */
 +/* { dg-do run } */
@@ -561,8 +581,8 @@ Index: libgomp/testsuite/libgomp.c/pr43893.c
 +}
 Index: libgomp/config/linux/proc.c
 ===================================================================
---- libgomp/config/linux/proc.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgomp/config/linux/proc.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libgomp/config/linux/proc.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgomp/config/linux/proc.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,5 @@
 -/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 +/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
@@ -603,8 +623,8 @@ Index: libgomp/config/linux/proc.c
  #ifdef _SC_NPROCESSORS_ONLN
 Index: libgomp/config/linux/affinity.c
 ===================================================================
---- libgomp/config/linux/affinity.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libgomp/config/linux/affinity.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libgomp/config/linux/affinity.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libgomp/config/linux/affinity.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,4 @@
 -/* Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 +/* Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@@ -653,8 +673,8 @@ Index: libgomp/config/linux/affinity.c
    pthread_setaffinity_np (pthread_self (), sizeof (cpuset), &cpuset);
 Index: gcc/tree-vrp.c
 ===================================================================
---- gcc/tree-vrp.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-vrp.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-vrp.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-vrp.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -764,7 +764,28 @@
         && integer_zerop (vr->max);
  }
@@ -803,10 +823,58 @@ Index: gcc/tree-vrp.c
    /* Nothing changed, don't add outgoing edges.  */
    return SSA_PROP_NOT_INTERESTING;
  
+Index: gcc/doc/sourcebuild.texi
+===================================================================
+--- gcc/doc/sourcebuild.texi   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/doc/sourcebuild.texi   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1094,9 +1094,12 @@
+ /* @{ dg-skip-if "" @{ *-*-* @}  @{ "-O2 -g" "-O3 -g" @} @{ "-fpic" @} @} */
+ @end smallexample
+-@item @{ dg-require-effective-target @var{keyword} @}
++@item @{ dg-require-effective-target @var{keyword} [@{ @var{selector} @}] @}
+ Skip the test if the test target, including current multilib flags,
+ is not covered by the effective-target keyword.
++If the directive includes the optional @samp{@{ @var{selector} @}}
++then the effective-target test is only performed if the target system
++matches the @var{selector}.
+ This directive must appear after any @code{dg-do} directive in the test
+ and before any @code{dg-additional-sources} directive.
+ @xref{Effective-Target Keywords, , }.
+@@ -1595,6 +1598,9 @@
+ @item hard_float
+ Target supports FPU instructions.
++@item sse2
++Target supports compiling @code{sse2} instructions.
++
+ @item sync_char_short
+ Target supports atomic operations on @code{char} and @code{short}.
+@@ -1794,6 +1800,9 @@
+ @subsubsection Local to tests in @code{gcc.target/i386}
+ @table @code
++@item 3dnow
++Target supports compiling @code{3dnow} instructions.
++
+ @item aes
+ Target supports compiling @code{aes} instructions.
+@@ -1806,6 +1815,9 @@
+ @item pclmul
+ Target supports compiling @code{pclmul} instructions.
++@item sse3
++Target supports compiling @code{sse3} instructions.
++
+ @item sse4
+ Target supports compiling @code{sse4} instructions.
 Index: gcc/doc/standards.texi
 ===================================================================
---- gcc/doc/standards.texi     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/doc/standards.texi     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/doc/standards.texi     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/doc/standards.texi     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -183,7 +183,7 @@
  available on the ISO C++ committee's web site at
  @uref{http://www.open-std.org/jtc1/sc22/wg21/}. For information
@@ -818,8 +886,8 @@ Index: gcc/doc/standards.texi
  @option{-pedantic} (or @option{-pedantic-errors} if you want them to be
 Index: gcc/doc/install.texi
 ===================================================================
---- gcc/doc/install.texi       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/doc/install.texi       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/doc/install.texi       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/doc/install.texi       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1233,6 +1233,10 @@
  Specify that the user visible @command{cpp} program should be installed
  in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}.
@@ -833,15 +901,15 @@ Index: gcc/doc/install.texi
  (instead of @code{.init} and @code{.fini}) for constructors and
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/DATESTAMP      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/DATESTAMP      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1 +1 @@
 -20100414
-+20100515
++20100520
 Index: gcc/tree-tailcall.c
 ===================================================================
---- gcc/tree-tailcall.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-tailcall.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-tailcall.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-tailcall.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -375,6 +375,8 @@
    tree m, a;
    basic_block abb;
@@ -870,9 +938,33 @@ Index: gcc/tree-tailcall.c
       value.  The return value should also be dependent on each of them,
 Index: gcc/tree.c
 ===================================================================
---- gcc/tree.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree.c (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -7919,7 +7919,8 @@
+--- gcc/tree.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -4265,7 +4265,12 @@
+       TYPE_LANG_SLOT_1 (type) = NULL_TREE;
+     }
+-  TYPE_CONTEXT (type) = NULL_TREE;
++  if (debug_info_level < DINFO_LEVEL_TERSE
++      || (TYPE_CONTEXT (type)
++        && TREE_CODE (TYPE_CONTEXT (type)) != FUNCTION_DECL
++        && TREE_CODE (TYPE_CONTEXT (type)) != NAMESPACE_DECL))
++    TYPE_CONTEXT (type) = NULL_TREE;
++
+   if (debug_info_level < DINFO_LEVEL_TERSE)
+     TYPE_STUB_DECL (type) = NULL_TREE;
+ }
+@@ -4368,7 +4373,8 @@
+   /* Ignore any intervening types, because we are going to clear their
+      TYPE_CONTEXT fields.  */
+-  if (TREE_CODE (decl) != FIELD_DECL)
++  if (TREE_CODE (decl) != FIELD_DECL
++      && TREE_CODE (decl) != FUNCTION_DECL)
+     DECL_CONTEXT (decl) = decl_function_context (decl);
+   if (DECL_CONTEXT (decl)
+@@ -7919,7 +7925,8 @@
  auto_var_in_fn_p (const_tree var, const_tree fn)
  {
    return (DECL_P (var) && DECL_CONTEXT (var) == fn
@@ -884,8 +976,8 @@ Index: gcc/tree.c
              || TREE_CODE (var) == RESULT_DECL));
 Index: gcc/configure
 ===================================================================
---- gcc/configure      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/configure      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/configure      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/configure      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -893,6 +893,7 @@
  enable_sjlj_exceptions
  with_system_libunwind
@@ -955,7 +1047,45 @@ Index: gcc/configure
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -21195,6 +21211,27 @@
+@@ -21174,8 +21190,36 @@
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; }
+     then
+-      gcc_cv_as_hidden=yes
++
++# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
++# STV_HIDDEN, so disable .hidden support if so.
++case "${target}" in
++  i?86-*-solaris2*)
++    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
++      cat > conftest.s <<EOF
++.globl hidden
++        .hidden hidden
++hidden:
++.globl default
++        .set    default,hidden
++EOF
++      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
++        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
++        grep '\.hidden default' > /dev/null; then
++        gcc_cv_as_hidden=no
++      else
++        gcc_cv_as_hidden=yes
++      fi
+     else
++      # Assume bug is present if objdump is missing.
++      gcc_cv_as_hidden=no
++    fi
++    ;;
++  *)
++    gcc_cv_as_hidden=yes
++    ;;
++esac
++    else
+       echo "configure: failed program was" >&5
+       cat conftest.s >&5
+     fi
+@@ -21195,6 +21239,27 @@
      ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
      ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
      ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
@@ -983,7 +1113,7 @@ Index: gcc/configure
    fi
  fi
  
-@@ -21236,6 +21273,8 @@
+@@ -21236,6 +21301,8 @@
        gcc_cv_ld_hidden=yes
        ;;
        *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
@@ -992,7 +1122,7 @@ Index: gcc/configure
          gcc_cv_ld_hidden=yes
        ;;
        *)
-@@ -21791,7 +21830,7 @@
+@@ -21791,7 +21858,7 @@
       && test $in_tree_ld_is_elf = yes; then
       comdat_group=yes
    fi
@@ -1001,7 +1131,7 @@ Index: gcc/configure
    comdat_group=yes
    if test 0"$ld_date" -lt 20050308; then
      if test -n "$ld_date"; then
-@@ -21804,9 +21843,32 @@
+@@ -21804,9 +21871,32 @@
      fi
    fi
  else
@@ -1036,7 +1166,95 @@ Index: gcc/configure
  if test $comdat_group = no; then
    gcc_cv_as_comdat_group=no
    gcc_cv_as_comdat_group_percent=no
-@@ -24447,7 +24509,8 @@
+@@ -22953,6 +23043,37 @@
+ fi
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .quad directive" >&5
++$as_echo_n "checking assembler for .quad directive... " >&6; }
++if test "${gcc_cv_as_ix86_quad+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++  gcc_cv_as_ix86_quad=no
++  if test x$gcc_cv_as != x; then
++    echo '.quad 0' > conftest.s
++    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++    then
++      gcc_cv_as_ix86_quad=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_quad" >&5
++$as_echo "$gcc_cv_as_ix86_quad" >&6; }
++if test $gcc_cv_as_ix86_quad = yes; then
++
++$as_echo "#define HAVE_AS_IX86_QUAD 1" >>confdefs.h
++
++fi
++
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for sahf mnemonic" >&5
+ $as_echo_n "checking assembler for sahf mnemonic... " >&6; }
+ if test "${gcc_cv_as_ix86_sahf+set}" = set; then :
+@@ -23052,7 +23173,7 @@
+ fi
+-    # This one is used unconditionally by i386.[ch]; it is to be defined
++    # These two are used unconditionally by i386.[ch]; it is to be defined
+     # to 1 if the feature is present, 0 otherwise.
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTOFF in data" >&5
+ $as_echo_n "checking assembler for GOTOFF in data... " >&6; }
+@@ -23093,6 +23214,40 @@
+ #define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`
+ _ACEOF
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for rep and lock prefix" >&5
++$as_echo_n "checking assembler for rep and lock prefix... " >&6; }
++if test "${gcc_cv_as_ix86_rep_lock_prefix+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++  gcc_cv_as_ix86_rep_lock_prefix=no
++  if test x$gcc_cv_as != x; then
++    echo 'rep movsl
++       lock orl $0, (%esp)' > conftest.s
++    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++    then
++      gcc_cv_as_ix86_rep_lock_prefix=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_rep_lock_prefix" >&5
++$as_echo "$gcc_cv_as_ix86_rep_lock_prefix" >&6; }
++
++
++cat >>confdefs.h <<_ACEOF
++#define HAVE_AS_IX86_REP_LOCK_PREFIX `if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`
++_ACEOF
++
++
+     ;;
+   ia64*-*-*)
+@@ -24447,7 +24602,8 @@
      if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
         | grep "gc-sections option ignored" > /dev/null; then
        gcc_cv_ld_eh_gc_sections=no
@@ -1046,7 +1264,7 @@ Index: gcc/configure
        gcc_cv_ld_eh_gc_sections=yes
        # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
        if test x$gcc_cv_as_comdat_group != xyes; then
-@@ -24474,7 +24537,8 @@
+@@ -24474,7 +24630,8 @@
          if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
               | grep "gc-sections option ignored" > /dev/null; then
            gcc_cv_ld_eh_gc_sections=no
@@ -1056,7 +1274,7 @@ Index: gcc/configure
            gcc_cv_ld_eh_gc_sections=yes
          fi
        fi
-@@ -25171,10 +25235,14 @@
+@@ -25171,10 +25328,14 @@
  $as_echo_n "checking for -rdynamic... " >&6; }
      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
      if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
@@ -1073,8 +1291,8 @@ Index: gcc/configure
    # Check -ldl
 Index: gcc/gcc.c
 ===================================================================
---- gcc/gcc.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/gcc.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/gcc.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/gcc.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7575,7 +7575,7 @@
                          fuse_linker_plugin + strlen (fuse_linker_plugin), 0))
        {
@@ -1086,8 +1304,8 @@ Index: gcc/gcc.c
            fatal ("-fuse-linker-plugin, but liblto_plugin.so not found");
 Index: gcc/omp-low.c
 ===================================================================
---- gcc/omp-low.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/omp-low.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/omp-low.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/omp-low.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1433,10 +1433,6 @@
          break;
  
@@ -1145,14 +1363,14 @@ Index: gcc/omp-low.c
  }
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/tree-ssa-sccvn.c
 ===================================================================
---- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3332,7 +3332,7 @@
  vn_nary_may_trap (vn_nary_op_t nary)
  {
@@ -1174,8 +1392,8 @@ Index: gcc/tree-ssa-sccvn.c
                                       honor_nans, honor_snans, rhs2,
 Index: gcc/cgraphunit.c
 ===================================================================
---- gcc/cgraphunit.c   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cgraphunit.c   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cgraphunit.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cgraphunit.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -714,7 +714,33 @@
        error ("double linked list of clones corrupted");
        error_found = true;
@@ -1212,9 +1430,158 @@ Index: gcc/cgraphunit.c
        && (!DECL_EXTERNAL (node->decl) || node->global.inlined_to)
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/ChangeLog      (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,440 @@
+--- gcc/ChangeLog      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/ChangeLog      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,589 @@
++2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
++
++      PR target/44202
++      * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
++      settings for 16-bit-constant "addo" alternative.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      Backport from mainline:
++      2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      PR target/44074
++      * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
++      * configure: Regenerate.
++      * config.in: Regenerate.
++      * config/i386/i386.c (print_operand) <case ;>: Also print ; if
++      !HAVE_AS_IX86_REP_LOCK_PREFIX.
++      Don't emit whitespace.
++      * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
++      (*rep_movsi): Likewise.
++      (*rep_movsi_rex64): Likewise.
++      (*rep_movqi): Likewise.
++      (*rep_movqi_rex64): Likewise.
++      (*rep_stosdi_rex64): Likewise.
++      (*rep_stossi): Likewise.
++      (*rep_stossi_rex64): Likewise.
++      (*rep_stosqi): Likewise.
++      (*rep_stosqi_rex64): Likewise.
++      (*cmpstrnqi_nz_1): Use {%;} after repz.
++      (*cmpstrnqi_nz_rex_1): Likewise.
++      (*cmpstrnqi_1): Likewise.
++      (*cmpstrnqi_rex_1): Likewise.
++      (*strlenqi_1): Use {%;} after repnz.
++      (*strlenqi_rex_1): Likewise.
++      * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
++      (*sync_compare_and_swap<mode>): Likewise.
++      (sync_double_compare_and_swap<mode>): Likewise.
++      (*sync_double_compare_and_swapdi_pic): Likewise.
++      (sync_old_add<mode>): Likewise.
++      (sync_add<mode>): Likewise.
++      (sync_sub<mode>): Likewise.
++      (sync_<code><mode>): Likewise.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * doc/sourcebuild.texi (Effective-Target Keywords): Document
++      3dnow, sse3, sse2.
++      (Directives): Document optional dg-require-effective-target
++      selector.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
++      pentiumpro on Solaris 8/x86 with Sun as.
++      * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
++      hidden alias bug.
++      (gcc_cv_as_ix86_quad): Check for .quad directive.
++      * configure: Regenerate.
++      * config.in: Regenerate.
++      * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
++
++2010-05-19  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/43987
++      * tree-ssa-structalias.c (could_have_pointers): For possibly
++      address-taken variables force pointers to be recorded.
++      (create_variable_info_for_1): Likewise.
++      (push_fields_onto_fieldstack): Pass in wheter all fields
++      must have pointers.
++      (find_func_aliases): Query types instead of vars whether
++      they contain pointers where appropriate.
++
++2010-05-19  Richard Guenther  <rguenther@suse.de>
++
++      Backport from mainline:
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43455
++      * tree-inline.c (tree_can_inline_p): Also check compatibility
++      of return types.
++
++      2010-04-23  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/42653
++      * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
++      of FUNCTION_DECLs.
++
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/42425
++      * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
++      if emitting debug information and it is either a function
++      or a namespace decl.
++
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43080
++      * gimple.c (gimple_decl_printable_name): Deal gracefully
++      with a NULL DECL_NAME.
++
++      2010-04-30  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43946
++      * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
++      first after all lowering passes.
++
++2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
++
++      PR lto/44184
++      * lto-streamer-out.c (output_gimple_stmt): Output number of labels
++      in a GIMPLE_ASM.
++      * lto-streamer-in.c (input_gimple_stmt): Read number of labels
++      in a GIMPLE_ASM.
++
++2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
++
++2010-05-17  Jakub Jelinek  <jakub@redhat.com>
++
++      PR bootstrap/42347
++      * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
++      to have no fallthru edge.
++
++      PR middle-end/44102
++      * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
++      bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
++      mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
++      add BARRIER after previous bb if needed.
++
++2010-05-17  Alan Modra  <amodra@gmail.com>
++
++      * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
++      unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
++      with copy_reg rtx param.
++      (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
++      Correct cases where code for ABI_V4 did not initialise the reg
++      used to access frame.  Also leave frame_reg_rtx as sp for large
++      frames that save no regs.
++
++2010-05-17  Eric Botcazou  <ebotcazou@adacore.com>
++
++      Backport from mainline
++      2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
++
++      * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
++      (decode_options): Likewise.
++      * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
++
 +2010-05-14  Jason Merrill  <jason@redhat.com>
 +
 +      PR c++/44127
@@ -1655,7 +2022,7 @@ Index: gcc/ChangeLog
  2010-04-14  Release Manager
  
        * GCC 4.5.0 released.
-@@ -100,7 +537,7 @@
+@@ -100,7 +686,7 @@
  
  2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
  
@@ -1664,7 +2031,7 @@ Index: gcc/ChangeLog
        basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
        collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
        config/alpha/predicates.md, config/arm/arm.md,
-@@ -171,7 +608,7 @@
+@@ -171,7 +757,7 @@
  2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
  
        PR target/43469
@@ -1673,7 +2040,7 @@ Index: gcc/ChangeLog
        gen_tls_load_dot_plus_four.
        (arm_note_pic_base): New function.
        (arm_cannot_copy_insn_p): Use it.
-@@ -190,12 +627,12 @@
+@@ -190,12 +776,12 @@
  
  2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
  
@@ -1692,7 +2059,7 @@ Index: gcc/ChangeLog
 Index: gcc/testsuite/gcc.c-torture/execute/pr43783.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr43783.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr43783.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.c-torture/execute/pr43783.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,21 @@
 +typedef __attribute__((aligned(16)))
 +struct {
@@ -1718,7 +2085,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr43783.c
 Index: gcc/testsuite/gcc.c-torture/execute/20100430-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/20100430-1.c   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20100430-1.c   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.c-torture/execute/20100430-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,51 @@
 +/* This used to generate unaligned accesses at -O2 because of IVOPTS.  */
 +
@@ -1771,10 +2138,35 @@ Index: gcc/testsuite/gcc.c-torture/execute/20100430-1.c
 +  info.buf.pst2[0].cc22 = info.buf.pst2[1].cc22 = 8;
 +  return foo (&info);
 +}
+Index: gcc/testsuite/gcc.c-torture/execute/pr43987.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43987.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43987.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,20 @@
++char B[256 * sizeof(void *)];
++typedef void *FILE;
++typedef struct globals {
++    int c;
++    FILE *l;
++} __attribute__((may_alias)) T;
++void add_input_file(FILE *file)
++{
++  (*(T*)&B).l[0] = file;
++}
++extern void abort (void);
++int main()
++{
++  FILE x;
++  (*(T*)&B).l = &x;
++  add_input_file ((void *)-1);
++  if ((*(T*)&B).l[0] != (void *)-1)
++    abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.c-torture/execute/pr43835.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr43835.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr43835.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.c-torture/execute/pr43835.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,51 @@
 +struct PMC {
 +    unsigned flags;
@@ -1827,10 +2219,66 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr43835.c
 +  foo (&i, &c);
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.c-torture/execute/pr44202-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr44202-1.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr44202-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,30 @@
++extern __attribute__ ((__noreturn__)) void exit(int);
++extern __attribute__ ((__noreturn__)) void abort(void);
++__attribute__ ((__noinline__))
++int
++add512(int a, int *b)
++{
++  int c = a + 512;
++  if (c != 0)
++    *b = a;
++  return c;
++}
++
++__attribute__ ((__noinline__))
++int
++add513(int a, int *b)
++{
++  int c = a + 513;
++  if (c == 0)
++    *b = a;
++  return c;
++}
++
++int main(void)
++{
++  int b0 = -1;
++  int b1 = -1;
++  if (add512(-512, &b0) != 0 || b0 != -1 || add513(-513, &b1) != 0 || b1 != -513)
++    abort ();
++  exit (0);
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42347.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42347.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42347.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,16 @@
++/* PR bootstrap/42347 */
++
++long
++foo (long x, long y)
++{
++  x = x & y;
++  switch (y)
++    {
++    case 63L: x >>= 0; break;
++    case 4032L: x >>= 6; break;
++    case 258048L: x >>= 12; break;
++    case 16515072L: x >>= 18; break;
++    default: __builtin_unreachable ();
++    }
++  return x;
++}
 Index: gcc/testsuite/gcc.c-torture/compile/limits-declparen.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/limits-declparen.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.c-torture/compile/limits-declparen.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.c-torture/compile/limits-declparen.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.c-torture/compile/limits-declparen.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,4 @@
 +/* { dg-xfail-if "" { alpha*-dec-osf5* } { "-g" } { "" } } */
  #define PTR1 (* (* (* (* (* (* (* (* (* (*
@@ -1839,7 +2287,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/limits-declparen.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr43845.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr43845.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr43845.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.c-torture/compile/pr43845.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,12 @@
 +typedef int __attribute__ ((const)) (*x264_pixel_cmp_t)(void);
 +
@@ -1855,8 +2303,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr43845.c
 +}
 Index: gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/limits-pointer.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.c-torture/compile/limits-pointer.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.c-torture/compile/limits-pointer.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.c-torture/compile/limits-pointer.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,4 @@
 +/* { dg-xfail-if "" { alpha*-dec-osf5* } { "-g" } { "" } } */
  #define PTR1 * * * * * * * * * *
@@ -1865,7 +2313,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr43635.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr43635.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr43635.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.c-torture/compile/pr43635.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,7 @@
 +extern void d (void);
 +
@@ -1874,23 +2322,45 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr43635.c
 +  void (*(*x) (void)) (float) = d;
 +  return (*x) ();
 +}
+Index: gcc/testsuite/gcc.target/i386/20060512-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/20060512-3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/20060512-3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-std=gnu99 -msse2 -mstackrealign -mpreferred-stack-boundary=4" } */
+ #include "sse2-check.h"
 Index: gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,8 @@
 +/* { dg-do run } */
 +/* { dg-require-effective-target avx } */
-+/* { dg-options "-O2 -mavx" } */
++/* { dg-options "-O2 -mavx -std=c99" } */
 +
 +#define CHECK_H "avx-check.h"
 +#define TEST avx_test
 +
 +#include "sse2-cmpsd-1.c"
+Index: gcc/testsuite/gcc.target/i386/all_one_m128i.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/all_one_m128i.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/all_one_m128i.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
 Index: gcc/testsuite/gcc.target/i386/pr43668.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr43668.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr43668.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/pr43668.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,10 @@
 +/* PR target/43668 */
 +/* { dg-do run } */
@@ -1902,13 +2372,1303 @@ Index: gcc/testsuite/gcc.target/i386/pr43668.c
 +int main() {
 +  return foo(0, 0.0);
 +}
+Index: gcc/testsuite/gcc.target/i386/sse2-pminub-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pminub-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pminub-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/i386.exp
+===================================================================
+--- gcc/testsuite/gcc.target/i386/i386.exp     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/i386.exp     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -37,6 +37,29 @@
+     }
+ }
++# Return 1 if 3dnow instructions can be compiled.
++proc check_effective_target_3dnow { } {
++    return [check_no_compiler_messages 3dnow object {
++      void _m_pfadd (void)
++      {
++          __builtin_ia32_pfadd();
++      }
++    } "-O2 -m3dnow" ]
++}
++
++# Return 1 if sse3 instructions can be compiled.
++proc check_effective_target_sse3 { } {
++    return [check_no_compiler_messages sse3 object {
++      typedef double __m128d __attribute__ ((__vector_size__ (16)));
++      typedef double __v2df __attribute__ ((__vector_size__ (16)));
++
++      __m128d _mm_addsub_pd (__m128d __X, __m128d __Y)
++      {
++          return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y);
++      }
++    } "-O2 -msse3" ]
++}
++
+ # Return 1 if ssse3 instructions can be compiled.
+ proc check_effective_target_ssse3 { } {
+     return [check_no_compiler_messages ssse3 object {
+Index: gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-minsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-minsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-minsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr40906-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40906-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr40906-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target *-*-linux* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -fomit-frame-pointer -msse2 -mpush-args -mno-accumulate-outgoing-args" } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-15.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-15.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-15.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* Test that the intrinsics compile with optimization.  These were not
+    tested in i386-sse-[12].c because these builtins require immediate
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-shufps-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-shufps-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr23570.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr23570.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr23570.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef float __m128 __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/fpcvt-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpcvt-3.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/fpcvt-3.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ extern double fabs (double);
+ float a,b;
+Index: gcc/testsuite/gcc.target/i386/pr42542-3a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #include "pr42542-3.c"
+Index: gcc/testsuite/gcc.target/i386/pr39445.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39445.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39445.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/opt-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/opt-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/opt-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+    whether we vectorize a simple loop.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "prefetcht0" } } */
+ /* { dg-final { scan-assembler "addps" } } */
+ /* { dg-final { scan-assembler "subss" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse-17.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-17.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-17.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <xmmintrin.h>
+ extern void abort();
+Index: gcc/testsuite/gcc.target/i386/vararg-7.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-7.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-7.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psllq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllq-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psllq-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefp-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssefp-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+Index: gcc/testsuite/gcc.target/i386/sse3-addsubps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-addsubps.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-addsubps.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse3-lddqu.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-lddqu.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-lddqu.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/float128-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/float128-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/float128-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target *-*-linux* } } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ int a;
+Index: gcc/testsuite/gcc.target/i386/pr35767-2d.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2d.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-2d.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubq-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubq-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpprec-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpprec-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/fpprec-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-math-errno -fno-trapping-math -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr40809.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40809.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr40809.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-addsubpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-addsubpd.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-addsubpd.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse-19.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-19.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-19.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "punpcklbw" } } */
+ extern void abort();
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psraw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psraw-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psraw-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movupd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movupd-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movupd-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubb-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubb-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-4.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-4.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ short a;
+Index: gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-paddq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddq-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddq-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37843-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37843-4.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37843-4.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test for stack alignment with sibcall optimization.  */
+ /* { dg-do compile { target { ilp32 && nonpic } } } */
+ /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
+ /* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
+ /* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
+Index: gcc/testsuite/gcc.target/i386/pr35767-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
+ double a[256];
+Index: gcc/testsuite/gcc.target/i386/pr28839.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr28839.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr28839.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize -funswitch-loops" } */
++/* { dg-require-effective-target sse2 } */
+ static int ready[10];
+ void abort (void);
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr36222-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36222-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr36222-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr37434-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37434-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37434-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnowA-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnowA-2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/3dnowA-2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
+ /* Test that the intrinsics compile without optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssetype-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "andpd" } } */
+ /* { dg-final { scan-assembler "andnpd" } } */
+ /* { dg-final { scan-assembler "xorpd" } } */
+Index: gcc/testsuite/gcc.target/i386/pr35767-1i.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1i.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-1i.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-6.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-6.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ int a, b;
+Index: gcc/testsuite/gcc.target/i386/pr41019.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr41019.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr41019.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddb-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddb-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
+===================================================================
+--- gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+ #
+ # This file is part of GCC.
+ #
+@@ -18,6 +18,8 @@
+ # This harness is for tests that should be run at all optimisation levels.
++load_lib target-supports.exp
++
+ # Exit immediately if this isn't a x86 target.
+ if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
+   return
+@@ -27,27 +29,31 @@
+         { -O0 } \
+         { -O0 -mfpmath=387 } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse } \
+-        { -O0 -msse -msse2 -mfpmath=sse } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse,387 } \
+-        { -O0 -msse -msse2 -mfpmath=sse,387 } \
+         { -O0 -mfpmath=387 -ffast-math } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
+-        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
+-        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+         { -O2 } \
+         { -O2 -mfpmath=387 } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse } \
+-        { -O2 -msse -msse2 -mfpmath=sse } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse,387 } \
+-        { -O2 -msse -msse2 -mfpmath=sse,387 } \
+         { -O2 -mfpmath=387 -ffast-math } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
+-        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
+-        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+ ]
++if { [check_effective_target_sse2] } {
++    lappend MATH_TORTURE_OPTIONS \
++        { -O0 -msse -msse2 -mfpmath=sse } \
++        { -O0 -msse -msse2 -mfpmath=sse,387 } \
++        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
++        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
++        { -O2 -msse -msse2 -mfpmath=sse } \
++        { -O2 -msse -msse2 -mfpmath=sse,387 } \
++        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
++        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
++}
++
+ load_lib gcc-dg.exp
+ load_lib torture-options.exp
+Index: gcc/testsuite/gcc.target/i386/sse2-addpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-addpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-addpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pslld-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslld-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pslld-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target dfp } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O -msse2 -std=gnu99" } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize4.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize4.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+ /* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue.  */
+Index: gcc/testsuite/gcc.target/i386/sseregparm-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-3.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sseregparm-3.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr39315-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39315-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39315-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/39315  */
+ /* { dg-do run } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-additional-sources pr39315-check.c } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr42549.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42549.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42549.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -m3dnow" } */
+ #include "mmx-3dnow-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-4.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssetype-4.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "andps" } } */
+ /* { dg-final { scan-assembler "andnps" } } */
+ /* { dg-final { scan-assembler "xorps" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movapd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movapd-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movapd-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrld-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrld-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrld-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr36578-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36578-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr36578-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test for unsafe floating-point conversions.  */
+ /* { dg-do run } */
+ /* { dg-options "-msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32000-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32000-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32000-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target dfp } */
+ /* { dg-options "-O -msse2 -std=gnu99" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pand-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pand-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pand-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-3.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-3.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/pr39496.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39496.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39496.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR target/39496 */
+ /* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
+ /* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* Verify that {foo,bar}{,2}param are all passed on the stack, using
+    normal calling conventions, when not optimizing.  */
+ /* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */
+Index: gcc/testsuite/gcc.target/i386/pr35767-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-5.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-5.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test that we generate aligned load when memory is aligned.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "movups" } } */
+ /* { dg-final { scan-assembler "movaps" } } */
+Index: gcc/testsuite/gcc.target/i386/vectorize6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize6.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize6.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize -mveclibabi=svml -ffast-math" } */
++/* { dg-require-effective-target sse2 } */
+ double x[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-5.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sseregparm-5.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr39315-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39315-4.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39315-4.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/39315  */
+ /* { dg-do run } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-additional-sources pr39315-check.c } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse-10.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-10.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-10.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr39162.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39162.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39162.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -mno-avx" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));
+Index: gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-andpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-andpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
 Index: gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -0,0 +1,57 @@
++++ gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,58 @@
 +/* { dg-do run } */
 +/* { dg-options "-O2 -msse2 -std=c99" } */
++/* { dg-require-effective-target sse2 } */
 +
 +#ifndef CHECK_H
 +#define CHECK_H "sse2-check.h"
@@ -1964,10 +3724,343 @@ Index: gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
 +    CMP(nge, !isunordered(s1[0], s2[0]) && s1[0] < s2[0]);
 +    CMP(ngt, !isunordered(s1[0], s2[0]) && s1[0] <= s2[0]);
 +}
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr42542-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-7.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-7.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-7.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR target/40838 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int v4si __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37101.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37101.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37101.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */
++/* { dg-require-effective-target sse2 } */
+ typedef __SIZE_TYPE__ size_t;
+ extern void *malloc (size_t);
+Index: gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-divpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-divpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize8.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize8.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize8.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ unsigned int a[256];
+ double b[256];
+Index: gcc/testsuite/gcc.target/i386/sseregparm-7.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-7.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sseregparm-7.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse3-movshdup.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-movshdup.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-movshdup.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/quad-sse.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/quad-sse.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/quad-sse.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ __float128 x, y;
+Index: gcc/testsuite/gcc.target/i386/pr42881.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42881.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42881.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,8 @@
+ /* PR target/42881 */
+ /* { dg-do run } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
++
+ #include "sse2-check.h"
+ static void
+ sse2_test (void)
+Index: gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-w" { target { lp64 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <stdarg.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnow-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnow-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/3dnow-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow" } */
+ /* Test that the intrinsics compile with optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/vperm-v2di.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vperm-v2di.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vperm-v2di.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "isa-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/xorps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/xorps.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/xorps.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-movd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movd-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movd-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrad-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrad-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrad-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-4.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-4.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
 Index: gcc/testsuite/gcc.target/i386/avx-cmpss-2.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/avx-cmpss-2.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/avx-cmpss-2.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/avx-cmpss-2.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -mavx" } */
@@ -1982,10 +4075,195 @@ Index: gcc/testsuite/gcc.target/i386/avx-cmpss-2.c
 +
 +
 +/* { dg-final { scan-assembler "vcmpeqss" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psllw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllw-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psllw-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-hsubps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-hsubps.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-hsubps.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-4.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-4.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-hsubpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-hsubpd.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-hsubpd.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-psubw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr26600.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr26600.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr26600.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ void foo(int *p, int N)
+ {
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpcvt-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpcvt-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/fpcvt-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+Index: gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-addsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-addsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-6.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-6.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
 Index: gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -mavx" } */
@@ -2000,10 +4278,22 @@ Index: gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
 +
 +
 +/* { dg-final { scan-assembler "vcmpeqsd" } } */
+Index: gcc/testsuite/gcc.target/i386/ssefn-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefn-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssefn-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -3,6 +3,7 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "movss" } } */
+ /* { dg-final { scan-assembler "mulss" } } */
+ /* { dg-final { scan-assembler "movsd" } } */
 Index: gcc/testsuite/gcc.target/i386/pr44071.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr44071.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr44071.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/pr44071.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,103 @@
 +/* PR middle-end/44071 */
 +/* { dg-do run } */
@@ -2108,10 +4398,365 @@ Index: gcc/testsuite/gcc.target/i386/pr44071.c
 +    abort ();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/i386/xorps-sse2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/xorps-sse2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/xorps-sse2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test that we generate xorps when the result is used in FP math.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mno-sse3" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "xorps\[ \t\]" { xfail *-*-* } } } */
+ /* { dg-final { scan-assembler-not "pxor" { xfail *-*-* } } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-unpack-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpack-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-unpack-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/opt-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/opt-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/opt-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+    whether we vectorize a simple loop.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "prefetcht0" } } */
+ /* { dg-final { scan-assembler "addps" } } */
+ /* { dg-final { scan-assembler "subss" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr33329.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr33329.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr33329.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ extern void g (int *);
+Index: gcc/testsuite/gcc.target/i386/sse2-psllq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllq-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psllq-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-haddps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-haddps.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-haddps.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/incoming-12.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-12.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-12.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR target/40838 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int v4si __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr27790.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr27790.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr27790.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ void binarize (int npixels, unsigned char *b)
+ {
+Index: gcc/testsuite/gcc.target/i386/pr35767-1d.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1d.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-1d.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefn-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefn-4.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssefn-4.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -3,6 +3,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-vect-types.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-vect-types.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-vect-types.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/vecinit-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ float a;
+Index: gcc/testsuite/gcc.target/i386/sse3-haddpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-haddpd.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-haddpd.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32661.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32661.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32661.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse2-mmx.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mmx.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-mmx.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-18.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-18.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-18.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O3 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr18614-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr18614-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr18614-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/18614 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef double v2df __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/vararg-8.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-8.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-8.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-divsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-divsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psraw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psraw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psraw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefp-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefp-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssefp-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+Index: gcc/testsuite/gcc.target/i386/sse2-movupd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movupd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movupd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr30970.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr30970.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr30970.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile }
+ /* { dg-options "-msse2 -O2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #define N 256
+ int b[N];
 Index: gcc/testsuite/gcc.target/i386/pr43508.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr43508.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr43508.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/pr43508.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +/* { dg-do compile } */
 +/* { dg-options "-g -O -msse3" } */
@@ -2126,10 +4771,579 @@ Index: gcc/testsuite/gcc.target/i386/pr43508.c
 +  int x = __builtin_ia32_vec_ext_v4si (vi, 0);
 +  return bar(x);
 +}
+Index: gcc/testsuite/gcc.target/i386/float128-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/float128-2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/float128-2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+ /* { dg-do run { target *-*-linux* *-*-darwin* } } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ char a;
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37216.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37216.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37216.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O3 -msse2" } */
+ /* { dg-options "-O3 -msse2 -mpe-aligned-commons" { target pe_aligned_commons } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr22152.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr22152.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr22152.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <mmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37843-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37843-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37843-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test for stack alignment with sibcall optimization.  */
+ /* { dg-do compile { target { ilp32 && nonpic } } } */
+ /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
+ /* { dg-final { scan-assembler-not "call\[\\t \]*_?foo" } } */
+ /* { dg-final { scan-assembler "jmp\[\\t \]*_?foo" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr23575.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr23575.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr23575.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
++/* { dg-require-effective-target sse2 } */
+ /* We used to ICE because of a bogous pattern.  */
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnowA-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnowA-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/3dnowA-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
+ /* Test that the intrinsics compile with optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/ssetype-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssetype-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-subpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-subpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-5.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vecinit-5.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ float a, b;
+Index: gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-movsldup.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-movsldup.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-movsldup.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-por-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-por-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-por-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pslld-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslld-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pslld-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
+ float a[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr39315-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39315-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39315-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/39315  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "movups" } } */
+ /* { dg-final { scan-assembler-not "movlps" } } */
+ /* { dg-final { scan-assembler-not "movhps" } } */
+Index: gcc/testsuite/gcc.target/i386/pr37434-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37434-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr37434-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr35714.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35714.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35714.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssetype-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movapd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movapd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-minpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-minpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-minpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/unordcmp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/unordcmp-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/unordcmp-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "cmpunordss" } } */
+ /* { dg-final { scan-assembler "cmpunordps" } } */
+ /* { dg-final { scan-assembler "cmpunordsd" } } */
+Index: gcc/testsuite/gcc.target/i386/pr36578-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36578-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr36578-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test for unsafe floating-point conversions.  PR 36578.  */
+ /* { dg-do run } */
+ /* { dg-options "-msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-2i.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2i.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr35767-2i.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32961.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32961.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32961.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-4.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-4.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* This testcase caused a buffer overflow in simplify_immed_subreg.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-2.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-2.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/incoming-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-4.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-4.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
 Index: gcc/testsuite/gcc.target/i386/pr43662.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr43662.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr43662.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/pr43662.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,24 @@
 +/* { dg-do compile } */
 +/* { dg-require-effective-target lp64 } */
@@ -2155,10 +5369,54 @@ Index: gcc/testsuite/gcc.target/i386/pr43662.c
 +  sre (&This->sInfo);
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/i386/sse3-movddup.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-movddup.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse3-movddup.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-4.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sseregparm-4.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
 Index: gcc/testsuite/gcc.target/i386/sse-cmpss-1.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/sse-cmpss-1.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/sse-cmpss-1.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/sse-cmpss-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,59 @@
 +/* { dg-do run } */
 +/* { dg-options "-O2 -msse -std=c99" } */
@@ -2222,7 +5480,7 @@ Index: gcc/testsuite/gcc.target/i386/sse-cmpss-1.c
 Index: gcc/testsuite/gcc.target/i386/pr43671.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr43671.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr43671.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/pr43671.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,27 @@
 +/* { dg-do run } */
 +/* { dg-require-effective-target ilp32 } */
@@ -2251,23 +5509,648 @@ Index: gcc/testsuite/gcc.target/i386/pr43671.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/i386/pr39315-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39315-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr39315-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/39315  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "movups" } } */
+ /* { dg-final { scan-assembler-not "movlps" } } */
+ /* { dg-final { scan-assembler-not "movhps" } } */
+Index: gcc/testsuite/gcc.target/i386/ssetype-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-5.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ssetype-5.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vperm-v2df.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vperm-v2df.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vperm-v2df.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "isa-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrld-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrld-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrld-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32000-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32000-2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32000-2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-skip-if "" { ! { ilp32 && dfp } } { "*" } { "" } } */
+ /* { dg-options "-O -msse2 -std=gnu99 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr42542-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-6.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-6.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-6.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-6.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR target/40838 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int v4si __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/vperm-v4si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vperm-v4si-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vperm-v4si-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "isa-check.h"
+Index: gcc/testsuite/gcc.target/i386/ordcmp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ordcmp-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/ordcmp-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "cmpordss" } } */
+ /* { dg-final { scan-assembler "cmpordps" } } */
+ /* { dg-final { scan-assembler "cmpordsd" } } */
+Index: gcc/testsuite/gcc.target/i386/vectorize7.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize7.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vectorize7.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ unsigned int a[256];
+ float b[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-6.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sseregparm-6.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/push-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/push-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/push-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -Os" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.target/i386/pr26449-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr26449-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr26449-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -mtune=k8" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-11.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-11.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse-11.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/21239 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-w" { target { lp64 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <stdarg.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32280.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32280.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32280.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr42542-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-3.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-3.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/20060512-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/20060512-1.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/20060512-1.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-std=gnu99 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-8.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-8.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/incoming-8.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR target/40838 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -mstackrealign -O3 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ float
+ foo (float f)
 Index: gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/avx-cmpss-1.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/avx-cmpss-1.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.target/i386/avx-cmpss-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,8 @@
 +/* { dg-do run } */
 +/* { dg-require-effective-target avx } */
-+/* { dg-options "-O2 -mavx" } */
++/* { dg-options "-O2 -mavx -std=c99" } */
 +
 +#define CHECK_H "avx-check.h"
 +#define TEST avx_test
 +
 +#include "sse-cmpss-1.c"
+Index: gcc/testsuite/gcc.target/i386/pr36992-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36992-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr36992-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile }
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-psllw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllw-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psllw-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/funcspec-9.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/funcspec-9.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/funcspec-9.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* Test whether using target specific options, we can generate FMA4 code.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=k8 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ extern void exit (int);
+Index: gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-subsd-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-subsd-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pxor-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pxor-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pxor-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movsd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movsd-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movsd-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pandn-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pandn-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-pandn-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-3.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/vararg-3.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/3dnow-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnow-2.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/3dnow-2.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow" } */
+ /* Test that the intrinsics compile without optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/reload-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/reload-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/reload-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O3 -msse2 -fdump-rtl-csa" } */
+ /* { dg-skip-if "no stdint" { vxworks_kernel } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-orpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-orpd-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-orpd-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movd-2.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-movd-2.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpcvt-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpcvt-1.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/fpcvt-1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+Index: gcc/testsuite/gcc.target/i386/sse2-psrad-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrad-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-psrad-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32708-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32708-1.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr32708-1.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr17692.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr17692.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/pr17692.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* The fact that t1 and t2 are uninitialized is critical.  With them
+    uninitialized, the register allocator is free to put them in the same
+    hard register, which results in
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-5.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-5.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
 Index: gcc/testsuite/gnat.dg/pack15.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/pack15.adb   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/pack15.adb   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gnat.dg/pack15.adb   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,10 @@
 +-- { dg-do compile }
 +
@@ -2282,7 +6165,7 @@ Index: gcc/testsuite/gnat.dg/pack15.adb
 Index: gcc/testsuite/gnat.dg/pack15.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/pack15.ads   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/pack15.ads   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gnat.dg/pack15.ads   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,22 @@
 +package Pack15 is
 +
@@ -2309,7 +6192,7 @@ Index: gcc/testsuite/gnat.dg/pack15.ads
 Index: gcc/testsuite/gnat.dg/rep_clause5_pkg.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/rep_clause5_pkg.ads  (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/rep_clause5_pkg.ads  (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gnat.dg/rep_clause5_pkg.ads  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,383 @@
 +package Rep_Clause5_Pkg is
 +
@@ -2697,7 +6580,7 @@ Index: gcc/testsuite/gnat.dg/rep_clause5_pkg.ads
 Index: gcc/testsuite/gnat.dg/rep_clause5.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/rep_clause5.adb      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/rep_clause5.adb      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gnat.dg/rep_clause5.adb      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,39 @@
 +-- { dg-do compile }
 +-- { dg-options "-O" }
@@ -2741,7 +6624,7 @@ Index: gcc/testsuite/gnat.dg/rep_clause5.adb
 Index: gcc/testsuite/gnat.dg/rep_clause5.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/rep_clause5.ads      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/rep_clause5.ads      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gnat.dg/rep_clause5.ads      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,12 @@
 +with Rep_Clause5_Pkg; use Rep_Clause5_Pkg;
 +
@@ -2755,10 +6638,22 @@ Index: gcc/testsuite/gnat.dg/rep_clause5.ads
 +    procedure Merge_Numbered(LNodes : in out LNodes_Ptr);
 +
 +end Rep_Clause5;
+Index: gcc/testsuite/gcc.dg/pr34856.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr34856.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/pr34856.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O2 -maltivec" { target { powerpc*-*-linux* && powerpc_altivec_ok } } } */
+ typedef unsigned __attribute__ ((__mode__ (__pointer__))) uintptr_t;
 Index: gcc/testsuite/gcc.dg/Warray-bounds-8.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/Warray-bounds-8.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/Warray-bounds-8.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/Warray-bounds-8.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,20 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O3 -Wall" } */
@@ -2783,7 +6678,7 @@ Index: gcc/testsuite/gcc.dg/Warray-bounds-8.c
 Index: gcc/testsuite/gcc.dg/gomp/pr44085.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/gomp/pr44085.c        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/gomp/pr44085.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/gomp/pr44085.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,27 @@
 +/* PR middle-end/44085 */
 +/* { dg-do compile } */
@@ -2814,8 +6709,8 @@ Index: gcc/testsuite/gcc.dg/gomp/pr44085.c
 +}
 Index: gcc/testsuite/gcc.dg/c99-tgmath-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/c99-tgmath-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.dg/c99-tgmath-1.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.dg/c99-tgmath-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/c99-tgmath-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3,6 +3,7 @@
  /* { dg-do preprocess { target c99_runtime } } */
  /* { dg-options "-std=iso9899:1999" } */
@@ -2824,10 +6719,55 @@ Index: gcc/testsuite/gcc.dg/c99-tgmath-1.c
  
  /* Test that tgmath defines the macros it's supposed to. */
  #include <tgmath.h>
+Index: gcc/testsuite/gcc.dg/pr36584.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr36584.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/pr36584.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,8 +1,8 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -lm" } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
++/* { dg-require-effective-target sse2 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+-
+ #ifdef __i386__
+ #include "cpuid.h"
+ #endif
+Index: gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/union-m128-1_main.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/compat/union-m128-1_main.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O" } */
++/* { dg-require-effective-target sse2 } */
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/compat/vector-1a_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/vector-1a_main.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/compat/vector-1a_main.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-skip-if "test SSE2 vector" { ! { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 } */
+ /* Test compatibility of vector types: layout between separately-compiled
+    modules, parameter passing, and function return.  This test uses
+Index: gcc/testsuite/gcc.dg/compat/vector-2a_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/vector-2a_main.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/compat/vector-2a_main.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,5 @@
+ /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 } */
+ /* Test compatibility of vector types: layout between separately-compiled
+    modules, parameter passing, and function return.  This test uses
 Index: gcc/testsuite/gcc.dg/debug/pr43972.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/debug/pr43972.c       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/debug/pr43972.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/debug/pr43972.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,29 @@
 +/* PR debug/43972 */
 +/* { dg-do compile } */
@@ -2861,7 +6801,7 @@ Index: gcc/testsuite/gcc.dg/debug/pr43972.c
 Index: gcc/testsuite/gcc.dg/pr44012.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr44012.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr44012.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/pr44012.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,58 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O -fgcse" } */
@@ -2923,8 +6863,8 @@ Index: gcc/testsuite/gcc.dg/pr44012.c
 +}
 Index: gcc/testsuite/gcc.dg/c99-tgmath-2.c
 ===================================================================
---- gcc/testsuite/gcc.dg/c99-tgmath-2.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.dg/c99-tgmath-2.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.dg/c99-tgmath-2.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/c99-tgmath-2.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3,6 +3,7 @@
  /* { dg-do compile { target c99_runtime } } */
  /* { dg-options "-std=iso9899:1999" } */
@@ -2936,7 +6876,7 @@ Index: gcc/testsuite/gcc.dg/c99-tgmath-2.c
 Index: gcc/testsuite/gcc.dg/pr44136.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr44136.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr44136.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/pr44136.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,27 @@
 +/* PR debug/44136 */
 +/* { dg-do compile } */
@@ -2965,10 +6905,87 @@ Index: gcc/testsuite/gcc.dg/pr44136.c
 +  float f = ((float *)&c)[0];
 +  return d * f;
 +}
+Index: gcc/testsuite/gcc.dg/lto/20090206-1_0.c
+===================================================================
+--- gcc/testsuite/gcc.dg/lto/20090206-1_0.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/lto/20090206-1_0.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-lto-do link } */
+ /* { dg-skip-if "" { ! { i?86-*-linux* x86_64-*-linux* } } { "*" } { "" } } */
+ /* { dg-lto-options {{-fPIC -r -nostdlib -fwhopr -msse2}} } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-suppress-ld-options {-fPIC -msse2} } */
+ typedef short v8hi __attribute__((__vector_size__(16)));
+Index: gcc/testsuite/gcc.dg/lto/20100423-1_0.c
+===================================================================
+--- gcc/testsuite/gcc.dg/lto/20100423-1_0.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/lto/20100423-1_0.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,11 @@
++/* { dg-lto-do run } */
++/* { dg-lto-options {{-O2 -flto}} } */
++
++struct bar {int x;};
++extern struct bar foo(void);
++int main()
++{
++  struct bar x=foo();
++  return 0;
++}
++
+Index: gcc/testsuite/gcc.dg/lto/20100430-1_0.c
+===================================================================
+--- gcc/testsuite/gcc.dg/lto/20100430-1_0.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/lto/20100430-1_0.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,14 @@
++/* { dg-lto-do link } */
++/* { dg-lto-options {{-O2 -fprofile-arcs -flto -r -nostdlib}} } */
++
++void
++expand_stmt_with_iterators_1 (void)
++{
++  extern void expand_expr_stmt (void);
++  expand_expr_stmt ();
++}
++void
++iterator_expand (void)
++{
++  expand_stmt_with_iterators_1 ();
++}
+Index: gcc/testsuite/gcc.dg/lto/20100518_0.c
+===================================================================
+--- gcc/testsuite/gcc.dg/lto/20100518_0.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/lto/20100518_0.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,13 @@
++/* { dg-lto-do link } */
++/* Forgot to steam in/out the number of labels for asm goto.  PR44184.  */
++
++extern int printf (__const char *__restrict __format, ...);
++
++int x = 1;
++int main ()
++{
++    asm goto ("decl %0; jnz %l[a]" :: "m"(x) : "memory" : a);
++    printf ("Hello world\n");
++a:
++    return 0;
++}
+Index: gcc/testsuite/gcc.dg/lto/20100423-1_1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/lto/20100423-1_1.c    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/lto/20100423-1_1.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,7 @@
++typedef struct{int x;} bar;
++bar foo (void)
++{
++  bar x;
++  return x;
++}
++
 Index: gcc/testsuite/gcc.dg/c99-tgmath-3.c
 ===================================================================
---- gcc/testsuite/gcc.dg/c99-tgmath-3.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.dg/c99-tgmath-3.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.dg/c99-tgmath-3.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/c99-tgmath-3.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3,6 +3,7 @@
  /* { dg-do compile { target c99_runtime } } */
  /* { dg-options "-std=iso9899:1999" } */
@@ -2977,10 +6994,137 @@ Index: gcc/testsuite/gcc.dg/c99-tgmath-3.c
  
  /* Test that invoking type-generic exp on a complex invokes cexp. */
  #include <tgmath.h>
+Index: gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/ipa-pta-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/ipa-pta-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -42,5 +42,5 @@
+   bar (p);
+ }
+-/* { dg-final { scan-ipa-dump "bar.arg0 = { a4 a3 a2 a1 }" "pta" } } */
++/* { dg-final { scan-ipa-dump "bar.arg0 = { a4 a3\[^ \]* a2\[^ \]* a1 }" "pta" } } */
+ /* { dg-final { cleanup-ipa-dump "pta" } } */
+Index: gcc/testsuite/gcc.dg/torture/pr35771-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/pr35771-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/push-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/stackalign/push-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37010 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/pr35771-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/pr35771-2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/torture/pta-escape-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pta-escape-1.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/pta-escape-1.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -30,5 +30,5 @@
+   return 0;
+ }
+-/* { dg-final { scan-tree-dump "ESCAPED = { i }" "alias" } } */
++/* { dg-final { scan-tree-dump "ESCAPED = { ESCAPED NONLOCAL i }" "alias" } } */
+ /* { dg-final { cleanup-tree-dump "alias" } } */
+Index: gcc/testsuite/gcc.dg/torture/pr16104-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr16104-1.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/pr16104-1.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/16104 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/pr35771-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-3.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/torture/pr35771-3.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/pr37544.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr37544.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/pr37544.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -msse2 -mtune=core2 -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ #ifdef __i386__
+ #include "cpuid.h"
 Index: gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,33 @@
 +/* PR tree-optimization/43904.  */
 +/* { dg-do run } */
@@ -3018,7 +7162,7 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
 Index: gcc/testsuite/gcc.dg/tree-ssa/vrp49.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/vrp49.c      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/vrp49.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/tree-ssa/vrp49.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,28 @@
 +/* { dg-do link } */
 +/* { dg-options "-O2" } */
@@ -3048,10 +7192,65 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/vrp49.c
 +      while (i < n);
 +    }
 +}
+Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details" } */
+ #define N 1000
+Index: gcc/testsuite/gcc.dg/tree-ssa/pta-escape-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/pta-escape-1.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/tree-ssa/pta-escape-1.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -33,5 +33,5 @@
+   return 0;
+ }
+-/* { dg-final { scan-tree-dump "ESCAPED, points-to vars: { x }" "alias" } } */
++/* { dg-final { scan-tree-dump "ESCAPED, points-to non-local, points-to vars: { x }" "alias" } } */
+ /* { dg-final { cleanup-tree-dump "alias" } } */
+Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=athlon" } } */
+ /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 --param max-unrolled-insns=1 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
+Index: gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -34,5 +34,5 @@
+   return 0;
+ }
+-/* { dg-final { scan-tree-dump "ESCAPED, points-to vars: { x }" "alias" } } */
++/* { dg-final { scan-tree-dump "ESCAPED, points-to non-local, points-to vars: { x }" "alias" } } */
+ /* { dg-final { cleanup-tree-dump "alias" } } */
+Index: gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -38,5 +38,5 @@
+   return 0;
+ }
+-/* { dg-final { scan-tree-dump "ESCAPED, points-to vars: { x }" "alias" } } */
++/* { dg-final { scan-tree-dump "ESCAPED, points-to non-local, points-to vars: { x }" "alias" } } */
+ /* { dg-final { cleanup-tree-dump "alias" } } */
 Index: gcc/testsuite/gcc.dg/tree-ssa/sra-10.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/sra-10.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/sra-10.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/tree-ssa/sra-10.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,19 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-esra-details" } */
@@ -3075,7 +7274,7 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/sra-10.c
 Index: gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,12 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -fdump-tree-tailc" } */
@@ -3092,7 +7291,7 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
 Index: gcc/testsuite/gcc.dg/pr44028.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr44028.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr44028.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gcc.dg/pr44028.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,22 @@
 +/* PR debug/44028 */
 +/* { dg-do compile } */
@@ -3118,8 +7317,8 @@ Index: gcc/testsuite/gcc.dg/pr44028.c
 +}
 Index: gcc/testsuite/gcc.dg/c99-tgmath-4.c
 ===================================================================
---- gcc/testsuite/gcc.dg/c99-tgmath-4.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gcc.dg/c99-tgmath-4.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gcc.dg/c99-tgmath-4.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/c99-tgmath-4.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3,6 +3,7 @@
  /* { dg-do compile { target c99_runtime } } */
  /* { dg-options "-std=iso9899:1999" } */
@@ -3128,10 +7327,78 @@ Index: gcc/testsuite/gcc.dg/c99-tgmath-4.c
  
  /* Test that invoking type-generic pow on complex float invokes cpowf. */
  #include <tgmath.h>
+Index: gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
++# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008, 2010
+ # Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -39,6 +39,9 @@
+ global dg-do-what-default
+ set save-dg-do-what-default ${dg-do-what-default}
++if { ![check_effective_target_sse2] } then {
++  return
++}
+ lappend DEFAULT_VECTCFLAGS "-msse2"
+ if [check_sse2_hw_available] {
+     set dg-do-what-default run
+Index: gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ /* PR debug/41926 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ void
+ foo (double (*__restrict p)[4], double (*__restrict q)[4],
+Index: gcc/testsuite/gcc.dg/vect/vect.exp
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/vect.exp (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/vect/vect.exp (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
++# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008, 2010
+ # Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -67,6 +67,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
+Index: gcc/testsuite/gcc.dg/pr36997.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr36997.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gcc.dg/pr36997.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,9 +1,10 @@
+ /* { dg-do compile { target x86_64-*-* i?86-*-* } } */
+ /* { dg-options "-std=c99 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
+ __m64 _mm_add_si64 (__m64 __m1, __m64 __m2)
+ {
+     return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); /* { dg-error "incompatible type" } */
+-    /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
++    /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 8 } */
+ }
 Index: gcc/testsuite/ada/acats/run_acats
 ===================================================================
---- gcc/testsuite/ada/acats/run_acats  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/ada/acats/run_acats  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/ada/acats/run_acats  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/ada/acats/run_acats  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -5,10 +5,25 @@
     exit 1
  fi
@@ -3162,9 +7429,443 @@ Index: gcc/testsuite/ada/acats/run_acats
  
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- gcc/testsuite/ChangeLog    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,315 @@
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,749 @@
++2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
++
++      PR target/44202
++      * gcc.c-torture/execute/pr44202-1.c: New test.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * lib/target-supports.exp (check_effective_target_sse2): New proc.
++      * lib/target-supports-dg.exp (dg-require-effective-target): Allow
++      for optional selector.
++      * gcc.target/i386/i386.exp (check_effective_target_3dnow): New proc.
++      (check_effective_target_sse3): New proc.
++      * gcc.target/i386/math-torture/math-torture.exp: Load
++      target-supports.exp.
++      Only add options with -msse2 to MATH_TORTURE_OPTIONS if
++      check_effective_target_sse2.
++      * gcc.dg/vect/vect.exp: Return unless check_effective_target_sse2.
++      * gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Likewise.
++      * g++.dg/vect/vect.exp: Likewise.
++      * gfortran.dg/vect/vect.exp: Likewise.
++      * lib/fortran-torture.exp (get-fortran-torture-options): Only use
++      -msse2 if check_effective_target_sse2.
++
++      * gcc.target/i386/3dnow-1.c: Use dg-require-effective-target 3dnow.
++      * gcc.target/i386/3dnow-2.c: Likewise.
++      * gcc.target/i386/3dnowA-1.c: Likewise.
++      * gcc.target/i386/3dnowA-2.c: Likewise.
++      * gcc.target/i386/pr42549.c: Likewise.
++
++      * gcc.target/i386/sse3-addsubpd.c: Use dg-require-effective-target sse3.
++      * gcc.target/i386/sse3-addsubps.c: Likewise.
++      * gcc.target/i386/sse3-haddpd.c: Likewise.
++      * gcc.target/i386/sse3-haddps.c: Likewise.
++      * gcc.target/i386/sse3-hsubpd.c: Likewise.
++      * gcc.target/i386/sse3-hsubps.c: Likewise.
++      * gcc.target/i386/sse3-lddqu.c: Likewise.
++      * gcc.target/i386/sse3-movddup.c: Likewise.
++      * gcc.target/i386/sse3-movshdup.c: Likewise.
++      * gcc.target/i386/sse3-movsldup.c: Likewise.
++
++      * g++.dg/abi/mangle42.C: Use dg-require-effective-target sse2.
++      * g++.dg/ext/attrib35.C: Likewise.
++      * g++.dg/opt/pr40496.C: Likewise.
++      * g++.dg/other/i386-1.C: Likewise.
++      * g++.dg/other/i386-4.C: Likewise.
++      * g++.dg/other/pr34435.C: Likewise.
++      * g++.dg/other/pr39496.C: Likewise.
++      * g++.dg/other/pr40446.C: Likewise.
++      * gcc.dg/compat/union-m128-1_main.c: Likewise.
++      * gcc.dg/compat/vector-1a_main.c: Likewise.
++      * gcc.dg/compat/vector-2a_main.c: Likewise.
++      * gcc.dg/lto/20090206-1_0.c: Likewise.
++      * gcc.dg/pr34856.c: Likewise.
++      * gcc.dg/pr36584.c: Likewise.
++      * gcc.dg/pr36997.c: Likewise.  Adapt dg-message line number.
++      * gcc.dg/pr37544.c: Likewise.
++      * gcc.dg/torture/pr16104-1.c: Likewise.
++      * gcc.dg/torture/pr35771-1.c: Likewise.
++      * gcc.dg/torture/pr35771-2.c: Likewise.
++      * gcc.dg/torture/pr35771-3.c: Likewise.
++      * gcc.dg/torture/stackalign/alloca-2.c: Likewise.
++      * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
++      * gcc.dg/torture/stackalign/push-1.c: Likewise.
++      * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
++      * gcc.dg/tree-ssa/prefetch-6.c: Likewise.
++      * gcc.dg/tree-ssa/prefetch-7.c: Likewise.
++      * gcc.dg/vect/vect-debug-pr41926.c: Likewise.
++      * gcc.target/i386/20060512-1.c: Likewise.
++      * gcc.target/i386/20060512-3.c: Likewise.
++      * gcc.target/i386/all_one_m128i.c: Likewise.
++      * gcc.target/i386/float128-1.c: Likewise.
++      * gcc.target/i386/float128-2.c: Likewise.
++      * gcc.target/i386/fpcvt-1.c: Likewise.
++      * gcc.target/i386/fpcvt-2.c: Likewise.
++      * gcc.target/i386/fpcvt-3.c: Likewise.
++      * gcc.target/i386/fpprec-1.c: Likewise.
++      * gcc.target/i386/funcspec-9.c: Likewise.
++      * gcc.target/i386/incoming-1.c: Likewise.
++      * gcc.target/i386/incoming-12.c: Likewise.
++      * gcc.target/i386/incoming-2.c: Likewise.
++      * gcc.target/i386/incoming-3.c: Likewise.
++      * gcc.target/i386/incoming-4.c: Likewise.
++      * gcc.target/i386/incoming-6.c: Likewise.
++      * gcc.target/i386/incoming-7.c: Likewise.
++      * gcc.target/i386/incoming-8.c: Likewise.
++      * gcc.target/i386/opt-1.c: Likewise.
++      * gcc.target/i386/opt-2.c: Likewise.
++      * gcc.target/i386/ordcmp-1.c: Likewise.
++      * gcc.target/i386/pr17692.c: Likewise.
++      * gcc.target/i386/pr18614-1.c: Likewise.
++      * gcc.target/i386/pr22152.c: Likewise.
++      * gcc.target/i386/pr23570.c: Likewise.
++      * gcc.target/i386/pr23575.c: Likewise.
++      * gcc.target/i386/pr26449-1.c: Likewise.
++      * gcc.target/i386/pr26600.c: Likewise.
++      * gcc.target/i386/pr27790.c: Likewise.
++      * gcc.target/i386/pr28839.c: Likewise.
++      * gcc.target/i386/pr30970.c: Likewise.
++      * gcc.target/i386/pr32000-1.c: Likewise.
++      * gcc.target/i386/pr32000-2.c: Likewise.
++      * gcc.target/i386/pr32280.c: Likewise.
++      * gcc.target/i386/pr32661.c: Likewise.
++      * gcc.target/i386/pr32708-1.c: Likewise.
++      * gcc.target/i386/pr32961.c: Likewise.
++      * gcc.target/i386/pr33329.c: Likewise.
++      * gcc.target/i386/pr35714.c: Likewise.
++      * gcc.target/i386/pr35767-1.c: Likewise.
++      * gcc.target/i386/pr35767-1d.c: Likewise.
++      * gcc.target/i386/pr35767-1i.c: Likewise.
++      * gcc.target/i386/pr35767-2.c: Likewise.
++      * gcc.target/i386/pr35767-2d.c: Likewise.
++      * gcc.target/i386/pr35767-2i.c: Likewise.
++      * gcc.target/i386/pr35767-3.c: Likewise.
++      * gcc.target/i386/pr35767-5.c: Likewise.
++      * gcc.target/i386/pr36222-1.c: Likewise.
++      * gcc.target/i386/pr36578-1.c: Likewise.
++      * gcc.target/i386/pr36578-2.c: Likewise.
++      * gcc.target/i386/pr36992-1.c: Likewise.
++      * gcc.target/i386/pr37101.c: Likewise.
++      * gcc.target/i386/pr37216.c: Likewise.
++      * gcc.target/i386/pr37434-1.c: Likewise.
++      * gcc.target/i386/pr37434-2.c: Likewise.
++      * gcc.target/i386/pr37843-3.c: Likewise.
++      * gcc.target/i386/pr37843-4.c: Likewise.
++      * gcc.target/i386/pr39162.c: Likewise.
++      * gcc.target/i386/pr39315-1.c: Likewise.
++      * gcc.target/i386/pr39315-2.c: Likewise.
++      * gcc.target/i386/pr39315-3.c: Likewise.
++      * gcc.target/i386/pr39315-4.c: Likewise.
++      * gcc.target/i386/pr39445.c: Likewise.
++      * gcc.target/i386/pr39496.c: Likewise.
++      * gcc.target/i386/pr40809.c: Likewise.
++      * gcc.target/i386/pr40906-3.c: Likewise.
++      * gcc.target/i386/pr41019.c: Likewise.
++      * gcc.target/i386/pr42542-1.c: Likewise.
++      * gcc.target/i386/pr42542-2.c: Likewise.
++      * gcc.target/i386/pr42542-3.c: Likewise.
++      * gcc.target/i386/pr42542-3a.c: Likewise.
++      * gcc.target/i386/pr42881.c: Likewise.
++      * gcc.target/i386/push-1.c: Likewise.
++      * gcc.target/i386/quad-sse.c: Likewise.
++      * gcc.target/i386/reload-1.c: Likewise.
++      * gcc.target/i386/sse-10.c: Likewise.
++      * gcc.target/i386/sse-11.c: Likewise.
++      * gcc.target/i386/sse-15.c: Likewise.
++      * gcc.target/i386/sse-17.c: Likewise.
++      * gcc.target/i386/sse-18.c: Likewise.
++      * gcc.target/i386/sse-19.c: Likewise.
++      * gcc.target/i386/sse-4.c: Likewise.
++      * gcc.target/i386/sse-6.c: Likewise.
++      * gcc.target/i386/sse-vect-types.c: Likewise.
++      * gcc.target/i386/sse2-addpd-1.c: Likewise.
++      * gcc.target/i386/sse2-addsd-1.c: Likewise.
++      * gcc.target/i386/sse2-andnpd-1.c: Likewise.
++      * gcc.target/i386/sse2-andpd-1.c: Likewise.
++      * gcc.target/i386/sse2-cmpsd-1.c: Likewise.
++      * gcc.target/i386/sse2-comisd-1.c: Likewise.
++      * gcc.target/i386/sse2-comisd-2.c: Likewise.
++      * gcc.target/i386/sse2-comisd-3.c: Likewise.
++      * gcc.target/i386/sse2-comisd-4.c: Likewise.
++      * gcc.target/i386/sse2-comisd-5.c: Likewise.
++      * gcc.target/i386/sse2-comisd-6.c: Likewise.
++      * gcc.target/i386/sse2-copysign-vec.c: Likewise.
++      * gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
++      * gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
++      * gcc.target/i386/sse2-divpd-1.c: Likewise.
++      * gcc.target/i386/sse2-divsd-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
++      * gcc.target/i386/sse2-lrint-vec.c: Likewise.
++      * gcc.target/i386/sse2-lrintf-vec.c: Likewise.
++      * gcc.target/i386/sse2-maxpd-1.c: Likewise.
++      * gcc.target/i386/sse2-maxsd-1.c: Likewise.
++      * gcc.target/i386/sse2-minpd-1.c: Likewise.
++      * gcc.target/i386/sse2-minsd-1.c: Likewise.
++      * gcc.target/i386/sse2-mmx.c: Likewise.
++      * gcc.target/i386/sse2-movapd-1.c: Likewise.
++      * gcc.target/i386/sse2-movapd-2.c: Likewise.
++      * gcc.target/i386/sse2-movd-1.c: Likewise.
++      * gcc.target/i386/sse2-movd-2.c: Likewise.
++      * gcc.target/i386/sse2-movdqa-1.c: Likewise.
++      * gcc.target/i386/sse2-movdqa-2.c: Likewise.
++      * gcc.target/i386/sse2-movdqu-1.c: Likewise.
++      * gcc.target/i386/sse2-movdqu-2.c: Likewise.
++      * gcc.target/i386/sse2-movhpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movhpd-2.c: Likewise.
++      * gcc.target/i386/sse2-movlpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movlpd-2.c: Likewise.
++      * gcc.target/i386/sse2-movmskpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movntdq-1.c: Likewise.
++      * gcc.target/i386/sse2-movntpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movq-1.c: Likewise.
++      * gcc.target/i386/sse2-movq-2.c: Likewise.
++      * gcc.target/i386/sse2-movq-3.c: Likewise.
++      * gcc.target/i386/sse2-movsd-1.c: Likewise.
++      * gcc.target/i386/sse2-movsd-2.c: Likewise.
++      * gcc.target/i386/sse2-movupd-1.c: Likewise.
++      * gcc.target/i386/sse2-movupd-2.c: Likewise.
++      * gcc.target/i386/sse2-mulpd-1.c: Likewise.
++      * gcc.target/i386/sse2-mulsd-1.c: Likewise.
++      * gcc.target/i386/sse2-orpd-1.c: Likewise.
++      * gcc.target/i386/sse2-packssdw-1.c: Likewise.
++      * gcc.target/i386/sse2-packsswb-1.c: Likewise.
++      * gcc.target/i386/sse2-packuswb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddd-1.c: Likewise.
++      * gcc.target/i386/sse2-paddq-1.c: Likewise.
++      * gcc.target/i386/sse2-paddsb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddsw-1.c: Likewise.
++      * gcc.target/i386/sse2-paddusb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddusw-1.c: Likewise.
++      * gcc.target/i386/sse2-paddw-1.c: Likewise.
++      * gcc.target/i386/sse2-pand-1.c: Likewise.
++      * gcc.target/i386/sse2-pandn-1.c: Likewise.
++      * gcc.target/i386/sse2-pavgb-1.c: Likewise.
++      * gcc.target/i386/sse2-pavgw-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaxub-1.c: Likewise.
++      * gcc.target/i386/sse2-pminsw-1.c: Likewise.
++      * gcc.target/i386/sse2-pminub-1.c: Likewise.
++      * gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
++      * gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmulhw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmullw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmuludq-1.c: Likewise.
++      * gcc.target/i386/sse2-por-1.c: Likewise.
++      * gcc.target/i386/sse2-psadbw-1.c: Likewise.
++      * gcc.target/i386/sse2-pshufd-1.c: Likewise.
++      * gcc.target/i386/sse2-pshufhw-1.c: Likewise.
++      * gcc.target/i386/sse2-pshuflw-1.c: Likewise.
++      * gcc.target/i386/sse2-pslld-1.c: Likewise.
++      * gcc.target/i386/sse2-pslld-2.c: Likewise.
++      * gcc.target/i386/sse2-pslldq-1.c: Likewise.
++      * gcc.target/i386/sse2-psllq-1.c: Likewise.
++      * gcc.target/i386/sse2-psllq-2.c: Likewise.
++      * gcc.target/i386/sse2-psllw-1.c: Likewise.
++      * gcc.target/i386/sse2-psllw-2.c: Likewise.
++      * gcc.target/i386/sse2-psrad-1.c: Likewise.
++      * gcc.target/i386/sse2-psrad-2.c: Likewise.
++      * gcc.target/i386/sse2-psraw-1.c: Likewise.
++      * gcc.target/i386/sse2-psraw-2.c: Likewise.
++      * gcc.target/i386/sse2-psrld-1.c: Likewise.
++      * gcc.target/i386/sse2-psrld-2.c: Likewise.
++      * gcc.target/i386/sse2-psrldq-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlq-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlq-2.c: Likewise.
++      * gcc.target/i386/sse2-psrlw-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlw-2.c: Likewise.
++      * gcc.target/i386/sse2-psubb-1.c: Likewise.
++      * gcc.target/i386/sse2-psubd-1.c: Likewise.
++      * gcc.target/i386/sse2-psubq-1.c: Likewise.
++      * gcc.target/i386/sse2-psubsb-1.c: Likewise.
++      * gcc.target/i386/sse2-psubsw-1.c: Likewise.
++      * gcc.target/i386/sse2-psubw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckldq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
++      * gcc.target/i386/sse2-pxor-1.c: Likewise.
++      * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
++      * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
++      * gcc.target/i386/sse2-shufpd-1.c: Likewise.
++      * gcc.target/i386/sse2-shufps-1.c: Likewise.
++      * gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
++      * gcc.target/i386/sse2-subpd-1.c: Likewise.
++      * gcc.target/i386/sse2-subsd-1.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-1.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-2.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-3.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-4.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-5.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-6.c: Likewise.
++      * gcc.target/i386/sse2-unpack-1.c: Likewise.
++      * gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
++      * gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
++      * gcc.target/i386/sse2-vec-1.c: Likewise.
++      * gcc.target/i386/sse2-vec-2.c: Likewise.
++      * gcc.target/i386/sse2-vec-3.c: Likewise.
++      * gcc.target/i386/sse2-vec-4.c: Likewise.
++      * gcc.target/i386/sse2-vec-5.c: Likewise.
++      * gcc.target/i386/sse2-vec-6.c: Likewise.
++      * gcc.target/i386/sse2-xorpd-1.c: Likewise.
++      * gcc.target/i386/ssefn-2.c: Likewise.
++      * gcc.target/i386/ssefn-4.c: Likewise.
++      * gcc.target/i386/ssefp-1.c: Likewise.
++      * gcc.target/i386/ssefp-2.c: Likewise.
++      * gcc.target/i386/sseregparm-3.c: Likewise.
++      * gcc.target/i386/sseregparm-4.c: Likewise.
++      * gcc.target/i386/sseregparm-5.c: Likewise.
++      * gcc.target/i386/sseregparm-6.c: Likewise.
++      * gcc.target/i386/sseregparm-7.c: Likewise.
++      * gcc.target/i386/ssetype-1.c: Likewise.
++      * gcc.target/i386/ssetype-2.c: Likewise.
++      * gcc.target/i386/ssetype-3.c: Likewise.
++      * gcc.target/i386/ssetype-4.c: Likewise.
++      * gcc.target/i386/ssetype-5.c: Likewise.
++      * gcc.target/i386/unordcmp-1.c: Likewise.
++      * gcc.target/i386/vararg-1.c: Likewise.
++      * gcc.target/i386/vararg-2.c: Likewise.
++      * gcc.target/i386/vararg-3.c: Likewise.
++      * gcc.target/i386/vararg-4.c: Likewise.
++      * gcc.target/i386/vararg-7.c: Likewise.
++      * gcc.target/i386/vararg-8.c: Likewise.
++      * gcc.target/i386/vecinit-1.c: Likewise.
++      * gcc.target/i386/vecinit-2.c: Likewise.
++      * gcc.target/i386/vecinit-3.c: Likewise.
++      * gcc.target/i386/vecinit-4.c: Likewise.
++      * gcc.target/i386/vecinit-5.c: Likewise.
++      * gcc.target/i386/vecinit-6.c: Likewise.
++      * gcc.target/i386/vectorize2.c: Likewise.
++      * gcc.target/i386/vectorize3.c: Likewise.
++      * gcc.target/i386/vectorize4.c: Likewise.
++      * gcc.target/i386/vectorize6.c: Likewise.
++      * gcc.target/i386/vectorize7.c: Likewise.
++      * gcc.target/i386/vectorize8.c: Likewise.
++      * gcc.target/i386/vperm-v2df.c: Likewise.
++      * gcc.target/i386/vperm-v2di.c: Likewise.
++      * gcc.target/i386/vperm-v4si-1.c: Likewise.
++      * gcc.target/i386/xorps-sse2.c: Likewise.
++      * gcc.target/i386/xorps.c: Likewise.
++      * gfortran.dg/graphite/pr42326-1.f90: Likewise.
++      * gfortran.dg/graphite/pr42326.f90: Likewise.
++      * gfortran.dg/vect/fast-math-mgrid-resid.f: Likewise.
++
++2010-05-19  Jason Merrill  <jason@redhat.com>
++
++      PR c++/44193
++      * g++.dg/template/fntype1.C: New.
++
++      PR c++/44157
++      * g++.dg/cpp0x/initlist34.C: New.
++
++      PR c++/44158
++      * g++.dg/cpp0x/rv-trivial-bug.C: Test copy-init too.
++
++2010-05-19  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/43987
++      * gcc.c-torture/execute/pr43987.c: New testcase.
++      * gcc.dg/torture/pta-escape-1.c: Adjust.
++      * gcc.dg/tree-ssa/pta-escape-1.c: Likewise.
++      * gcc.dg/tree-ssa/pta-escape-2.c: Likewise.
++      * gcc.dg/tree-ssa/pta-escape-3.c: Likewise.
++      * gcc.dg/torture/ipa-pta-1.c: Likewise.
++
++2010-05-19  Richard Guenther  <rguenther@suse.de>
++
++      Backport from mainline
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43455
++      * gcc.dg/lto/20100423-1_0.c: New testcase.
++      * gcc.dg/lto/20100423-1_1.c: Likewise.
++
++      2010-04-23  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/42653
++      * g++.dg/lto/20100423-1_0.C: New testcase.
++
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/42425
++      * g++.dg/lto/20100423-2_0.C: New testcase.
++
++      2010-04-26  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43080
++      * g++.dg/lto/20100423-3_0.C: New testcase.
++
++      2010-04-30  Richard Guenther  <rguenther@suse.de>
++
++      PR lto/43946
++      * gcc.dg/lto/20100430-1_0.c: New testcase.
++
++2010-05-19  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/43591
++      * gfortran.dg/spec_expr_6.f90: New test.
++
++2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
++
++      PR lto/44184
++      * gcc.dg/lto/20100518_0.c: New test.
++
++2010-05-17  Jakub Jelinek  <jakub@redhat.com>
++
++      PR bootstrap/42347
++      * gcc.c-torture/compile/pr42347.c: New test.
++
++      PR middle-end/44102
++      * g++.dg/ext/asmgoto1.C: New test.
++
++2010-05-15  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline
++      2010-05-15  H.J. Lu  <hongjiu.lu@intel.com>
++
++      * gcc.target/i386/avx-cmpsd-1.c: Add -std=c99.
++      * gcc.target/i386/avx-cmpss-1.c: Likewise.
++
 +2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
 +
 +      PR fortran/44135
@@ -3480,10 +8181,33 @@ Index: gcc/testsuite/ChangeLog
  2010-04-14  Release Manager
  
        * GCC 4.5.0 released.
+Index: gcc/testsuite/g++.dg/other/i386-4.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/i386-4.C        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/other/i386-4.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O1 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/g++.dg/other/pr39496.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr39496.C       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/other/pr39496.C       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ // PR target/39496
+ // { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } }
+ // { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" }
++// { dg-require-effective-target sse2 }
+ // Verify that {foo,bar}{,2}param are all passed on the stack, using
+ // normal calling conventions, when not optimizing.
+ // { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } }
 Index: gcc/testsuite/g++.dg/other/crash-12.C
 ===================================================================
 --- gcc/testsuite/g++.dg/other/crash-12.C      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/crash-12.C      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/other/crash-12.C      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,25 @@
 +// Origin: PR c++/43953
 +
@@ -3510,10 +8234,136 @@ Index: gcc/testsuite/g++.dg/other/crash-12.C
 +  bad<dummy, dummy, 0>::foo();
 +}
 +
+Index: gcc/testsuite/g++.dg/other/pr40446.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr40446.C       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/other/pr40446.C       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ // PR middle-end/40446
+ // { dg-do run { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-O1 -msse2" }
++// { dg-require-effective-target sse2 }
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/g++.dg/other/i386-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/i386-1.C        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/other/i386-1.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/g++.dg/other/pr34435.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr34435.C       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/other/pr34435.C       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2 -Wno-abi" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/g++.dg/lto/20100423-1_0.C
+===================================================================
+--- gcc/testsuite/g++.dg/lto/20100423-1_0.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/lto/20100423-1_0.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,38 @@
++// { dg-lto-do assemble }
++// { dg-lto-options {{-g -flto}} }
++
++namespace llvm
++{
++  class Function;
++  class MachineCodeInfo;
++  class ExecutionEngine
++    {
++    };
++  class JIT : public ExecutionEngine
++  {
++    void runJITOnFunction (Function * F, MachineCodeInfo * MCI = 0);
++  };
++  class JITEventListener
++    {
++    public:
++      JITEventListener ()
++      {
++      }
++      virtual ~JITEventListener ();
++    };
++}
++
++using namespace llvm;
++void
++JIT::runJITOnFunction (Function * F, MachineCodeInfo * MCI)
++{
++  class MCIListener:public JITEventListener
++  {
++    MachineCodeInfo *const MCI;
++  public: 
++    MCIListener (MachineCodeInfo * mci):MCI (mci)
++       {
++       }
++  };
++}
++
+Index: gcc/testsuite/g++.dg/lto/20100423-2_0.C
+===================================================================
+--- gcc/testsuite/g++.dg/lto/20100423-2_0.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/lto/20100423-2_0.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,14 @@
++// { dg-lto-do assemble }
++// { dg-lto-options {{-flto -g}} }
++
++struct A
++{
++  virtual ~A();
++};
++
++void foo()
++{
++  struct B : A {};
++  B b;
++}
++
+Index: gcc/testsuite/g++.dg/lto/20100423-3_0.C
+===================================================================
+--- gcc/testsuite/g++.dg/lto/20100423-3_0.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/lto/20100423-3_0.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,14 @@
++// { dg-lto-do assemble }
++// { dg-lto-options {{-flto -g}} }
++
++inline int foo()
++{
++  static union { int i; };
++  return i;
++}
++
++void bar()
++{
++  foo();
++}
++
+Index: gcc/testsuite/g++.dg/ext/attrib35.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/attrib35.C        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/ext/attrib35.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ // { dg-do compile { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-O3 -msse2" }
++// { dg-require-effective-target sse2 }
+ // You can make NON-template typedefs with a large alignment.
+ typedef double AlignedDoubleType __attribute__((aligned(16)));
 Index: gcc/testsuite/g++.dg/ext/label13.C
 ===================================================================
---- gcc/testsuite/g++.dg/ext/label13.C (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/g++.dg/ext/label13.C (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/g++.dg/ext/label13.C (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/ext/label13.C (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
    C();
  };
@@ -3526,7 +8376,7 @@ Index: gcc/testsuite/g++.dg/ext/label13.C
 Index: gcc/testsuite/g++.dg/ext/attrib39.C
 ===================================================================
 --- gcc/testsuite/g++.dg/ext/attrib39.C        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/attrib39.C        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/ext/attrib39.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,9 @@
 +// PR debug/43370
 +// { dg-options "-g" }
@@ -3537,10 +8387,67 @@ Index: gcc/testsuite/g++.dg/ext/attrib39.C
 +  } XmmUint16;
 +  return 0;
 +}
+Index: gcc/testsuite/g++.dg/ext/asmgoto1.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/asmgoto1.C        (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/asmgoto1.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,32 @@
++// PR middle-end/44102
++// { dg-do compile }
++// { dg-options "-O2" }
++
++void baz (void);
++struct A { A (); ~A (); };
++
++static inline int
++foo (void)
++{
++  asm goto ("" : : : : l1, l2);
++  __builtin_unreachable ();
++ l1:
++  return 1;
++ l2:
++  return 0;
++}
++
++int
++bar (int x)
++{
++  if (x == 5)
++    {
++      A a, b;
++      baz ();
++    }
++  if (foo () || x == 6)
++    x = 1;
++  else
++    x = 2;
++  return x;
++}
+Index: gcc/testsuite/g++.dg/vect/vect.exp
+===================================================================
+--- gcc/testsuite/g++.dg/vect/vect.exp (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/vect/vect.exp (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -75,6 +75,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
 Index: gcc/testsuite/g++.dg/vect/pr43771.cc
 ===================================================================
 --- gcc/testsuite/g++.dg/vect/pr43771.cc       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/vect/pr43771.cc       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/vect/pr43771.cc       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,14 @@
 +/* { dg-do compile } */
 +
@@ -3559,7 +8466,7 @@ Index: gcc/testsuite/g++.dg/vect/pr43771.cc
 Index: gcc/testsuite/g++.dg/opt/empty1.C
 ===================================================================
 --- gcc/testsuite/g++.dg/opt/empty1.C  (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/empty1.C  (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/opt/empty1.C  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,11 @@
 +// PR c++/43787
 +// Test that we don't try to copy *x.
@@ -3572,10 +8479,21 @@ Index: gcc/testsuite/g++.dg/opt/empty1.C
 +  empty_t* x = 0;
 +  empty_t y = *x;
 +}
+Index: gcc/testsuite/g++.dg/opt/pr40496.C
+===================================================================
+--- gcc/testsuite/g++.dg/opt/pr40496.C (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/opt/pr40496.C (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ // { dg-do compile }
+ // { dg-options "-O2 -fprefetch-loop-arrays -msse2" { target i?86-*-* x86_64-*-* } }
++// { dg-require-effective-target sse2 { target i?86-*-* x86_64-*-* } }
+ struct DOMStringHandle
+ {
 Index: gcc/testsuite/g++.dg/cdce3.C
 ===================================================================
---- gcc/testsuite/g++.dg/cdce3.C       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/g++.dg/cdce3.C       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/g++.dg/cdce3.C       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/cdce3.C       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,13 +1,13 @@
  /* { dg-do run } */
  /* { dg-require-effective-target c99_runtime } */
@@ -3602,8 +8520,8 @@ Index: gcc/testsuite/g++.dg/cdce3.C
  #include <math.h>
 Index: gcc/testsuite/g++.dg/warn/miss-format-1.C
 ===================================================================
---- gcc/testsuite/g++.dg/warn/miss-format-1.C  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/g++.dg/warn/miss-format-1.C  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/g++.dg/warn/miss-format-1.C  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/warn/miss-format-1.C  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -23,7 +23,7 @@
  {
    va_list ap;
@@ -3616,7 +8534,7 @@ Index: gcc/testsuite/g++.dg/warn/miss-format-1.C
 Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +// PR c++/43641
 +// { dg-options "-std=c++0x" }
@@ -3634,7 +8552,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C
 Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,16 @@
 +// PR c++/43856
 +// Test for implicit 'this' capture via rewriting.
@@ -3655,7 +8573,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C
 Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C  (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C  (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,7 @@
 +// 5.1.2/2: A lambda-expression shall not appear in an unevaluated operand.
 +// { dg-options "-std=c++0x" }
@@ -3667,7 +8585,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C
 Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,7 @@
 +// PR c++/43875
 +// { dg-options "-std=c++0x" }
@@ -3678,8 +8596,8 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C
 +}
 Index: gcc/testsuite/g++.dg/cpp0x/enum3.C
 ===================================================================
---- gcc/testsuite/g++.dg/cpp0x/enum3.C (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/g++.dg/cpp0x/enum3.C (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/g++.dg/cpp0x/enum3.C (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/cpp0x/enum3.C (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -14,4 +14,14 @@
    E e = E::elem;
    if (!f (e == E::elem))
@@ -3695,10 +8613,55 @@ Index: gcc/testsuite/g++.dg/cpp0x/enum3.C
 +  if (f (e != E::elem))
 +    return 1;
  }
+Index: gcc/testsuite/g++.dg/cpp0x/initlist34.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/initlist34.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/initlist34.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,14 @@
++// PR c++/44157
++// { dg-options "-std=c++0x" }
++
++#include <initializer_list>
++
++template<typename T>
++void f(T) { }
++
++int main() {
++  std::initializer_list<int> a = { 0 };
++  f(a);
++
++  f<std::initializer_list<int> >({ 0 });
++}
+Index: gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -19,7 +19,8 @@
+     base2 b2(b);
+     assert(move_construct == 0);
+     base2 b3(static_cast<base2&&>(b));
+-    assert(move_construct == 1);
++    base2 b4 = static_cast<base2&&>(b);
++    assert(move_construct == 2);
+     b = b2;
+     assert(move_assign == 0);
+     b = static_cast<base2&&>(b2);
+Index: gcc/testsuite/g++.dg/abi/mangle42.C
+===================================================================
+--- gcc/testsuite/g++.dg/abi/mangle42.C        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/g++.dg/abi/mangle42.C        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,6 +1,7 @@
+ // Origin: PR c++/43375
+ // { dg-do compile { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-msse2 -std=gnu++0x" }
++// { dg-require-effective-target sse2 }
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
 Index: gcc/testsuite/g++.dg/eh/terminate1.C
 ===================================================================
 --- gcc/testsuite/g++.dg/eh/terminate1.C       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/eh/terminate1.C       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/eh/terminate1.C       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,29 @@
 +// PR c++/44127
 +
@@ -3732,7 +8695,7 @@ Index: gcc/testsuite/g++.dg/eh/terminate1.C
 Index: gcc/testsuite/g++.dg/torture/pr43880.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr43880.C     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr43880.C     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/torture/pr43880.C     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,16 @@
 +// { dg-do compile }
 +
@@ -3753,7 +8716,7 @@ Index: gcc/testsuite/g++.dg/torture/pr43880.C
 Index: gcc/testsuite/g++.dg/torture/pr43611.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr43611.C     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr43611.C     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/torture/pr43611.C     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,22 @@
 +// { dg-do compile }
 +// { dg-options "-fkeep-inline-functions" }
@@ -3780,7 +8743,7 @@ Index: gcc/testsuite/g++.dg/torture/pr43611.C
 Index: gcc/testsuite/g++.dg/ipa/pr43812.C
 ===================================================================
 --- gcc/testsuite/g++.dg/ipa/pr43812.C (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ipa/pr43812.C (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/ipa/pr43812.C (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,38 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O -fwhole-program -fipa-cp" } */
@@ -3823,7 +8786,7 @@ Index: gcc/testsuite/g++.dg/ipa/pr43812.C
 Index: gcc/testsuite/g++.dg/template/typedef33.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/typedef33.C  (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef33.C  (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/template/typedef33.C  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,21 @@
 +// Origin PR c++/43800
 +// { dg-do compile }
@@ -3849,7 +8812,7 @@ Index: gcc/testsuite/g++.dg/template/typedef33.C
 Index: gcc/testsuite/g++.dg/template/ptrmem21.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/ptrmem21.C   (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/ptrmem21.C   (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/template/ptrmem21.C   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,37 @@
 +// PR c++/43868
 +// { dg-options "-g" }
@@ -3891,7 +8854,7 @@ Index: gcc/testsuite/g++.dg/template/ptrmem21.C
 Index: gcc/testsuite/g++.dg/template/crash96.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/crash96.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/crash96.C    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/template/crash96.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,6 @@
 +// PR c++/40406
 +
@@ -3902,7 +8865,7 @@ Index: gcc/testsuite/g++.dg/template/crash96.C
 Index: gcc/testsuite/g++.dg/template/error-recovery2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/error-recovery2.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/error-recovery2.C    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/template/error-recovery2.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,7 @@
 +// PR c++/43621
 +
@@ -3914,7 +8877,7 @@ Index: gcc/testsuite/g++.dg/template/error-recovery2.C
 Index: gcc/testsuite/g++.dg/template/typedef32.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/typedef32.C  (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef32.C  (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/g++.dg/template/typedef32.C  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,46 @@
 +// Origin: PR c++/43704
 +// { dg-do compile }
@@ -3962,10 +8925,175 @@ Index: gcc/testsuite/g++.dg/template/typedef32.C
 +  banded_adaptor<matrix<double> >::iterator1 it1;
 +};
 +
+Index: gcc/testsuite/g++.dg/template/fntype1.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/fntype1.C    (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/fntype1.C    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,26 @@
++bool f(int i) { return i != 5; }
++
++template <class X, class P = bool(X)>
++struct Traits
++{
++ typedef P type;
++};
++
++template <class X, class P = typename Traits<X>::type>
++struct S
++{
++ const P& p_;
++ S( const P& p ) : p_(p) {} // const reference
++};
++
++template <class X>
++S<X> make_s(const typename Traits<X>::type & p) // const reference
++{
++ return S<X>(p); // << HERE
++}
++
++
++int main()
++{
++ make_s<int>(f);
++}
+Index: gcc/testsuite/lib/target-supports-dg.exp
+===================================================================
+--- gcc/testsuite/lib/target-supports-dg.exp   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/lib/target-supports-dg.exp   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009
++#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ #   Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -145,12 +145,23 @@
+ }
+ # If the target does not match the required effective target, skip this test.
++# Only apply this if the optional selector matches.
+ proc dg-require-effective-target { args } {
+     set args [lreplace $args 0 0]
+-    if { [llength $args] != 1 } {
+-      error "syntax error, need a single effective-target keyword"
++    # Verify the number of arguments.  The last is optional.
++    if { [llength $args] < 1 || [llength $args] > 2 } {
++      error "syntax error, need a single effective-target keyword with optional selector"
+     }
++    
++    # Evaluate selector if present.
++    if { [llength $args] == 2 } {
++      switch [dg-process-target [lindex $args 1]] {
++          "S" { }
++          "N" { return }
++      }
++    }
++
+     if { ![is-effective-target [lindex $args 0]] } {
+       upvar dg-do-what dg-do-what
+         set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+Index: gcc/testsuite/lib/fortran-torture.exp
+===================================================================
+--- gcc/testsuite/lib/fortran-torture.exp      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/lib/fortran-torture.exp      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2003, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -45,6 +45,7 @@
+     } elseif { [istarget  "spu-*-*"] } {
+       set test_tree_vectorize 1
+     } elseif { ( [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] )
++             && [check_effective_target_sse2]
+              && [check_sse2_hw_available] } {
+       lappend vectorizer_options "-msse2"
+       set test_tree_vectorize 1
+Index: gcc/testsuite/lib/target-supports.exp
+===================================================================
+--- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -3133,6 +3133,18 @@
+     } "-O2 -mavx" ]
+ }
++# Return 1 if sse2 instructions can be compiled.
++proc check_effective_target_sse2 { } {
++    return [check_no_compiler_messages sse2 object {
++      typedef long long __m128i __attribute__ ((__vector_size__ (16)));
++      
++      __m128i _mm_srli_si128 (__m128i __A, int __N)
++      {
++          return (__m128i)__builtin_ia32_psrldqi128 (__A, 8);
++      }
++    } "-O2 -msse2" ]
++}
++
+ # Return 1 if C wchar_t type is compatible with char16_t.
+ proc check_effective_target_wchar_t_char16_t_compatible { } {
+Index: gcc/testsuite/gfortran.dg/spec_expr_6.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/spec_expr_6.f90  (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/spec_expr_6.f90  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,52 @@
++! { dg-do compile }
++!
++! PR fortran/43591
++!
++! Pureness check for TPB/PPC in specification expressions
++!
++! Based on a test case of Thorsten Ohl
++!
++!
++
++module m
++  implicit none
++  type t
++     procedure(p1_type), nopass, pointer :: p1 => NULL()
++  contains
++     procedure, nopass :: tbp => p1_type
++  end type t
++contains
++  subroutine proc (t1, t2)
++    type(t), intent(in) :: t1, t2
++    integer, dimension(t1%p1(), t2%tbp()) :: table
++  end subroutine proc
++  pure function p1_type()
++   integer :: p1_type
++   p1_type = 42
++  end function p1_type
++  pure subroutine p(t1)
++    type(t), intent(inout) :: t1
++    integer :: a(t1%p1())
++  end subroutine p
++end module m
++
++module m2
++  implicit none
++  type t
++     procedure(p1_type), nopass, pointer :: p1 => NULL()
++  contains
++     procedure, nopass :: tbp => p1_type
++  end type t
++contains
++  subroutine proc (t1, t2)
++    type(t), intent(in) :: t1, t2
++    integer, dimension(t1%p1()) :: table1 ! { dg-error "must be PURE" }
++    integer, dimension(t2%tbp()) :: table2 ! { dg-error "must be PURE" }
++  end subroutine proc
++  function p1_type()
++    integer :: p1_type
++    p1_type = 42
++  end function p1_type
++end module m2
++
++! { dg-final { cleanup-modules "m m2" } }
 Index: gcc/testsuite/gfortran.dg/actual_array_interface_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/actual_array_interface_2.f90     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/actual_array_interface_2.f90     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/actual_array_interface_2.f90     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +! { dg-do compile }
 +program gprogram
@@ -3983,7 +9111,7 @@ Index: gcc/testsuite/gfortran.dg/actual_array_interface_2.f90
 Index: gcc/testsuite/gfortran.dg/unexpected_interface.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/unexpected_interface.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/unexpected_interface.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/unexpected_interface.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,9 @@
 +! { dg-do compile }
 +! PR fortran/43592
@@ -3997,7 +9125,7 @@ Index: gcc/testsuite/gfortran.dg/unexpected_interface.f90
 Index: gcc/testsuite/gfortran.dg/pr43796.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/pr43796.f90      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr43796.f90      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/pr43796.f90      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,51 @@
 +! { dg-do compile }
 +! { dg-options "-O2 -fcheck=bounds" }
@@ -4053,7 +9181,7 @@ Index: gcc/testsuite/gfortran.dg/pr43796.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr43337.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr43337.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr43337.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr43337.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,30 @@
 +! PR middle-end/43337
 +! { dg-do compile }
@@ -4088,7 +9216,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr43337.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr44085.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr44085.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr44085.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr44085.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,25 @@
 +! PR middle-end/44085
 +! { dg-do compile }
@@ -4118,7 +9246,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr44085.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr43836.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr43836.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr43836.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr43836.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,10 @@
 +! PR fortran/43836
 +! { dg-do compile }
@@ -4132,8 +9260,8 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr43836.f90
 +end subroutine foo
 Index: gcc/testsuite/gfortran.dg/gomp/sharing-2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/gomp/sharing-2.f90       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gfortran.dg/gomp/sharing-2.f90       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gfortran.dg/gomp/sharing-2.f90       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/gomp/sharing-2.f90       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -28,14 +28,14 @@
    end do
  !$omp end single
@@ -4167,7 +9295,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/sharing-2.f90
 Index: gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/crayptr5.f90        (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/crayptr5.f90        (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/crayptr5.f90        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,27 @@
 +! { dg-do compile }
 +! { dg-options "-fopenmp -fcray-pointer" }
@@ -4199,7 +9327,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,24 @@
 +! PR fortran/44036
 +! { dg-do compile }
@@ -4228,7 +9356,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,17 @@
 +! PR fortran/44036
 +! { dg-do compile }
@@ -4250,7 +9378,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90
 Index: gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,13 @@
 +! PR fortran/44036
 +! { dg-do compile }
@@ -4268,7 +9396,7 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90
 Index: gcc/testsuite/gfortran.dg/proc_decl_23.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/proc_decl_23.f90 (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/proc_decl_23.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/proc_decl_23.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,43 @@
 +! { dg-do compile }
 +! Test the fix for PR43227, in which the lines below would segfault.
@@ -4313,10 +9441,32 @@ Index: gcc/testsuite/gfortran.dg/proc_decl_23.f90
 +  print *, char1 (["j","k","l"])
 +end
 +! { dg-final { cleanup-tree-dump "m_string" } }
+Index: gcc/testsuite/gfortran.dg/graphite/pr42326.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/graphite/pr42326.f90     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/graphite/pr42326.f90     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ ! { dg-do compile { target i?86-*-* x86_64-*-* } }
+ ! { dg-require-effective-target ilp32 }
++! { dg-require-effective-target sse2 }
+ ! { dg-options "-O2 -floop-strip-mine -fprefetch-loop-arrays -msse2" }
+ subroutine blts ( ldmx, ldmy, v, tmp1, i, j, k)
+Index: gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ ! { dg-do compile { target i?86-*-* x86_64-*-* } }
+ ! { dg-require-effective-target ilp32 }
++! { dg-require-effective-target sse2 }
+ ! { dg-options "-O2 -floop-parallelize-all -fprefetch-loop-arrays -msse2" }
+ subroutine phasad(t,i,ium)
 Index: gcc/testsuite/gfortran.dg/pr43793.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/pr43793.f90      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr43793.f90      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/pr43793.f90      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,23 @@
 +! { dg-do compile }
 +!
@@ -4343,8 +9493,8 @@ Index: gcc/testsuite/gfortran.dg/pr43793.f90
 +! { dg-final { cleanup-modules "fft_tools" } }
 Index: gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -9,4 +9,4 @@
    if (any(x /= (/ 5, 2, 3, 6, 5, 6, 7, 8, 9, 10 /))) call abort()
    x(8:1:m) = x(1:3) + x(5:2:n) 
@@ -4353,8 +9503,8 @@ Index: gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90
 +! { dg-output "line 10 .* bound mismatch .* dimension 1 .* array \'x\' \\\(2/3\\\)" }
 Index: gcc/testsuite/gfortran.dg/selected_char_kind_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/selected_char_kind_3.f90 (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gfortran.dg/selected_char_kind_3.f90 (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gfortran.dg/selected_char_kind_3.f90 (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/selected_char_kind_3.f90 (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -4,7 +4,7 @@
  ! Check that SELECTED_CHAR_KIND is rejected with -std=f95
  !
@@ -4366,8 +9516,8 @@ Index: gcc/testsuite/gfortran.dg/selected_char_kind_3.f90
  end
 Index: gcc/testsuite/gfortran.dg/intrinsic_std_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/intrinsic_std_1.f90      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gfortran.dg/intrinsic_std_1.f90      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gfortran.dg/intrinsic_std_1.f90      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/intrinsic_std_1.f90      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -20,7 +20,7 @@
    ! ASINH is an intrinsic of F2008
    ! The warning should be issued in the declaration above where it is declared
@@ -4380,7 +9530,7 @@ Index: gcc/testsuite/gfortran.dg/intrinsic_std_1.f90
 Index: gcc/testsuite/gfortran.dg/intrinsic_std_5.f03
 ===================================================================
 --- gcc/testsuite/gfortran.dg/intrinsic_std_5.f03      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/intrinsic_std_5.f03      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/intrinsic_std_5.f03      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,24 @@
 +! { dg-do compile }
 +! { dg-options "-std=f2003" }
@@ -4409,7 +9559,7 @@ Index: gcc/testsuite/gfortran.dg/intrinsic_std_5.f03
 Index: gcc/testsuite/gfortran.dg/abstract_type_6.f03
 ===================================================================
 --- gcc/testsuite/gfortran.dg/abstract_type_6.f03      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/abstract_type_6.f03      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/gfortran.dg/abstract_type_6.f03      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,53 @@
 +! { dg-do "compile" }
 +! Test the fix for PR43266, in which an ICE followed correct error messages.
@@ -4464,10 +9614,41 @@ Index: gcc/testsuite/gfortran.dg/abstract_type_6.f03
 +END SUBROUTINE bottom_c 
 +end module
 +! { dg-final { cleanup-modules "m" } }
+Index: gcc/testsuite/gfortran.dg/vect/vect.exp
+===================================================================
+--- gcc/testsuite/gfortran.dg/vect/vect.exp    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/vect/vect.exp    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 1997, 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -68,6 +68,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
+Index: gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,6 @@
+ ! { dg-do compile { target i?86-*-* x86_64-*-* } }
+ ! { dg-require-effective-target vect_double }
++! { dg-require-effective-target sse2 }
+ ! { dg-options "-O3 -ffast-math -msse2 -fpredictive-commoning -ftree-vectorize -fdump-tree-optimized" }
 Index: gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -9,4 +9,4 @@
    if (any(x /= (/ 2, 2, 3, 4, 5, 6, 6, 8, 9, 10 /))) call abort()
    x(8:1:m) = x(5:2:n) 
@@ -4477,7 +9658,7 @@ Index: gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90
 Index: gcc/testsuite/c-c++-common/asmgoto-4.c
 ===================================================================
 --- gcc/testsuite/c-c++-common/asmgoto-4.c     (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/c-c++-common/asmgoto-4.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/c-c++-common/asmgoto-4.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,44 @@
 +/* PR middle-end/44071 */
 +/* { dg-do compile } */
@@ -4526,7 +9707,7 @@ Index: gcc/testsuite/c-c++-common/asmgoto-4.c
 Index: gcc/testsuite/c-c++-common/pr43942.c
 ===================================================================
 --- gcc/testsuite/c-c++-common/pr43942.c       (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/testsuite/c-c++-common/pr43942.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/testsuite/c-c++-common/pr43942.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,33 @@
 +/* PR debug/43942 */
 +/* { dg-do compile } */
@@ -4563,8 +9744,8 @@ Index: gcc/testsuite/c-c++-common/pr43942.c
 +}
 Index: gcc/cp/typeck.c
 ===================================================================
---- gcc/cp/typeck.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/typeck.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/typeck.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/typeck.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1142,6 +1142,7 @@
  incompatible_dependent_types_p (tree t1, tree t2)
  {
@@ -4637,8 +9818,8 @@ Index: gcc/cp/typeck.c
        result_type = composite_pointer_type (type0, type1, op0, op1,
 Index: gcc/cp/except.c
 ===================================================================
---- gcc/cp/except.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/except.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/except.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/except.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -214,10 +214,10 @@
  static int
  dtor_nothrow (tree type)
@@ -4654,8 +9835,8 @@ Index: gcc/cp/except.c
    if (CLASSTYPE_LAZY_DESTRUCTOR (type))
 Index: gcc/cp/tree.c
 ===================================================================
---- gcc/cp/tree.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/tree.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/tree.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/tree.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2309,6 +2309,13 @@
        && same_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (current_class_ref)),
                      current_class_type))
@@ -4672,9 +9853,26 @@ Index: gcc/cp/tree.c
  
 Index: gcc/cp/ChangeLog
 ===================================================================
---- gcc/cp/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,77 @@
+--- gcc/cp/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,94 @@
++2010-05-19  Jason Merrill  <jason@redhat.com>
++
++      PR c++/44193
++      * pt.c (tsubst) [TYPENAME_TYPE]: Discard cv-quals on
++      function/reference type.
++
++      * call.c (struct z_candidate): Add explicit_targs field.
++      (add_template_candidate_real): Set it.
++      (build_over_call): Use it to control init-list warning.
++
++      PR c++/44157
++      * call.c (build_over_call): Limit init-list deduction warning to
++      cases where the argument is actually an init-list.
++
++      PR c++/44158
++      * call.c (build_over_call): Don't do bitwise copy for move ctor.
++
 +2010-05-14  Jason Merrill  <jason@redhat.com>
 +
 +      PR c++/44127
@@ -4754,8 +9952,8 @@ Index: gcc/cp/ChangeLog
        * GCC 4.5.0 released.
 Index: gcc/cp/cp-gimplify.c
 ===================================================================
---- gcc/cp/cp-gimplify.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/cp-gimplify.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/cp-gimplify.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/cp-gimplify.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -480,11 +480,16 @@
    tree stmt = *expr_p;
    tree temp = voidify_wrapper_expr (stmt, NULL);
@@ -4805,8 +10003,8 @@ Index: gcc/cp/cp-gimplify.c
        break;
 Index: gcc/cp/cxx-pretty-print.c
 ===================================================================
---- gcc/cp/cxx-pretty-print.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/cxx-pretty-print.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/cxx-pretty-print.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/cxx-pretty-print.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1275,6 +1275,17 @@
        pp_cxx_right_paren (pp);
        break;
@@ -4827,8 +10025,8 @@ Index: gcc/cp/cxx-pretty-print.c
        pp_c_specifier_qualifier_list (pp_c_base (pp), t);
 Index: gcc/cp/pt.c
 ===================================================================
---- gcc/cp/pt.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/pt.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/pt.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/pt.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1563,6 +1563,12 @@
        val = iterative_hash_template_arg (TREE_TYPE (arg), val);
        return iterative_hash_template_arg (TYPE_DOMAIN (arg), val);
@@ -4862,7 +10060,33 @@ Index: gcc/cp/pt.c
      }
  
    if (type == error_mark_node)
-@@ -15923,12 +15931,13 @@
+@@ -10460,6 +10468,7 @@
+                                    in_decl, /*entering_scope=*/1);
+       tree f = tsubst_copy (TYPENAME_TYPE_FULLNAME (t), args,
+                             complain, in_decl);
++      int quals;
+       if (ctx == error_mark_node || f == error_mark_node)
+         return error_mark_node;
+@@ -10510,8 +10519,15 @@
+                    t, f);
+         }
+-      return cp_build_qualified_type_real
+-        (f, cp_type_quals (f) | cp_type_quals (t), complain);
++      /* cv-quals from the template are discarded when
++         substituting in a function or reference type.  */
++      if (TREE_CODE (f) == FUNCTION_TYPE
++          || TREE_CODE (f) == METHOD_TYPE
++          || TREE_CODE (f) == REFERENCE_TYPE)
++        quals = cp_type_quals (f);
++      else
++        quals = cp_type_quals (f) | cp_type_quals (t);
++      return cp_build_qualified_type_real (f, quals, complain);
+       }
+     case UNBOUND_CLASS_TEMPLATE:
+@@ -15923,12 +15939,13 @@
        tree parms = TREE_VALUE (t);
  
        partial_spec_args = CLASSTYPE_TI_ARGS (TREE_TYPE (t));
@@ -4878,7 +10102,7 @@ Index: gcc/cp/pt.c
          /* Discard the outer levels of args, and then substitute in the
             template args from the enclosing class.  */
          partial_spec_args = INNERMOST_TEMPLATE_ARGS (partial_spec_args);
-@@ -15945,7 +15954,6 @@
+@@ -15945,7 +15962,6 @@
            TREE_VEC_ELT (parms, i) =
              tsubst (TREE_VEC_ELT (parms, i), outer_args, tf_none, NULL_TREE);
  
@@ -4886,7 +10110,7 @@ Index: gcc/cp/pt.c
        }
  
        partial_spec_args =
-@@ -15956,6 +15964,8 @@
+@@ -15956,6 +15972,8 @@
                                 /*require_all_args=*/true,
                                 /*use_default_args=*/true);
  
@@ -4897,8 +10121,8 @@ Index: gcc/cp/pt.c
  
 Index: gcc/cp/semantics.c
 ===================================================================
---- gcc/cp/semantics.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/semantics.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/semantics.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/semantics.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3449,7 +3449,9 @@
         this function as needed so that finish_file will make sure to
         output it later.  Similarly, all dllexport'd functions must
@@ -4972,8 +10196,8 @@ Index: gcc/cp/semantics.c
    finish_compound_stmt (compound_stmt);
 Index: gcc/cp/parser.c
 ===================================================================
---- gcc/cp/parser.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/parser.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/parser.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/parser.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7081,6 +7081,10 @@
    LAMBDA_EXPR_LOCATION (lambda_expr)
      = cp_lexer_peek_token (parser->lexer)->location;
@@ -4987,9 +10211,86 @@ Index: gcc/cp/parser.c
    push_deferring_access_checks (dk_no_deferred);
 Index: gcc/cp/call.c
 ===================================================================
---- gcc/cp/call.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/call.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -5774,20 +5774,8 @@
+--- gcc/cp/call.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/call.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -447,6 +447,7 @@
+      indicated by the CONVERSION_PATH.  */
+   tree conversion_path;
+   tree template_decl;
++  tree explicit_targs;
+   candidate_warning *warnings;
+   z_candidate *next;
+ };
+@@ -2586,6 +2587,7 @@
+     cand->template_decl = build_template_info (tmpl, targs);
+   else
+     cand->template_decl = DECL_TEMPLATE_INFO (fn);
++  cand->explicit_targs = explicit_targs;
+   return cand;
+ }
+@@ -5638,6 +5640,7 @@
+        parm = TREE_CHAIN (parm), ++arg_index, ++i)
+     {
+       tree type = TREE_VALUE (parm);
++      tree arg = VEC_index (tree, args, arg_index);
+       conv = convs[i];
+@@ -5652,7 +5655,8 @@
+       if (cxx_dialect > cxx98
+         && flag_deduce_init_list
+         && cand->template_decl
+-        && is_std_init_list (non_reference (type)))
++        && is_std_init_list (non_reference (type))
++        && BRACE_ENCLOSED_INITIALIZER_P (arg))
+       {
+         tree tmpl = TI_TEMPLATE (cand->template_decl);
+         tree realparm = chain_index (j, DECL_ARGUMENTS (cand->fn));
+@@ -5662,7 +5666,10 @@
+           pattype = PACK_EXPANSION_PATTERN (pattype);
+         pattype = non_reference (pattype);
+-        if (!is_std_init_list (pattype))
++        if (TREE_CODE (pattype) == TEMPLATE_TYPE_PARM
++            && (cand->explicit_targs == NULL_TREE
++                || (TREE_VEC_LENGTH (cand->explicit_targs)
++                    <= TEMPLATE_TYPE_IDX (pattype))))
+           {
+             pedwarn (input_location, 0, "deducing %qT as %qT",
+                      non_reference (TREE_TYPE (patparm)),
+@@ -5673,9 +5680,7 @@
+           }
+       }
+-      val = convert_like_with_context
+-      (conv, VEC_index (tree, args, arg_index), fn, i - is_method,
+-       complain);
++      val = convert_like_with_context (conv, arg, fn, i-is_method, complain);
+       val = convert_for_arg_passing (type, val);
+       if (val == error_mark_node)
+@@ -5747,7 +5752,8 @@
+       }
+       /* [class.copy]: the copy constructor is implicitly defined even if
+        the implementation elided its use.  */
+-      else if (TYPE_HAS_COMPLEX_INIT_REF (DECL_CONTEXT (fn)))
++      else if (TYPE_HAS_COMPLEX_INIT_REF (DECL_CONTEXT (fn))
++             || move_fn_p (fn))
+       {
+         mark_used (fn);
+         already_used = true;
+@@ -5765,7 +5771,8 @@
+       {
+         if (TREE_CODE (arg) == TARGET_EXPR)
+           return arg;
+-        else if (TYPE_HAS_TRIVIAL_INIT_REF (DECL_CONTEXT (fn)))
++        else if (TYPE_HAS_TRIVIAL_INIT_REF (DECL_CONTEXT (fn))
++                 && !move_fn_p (fn))
+           return build_target_expr_with_type (arg, DECL_CONTEXT (fn));
+       }
+       else if (TREE_CODE (arg) == TARGET_EXPR
+@@ -5774,20 +5781,8 @@
        {
          tree to = stabilize_reference (cp_build_indirect_ref (fa, RO_NULL,
                                                                complain));
@@ -5013,8 +10314,8 @@ Index: gcc/cp/call.c
      }
 Index: gcc/cp/cp-tree.h
 ===================================================================
---- gcc/cp/cp-tree.h   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/cp-tree.h   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/cp-tree.h   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/cp-tree.h   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -5204,6 +5204,7 @@
  extern tree add_default_capture                 (tree, tree, tree);
  extern void register_capture_members          (tree);
@@ -5025,8 +10326,8 @@ Index: gcc/cp/cp-tree.h
  /* in tree.c */
 Index: gcc/cp/name-lookup.c
 ===================================================================
---- gcc/cp/name-lookup.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cp/name-lookup.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cp/name-lookup.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cp/name-lookup.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3806,6 +3806,10 @@
    if (cp_unevaluated_operand && TREE_CODE (val) == FIELD_DECL
        && DECL_NORMAL_CAPTURE_P (val))
@@ -5040,8 +10341,8 @@ Index: gcc/cp/name-lookup.c
  
 Index: gcc/haifa-sched.c
 ===================================================================
---- gcc/haifa-sched.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/haifa-sched.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/haifa-sched.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/haifa-sched.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1695,6 +1695,7 @@
         sd_iterator_cond (&sd_it, &dep);)
        {
@@ -5067,8 +10368,8 @@ Index: gcc/haifa-sched.c
           expected to be released before backward deps.  */
 Index: gcc/tree-ssa-loop-ivopts.c
 ===================================================================
---- gcc/tree-ssa-loop-ivopts.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-ssa-loop-ivopts.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-ssa-loop-ivopts.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-ssa-loop-ivopts.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1537,17 +1537,19 @@
  
    if (mode != BLKmode)
@@ -5098,8 +10399,8 @@ Index: gcc/tree-ssa-loop-ivopts.c
    return false;
 Index: gcc/lto-streamer-out.c
 ===================================================================
---- gcc/lto-streamer-out.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/lto-streamer-out.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/lto-streamer-out.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/lto-streamer-out.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -517,8 +517,8 @@
    bp_pack_value (bp, TYPE_MODE (expr), 7);
    bp_pack_value (bp, TYPE_STRING_FLAG (expr), 1);
@@ -5133,11 +10434,38 @@ Index: gcc/lto-streamer-out.c
      lto_output_tree_or_ref (ob, TYPE_BINFO (expr), ref_p);
    lto_output_tree_or_ref (ob, TYPE_CONTEXT (expr), ref_p);
    lto_output_tree_or_ref (ob, TYPE_CANONICAL (expr), ref_p);
+@@ -1685,6 +1686,7 @@
+       lto_output_uleb128_stream (ob->main_stream, gimple_asm_ninputs (stmt));
+       lto_output_uleb128_stream (ob->main_stream, gimple_asm_noutputs (stmt));
+       lto_output_uleb128_stream (ob->main_stream, gimple_asm_nclobbers (stmt));
++      lto_output_uleb128_stream (ob->main_stream, gimple_asm_nlabels (stmt));
+       output_string (ob, ob->main_stream, gimple_asm_string (stmt));
+       /* Fallthru  */
 Index: gcc/config.in
 ===================================================================
---- gcc/config.in      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config.in      (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1661,6 +1661,12 @@
+--- gcc/config.in      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config.in      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -309,6 +309,18 @@
+ #endif
++/* Define if your assembler supports the .quad directive. */
++#ifndef USED_FOR_TARGET
++#undef HAVE_AS_IX86_QUAD
++#endif
++
++
++/* Define true if the assembler supports 'rep <insn>, lock <insn>'. */
++#ifndef USED_FOR_TARGET
++#undef HAVE_AS_IX86_REP_LOCK_PREFIX
++#endif
++
++
+ /* Define if your assembler supports the sahf mnemonic. */
+ #ifndef USED_FOR_TARGET
+ #undef HAVE_AS_IX86_SAHF
+@@ -1661,6 +1673,12 @@
  #endif
  
  
@@ -5152,8 +10480,8 @@ Index: gcc/config.in
  # undef _ALL_SOURCE
 Index: gcc/dwarf2out.c
 ===================================================================
---- gcc/dwarf2out.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/dwarf2out.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/dwarf2out.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/dwarf2out.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1040,7 +1040,7 @@
  
    cfi = new_cfi ();
@@ -5173,10 +10501,56 @@ Index: gcc/dwarf2out.c
      {
        /* Construct a "DW_CFA_def_cfa_register <register>" instruction,
         indicating the CFA register has changed to <register> but the
+Index: gcc/opts.c
+===================================================================
+--- gcc/opts.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/opts.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -616,24 +616,30 @@
+     {
+       if (lang_hooks.handle_option (opt_index, arg, value) == 0)
+       result = 0;
++#ifdef ENABLE_LTO
+       else
+       lto_register_user_option (opt_index, arg, value, lang_mask);
++#endif
+     }
+   if (result && (option->flags & CL_COMMON))
+     {
+       if (common_handle_option (opt_index, arg, value, lang_mask) == 0)
+       result = 0;
++#ifdef ENABLE_LTO
+       else
+       lto_register_user_option (opt_index, arg, value, CL_COMMON);
++#endif
+     }
+   if (result && (option->flags & CL_TARGET))
+     {
+       if (!targetm.handle_option (opt_index, arg, value))
+       result = 0;
++#ifdef ENABLE_LTO
+       else
+       lto_register_user_option (opt_index, arg, value, CL_TARGET);
++#endif
+     }
+  done:
+@@ -961,8 +967,10 @@
+       flag_unwind_tables = targetm.unwind_tables_default;
+     }
++#ifdef ENABLE_LTO
+   /* Clear any options currently held for LTO.  */
+   lto_clear_user_options ();
++#endif
+ #ifdef OPTIMIZATION_OPTIONS
+   /* Allow default optimizations to be specified on a per-machine basis.  */
 Index: gcc/unwind-dw2.c
 ===================================================================
---- gcc/unwind-dw2.c   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/unwind-dw2.c   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/unwind-dw2.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/unwind-dw2.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1473,7 +1473,8 @@
    context->ra = __builtin_extract_return_addr (outer_ra);
  }
@@ -5189,8 +10563,8 @@ Index: gcc/unwind-dw2.c
     for a debugger to intercept exceptions.  CFA is the CFA of the
 Index: gcc/ada/ChangeLog
 ===================================================================
---- gcc/ada/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/ada/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/ada/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/ada/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,8 @@
 +2010-04-25  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -5202,8 +10576,8 @@ Index: gcc/ada/ChangeLog
        * GCC 4.5.0 released.
 Index: gcc/ada/gcc-interface/trans.c
 ===================================================================
---- gcc/ada/gcc-interface/trans.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/ada/gcc-interface/trans.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/ada/gcc-interface/trans.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/ada/gcc-interface/trans.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -4563,10 +4563,12 @@
          gnu_result
            = build_binary_op (MODIFY_EXPR, NULL_TREE, gnu_lhs, gnu_rhs);
@@ -5221,9 +10595,17 @@ Index: gcc/ada/gcc-interface/trans.c
              tree to, from, size, to_ptr, from_ptr, t;
 Index: gcc/lto-streamer-in.c
 ===================================================================
---- gcc/lto-streamer-in.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/lto-streamer-in.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1768,8 +1768,8 @@
+--- gcc/lto-streamer-in.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/lto-streamer-in.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1047,6 +1047,7 @@
+       stmt->gimple_asm.ni = lto_input_uleb128 (ib);
+       stmt->gimple_asm.no = lto_input_uleb128 (ib);
+       stmt->gimple_asm.nc = lto_input_uleb128 (ib);
++      stmt->gimple_asm.nl = lto_input_uleb128 (ib);
+       str = input_string_cst (data_in, ib);
+       stmt->gimple_asm.string = TREE_STRING_POINTER (str);
+       }
+@@ -1768,8 +1769,8 @@
    SET_TYPE_MODE (expr, mode);
    TYPE_STRING_FLAG (expr) = (unsigned) bp_unpack_value (bp, 1);
    TYPE_NO_FORCE_BLK (expr) = (unsigned) bp_unpack_value (bp, 1);
@@ -5234,7 +10616,7 @@ Index: gcc/lto-streamer-in.c
      TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1);
    TYPE_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1);
    TYPE_RESTRICT (expr) = (unsigned) bp_unpack_value (bp, 1);
-@@ -2161,9 +2161,10 @@
+@@ -2161,9 +2162,10 @@
      TYPE_VALUES (expr) = lto_input_tree (ib, data_in);
    else if (TREE_CODE (expr) == ARRAY_TYPE)
      TYPE_DOMAIN (expr) = lto_input_tree (ib, data_in);
@@ -5249,8 +10631,8 @@ Index: gcc/lto-streamer-in.c
      TYPE_DEBUG_REPRESENTATION_TYPE (expr) = lto_input_tree (ib, data_in);
 Index: gcc/fortran/openmp.c
 ===================================================================
---- gcc/fortran/openmp.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/openmp.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/openmp.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/openmp.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,5 +1,5 @@
  /* OpenMP directive matching and resolving.
 -   Copyright (C) 2005, 2006, 2007, 2008
@@ -5312,8 +10694,8 @@ Index: gcc/fortran/openmp.c
  
 Index: gcc/fortran/interface.c
 ===================================================================
---- gcc/fortran/interface.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/interface.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/interface.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/interface.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1582,8 +1582,8 @@
          || sym->as->lower[i]->expr_type != EXPR_CONSTANT)
        return 0;
@@ -5327,8 +10709,8 @@ Index: gcc/fortran/interface.c
    return strlen*elements;
 Index: gcc/fortran/intrinsic.c
 ===================================================================
---- gcc/fortran/intrinsic.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/intrinsic.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/intrinsic.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/intrinsic.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -956,17 +956,14 @@
    /* See if this intrinsic is allowed in the current standard.  */
    if (gfc_check_intrinsic_standard (isym, &symstd, false, loc) == FAILURE)
@@ -5366,8 +10748,8 @@ Index: gcc/fortran/intrinsic.c
        }
 Index: gcc/fortran/trans-array.c
 ===================================================================
---- gcc/fortran/trans-array.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans-array.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans-array.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans-array.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2316,10 +2316,6 @@
        && se->loop->ss->loop_chain->expr->symtree)
      name = se->loop->ss->loop_chain->expr->symtree->name;
@@ -5443,8 +10825,8 @@ Index: gcc/fortran/trans-array.c
        }
 Index: gcc/fortran/gfortran.texi
 ===================================================================
---- gcc/fortran/gfortran.texi  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/gfortran.texi  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/gfortran.texi  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/gfortran.texi  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -181,7 +181,7 @@
  
  Part II: Language Reference
@@ -5508,8 +10890,8 @@ Index: gcc/fortran/gfortran.texi
  @c ---------------------------------------------------------------------
 Index: gcc/fortran/trans-openmp.c
 ===================================================================
---- gcc/fortran/trans-openmp.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans-openmp.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans-openmp.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans-openmp.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -57,7 +57,8 @@
        if (GFC_POINTER_TYPE_P (type))
        return false;
@@ -5538,9 +10920,16 @@ Index: gcc/fortran/trans-openmp.c
       contained in them.  If those are privatized, they will not be
 Index: gcc/fortran/ChangeLog
 ===================================================================
---- gcc/fortran/ChangeLog      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/ChangeLog      (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,95 @@
+--- gcc/fortran/ChangeLog      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/ChangeLog      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,102 @@
++2010-05-19  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/43591
++      * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
++      proc-pointers and type-bound procedures.
++      (gfc_specification_expr): Check proc-pointers for pureness.
++
 +2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
 +
 +      PR fortran/44135
@@ -5561,7 +10950,7 @@ Index: gcc/fortran/ChangeLog
 +
 +      PR fortran/40728
 +      * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
-+        as external.
++      as external.
 +
 +2010-05-06  Tobias Burnus  <burnus@net-b.de>
 +
@@ -5636,10 +11025,51 @@ Index: gcc/fortran/ChangeLog
  2010-04-14  Release Manager
  
        * GCC 4.5.0 released.
+Index: gcc/fortran/expr.c
+===================================================================
+--- gcc/fortran/expr.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/expr.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -782,6 +782,8 @@
+       break;
+     case EXPR_FUNCTION:
++    case EXPR_PPC:
++    case EXPR_COMPCALL:
+       /* Specification functions are constant.  */
+       if (check_specification_function (e) == MATCH_YES)
+       {
+@@ -2808,6 +2810,7 @@
+ gfc_try
+ gfc_specification_expr (gfc_expr *e)
+ {
++  gfc_component *comp;
+   if (e == NULL)
+     return SUCCESS;
+@@ -2822,7 +2825,9 @@
+   if (e->expr_type == EXPR_FUNCTION
+         && !e->value.function.isym
+         && !e->value.function.esym
+-        && !gfc_pure (e->symtree->n.sym))
++        && !gfc_pure (e->symtree->n.sym)
++        && (!gfc_is_proc_ptr_comp (e, &comp)
++            || !comp-> attr.pure))
+     {
+       gfc_error ("Function '%s' at %L must be PURE",
+                e->symtree->n.sym->name, &e->where);
+@@ -3560,6 +3565,8 @@
+   switch (expr->expr_type)
+     {
++    case EXPR_PPC:
++    case EXPR_COMPCALL:
+     case EXPR_FUNCTION:
+       for (args = expr->value.function.actual; args; args = args->next)
+       {
 Index: gcc/fortran/trans.c
 ===================================================================
---- gcc/fortran/trans.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -47,7 +47,6 @@
  
  static gfc_file *gfc_current_backend_file;
@@ -5650,8 +11080,8 @@ Index: gcc/fortran/trans.c
  
 Index: gcc/fortran/trans-types.c
 ===================================================================
---- gcc/fortran/trans-types.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans-types.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans-types.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans-types.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1793,6 +1793,9 @@
                                                restricted);
              byref = 0;
@@ -5673,8 +11103,8 @@ Index: gcc/fortran/trans-types.c
  
 Index: gcc/fortran/trans.h
 ===================================================================
---- gcc/fortran/trans.h        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans.h        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans.h        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans.h        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -771,7 +771,6 @@
  
  
@@ -5685,8 +11115,8 @@ Index: gcc/fortran/trans.h
  
 Index: gcc/fortran/resolve.c
 ===================================================================
---- gcc/fortran/resolve.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/resolve.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/resolve.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/resolve.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -10302,7 +10302,9 @@
      {
        gfc_symtree* overriding;
@@ -5725,8 +11155,8 @@ Index: gcc/fortran/resolve.c
        else if (sym->ts.interface->name[0] != '\0')
 Index: gcc/fortran/f95-lang.c
 ===================================================================
---- gcc/fortran/f95-lang.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/f95-lang.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/f95-lang.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/f95-lang.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,5 +1,5 @@
  /* gfortran backend interface
 -   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
@@ -5744,8 +11174,8 @@ Index: gcc/fortran/f95-lang.c
    implicit_built_in_decls[code] = decl;
 Index: gcc/fortran/trans-decl.c
 ===================================================================
---- gcc/fortran/trans-decl.c   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/trans-decl.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -3447,7 +3447,8 @@
        tree length;
  
@@ -5758,8 +11188,8 @@ Index: gcc/fortran/trans-decl.c
            rest_of_decl_compilation (length, 1, 0);
 Index: gcc/fortran/parse.c
 ===================================================================
---- gcc/fortran/parse.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/fortran/parse.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/fortran/parse.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/fortran/parse.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2235,9 +2235,9 @@
      {
        if (current_state == COMP_NONE)
@@ -5774,8 +11204,8 @@ Index: gcc/fortran/parse.c
          current_state = new_state;
 Index: gcc/configure.ac
 ===================================================================
---- gcc/configure.ac   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/configure.ac   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/configure.ac   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/configure.ac   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1552,6 +1552,14 @@
  [  --enable-secureplt      enable -msecure-plt by default for PowerPC],
  [], [])
@@ -5791,7 +11221,44 @@ Index: gcc/configure.ac
  AC_ARG_ENABLE(cld,
  [  --enable-cld            enable -mcld by default for 32bit x86], [],
  [enable_cld=no])
-@@ -2129,6 +2137,27 @@
+@@ -2117,7 +2125,35 @@
+ gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
+  [elf,2,13,0],,
+ [     .hidden foobar
+-foobar:])
++foobar:],[
++# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
++# STV_HIDDEN, so disable .hidden support if so.
++case "${target}" in
++  i?86-*-solaris2*)
++    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
++      cat > conftest.s <<EOF
++.globl hidden
++        .hidden hidden
++hidden:
++.globl default
++        .set    default,hidden
++EOF
++      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
++        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
++        grep '\.hidden default' > /dev/null; then
++        gcc_cv_as_hidden=no
++      else
++        gcc_cv_as_hidden=yes
++      fi
++    else
++      # Assume bug is present if objdump is missing.
++      gcc_cv_as_hidden=no
++    fi
++    ;;
++  *)
++    gcc_cv_as_hidden=yes
++    ;;
++esac])
+ changequote(,)dnl
+ if test $in_tree_ld != yes ; then
+@@ -2129,6 +2165,27 @@
      ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
      ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
      ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
@@ -5819,7 +11286,7 @@ Index: gcc/configure.ac
    fi
  fi
  changequote([,])dnl
-@@ -2167,6 +2196,8 @@
+@@ -2167,6 +2224,8 @@
        gcc_cv_ld_hidden=yes
        ;;
        *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
@@ -5828,7 +11295,7 @@ Index: gcc/configure.ac
          gcc_cv_ld_hidden=yes
        ;;
        *)
-@@ -2447,7 +2478,7 @@
+@@ -2447,7 +2506,7 @@
       && test $in_tree_ld_is_elf = yes; then
       comdat_group=yes
    fi
@@ -5837,7 +11304,7 @@ Index: gcc/configure.ac
    comdat_group=yes
    if test 0"$ld_date" -lt 20050308; then
      if test -n "$ld_date"; then
-@@ -2460,9 +2491,32 @@
+@@ -2460,9 +2519,32 @@
      fi
    fi
  else
@@ -5872,7 +11339,45 @@ Index: gcc/configure.ac
  if test $comdat_group = no; then
    gcc_cv_as_comdat_group=no
    gcc_cv_as_comdat_group_percent=no
-@@ -3741,7 +3795,8 @@
+@@ -3154,6 +3236,12 @@
+       [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
+         [Define if your assembler supports the ffreep mnemonic.])])
++    gcc_GAS_CHECK_FEATURE([.quad directive],
++      gcc_cv_as_ix86_quad,,,
++      [.quad 0],,
++      [AC_DEFINE(HAVE_AS_IX86_QUAD, 1,
++        [Define if your assembler supports the .quad directive.])])
++
+     gcc_GAS_CHECK_FEATURE([sahf mnemonic],
+       gcc_cv_as_ix86_sahf,,,
+       [sahf],,
+@@ -3178,7 +3266,7 @@
+       [AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
+         [Define if your assembler supports the subtraction of symbols in different sections.])])
+-    # This one is used unconditionally by i386.[ch]; it is to be defined
++    # These two are used unconditionally by i386.[ch]; it is to be defined
+     # to 1 if the feature is present, 0 otherwise.
+     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
+         gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
+@@ -3190,6 +3278,15 @@
+     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
+       [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
+       [Define true if the assembler supports '.long foo@GOTOFF'.])
++
++    gcc_GAS_CHECK_FEATURE([rep and lock prefix],
++        gcc_cv_as_ix86_rep_lock_prefix,,,
++      [rep movsl
++       lock orl $0, (%esp)])
++    AC_DEFINE_UNQUOTED(HAVE_AS_IX86_REP_LOCK_PREFIX,
++      [`if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`],
++      [Define true if the assembler supports 'rep <insn>, lock <insn>'.])
++
+     ;;
+   ia64*-*-*)
+@@ -3741,7 +3838,8 @@
      if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
         | grep "gc-sections option ignored" > /dev/null; then
        gcc_cv_ld_eh_gc_sections=no
@@ -5882,7 +11387,7 @@ Index: gcc/configure.ac
        gcc_cv_ld_eh_gc_sections=yes
        # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
        if test x$gcc_cv_as_comdat_group != xyes; then
-@@ -3768,7 +3823,8 @@
+@@ -3768,7 +3866,8 @@
          if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
               | grep "gc-sections option ignored" > /dev/null; then
            gcc_cv_ld_eh_gc_sections=no
@@ -5892,7 +11397,7 @@ Index: gcc/configure.ac
            gcc_cv_ld_eh_gc_sections=yes
          fi
        fi
-@@ -4390,10 +4446,13 @@
+@@ -4390,10 +4489,13 @@
      AC_MSG_CHECKING([for -rdynamic])
      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
      if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
@@ -5908,15 +11413,15 @@ Index: gcc/configure.ac
    # Check -ldl
 Index: gcc/BASE-VER
 ===================================================================
---- gcc/BASE-VER       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/BASE-VER       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/BASE-VER       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/BASE-VER       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1 +1 @@
 -4.5.0
 +4.5.1
 Index: gcc/alias.c
 ===================================================================
---- gcc/alias.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/alias.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/alias.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/alias.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2340,8 +2340,18 @@
    if (mem_mode == VOIDmode)
      mem_mode = GET_MODE (mem);
@@ -5979,8 +11484,8 @@ Index: gcc/alias.c
      {
 Index: gcc/ira-build.c
 ===================================================================
---- gcc/ira-build.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/ira-build.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/ira-build.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/ira-build.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1978,6 +1978,10 @@
                  merged_p = true;
                  ALLOCNO_LIVE_RANGES (a) = NULL;
@@ -5994,8 +11499,8 @@ Index: gcc/ira-build.c
            }
 Index: gcc/ipa.c
 ===================================================================
---- gcc/ipa.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/ipa.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/ipa.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/ipa.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -347,6 +347,21 @@
    return false;
  }
@@ -6059,8 +11564,8 @@ Index: gcc/ipa.c
                           && node->analyzed
 Index: gcc/gimplify.c
 ===================================================================
---- gcc/gimplify.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/gimplify.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/gimplify.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/gimplify.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -75,9 +75,10 @@
  enum omp_region_type
  {
@@ -6626,8 +12131,8 @@ Index: gcc/gimplify.c
        case TRUTH_ANDIF_EXPR:
 Index: gcc/cfgexpand.c
 ===================================================================
---- gcc/cfgexpand.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cfgexpand.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cfgexpand.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cfgexpand.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2563,13 +2563,14 @@
          if (bitpos < 0)
            return NULL;
@@ -6670,8 +12175,8 @@ Index: gcc/cfgexpand.c
  
 Index: gcc/tree-ssa-pre.c
 ===================================================================
---- gcc/tree-ssa-pre.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-ssa-pre.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-ssa-pre.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-ssa-pre.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2669,31 +2669,46 @@
      {
      case CALL_EXPR:
@@ -6784,38 +12289,54 @@ Index: gcc/tree-ssa-pre.c
                       genop2, genop3);
 Index: gcc/cfgcleanup.c
 ===================================================================
---- gcc/cfgcleanup.c   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cfgcleanup.c   (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1887,6 +1887,25 @@
+--- gcc/cfgcleanup.c   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cfgcleanup.c   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1887,6 +1887,41 @@
                      && single_succ_edge (ENTRY_BLOCK_PTR)->dest != b))
                {
                  c = b->prev_bb;
-+                if ((mode & CLEANUP_CFGLAYOUT)
-+                    && EDGE_COUNT (b->preds) > 0
-+                    && b->il.rtl->footer
-+                    && BARRIER_P (b->il.rtl->footer))
++                if (EDGE_COUNT (b->preds) > 0)
 +                  {
 +                    edge e;
 +                    edge_iterator ei;
 +
-+                    FOR_EACH_EDGE (e, ei, b->preds)
-+                      if (e->flags & EDGE_FALLTHRU)
-+                        {
-+                          if (e->src->il.rtl->footer == NULL)
-+                            {
-+                              e->src->il.rtl->footer = b->il.rtl->footer;
-+                              b->il.rtl->footer = NULL;
-+                            }
-+                          break;
-+                        }
++                    if (current_ir_type () == IR_RTL_CFGLAYOUT)
++                      {
++                        if (b->il.rtl->footer
++                            && BARRIER_P (b->il.rtl->footer))
++                          FOR_EACH_EDGE (e, ei, b->preds)
++                            if ((e->flags & EDGE_FALLTHRU)
++                                && e->src->il.rtl->footer == NULL)
++                              {
++                                if (b->il.rtl->footer)
++                                  {
++                                    e->src->il.rtl->footer = b->il.rtl->footer;
++                                    b->il.rtl->footer = NULL;
++                                  }
++                                else
++                                  {
++                                    start_sequence ();
++                                    e->src->il.rtl->footer = emit_barrier ();
++                                    end_sequence ();
++                                  }
++                              }
++                      }
++                    else
++                      {
++                        rtx last = get_last_bb_insn (b);
++                        if (last && BARRIER_P (last))
++                          FOR_EACH_EDGE (e, ei, b->preds)
++                            if ((e->flags & EDGE_FALLTHRU))
++                              emit_barrier_after (BB_END (e->src));
++                      }
 +                  }
                  delete_basic_block (b);
                  if (!(mode & CLEANUP_CFGLAYOUT))
                    changed = true;
 Index: gcc/tree-sra.c
 ===================================================================
---- gcc/tree-sra.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-sra.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-sra.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-sra.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -182,6 +182,10 @@
       access tree.  */
    unsigned grp_read : 1;
@@ -6941,8 +12462,8 @@ Index: gcc/tree-sra.c
  
 Index: gcc/cfglayout.c
 ===================================================================
---- gcc/cfglayout.c    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cfglayout.c    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cfglayout.c    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cfglayout.c    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,5 +1,5 @@
  /* Basic block reordering routines for the GNU compiler.
 -   Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
@@ -6950,7 +12471,17 @@ Index: gcc/cfglayout.c
     Free Software Foundation, Inc.
  
  This file is part of GCC.
-@@ -861,8 +861,11 @@
+@@ -793,7 +793,8 @@
+                to prevent rtl_verify_flow_info from complaining.  */
+             if (!e_fall)
+               {
+-                gcc_assert (!onlyjump_p (bb_end_insn));
++                gcc_assert (!onlyjump_p (bb_end_insn)
++                            || returnjump_p (bb_end_insn));
+                 bb->il.rtl->footer = emit_barrier_after (bb_end_insn);
+                 continue;
+               }
+@@ -861,8 +862,11 @@
            }
          else if (extract_asm_operands (PATTERN (bb_end_insn)) != NULL)
            {
@@ -6966,8 +12497,8 @@ Index: gcc/cfglayout.c
  
 Index: gcc/po/es.po
 ===================================================================
---- gcc/po/es.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/es.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/es.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/es.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,4 @@
 -# Mensajes en español para gcc-4.5-b20100204
 +# Mensajes en español para gcc-4.5.0
@@ -30964,8 +36495,8 @@ Index: gcc/po/es.po
  
 Index: gcc/po/fr.po
 ===================================================================
---- gcc/po/fr.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/fr.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/fr.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/fr.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -121,7 +121,7 @@
  msgstr ""
  "Project-Id-Version: GNU gcc 3.4.3\n"
@@ -55069,8 +60600,8 @@ Index: gcc/po/fr.po
  
 Index: gcc/po/nl.po
 ===================================================================
---- gcc/po/nl.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/nl.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/nl.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/nl.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7,7 +7,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.3.0\n"
@@ -79214,8 +84745,8 @@ Index: gcc/po/nl.po
  
 Index: gcc/po/ChangeLog
 ===================================================================
---- gcc/po/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,24 @@
 +2010-05-01  Joseph Myers  <joseph@codesourcery.com>
 +
@@ -79243,8 +84774,8 @@ Index: gcc/po/ChangeLog
        * GCC 4.5.0 released.
 Index: gcc/po/da.po
 ===================================================================
---- gcc/po/da.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/da.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/da.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/da.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -128,7 +128,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.4-b20040206\n"
@@ -103394,8 +108925,8 @@ Index: gcc/po/da.po
  
 Index: gcc/po/sr.po
 ===================================================================
---- gcc/po/sr.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/sr.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/sr.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/sr.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.2.1\n"
@@ -127452,8 +132983,8 @@ Index: gcc/po/sr.po
  
 Index: gcc/po/tr.po
 ===================================================================
---- gcc/po/tr.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/tr.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/tr.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/tr.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.1.1\n"
@@ -151529,8 +157060,8 @@ Index: gcc/po/tr.po
  
 Index: gcc/po/be.po
 ===================================================================
---- gcc/po/be.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/be.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/be.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/be.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.1\n"
@@ -175471,8 +181002,8 @@ Index: gcc/po/be.po
  msgstr "паўторнае абвяшчэнне меткі \"%s\""
 Index: gcc/po/ru.po
 ===================================================================
---- gcc/po/ru.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/ru.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/ru.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/ru.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -9,7 +9,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.3.0\n"
@@ -199499,8 +205030,8 @@ Index: gcc/po/ru.po
  #~ msgstr "присваивание элементу %qD, доступному только на чтение"
 Index: gcc/po/sv.po
 ===================================================================
---- gcc/po/sv.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/sv.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/sv.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/sv.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,71 +8,72 @@
  #
  msgid ""
@@ -224978,8 +230509,8 @@ Index: gcc/po/sv.po
 +msgstr "ogiltig elementtyp för attributet %qs"
 Index: gcc/po/de.po
 ===================================================================
---- gcc/po/de.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/de.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/de.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/de.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.3.0\n"
@@ -249047,8 +254578,8 @@ Index: gcc/po/de.po
  
 Index: gcc/po/ja.po
 ===================================================================
---- gcc/po/ja.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/ja.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/ja.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/ja.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.0\n"
@@ -273138,8 +278669,8 @@ Index: gcc/po/ja.po
  
 Index: gcc/po/zh_TW.po
 ===================================================================
---- gcc/po/zh_TW.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/zh_TW.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/zh_TW.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/zh_TW.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.1.0\n"
@@ -297159,8 +302690,8 @@ Index: gcc/po/zh_TW.po
  
 Index: gcc/po/id.po
 ===================================================================
---- gcc/po/id.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/id.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/id.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/id.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7,7 +7,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.4.1\n"
@@ -321184,8 +326715,8 @@ Index: gcc/po/id.po
  
 Index: gcc/po/fi.po
 ===================================================================
---- gcc/po/fi.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/fi.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/fi.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/fi.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -26,7 +26,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.5-b20091203\n"
@@ -345161,8 +350692,8 @@ Index: gcc/po/fi.po
  #~ msgstr "puuttuva %<(%> ilmaisun %<#pragma pack%> jälkeen - jätetään huomiotta"
 Index: gcc/po/el.po
 ===================================================================
---- gcc/po/el.po       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/el.po       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/el.po       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/el.po       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 4.0-b20041128\n"
@@ -369213,8 +374744,8 @@ Index: gcc/po/el.po
  
 Index: gcc/po/zh_CN.po
 ===================================================================
---- gcc/po/zh_CN.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/po/zh_CN.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/po/zh_CN.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/po/zh_CN.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -5,10 +5,10 @@
  #
  msgid ""
@@ -393171,8 +398702,8 @@ Index: gcc/po/zh_CN.po
  
 Index: gcc/c-omp.c
 ===================================================================
---- gcc/c-omp.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/c-omp.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/c-omp.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/c-omp.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,7 +1,7 @@
  /* This file contains routines to construct GNU OpenMP constructs,
     called from parsing in the C and C++ front ends.
@@ -393219,8 +398750,8 @@ Index: gcc/c-omp.c
                }
 Index: gcc/tree-nested.c
 ===================================================================
---- gcc/tree-nested.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-nested.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-nested.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-nested.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,5 +1,5 @@
  /* Nested function decomposition for GIMPLE.
 -   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
@@ -393240,8 +398771,8 @@ Index: gcc/tree-nested.c
  
 Index: gcc/tree-inline.c
 ===================================================================
---- gcc/tree-inline.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-inline.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-inline.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-inline.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -651,6 +651,7 @@
  copy_bind_expr (tree *tp, int *walk_subtrees, copy_body_data *id)
  {
@@ -393275,10 +398806,37 @@ Index: gcc/tree-inline.c
  }
  
  
+@@ -5066,7 +5079,7 @@
+       return false;
+     }
+ #endif
+-  tree caller, callee;
++  tree caller, callee, lhs;
+   caller = e->caller->decl;
+   callee = e->callee->decl;
+@@ -5092,8 +5105,16 @@
+       return false;
+     }
++  /* Do not inline calls where we cannot triviall work around mismatches
++     in argument or return types.  */
+   if (e->call_stmt
+-      && !gimple_check_call_args (e->call_stmt))
++      && ((DECL_RESULT (callee)
++         && !DECL_BY_REFERENCE (DECL_RESULT (callee))
++         && (lhs = gimple_call_lhs (e->call_stmt)) != NULL_TREE
++         && !useless_type_conversion_p (TREE_TYPE (DECL_RESULT (callee)),
++                                        TREE_TYPE (lhs))
++         && !fold_convertible_p (TREE_TYPE (DECL_RESULT (callee)), lhs))
++        || !gimple_check_call_args (e->call_stmt)))
+     {
+       e->inline_failed = CIF_MISMATCHED_ARGUMENTS;
+       gimple_call_set_cannot_inline (e->call_stmt, true);
 Index: gcc/c-common.c
 ===================================================================
---- gcc/c-common.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/c-common.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/c-common.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/c-common.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6665,10 +6665,12 @@
      }
    else if (is_type)
@@ -393305,9 +398863,30 @@ Index: gcc/c-common.c
        TYPE_ALIGN (*type) = (1U << i) * BITS_PER_UNIT;
 Index: gcc/config.gcc
 ===================================================================
---- gcc/config.gcc     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config.gcc     (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1246,6 +1246,9 @@
+--- gcc/config.gcc     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config.gcc     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1238,7 +1238,19 @@
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
+       # Set default arch_32 to pentium4, tune_32 to generic like the other
+       # i386 targets, although config.guess defaults to i386-pc-solaris2*.
+-      with_arch_32=${with_arch_32:-pentium4}
++      case ${target} in
++      *-*-solaris2.8*)
++              if test x$gas = xyes; then
++                      with_arch_32=${with_arch_32:-pentium4}
++              else
++                      # Solaris 8/x86 as cannot handle sse2.
++                      with_arch_32=${with_arch_32:-pentiumpro}
++              fi
++              ;;
++      *)
++              with_arch_32=${with_arch_32:-pentium4}
++              ;;
++      esac
+       with_tune_32=${with_tune_32:-generic}
+       case ${target} in
+       *-*-solaris2.1[0-9]*)
+@@ -1246,6 +1258,9 @@
                ;;
        esac
        tm_file="${tm_file} i386/sol2.h"
@@ -393317,7 +398896,7 @@ Index: gcc/config.gcc
        if test x$gas = xyes; then
                tm_file="${tm_file} i386/sol2-gas.h"
        fi
-@@ -1704,7 +1707,7 @@
+@@ -1704,7 +1719,7 @@
        esac
        if test "x$stabs" = xyes
        then
@@ -393326,7 +398905,7 @@ Index: gcc/config.gcc
        fi
        if test "x$gnu_ld" = xyes
        then
-@@ -2412,7 +2415,7 @@
+@@ -2412,7 +2427,7 @@
                tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
        fi
        if test x$gnu_ld = xyes; then
@@ -393335,7 +398914,7 @@ Index: gcc/config.gcc
        fi
        tm_file="${tm_file} tm-dwarf2.h"
        tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm"
-@@ -3408,7 +3411,9 @@
+@@ -3408,7 +3423,9 @@
        i[34567]86-*-darwin* | x86_64-*-darwin*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
@@ -393348,8 +398927,8 @@ Index: gcc/config.gcc
        i[34567]86-*-solaris2*)
 Index: gcc/tlink.c
 ===================================================================
---- gcc/tlink.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tlink.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tlink.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tlink.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -32,6 +32,10 @@
  #include "collect2.h"
  #include "libiberty.h"
@@ -393363,8 +398942,8 @@ Index: gcc/tlink.c
  /* Defined in the automatically-generated underscore.c.  */
 Index: gcc/reginfo.c
 ===================================================================
---- gcc/reginfo.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/reginfo.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/reginfo.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/reginfo.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -666,6 +666,8 @@
  reinit_regs (void)
  {
@@ -393374,10 +398953,23 @@ Index: gcc/reginfo.c
    ira_init ();
  }
  
+Index: gcc/Makefile.in
+===================================================================
+--- gcc/Makefile.in    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/Makefile.in    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2696,7 +2696,7 @@
+    coretypes.h $(TREE_H) $(TM_H) langhooks.h $(GGC_H) $(EXPR_H) $(RTL_H) \
+    output.h $(DIAGNOSTIC_H) $(TM_P_H) $(INSN_ATTR_H) intl.h $(TARGET_H) \
+    $(FLAGS_H) $(PARAMS_H) $(TREE_PASS_H) $(DBGCNT_H) debug.h varray.h \
+-   $(PLUGIN_H) $(EXCEPT_H)
++   $(PLUGIN_H) $(EXCEPT_H) $(LTO_STREAMER_H)
+ opts-common.o : opts-common.c opts.h $(CONFIG_H) $(SYSTEM_H) \
+    coretypes.h intl.h
+ targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
 Index: gcc/gimple.c
 ===================================================================
---- gcc/gimple.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/gimple.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/gimple.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/gimple.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -281,6 +281,7 @@
    gimple_call_set_return_slot_opt (call, CALL_EXPR_RETURN_SLOT_OPT (t));
    gimple_call_set_from_thunk (call, CALL_FROM_THUNK_P (t));
@@ -393405,10 +398997,101 @@ Index: gcc/gimple.c
    return flags;
  }
  
+@@ -4559,7 +4563,8 @@
+ const char *
+ gimple_decl_printable_name (tree decl, int verbosity)
+ {
+-  gcc_assert (decl && DECL_NAME (decl));
++  if (!DECL_NAME (decl))
++    return NULL;
+   if (DECL_ASSEMBLER_NAME_SET_P (decl))
+     {
+Index: gcc/tree-ssa-structalias.c
+===================================================================
+--- gcc/tree-ssa-structalias.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -2803,7 +2803,11 @@
+ static bool
+ could_have_pointers (tree t)
+ {
+-  return type_could_have_pointers (TREE_TYPE (t));
++  return (((TREE_CODE (t) == VAR_DECL
++          || TREE_CODE (t) == PARM_DECL
++          || TREE_CODE (t) == RESULT_DECL)
++         && (TREE_PUBLIC (t) || DECL_EXTERNAL (t) || TREE_ADDRESSABLE (t)))
++        || type_could_have_pointers (TREE_TYPE (t)));
+ }
+ /* Return the position, in bits, of FIELD_DECL from the beginning of its
+@@ -3889,7 +3893,7 @@
+      operations with pointer result, others are dealt with as escape
+      points if they have pointer operands.  */
+   else if (is_gimple_assign (t)
+-         && could_have_pointers (gimple_assign_lhs (t)))
++         && type_could_have_pointers (TREE_TYPE (gimple_assign_lhs (t))))
+     {
+       /* Otherwise, just a regular assignment statement.  */
+       tree lhsop = gimple_assign_lhs (t);
+@@ -4204,7 +4208,7 @@
+ static int
+ push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack,
+-                           HOST_WIDE_INT offset)
++                           HOST_WIDE_INT offset, bool must_have_pointers_p)
+ {
+   tree field;
+   int count = 0;
+@@ -4230,7 +4234,8 @@
+           || TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
+         push = true;
+       else if (!(pushed = push_fields_onto_fieldstack
+-                 (TREE_TYPE (field), fieldstack, offset + foff))
++                 (TREE_TYPE (field), fieldstack, offset + foff,
++                  must_have_pointers_p))
+                && (DECL_SIZE (field)
+                    && !integer_zerop (DECL_SIZE (field))))
+         /* Empty structures may have actual size, like in C++.  So
+@@ -4253,10 +4258,11 @@
+           /* If adjacent fields do not contain pointers merge them.  */
+           if (pair
+               && !pair->may_have_pointers
+-              && !could_have_pointers (field)
+               && !pair->has_unknown_size
+               && !has_unknown_size
+-              && pair->offset + (HOST_WIDE_INT)pair->size == offset + foff)
++              && pair->offset + (HOST_WIDE_INT)pair->size == offset + foff
++              && !must_have_pointers_p
++              && !could_have_pointers (field))
+             {
+               pair = VEC_last (fieldoff_s, *fieldstack);
+               pair->size += TREE_INT_CST_LOW (DECL_SIZE (field));
+@@ -4270,7 +4276,8 @@
+                 pair->size = TREE_INT_CST_LOW (DECL_SIZE (field));
+               else
+                 pair->size = -1;
+-              pair->may_have_pointers = could_have_pointers (field);
++              pair->may_have_pointers
++                = must_have_pointers_p || could_have_pointers (field);
+               pair->only_restrict_pointers
+                 = (!has_unknown_size
+                    && POINTER_TYPE_P (TREE_TYPE (field))
+@@ -4436,7 +4443,10 @@
+   VEC (fieldoff_s,heap) *fieldstack = NULL;
+   if (var_can_have_subvars (decl) && use_field_sensitive)
+-    push_fields_onto_fieldstack (decl_type, &fieldstack, 0);
++    push_fields_onto_fieldstack (decl_type, &fieldstack, 0,
++                               TREE_PUBLIC (decl)
++                               || DECL_EXTERNAL (decl)
++                               || TREE_ADDRESSABLE (decl));
+   /* If the variable doesn't have subvars, we may end up needing to
+      sort the field list and create fake variables for all the
 Index: gcc/gimple.h
 ===================================================================
---- gcc/gimple.h       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/gimple.h       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/gimple.h       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/gimple.h       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -105,6 +105,7 @@
      GF_CALL_RETURN_SLOT_OPT   = 1 << 2,
      GF_CALL_TAILCALL          = 1 << 3,
@@ -393451,10 +399134,30 @@ Index: gcc/gimple.h
  /* Return true if S is a nothrow call.  */
  
  static inline bool
+Index: gcc/passes.c
+===================================================================
+--- gcc/passes.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/passes.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -742,6 +742,7 @@
+   /* Interprocedural optimization passes.  */
+   p = &all_small_ipa_passes;
++  NEXT_PASS (pass_ipa_free_lang_data);
+   NEXT_PASS (pass_ipa_function_and_variable_visibility);
+   NEXT_PASS (pass_ipa_early_inline);
+     {
+@@ -750,7 +751,6 @@
+       NEXT_PASS (pass_inline_parameters);
+       NEXT_PASS (pass_rebuild_cgraph_edges);
+     }
+-  NEXT_PASS (pass_ipa_free_lang_data);
+   NEXT_PASS (pass_early_local_passes);
+     {
+       struct opt_pass **p = &pass_early_local_passes.pass.sub;
 Index: gcc/config/alpha/elf.h
 ===================================================================
---- gcc/config/alpha/elf.h     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/alpha/elf.h     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/alpha/elf.h     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/alpha/elf.h     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -272,20 +272,36 @@
  
  /* Write the extra assembler code needed to declare an object properly.  */
@@ -393507,8 +399210,8 @@ Index: gcc/config/alpha/elf.h
  /* Output the size directive for a decl in rest_of_decl_compilation
 Index: gcc/config/alpha/osf.h
 ===================================================================
---- gcc/config/alpha/osf.h     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/alpha/osf.h     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/alpha/osf.h     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/alpha/osf.h     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -213,6 +213,14 @@
     ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
     : DW_EH_PE_aligned)
@@ -393526,8 +399229,8 @@ Index: gcc/config/alpha/osf.h
  #define ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, VALUE)      \
 Index: gcc/config/s390/s390.c
 ===================================================================
---- gcc/config/s390/s390.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/s390/s390.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/s390/s390.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/s390/s390.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1636,12 +1636,19 @@
      target_flags |= MASK_LONG_DOUBLE_128;
  #endif
@@ -393585,8 +399288,8 @@ Index: gcc/config/s390/s390.c
        /* Unless we can use the bras(l) insn, force the
 Index: gcc/config/sparc/sol2-gld.h
 ===================================================================
---- gcc/config/sparc/sol2-gld.h        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/sparc/sol2-gld.h        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/sparc/sol2-gld.h        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/sparc/sol2-gld.h        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,27 +0,0 @@
 -/* Definitions of target machine for GCC, for SPARC running Solaris 2
 -   using the GNU linker.
@@ -393617,8 +399320,8 @@ Index: gcc/config/sparc/sol2-gld.h
 -#define SUPPORTS_INIT_PRIORITY 1
 Index: gcc/config/i386/i386.h
 ===================================================================
---- gcc/config/i386/i386.h     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/i386.h     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/i386.h     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/i386.h     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2147,9 +2147,12 @@
  /* Switch to init or fini section via SECTION_OP, emit a call to FUNC,
     and switch back.  For x86 we do this only to save a few bytes that
@@ -393637,8 +399340,8 @@ Index: gcc/config/i386/i386.h
  /* Print operand X (an rtx) in assembler syntax to file FILE.
 Index: gcc/config/i386/cygming.h
 ===================================================================
---- gcc/config/i386/cygming.h  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/cygming.h  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/cygming.h  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/cygming.h  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -39,6 +39,11 @@
  #undef DEFAULT_ABI
  #define DEFAULT_ABI (TARGET_64BIT ? MS_ABI : SYSV_ABI)
@@ -393653,8 +399356,8 @@ Index: gcc/config/i386/cygming.h
    (TARGET_64BIT ? dbx64_register_map[n]                       \
 Index: gcc/config/i386/i386.md
 ===================================================================
---- gcc/config/i386/i386.md    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/i386.md    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/i386.md    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/i386.md    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8010,7 +8010,7 @@
     (clobber (reg:CC FLAGS_REG))]
    ""
@@ -393689,10 +399392,154 @@ Index: gcc/config/i386/i386.md
  #endif
  }
    [(set_attr "prefix_rep" "1")
+@@ -17753,7 +17753,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movsq"
++  "rep{%;} movsq"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -17772,7 +17772,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "!TARGET_64BIT"
+-  "rep movs{l|d}"
++  "rep{%;} movs{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -17791,7 +17791,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movs{l|d}"
++  "rep{%;} movs{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -17808,7 +17808,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "!TARGET_64BIT"
+-  "rep movsb"
++  "rep{%;} movsb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -17825,7 +17825,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movsb"
++  "rep{%;} movsb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -18006,7 +18006,7 @@
+    (use (match_operand:DI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stosq"
++  "rep{%;} stosq"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -18023,7 +18023,7 @@
+    (use (match_operand:SI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "!TARGET_64BIT"
+-  "rep stos{l|d}"
++  "rep{%;} stos{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -18040,7 +18040,7 @@
+    (use (match_operand:SI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stos{l|d}"
++  "rep{%;} stos{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -18056,7 +18056,7 @@
+    (use (match_operand:QI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "!TARGET_64BIT"
+-  "rep stosb"
++  "rep{%;} stosb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -18072,7 +18072,7 @@
+    (use (match_operand:QI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stosb"
++  "rep{%;} stosb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -18188,7 +18188,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (match_operand:SI 2 "register_operand" "=c"))]
+   "!TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -18203,7 +18203,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (match_operand:DI 2 "register_operand" "=c"))]
+   "TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rex" "0")
+@@ -18239,7 +18239,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (match_operand:SI 2 "register_operand" "=c"))]
+   "!TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -18257,7 +18257,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (match_operand:DI 2 "register_operand" "=c"))]
+   "TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rex" "0")
+@@ -18305,7 +18305,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (reg:CC FLAGS_REG))]
+   "!TARGET_64BIT"
+-  "repnz scasb"
++  "repnz{%;} scasb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -18319,7 +18319,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_64BIT"
+-  "repnz scasb"
++  "repnz{%;} scasb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rex" "0")
 Index: gcc/config/i386/mingw-w64.h
 ===================================================================
---- gcc/config/i386/mingw-w64.h        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/mingw-w64.h        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/mingw-w64.h        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/mingw-w64.h        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -39,6 +39,8 @@
  #define ASM_SPEC "%{v:-v} %{n} %{T} %{Ym,*} %{Yd,*} \
   %{Wa,*:%*} %{m32:--32} %{m64:--64}"
@@ -393731,10 +399578,35 @@ Index: gcc/config/i386/mingw-w64.h
 -  %{shared|mdll: -e _DllMainCRTStartup@12 --enable-auto-image-base} \
 +  %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \
    %(shared_libgcc_undefs)"
+Index: gcc/config/i386/sol2.h
+===================================================================
+--- gcc/config/i386/sol2.h     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/sol2.h     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -72,7 +72,7 @@
+ #define LOCAL_LABEL_PREFIX "."
+ /* The 32-bit Solaris assembler does not support .quad.  Do not use it.  */
+-#ifndef TARGET_BI_ARCH
++#ifndef HAVE_AS_IX86_QUAD
+ #undef ASM_QUAD
+ #endif
+@@ -96,11 +96,6 @@
+ #undef TARGET_SUN_TLS
+ #define TARGET_SUN_TLS 1
+-/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS
+-   syntax.  */
+-#undef TARGET_SUN_TLS
+-#define TARGET_SUN_TLS 1
+-
+ /* The Sun assembler uses .tcomm for TLS common sections.  */
+ #define TLS_COMMON_ASM_OP ".tcomm"
 Index: gcc/config/i386/sse.md
 ===================================================================
---- gcc/config/i386/sse.md     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/sse.md     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/sse.md     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/sse.md     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1483,6 +1483,20 @@
     (set_attr "length_immediate" "1")
     (set_attr "mode" "<MODE>")])
@@ -393758,8 +399630,8 @@ Index: gcc/config/i386/sse.md
        (vec_merge:SSEMODEF2P
 Index: gcc/config/i386/mingw32.h
 ===================================================================
---- gcc/config/i386/mingw32.h  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/mingw32.h  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/mingw32.h  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/mingw32.h  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -47,6 +47,22 @@
      }                                                         \
    while (0)
@@ -393803,10 +399675,104 @@ Index: gcc/config/i386/mingw32.h
    %(shared_libgcc_undefs)"
  
  /* Include in the mingw32 libraries with libgcc */
+Index: gcc/config/i386/sync.md
+===================================================================
+--- gcc/config/i386/sync.md    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/sync.md    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,5 @@
+ ;; GCC machine description for i386 synchronization instructions.
+-;; Copyright (C) 2005, 2006, 2007, 2008, 2009
++;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+ ;; Free Software Foundation, Inc.
+ ;;
+ ;; This file is part of GCC.
+@@ -47,7 +47,7 @@
+       (unspec:BLK [(match_dup 0)] UNSPEC_MFENCE))
+    (clobber (reg:CC FLAGS_REG))]
+   "!(TARGET_64BIT || TARGET_SSE2)"
+-  "lock{%;| }or{l}\t{$0, (%%esp)|DWORD PTR [esp], 0}"
++  "lock{%;} or{l}\t{$0, (%%esp)|DWORD PTR [esp], 0}"
+   [(set_attr "memory" "unknown")])
+ ;; ??? It would be possible to use cmpxchg8b on pentium for DImode
+@@ -115,7 +115,7 @@
+             [(match_dup 1) (match_dup 2) (match_dup 3)] UNSPECV_CMPXCHG)
+           (match_dup 2)))]
+   "TARGET_CMPXCHG"
+-  "lock{%;| }cmpxchg{<imodesuffix>}\t{%3, %1|%1, %3}")
++  "lock{%;} cmpxchg{<imodesuffix>}\t{%3, %1|%1, %3}")
+ (define_insn "sync_double_compare_and_swap<mode>"
+   [(set (match_operand:DCASMODE 0 "register_operand" "=A")
+@@ -134,7 +134,7 @@
+           UNSPECV_CMPXCHG)
+           (match_dup 2)))]
+   ""
+-  "lock{%;| }cmpxchg<doublemodesuffix>b\t%1")
++  "lock{%;} cmpxchg<doublemodesuffix>b\t%1")
+ ;; Theoretically we'd like to use constraint "r" (any reg) for operand
+ ;; 3, but that includes ecx.  If operand 3 and 4 are the same (like when
+@@ -162,7 +162,7 @@
+           UNSPECV_CMPXCHG)
+         (match_dup 2)))]
+   "!TARGET_64BIT && TARGET_CMPXCHG8B && flag_pic"
+-  "xchg{l}\t%%ebx, %3\;lock{%;| }cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
++  "xchg{l}\t%%ebx, %3\;lock{%;} cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
+ (define_insn "sync_old_add<mode>"
+   [(set (match_operand:SWI 0 "register_operand" "=<r>")
+@@ -173,7 +173,7 @@
+                 (match_operand:SWI 2 "register_operand" "0")))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_XADD"
+-  "lock{%;| }xadd{<imodesuffix>}\t{%0, %1|%1, %0}")
++  "lock{%;} xadd{<imodesuffix>}\t{%0, %1|%1, %0}")
+ ;; Recall that xchg implicitly sets LOCK#, so adding it again wastes space.
+ (define_insn "sync_lock_test_and_set<mode>"
+@@ -197,12 +197,12 @@
+   if (TARGET_USE_INCDEC)
+     {
+       if (operands[1] == const1_rtx)
+-      return "lock{%;| }inc{<imodesuffix>}\t%0";
++      return "lock{%;} inc{<imodesuffix>}\t%0";
+       if (operands[1] == constm1_rtx)
+-      return "lock{%;| }dec{<imodesuffix>}\t%0";
++      return "lock{%;} dec{<imodesuffix>}\t%0";
+     }
+-  return "lock{%;| }add{<imodesuffix>}\t{%1, %0|%0, %1}";
++  return "lock{%;} add{<imodesuffix>}\t{%1, %0|%0, %1}";
+ })
+ (define_insn "sync_sub<mode>"
+@@ -217,12 +217,12 @@
+   if (TARGET_USE_INCDEC)
+     {
+       if (operands[1] == const1_rtx)
+-      return "lock{%;| }dec{<imodesuffix>}\t%0";
++      return "lock{%;} dec{<imodesuffix>}\t%0";
+       if (operands[1] == constm1_rtx)
+-      return "lock{%;| }inc{<imodesuffix>}\t%0";
++      return "lock{%;} inc{<imodesuffix>}\t%0";
+     }
+-  return "lock{%;| }sub{<imodesuffix>}\t{%1, %0|%0, %1}";
++  return "lock{%;} sub{<imodesuffix>}\t{%1, %0|%0, %1}";
+ })
+ (define_insn "sync_<code><mode>"
+@@ -233,4 +233,4 @@
+         UNSPECV_LOCK))
+    (clobber (reg:CC FLAGS_REG))]
+   ""
+-  "lock{%;| }<logicprefix>{<imodesuffix>}\t{%1, %0|%0, %1}")
++  "lock{%;} <logicprefix>{<imodesuffix>}\t{%1, %0|%0, %1}")
 Index: gcc/config/i386/driver-i386.c
 ===================================================================
---- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -538,34 +538,61 @@
        cpu = "pentium";
        break;
@@ -393896,8 +399862,8 @@ Index: gcc/config/i386/driver-i386.c
        if (has_sse3)
 Index: gcc/config/i386/i386.c
 ===================================================================
---- gcc/config/i386/i386.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/i386/i386.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/i386/i386.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/i386/i386.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2528,7 +2528,7 @@
    if (flags && add_nl_p)
      {
@@ -393937,7 +399903,20 @@ Index: gcc/config/i386/i386.c
        && for_each_rtx (&PATTERN (insn), get_some_local_dynamic_name_1, 0))
        return cfun->machine->some_ld_name;
  
-@@ -13629,7 +13634,7 @@
+@@ -11896,10 +11901,8 @@
+         return;
+       case ';':
+-#if TARGET_MACHO
+-        fputs (" ; ", file);
+-#else
+-        putc (' ', file);
++#if TARGET_MACHO || !HAVE_AS_IX86_REP_LOCK_PREFIX
++        fputs (";", file);
+ #endif
+         return;
+@@ -13629,7 +13632,7 @@
        rtx prev = PREV_INSN (insn);
        while (prev && distance < LEA_SEARCH_THRESHOLD)
        {
@@ -393946,7 +399925,7 @@ Index: gcc/config/i386/i386.c
            {
              distance++;
                for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
-@@ -13669,7 +13674,7 @@
+@@ -13669,7 +13672,7 @@
                 && prev != insn
                 && distance < LEA_SEARCH_THRESHOLD)
            {
@@ -393955,7 +399934,7 @@ Index: gcc/config/i386/i386.c
                {
                  distance++;
                  for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
-@@ -13715,7 +13720,7 @@
+@@ -13715,7 +13718,7 @@
        rtx next = NEXT_INSN (insn);
        while (next && distance < LEA_SEARCH_THRESHOLD)
        {
@@ -393964,7 +399943,7 @@ Index: gcc/config/i386/i386.c
            {
              distance++;
  
-@@ -13764,7 +13769,7 @@
+@@ -13764,7 +13767,7 @@
                 && next != insn
                 && distance < LEA_SEARCH_THRESHOLD)
            {
@@ -393975,8 +399954,8 @@ Index: gcc/config/i386/i386.c
  
 Index: gcc/config/sol2.c
 ===================================================================
---- gcc/config/sol2.c  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/sol2.c  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/sol2.c  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/sol2.c  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -122,8 +122,10 @@
     the visibility type VIS, which must not be VISIBILITY_DEFAULT.  */
  
@@ -394001,8 +399980,8 @@ Index: gcc/config/sol2.c
    fprintf (asm_out_file, "\n");
 Index: gcc/config/sol2.h
 ===================================================================
---- gcc/config/sol2.h  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/sol2.h  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/sol2.h  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/sol2.h  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -174,12 +174,16 @@
  #define LINK_SPEC \
    "%{h*} %{v:-V} \
@@ -394022,8 +400001,8 @@ Index: gcc/config/sol2.h
     configuration files for Solaris override this setting.)  */
 Index: gcc/config/sh/sh.c
 ===================================================================
---- gcc/config/sh/sh.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/sh/sh.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/sh/sh.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/sh/sh.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -4397,6 +4397,7 @@
    int hi_limit;
    rtx orig = from;
@@ -394062,10 +400041,138 @@ Index: gcc/config/sh/sh.c
        /* If we exceeded the range, then we must back up over the last
         instruction we looked at.  Otherwise, we just need to undo the
         NEXT_INSN at the end of the loop.  */
+Index: gcc/config/cris/cris.md
+===================================================================
+--- gcc/config/cris/cris.md    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/cris/cris.md    (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1831,7 +1831,7 @@
+    add%u2 %2,%0
+    addo.%Z2 %2,%1,%0"
+   [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,yes,no,no,no,no,no,no")
+-   (set_attr "cc" "*,none,*,none,*,*,none,*,*,*,*,*,none")])
++   (set_attr "cc" "*,none,*,none,*,*,none,*,none,*,*,*,none")])
\f
+ (define_insn "*addhi3_non_v32"
+   [(set (match_operand:HI 0 "register_operand"                "=r,r, r,r,r,r")
+Index: gcc/config/rs6000/rs6000.c
+===================================================================
+--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -881,7 +881,6 @@
+ static void emit_frame_save (rtx, rtx, enum machine_mode, unsigned int,
+                            int, HOST_WIDE_INT);
+ static rtx gen_frame_mem_offset (enum machine_mode, rtx, int);
+-static void rs6000_emit_allocate_stack (HOST_WIDE_INT, int, int);
+ static unsigned rs6000_hash_constant (rtx);
+ static unsigned toc_hash_function (const void *);
+ static int toc_hash_eq (const void *, const void *);
+@@ -18022,13 +18021,11 @@
+ }
+ /* Emit the correct code for allocating stack space, as insns.
+-   If COPY_R12, make sure a copy of the old frame is left in r12.
+-   If COPY_R11, make sure a copy of the old frame is left in r11,
+-   in preference to r12 if COPY_R12.
++   If COPY_REG, make sure a copy of the old frame is left there.
+    The generated code may use hard register 0 as a temporary.  */
+ static void
+-rs6000_emit_allocate_stack (HOST_WIDE_INT size, int copy_r12, int copy_r11)
++rs6000_emit_allocate_stack (HOST_WIDE_INT size, rtx copy_reg)
+ {
+   rtx insn;
+   rtx stack_reg = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM);
+@@ -18071,11 +18068,8 @@
+       warning (0, "stack limit expression is not supported");
+     }
+-  if (copy_r12 || copy_r11)
+-    emit_move_insn (copy_r11
+-                    ? gen_rtx_REG (Pmode, 11)
+-                    : gen_rtx_REG (Pmode, 12),
+-                    stack_reg);
++  if (copy_reg)
++    emit_move_insn (copy_reg, stack_reg);
+   if (size > 32767)
+     {
+@@ -18761,20 +18755,33 @@
+                      ? (!saving_GPRs_inline
+                         && info->spe_64bit_regs_used == 0)
+                      : (!saving_FPRs_inline || !saving_GPRs_inline));
++      rtx copy_reg = need_r11 ? gen_rtx_REG (Pmode, 11) : NULL;
++
+       if (info->total_size < 32767)
+       sp_offset = info->total_size;
++      else if (need_r11)
++      frame_reg_rtx = copy_reg;
++      else if (info->cr_save_p
++             || info->lr_save_p
++             || info->first_fp_reg_save < 64
++             || info->first_gp_reg_save < 32
++             || info->altivec_size != 0
++             || info->vrsave_mask != 0
++             || crtl->calls_eh_return)
++      {
++        copy_reg = frame_ptr_rtx;
++        frame_reg_rtx = copy_reg;
++      }
+       else
+-      frame_reg_rtx = (need_r11
+-                       ? gen_rtx_REG (Pmode, 11)
+-                       : frame_ptr_rtx);
+-      rs6000_emit_allocate_stack (info->total_size,
+-                                (frame_reg_rtx != sp_reg_rtx
+-                                 && (info->cr_save_p
+-                                     || info->lr_save_p
+-                                     || info->first_fp_reg_save < 64
+-                                     || info->first_gp_reg_save < 32
+-                                     )),
+-                                need_r11);
++      {
++        /* The prologue won't be saving any regs so there is no need
++           to set up a frame register to access any frame save area.
++           We also won't be using sp_offset anywhere below, but set
++           the correct value anyway to protect against future
++           changes to this function.  */
++        sp_offset = info->total_size;
++      }
++      rs6000_emit_allocate_stack (info->total_size, copy_reg);
+       if (frame_reg_rtx != sp_reg_rtx)
+       rs6000_emit_stack_tie ();
+     }
+@@ -19209,16 +19216,19 @@
+   if (!WORLD_SAVE_P (info) && info->push_p
+       && !(DEFAULT_ABI == ABI_V4 || crtl->calls_eh_return))
+     {
++      rtx copy_reg = NULL;
++
+       if (info->total_size < 32767)
+-      sp_offset = info->total_size;
++      sp_offset = info->total_size;
++      else if (info->altivec_size != 0
++             || info->vrsave_mask != 0)
++      {
++        copy_reg = frame_ptr_rtx;
++        frame_reg_rtx = copy_reg;
++      }
+       else
+-      frame_reg_rtx = frame_ptr_rtx;
+-      rs6000_emit_allocate_stack (info->total_size,
+-                                (frame_reg_rtx != sp_reg_rtx
+-                                 && ((info->altivec_size != 0)
+-                                     || (info->vrsave_mask != 0)
+-                                     )),
+-                                FALSE);
++      sp_offset = info->total_size;
++      rs6000_emit_allocate_stack (info->total_size, copy_reg);
+       if (frame_reg_rtx != sp_reg_rtx)
+       rs6000_emit_stack_tie ();
+     }
 Index: gcc/config/sol2-gld.h
 ===================================================================
 --- gcc/config/sol2-gld.h      (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ gcc/config/sol2-gld.h      (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ gcc/config/sol2-gld.h      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,31 @@
 +/* Definitions of target machine for GCC, for any machine running Solaris 2
 +   using the GNU linker.
@@ -394100,8 +400207,8 @@ Index: gcc/config/sol2-gld.h
 +#define RDYNAMIC_SPEC "--export-dynamic"
 Index: gcc/config/mips/dbxmdebug.h
 ===================================================================
---- gcc/config/mips/dbxmdebug.h        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/mips/dbxmdebug.h        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/mips/dbxmdebug.h        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/mips/dbxmdebug.h        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,6 +0,0 @@
 -/* Definitions of target machine for GNU compiler, for MIPS running IRIX 5
 -   or IRIX 6 (O32 ABI) using the GNU assembler with stabs-in-mdebug.  */
@@ -394111,8 +400218,8 @@ Index: gcc/config/mips/dbxmdebug.h
 -#define MDEBUG_ASM_SPEC "%{!gdwarf*:-mdebug} %{gdwarf*:-no-mdebug}"
 Index: gcc/config/mips/iris.h
 ===================================================================
---- gcc/config/mips/iris.h     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/mips/iris.h     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/mips/iris.h     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/mips/iris.h     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -199,7 +199,7 @@
  %{call_shared} %{no_archive} %{exact_version} \
  %{!shared: \
@@ -394124,8 +400231,8 @@ Index: gcc/config/mips/iris.h
     library search directories.  */
 Index: gcc/config/mmix/mmix.md
 ===================================================================
---- gcc/config/mmix/mmix.md    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/config/mmix/mmix.md    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/config/mmix/mmix.md    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/config/mmix/mmix.md    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -333,7 +333,7 @@
  ;; The %2-is-%1-case is there just to make sure things don't fail.  Could
  ;; presumably happen with optimizations off; no evidence.
@@ -394146,8 +400253,8 @@ Index: gcc/config/mmix/mmix.md
     (clobber (match_scratch:DI 3 "=1,1"))
 Index: gcc/tree-vect-slp.c
 ===================================================================
---- gcc/tree-vect-slp.c        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/tree-vect-slp.c        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/tree-vect-slp.c        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/tree-vect-slp.c        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -844,7 +844,11 @@
  
        SET_BIT (load_index, prev);
@@ -394163,8 +400270,8 @@ Index: gcc/tree-vect-slp.c
    if (supported && i == group_size * group_size
 Index: gcc/cfgrtl.c
 ===================================================================
---- gcc/cfgrtl.c       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/cfgrtl.c       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/cfgrtl.c       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/cfgrtl.c       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -994,6 +994,9 @@
              && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
            add_reg_note (insn, REG_LABEL_TARGET, new_label);
@@ -394201,8 +400308,8 @@ Index: gcc/cfgrtl.c
  }
 Index: gcc/collect2.c
 ===================================================================
---- gcc/collect2.c     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/collect2.c     (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/collect2.c     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/collect2.c     (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -35,6 +35,10 @@
  #  define SIGCHLD SIGCLD
  #endif
@@ -394216,8 +400323,8 @@ Index: gcc/collect2.c
  #endif
 Index: gcc/lto-streamer.c
 ===================================================================
---- gcc/lto-streamer.c (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ gcc/lto-streamer.c (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- gcc/lto-streamer.c (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ gcc/lto-streamer.c (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -788,6 +788,31 @@
  }
  
@@ -394316,8 +400423,8 @@ Index: gcc/lto-streamer.c
  
 Index: libstdc++-v3/doc/doxygen/user.cfg.in
 ===================================================================
---- libstdc++-v3/doc/doxygen/user.cfg.in       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/doc/doxygen/user.cfg.in       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/doc/doxygen/user.cfg.in       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/doc/doxygen/user.cfg.in       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -180,7 +180,7 @@
  # You can put \n's in the value part of an alias to insert newlines.
  
@@ -394327,10 +400434,22 @@ Index: libstdc++-v3/doc/doxygen/user.cfg.in
  
  # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
  # sources only. Doxygen will then generate output that is more tailored for C.
+Index: libstdc++-v3/include/debug/vector
+===================================================================
+--- libstdc++-v3/include/debug/vector  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/debug/vector  (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -235,6 +235,7 @@
+       _Base::resize(__sz, __c);
+       if (__realloc)
+         this->_M_invalidate_all();
++      _M_update_guaranteed_capacity();
+       }
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
 Index: libstdc++-v3/include/profile/impl/profiler_trace.h
 ===================================================================
---- libstdc++-v3/include/profile/impl/profiler_trace.h (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/profile/impl/profiler_trace.h (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/profile/impl/profiler_trace.h (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/profile/impl/profiler_trace.h (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -53,43 +53,30 @@
  #define _GLIBCXX_IMPL_UNORDERED_MAP std::tr1::unordered_map
  #endif
@@ -394799,8 +400918,8 @@ Index: libstdc++-v3/include/profile/impl/profiler_trace.h
  /** @brief This function must be called by each instrumentation point.
 Index: libstdc++-v3/include/profile/impl/profiler.h
 ===================================================================
---- libstdc++-v3/include/profile/impl/profiler.h       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/profile/impl/profiler.h       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/profile/impl/profiler.h       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/profile/impl/profiler.h       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -44,6 +44,13 @@
  #endif
  
@@ -394829,8 +400948,8 @@ Index: libstdc++-v3/include/profile/impl/profiler.h
  #define _GLIBCXX_PROFILE_TRACE_PATH_ROOT "libstdcxx-profile"
 Index: libstdc++-v3/include/profile/unordered_map
 ===================================================================
---- libstdc++-v3/include/profile/unordered_map (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/profile/unordered_map (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/profile/unordered_map (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/profile/unordered_map (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -196,7 +196,7 @@
          insert(_InputIter __first, _InputIter __last)
          {
@@ -394851,8 +400970,8 @@ Index: libstdc++-v3/include/profile/unordered_map
  
 Index: libstdc++-v3/include/bits/basic_string.h
 ===================================================================
---- libstdc++-v3/include/bits/basic_string.h   (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/bits/basic_string.h   (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/bits/basic_string.h   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/bits/basic_string.h   (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -48,13 +48,14 @@
     *  @class basic_string basic_string.h <string>
     *  @brief  Managing sequences of characters and character-like objects.
@@ -394947,8 +401066,8 @@ Index: libstdc++-v3/include/bits/basic_string.h
         *
 Index: libstdc++-v3/include/bits/stringfwd.h
 ===================================================================
---- libstdc++-v3/include/bits/stringfwd.h      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/bits/stringfwd.h      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/bits/stringfwd.h      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/bits/stringfwd.h      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,6 +1,7 @@
  // String support -*- C++ -*-
  
@@ -395002,8 +401121,8 @@ Index: libstdc++-v3/include/bits/stringfwd.h
  
 Index: libstdc++-v3/include/c_global/cstdlib
 ===================================================================
---- libstdc++-v3/include/c_global/cstdlib      (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/include/c_global/cstdlib      (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/include/c_global/cstdlib      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/include/c_global/cstdlib      (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -57,9 +57,9 @@
  
  _GLIBCXX_BEGIN_NAMESPACE(std)
@@ -395018,9 +401137,16 @@ Index: libstdc++-v3/include/c_global/cstdlib
  
 Index: libstdc++-v3/ChangeLog
 ===================================================================
---- libstdc++-v3/ChangeLog     (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_5-branch)   (wersja 159429)
-@@ -1,3 +1,57 @@
+--- libstdc++-v3/ChangeLog     (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,64 @@
++2010-05-19  Eelis van der Weegen  <gcc-bugzilla@contacts.eelis.net>
++
++      PR libstdc++/44190
++      * include/debug/vector (vector<>::resize): Call
++      _M_update_guaranteed_capacity.
++      * testsuite/23_containers/vector/capacity/44190.cc: New.
++
 +2010-05-14  Silvius Rus  <silvius.rus@gmail.com>
 +
 +      PR libstdc++/43259
@@ -395080,8 +401206,8 @@ Index: libstdc++-v3/ChangeLog
        * GCC 4.5.0 released.
 Index: libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
 ===================================================================
---- libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,4 @@
 -// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
 +// Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
@@ -395106,8 +401232,8 @@ Index: libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.c
  inline void
 Index: libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
 ===================================================================
---- libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,4 +1,4 @@
 -// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
 +// Copyright (C) 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
@@ -395130,10 +401256,53 @@ Index: libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
  #endif
  
    // Actually, vector<bool> is special, see libstdc++/31370.
+Index: libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
+===================================================================
+--- libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc      (.../tags/gcc_4_5_0_release)    (wersja 0)
++++ libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -0,0 +1,38 @@
++// Copyright (C) 2010 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
++
++#include <vector>
++#include <testsuite_hooks.h>
++
++// libstdc++/44190
++void test01()
++{
++  bool test __attribute__((unused)) = true;
++
++  std::vector<int> v;
++  v.resize(10);
++  VERIFY( v.size() <= v.capacity() );
++}
++
++int main()
++{
++
++  test01();
++  return 0;
++}
 Index: configure.ac
 ===================================================================
---- configure.ac       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ configure.ac       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- configure.ac       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ configure.ac       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -2699,7 +2699,7 @@
         mv conftest.o conftest.o.g0 &&
         ${CC} -c -g conftest.c &&
@@ -395145,8 +401314,8 @@ Index: configure.ac
        BUILD_CONFIG=
 Index: ChangeLog
 ===================================================================
---- ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,8 @@
 +2010-04-20  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -395156,10 +401325,223 @@ Index: ChangeLog
  2010-04-14  Release Manager
  
        * GCC 4.5.0 released.
+Index: libffi/configure
+===================================================================
+--- libffi/configure   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libffi/configure   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -12397,7 +12397,7 @@
+       libffi_cv_as_x86_pcrel=yes
+       echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+-      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++      if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
+           libffi_cv_as_x86_pcrel=no
+       fi
+@@ -12409,8 +12409,78 @@
+ $as_echo "#define HAVE_AS_X86_PCREL 1" >>confdefs.h
+     fi
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .ascii pseudo-op support" >&5
++$as_echo_n "checking assembler .ascii pseudo-op support... " >&6; }
++if test "${libffi_cv_as_ascii_pseudo_op+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++
++       libffi_cv_as_ascii_pseudo_op=unknown
++       # Check if we have .ascii
++       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++asm (".ascii \"string\"");
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  libffi_cv_as_ascii_pseudo_op=yes
++else
++  libffi_cv_as_ascii_pseudo_op=no
+ fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_ascii_pseudo_op" >&5
++$as_echo "$libffi_cv_as_ascii_pseudo_op" >&6; }
++    if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
++
++$as_echo "#define HAVE_AS_ASCII_PSEUDO_OP 1" >>confdefs.h
++
++    fi
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .string pseudo-op support" >&5
++$as_echo_n "checking assembler .string pseudo-op support... " >&6; }
++if test "${libffi_cv_as_string_pseudo_op+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++
++       libffi_cv_as_string_pseudo_op=unknown
++       # Check if we have .string
++       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++asm (".string \"string\"");
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  libffi_cv_as_string_pseudo_op=yes
++else
++  libffi_cv_as_string_pseudo_op=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_string_pseudo_op" >&5
++$as_echo "$libffi_cv_as_string_pseudo_op" >&6; }
++    if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
++
++$as_echo "#define HAVE_AS_STRING_PSEUDO_OP 1" >>confdefs.h
++
++    fi
++fi
++
+ case "$target" in
+      *-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*)
+Index: libffi/fficonfig.h.in
+===================================================================
+--- libffi/fficonfig.h.in      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libffi/fficonfig.h.in      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -33,6 +33,9 @@
+    */
+ #undef HAVE_ALLOCA_H
++/* Define if your assembler supports .ascii. */
++#undef HAVE_AS_ASCII_PSEUDO_OP
++
+ /* Define if your assembler supports .cfi_* directives. */
+ #undef HAVE_AS_CFI_PSEUDO_OP
+@@ -43,6 +46,9 @@
+    */
+ #undef HAVE_AS_SPARC_UA_PCREL
++/* Define if your assembler supports .string. */
++#undef HAVE_AS_STRING_PSEUDO_OP
++
+ /* Define if your assembler supports unwind section type. */
+ #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
+Index: libffi/src/x86/sysv.S
+===================================================================
+--- libffi/src/x86/sysv.S      (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libffi/src/x86/sysv.S      (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,5 +1,5 @@
+ /* -----------------------------------------------------------------------
+-   sysv.S - Copyright (c) 1996, 1998, 2001-2003, 2005, 2008  Red Hat, Inc.
++   sysv.S - Copyright (c) 1996, 1998, 2001-2003, 2005, 2008, 2010  Red Hat, Inc.
+    
+    X86 Foreign Function Interface 
+@@ -331,11 +331,21 @@
+ .LSCIE1:
+       .long   0x0     /* CIE Identifier Tag */
+       .byte   0x1     /* CIE Version */
++#ifdef HAVE_AS_ASCII_PSEUDO_OP
+ #ifdef __PIC__
+       .ascii "zR\0"   /* CIE Augmentation */
+ #else
+       .ascii "\0"     /* CIE Augmentation */
+ #endif
++#elif defined HAVE_AS_STRING_PSEUDO_OP
++#ifdef __PIC__
++      .string "zR"    /* CIE Augmentation */
++#else
++      .string ""      /* CIE Augmentation */
++#endif
++#else
++#error missing .ascii/.string
++#endif
+       .byte   0x1     /* .uleb128 0x1; CIE Code Alignment Factor */
+       .byte   0x7c    /* .sleb128 -4; CIE Data Alignment Factor */
+       .byte   0x8     /* CIE RA Column */
+Index: libffi/ChangeLog
+===================================================================
+--- libffi/ChangeLog   (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libffi/ChangeLog   (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -1,3 +1,13 @@
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
++      output, too.
++      (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
++      (libffi_cv_as_string_pseudo_op): Check for .string.
++      * configure: Regenerate.
++      * fficonfig.h.in: Regenerate.
++      * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
++
+ 2010-04-14  Release Manager
+       * GCC 4.5.0 released.
+Index: libffi/configure.ac
+===================================================================
+--- libffi/configure.ac        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libffi/configure.ac        (.../branches/gcc-4_5-branch)   (wersja 159624)
+@@ -266,7 +266,7 @@
+       libffi_cv_as_x86_pcrel, [
+       libffi_cv_as_x86_pcrel=yes
+       echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+-      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++      if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
+           libffi_cv_as_x86_pcrel=no
+       fi
+       ])
+@@ -274,6 +274,32 @@
+       AC_DEFINE(HAVE_AS_X86_PCREL, 1,
+                 [Define if your assembler supports PC relative relocs.])
+     fi
++
++    AC_CACHE_CHECK([assembler .ascii pseudo-op support],
++       libffi_cv_as_ascii_pseudo_op, [
++       libffi_cv_as_ascii_pseudo_op=unknown
++       # Check if we have .ascii
++       AC_TRY_COMPILE([asm (".ascii \"string\"");],,
++                     [libffi_cv_as_ascii_pseudo_op=yes],
++                     [libffi_cv_as_ascii_pseudo_op=no])
++    ])
++    if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
++       AC_DEFINE(HAVE_AS_ASCII_PSEUDO_OP, 1,
++             [Define if your assembler supports .ascii.])
++    fi
++
++    AC_CACHE_CHECK([assembler .string pseudo-op support],
++       libffi_cv_as_string_pseudo_op, [
++       libffi_cv_as_string_pseudo_op=unknown
++       # Check if we have .string
++       AC_TRY_COMPILE([asm (".string \"string\"");],,
++                     [libffi_cv_as_string_pseudo_op=yes],
++                     [libffi_cv_as_string_pseudo_op=no])
++    ])
++    if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
++       AC_DEFINE(HAVE_AS_STRING_PSEUDO_OP, 1,
++             [Define if your assembler supports .string.])
++    fi
+ fi
+ case "$target" in
 Index: libjava/configure.ac
 ===================================================================
---- libjava/configure.ac       (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libjava/configure.ac       (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libjava/configure.ac       (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libjava/configure.ac       (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -927,6 +927,21 @@
      extra_ldflags_libjava=-liconv
      ;;
@@ -395184,8 +401566,8 @@ Index: libjava/configure.ac
  AC_SUBST(LIBSTDCXXSPEC)
 Index: libjava/ChangeLog
 ===================================================================
---- libjava/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libjava/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libjava/ChangeLog  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libjava/ChangeLog  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,8 @@
 +2010-04-19  Andrew Haley  <aph@redhat.com>
 +
@@ -395197,8 +401579,8 @@ Index: libjava/ChangeLog
        * GCC 4.5.0 released.
 Index: libjava/configure
 ===================================================================
---- libjava/configure  (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libjava/configure  (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libjava/configure  (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libjava/configure  (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -20520,11 +20520,44 @@
      ;;
  esac
@@ -395246,8 +401628,8 @@ Index: libjava/configure
  $as_echo_n "checking for garbage collector to use... " >&6; }
 Index: libcpp/po/es.po
 ===================================================================
---- libcpp/po/es.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/es.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/es.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/es.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,14 +1,14 @@
 -# Mensajes en español para cpplib-4.5-b20100204
 +# Mensajes en español para cpplib-4.5.0
@@ -395425,8 +401807,8 @@ Index: libcpp/po/es.po
  msgstr "elemento %s impronunciable"
 Index: libcpp/po/fr.po
 ===================================================================
---- libcpp/po/fr.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/fr.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/fr.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/fr.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -119,7 +119,7 @@
  msgstr ""
  "Project-Id-Version: GNU cpplib 4.3.0\n"
@@ -395597,8 +401979,8 @@ Index: libcpp/po/fr.po
  msgstr "l'élément lexical %s ne peut être épelé"
 Index: libcpp/po/nl.po
 ===================================================================
---- libcpp/po/nl.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/nl.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/nl.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/nl.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7,7 +7,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.5-b20100204\n"
@@ -395769,8 +402151,8 @@ Index: libcpp/po/nl.po
  msgstr "kan token %s niet spellen"
 Index: libcpp/po/ChangeLog
 ===================================================================
---- libcpp/po/ChangeLog        (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/ChangeLog        (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/ChangeLog        (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/ChangeLog        (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,3 +1,24 @@
 +2010-05-15  Joseph Myers  <joseph@codesourcery.com>
 +
@@ -395798,8 +402180,8 @@ Index: libcpp/po/ChangeLog
        * GCC 4.5.0 released.
 Index: libcpp/po/vi.po
 ===================================================================
---- libcpp/po/vi.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/vi.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/vi.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/vi.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -4,10 +4,10 @@
  # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
  msgid ""
@@ -395972,8 +402354,8 @@ Index: libcpp/po/vi.po
  msgstr "gặp hiệu bài không thể chính tả %s"
 Index: libcpp/po/uk.po
 ===================================================================
---- libcpp/po/uk.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/uk.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/uk.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/uk.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.2.1\n"
@@ -396142,8 +402524,8 @@ Index: libcpp/po/uk.po
  msgstr "неможливо розібрати лексему %s"
 Index: libcpp/po/ca.po
 ===================================================================
---- libcpp/po/ca.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/ca.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/ca.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/ca.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -11,7 +11,7 @@
  msgstr ""
  "Project-Id-Version: cpplib-4.0.1\n"
@@ -396312,8 +402694,8 @@ Index: libcpp/po/ca.po
  msgstr "Element %s impronunciable"
 Index: libcpp/po/da.po
 ===================================================================
---- libcpp/po/da.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/da.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/da.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/da.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -128,7 +128,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.3\n"
@@ -396482,8 +402864,8 @@ Index: libcpp/po/da.po
  msgstr "symbol %s kan ikke staves"
 Index: libcpp/po/tr.po
 ===================================================================
---- libcpp/po/tr.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/tr.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/tr.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/tr.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.2.0\n"
@@ -396652,8 +403034,8 @@ Index: libcpp/po/tr.po
  msgstr "dizgecik %s okunabilir değil"
 Index: libcpp/po/be.po
 ===================================================================
---- libcpp/po/be.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/be.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/be.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/be.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.1\n"
@@ -396823,8 +403205,8 @@ Index: libcpp/po/be.po
  msgstr "немагу адчыніць файл \"%s\""
 Index: libcpp/po/de.po
 ===================================================================
---- libcpp/po/de.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/de.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/de.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/de.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.3.0\n"
@@ -396993,8 +403375,8 @@ Index: libcpp/po/de.po
  msgstr "nicht buchstabierbares Token %s"
 Index: libcpp/po/sv.po
 ===================================================================
---- libcpp/po/sv.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/sv.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/sv.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/sv.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,10 +8,10 @@
  #
  msgid ""
@@ -397167,8 +403549,8 @@ Index: libcpp/po/sv.po
  msgstr "ostavbar symbol %s"
 Index: libcpp/po/ja.po
 ===================================================================
---- libcpp/po/ja.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/ja.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/ja.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/ja.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.0\n"
@@ -397339,8 +403721,8 @@ Index: libcpp/po/ja.po
  msgstr "ÄÖ¤ì¤Ê¤¤¥È¡¼¥¯¥ó %s ¤Ç¤¹"
 Index: libcpp/po/zh_TW.po
 ===================================================================
---- libcpp/po/zh_TW.po (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/zh_TW.po (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/zh_TW.po (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/zh_TW.po (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.1.0\n"
@@ -397509,8 +403891,8 @@ Index: libcpp/po/zh_TW.po
  msgstr "無法拼出的識別字 %s"
 Index: libcpp/po/id.po
 ===================================================================
---- libcpp/po/id.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/id.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/id.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/id.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -7,7 +7,7 @@
  msgstr ""
  "Project-Id-Version: cpplib 4.5-b20100204\n"
@@ -397679,7 +404061,7 @@ Index: libcpp/po/id.po
 Index: libcpp/po/fi.po
 ===================================================================
 --- libcpp/po/fi.po    (.../tags/gcc_4_5_0_release)    (wersja 0)
-+++ libcpp/po/fi.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
++++ libcpp/po/fi.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -0,0 +1,957 @@
 +# Finnish messages for cpplib.
 +# Copyright © 2010 Free Software Foundation, Inc.
@@ -398640,8 +405022,8 @@ Index: libcpp/po/fi.po
 +msgstr "syntaksivirhe makroparameteriluettelossa"
 Index: libcpp/po/el.po
 ===================================================================
---- libcpp/po/el.po    (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/el.po    (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/el.po    (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/el.po    (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -6,7 +6,7 @@
  msgstr ""
  "Project-Id-Version: gcc 3.2\n"
@@ -398814,8 +405196,8 @@ Index: libcpp/po/el.po
  msgstr "%s: áäýíáôï ôï Üíïéãìá ôïõ %s: %m\n"
 Index: libcpp/po/zh_CN.po
 ===================================================================
---- libcpp/po/zh_CN.po (.../tags/gcc_4_5_0_release)    (wersja 159429)
-+++ libcpp/po/zh_CN.po (.../branches/gcc-4_5-branch)   (wersja 159429)
+--- libcpp/po/zh_CN.po (.../tags/gcc_4_5_0_release)    (wersja 159624)
++++ libcpp/po/zh_CN.po (.../branches/gcc-4_5-branch)   (wersja 159624)
 @@ -1,19 +1,21 @@
  # Simplified Chinese translation for cpplib.
  # Copyright (C) 2005 Free Software Foundation, Inc.
index d4f64d5755735c8ff2c88141a0e2c34eb57c57df..6d8a8c36bd16cd42e94cf3b8d02093cd91a6d2b3 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -76,7 +76,7 @@ Summary(pl.UTF-8):    Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):  Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:          gcc
 Version:       %{major_ver}.%{minor_ver}
-Release:       4
+Release:       5
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
This page took 0.705975 seconds and 4 git commands to generate.