This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[testsuite] Check for 3dnow, sse3, sse2 in i386 target assembler


Unfortunately, the Solaris 9/x86 assembler doesn't support 3dnow and
sse3, while the Solaris 8/x86 assembler doesn't even support sse2.

The obvious solution is to introduced corresponding effective-target
keywords, and this patch does just that.  While large, it is mostly
mechanical, with two exceptions:

* Since a couple of testcases only add -msse2 on x86 targets, I needed
  to add an optional selector to dg-require-effective-target as well,
  otherwise those tests would become UNSUPPORTED on non-x86 targets that
  (obviously) don't support -msse2.

* Someone with real x86 knowledge should check the 3dnow/sse3/sse2 test
  code in the check_effective_target_* procs.  I've just extracted the
  first one that caused assembler failures and used it.

With that change, testing succeeded on i386-pc-solaris2.11 with gas
2.19, Solaris 8, 9 and 11 as.

Due to the size of the patch, I'm uncertain if I should request 4.4
branch approval, but I'd certainly like to get it into mainline and the
4.5 branch.

Ok?
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2010-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gcc:
	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	3dnow, sse3, sse2.
	(Directives): Document optional	dg-require-effective-target
	selector.

	gcc/testsuite:
	* 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.

diff -r 02bed8325076 gcc/doc/sourcebuild.texi
--- a/gcc/doc/sourcebuild.texi	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/doc/sourcebuild.texi	Mon May 17 19:14:34 2010 +0200
@@ -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.
 
diff -r 02bed8325076 gcc/testsuite/g++.dg/abi/mangle42.C
--- a/gcc/testsuite/g++.dg/abi/mangle42.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/abi/mangle42.C	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/g++.dg/ext/attrib35.C
--- a/gcc/testsuite/g++.dg/ext/attrib35.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/ext/attrib35.C	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/g++.dg/opt/pr40496.C
--- a/gcc/testsuite/g++.dg/opt/pr40496.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/opt/pr40496.C	Mon May 17 19:14:34 2010 +0200
@@ -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
 {
diff -r 02bed8325076 gcc/testsuite/g++.dg/other/i386-1.C
--- a/gcc/testsuite/g++.dg/other/i386-1.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/other/i386-1.C	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/g++.dg/other/i386-4.C
--- a/gcc/testsuite/g++.dg/other/i386-4.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/other/i386-4.C	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-O1 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/g++.dg/other/pr34435.C
--- a/gcc/testsuite/g++.dg/other/pr34435.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/other/pr34435.C	Mon May 17 19:14:34 2010 +0200
@@ -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>
 
diff -r 02bed8325076 gcc/testsuite/g++.dg/other/pr39496.C
--- a/gcc/testsuite/g++.dg/other/pr39496.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/other/pr39496.C	Mon May 17 19:14:34 2010 +0200
@@ -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," } }
diff -r 02bed8325076 gcc/testsuite/g++.dg/other/pr40446.C
--- a/gcc/testsuite/g++.dg/other/pr40446.C	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/other/pr40446.C	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/g++.dg/vect/vect.exp
--- a/gcc/testsuite/g++.dg/vect/vect.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/g++.dg/vect/vect.exp	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
--- a/gcc/testsuite/gcc.dg/compat/union-m128-1_main.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/compat/union-m128-1_main.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/compat/vector-1a_main.c
--- a/gcc/testsuite/gcc.dg/compat/vector-1a_main.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/compat/vector-1a_main.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.dg/compat/vector-2a_main.c
--- a/gcc/testsuite/gcc.dg/compat/vector-2a_main.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/compat/vector-2a_main.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.dg/lto/20090206-1_0.c
--- a/gcc/testsuite/gcc.dg/lto/20090206-1_0.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/lto/20090206-1_0.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.dg/pr34856.c
--- a/gcc/testsuite/gcc.dg/pr34856.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/pr34856.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.dg/pr36584.c
--- a/gcc/testsuite/gcc.dg/pr36584.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/pr36584.c	Mon May 17 19:14:34 2010 +0200
@@ -1,7 +1,7 @@
 /* { 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"
diff -r 02bed8325076 gcc/testsuite/gcc.dg/pr36997.c
--- a/gcc/testsuite/gcc.dg/pr36997.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/pr36997.c	Mon May 17 19:14:34 2010 +0200
@@ -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 } */
 }
diff -r 02bed8325076 gcc/testsuite/gcc.dg/pr37544.c
--- a/gcc/testsuite/gcc.dg/pr37544.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/pr37544.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/pr16104-1.c
--- a/gcc/testsuite/gcc.dg/torture/pr16104-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/pr16104-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/pr35771-1.c
--- a/gcc/testsuite/gcc.dg/torture/pr35771-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/pr35771-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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__));
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/pr35771-2.c
--- a/gcc/testsuite/gcc.dg/torture/pr35771-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/pr35771-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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__));
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/pr35771-3.c
--- a/gcc/testsuite/gcc.dg/torture/pr35771-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/pr35771-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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__));
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
--- a/gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
--- a/gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
--- a/gcc/testsuite/gcc.dg/torture/stackalign/push-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/push-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
--- a/gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
diff -r 02bed8325076 gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
--- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
--- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } */
 
diff -r 02bed8325076 gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
--- a/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
--- a/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c	Mon May 17 19:14:34 2010 +0200
@@ -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],
diff -r 02bed8325076 gcc/testsuite/gcc.dg/vect/vect.exp
--- a/gcc/testsuite/gcc.dg/vect/vect.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.dg/vect/vect.exp	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/20060512-1.c
--- a/gcc/testsuite/gcc.target/i386/20060512-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/20060512-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/20060512-3.c
--- a/gcc/testsuite/gcc.target/i386/20060512-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/20060512-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/3dnow-1.c
--- a/gcc/testsuite/gcc.target/i386/3dnow-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/3dnow-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/3dnow-2.c
--- a/gcc/testsuite/gcc.target/i386/3dnow-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/3dnow-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/3dnowA-1.c
--- a/gcc/testsuite/gcc.target/i386/3dnowA-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/3dnowA-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/3dnowA-2.c
--- a/gcc/testsuite/gcc.target/i386/3dnowA-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/3dnowA-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/all_one_m128i.c
--- a/gcc/testsuite/gcc.target/i386/all_one_m128i.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/all_one_m128i.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/float128-1.c
--- a/gcc/testsuite/gcc.target/i386/float128-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/float128-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run { target *-*-linux* } } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/float128-2.c
--- a/gcc/testsuite/gcc.target/i386/float128-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/float128-2.c	Mon May 17 19:14:34 2010 +0200
@@ -2,6 +2,7 @@
 
 /* { dg-do run { target *-*-linux* *-*-darwin* } } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/fpcvt-1.c
--- a/gcc/testsuite/gcc.target/i386/fpcvt-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/fpcvt-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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()
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/fpcvt-2.c
--- a/gcc/testsuite/gcc.target/i386/fpcvt-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/fpcvt-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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()
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/fpcvt-3.c
--- a/gcc/testsuite/gcc.target/i386/fpcvt-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/fpcvt-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/fpprec-1.c
--- a/gcc/testsuite/gcc.target/i386/fpprec-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/fpprec-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/funcspec-9.c
--- a/gcc/testsuite/gcc.target/i386/funcspec-9.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/funcspec-9.c	Mon May 17 19:14:34 2010 +0200
@@ -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);
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/i386.exp
--- a/gcc/testsuite/gcc.target/i386/i386.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/i386.exp	Mon May 17 19:14:34 2010 +0200
@@ -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_femms (void)
+	{
+	    __builtin_ia32_femms();
+	}
+    } "-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 {
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-1.c
--- a/gcc/testsuite/gcc.target/i386/incoming-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-12.c
--- a/gcc/testsuite/gcc.target/i386/incoming-12.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-12.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-2.c
--- a/gcc/testsuite/gcc.target/i386/incoming-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-3.c
--- a/gcc/testsuite/gcc.target/i386/incoming-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-4.c
--- a/gcc/testsuite/gcc.target/i386/incoming-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-6.c
--- a/gcc/testsuite/gcc.target/i386/incoming-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-7.c
--- a/gcc/testsuite/gcc.target/i386/incoming-7.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-7.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/incoming-8.c
--- a/gcc/testsuite/gcc.target/i386/incoming-8.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/incoming-8.c	Mon May 17 19:14:34 2010 +0200
@@ -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)
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
--- a/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp	Mon May 17 19:14:34 2010 +0200
@@ -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,26 +29,30 @@
         { -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 -mno-sse2 -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 -mno-sse2 -mfpmath=sse,387 -ffast-math } \
         { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
-]
+}
 
 load_lib gcc-dg.exp
 load_lib torture-options.exp
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/opt-1.c
--- a/gcc/testsuite/gcc.target/i386/opt-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/opt-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/opt-2.c
--- a/gcc/testsuite/gcc.target/i386/opt-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/opt-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ordcmp-1.c
--- a/gcc/testsuite/gcc.target/i386/ordcmp-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ordcmp-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr17692.c
--- a/gcc/testsuite/gcc.target/i386/pr17692.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr17692.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr18614-1.c
--- a/gcc/testsuite/gcc.target/i386/pr18614-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr18614-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr22152.c
--- a/gcc/testsuite/gcc.target/i386/pr22152.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr22152.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <mmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr23570.c
--- a/gcc/testsuite/gcc.target/i386/pr23570.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr23570.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr23575.c
--- a/gcc/testsuite/gcc.target/i386/pr23575.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr23575.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr26449-1.c
--- a/gcc/testsuite/gcc.target/i386/pr26449-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr26449-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr26600.c
--- a/gcc/testsuite/gcc.target/i386/pr26600.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr26600.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 void foo(int *p, int N)
 {
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr27790.c
--- a/gcc/testsuite/gcc.target/i386/pr27790.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr27790.c	Mon May 17 19:14:34 2010 +0200
@@ -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)
 {
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr28839.c
--- a/gcc/testsuite/gcc.target/i386/pr28839.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr28839.c	Mon May 17 19:14:34 2010 +0200
@@ -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);
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr30970.c
--- a/gcc/testsuite/gcc.target/i386/pr30970.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr30970.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile }
 /* { dg-options "-msse2 -O2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #define N 256
 int b[N];
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32000-1.c
--- a/gcc/testsuite/gcc.target/i386/pr32000-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32000-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32000-2.c
--- a/gcc/testsuite/gcc.target/i386/pr32000-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32000-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32280.c
--- a/gcc/testsuite/gcc.target/i386/pr32280.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32280.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32661.c
--- a/gcc/testsuite/gcc.target/i386/pr32661.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32661.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32708-1.c
--- a/gcc/testsuite/gcc.target/i386/pr32708-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32708-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr32961.c
--- a/gcc/testsuite/gcc.target/i386/pr32961.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr32961.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O0 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr33329.c
--- a/gcc/testsuite/gcc.target/i386/pr33329.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr33329.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 extern void g (int *);
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35714.c
--- a/gcc/testsuite/gcc.target/i386/pr35714.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35714.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-1.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-1d.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-1d.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-1d.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-1i.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-1i.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-1i.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-2.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-2d.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-2d.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-2d.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-2i.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-2i.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-2i.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-3.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr35767-5.c
--- a/gcc/testsuite/gcc.target/i386/pr35767-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr35767-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr36222-1.c
--- a/gcc/testsuite/gcc.target/i386/pr36222-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr36222-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr36578-1.c
--- a/gcc/testsuite/gcc.target/i386/pr36578-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr36578-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr36578-2.c
--- a/gcc/testsuite/gcc.target/i386/pr36578-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr36578-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr36992-1.c
--- a/gcc/testsuite/gcc.target/i386/pr36992-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr36992-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile }
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37101.c
--- a/gcc/testsuite/gcc.target/i386/pr37101.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37101.c	Mon May 17 19:14:34 2010 +0200
@@ -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);
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37216.c
--- a/gcc/testsuite/gcc.target/i386/pr37216.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37216.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37434-1.c
--- a/gcc/testsuite/gcc.target/i386/pr37434-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37434-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37434-2.c
--- a/gcc/testsuite/gcc.target/i386/pr37434-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37434-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37843-3.c
--- a/gcc/testsuite/gcc.target/i386/pr37843-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37843-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr37843-4.c
--- a/gcc/testsuite/gcc.target/i386/pr37843-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr37843-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39162.c
--- a/gcc/testsuite/gcc.target/i386/pr39162.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39162.c	Mon May 17 19:14:34 2010 +0200
@@ -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__));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39315-1.c
--- a/gcc/testsuite/gcc.target/i386/pr39315-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39315-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39315-2.c
--- a/gcc/testsuite/gcc.target/i386/pr39315-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39315-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39315-3.c
--- a/gcc/testsuite/gcc.target/i386/pr39315-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39315-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39315-4.c
--- a/gcc/testsuite/gcc.target/i386/pr39315-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39315-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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)));
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39445.c
--- a/gcc/testsuite/gcc.target/i386/pr39445.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39445.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr39496.c
--- a/gcc/testsuite/gcc.target/i386/pr39496.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr39496.c	Mon May 17 19:14:34 2010 +0200
@@ -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," } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr40809.c
--- a/gcc/testsuite/gcc.target/i386/pr40809.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr40809.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr40906-3.c
--- a/gcc/testsuite/gcc.target/i386/pr40906-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr40906-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr41019.c
--- a/gcc/testsuite/gcc.target/i386/pr41019.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr41019.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42542-1.c
--- a/gcc/testsuite/gcc.target/i386/pr42542-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42542-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42542-2.c
--- a/gcc/testsuite/gcc.target/i386/pr42542-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42542-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42542-3.c
--- a/gcc/testsuite/gcc.target/i386/pr42542-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42542-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42542-3a.c
--- a/gcc/testsuite/gcc.target/i386/pr42542-3a.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42542-3a.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "pr42542-3.c"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42549.c
--- a/gcc/testsuite/gcc.target/i386/pr42549.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42549.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O2 -m3dnow" } */
 
 #include "mmx-3dnow-check.h"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/pr42881.c
--- a/gcc/testsuite/gcc.target/i386/pr42881.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/pr42881.c	Mon May 17 19:14:34 2010 +0200
@@ -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)
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/push-1.c
--- a/gcc/testsuite/gcc.target/i386/push-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/push-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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__));
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/quad-sse.c
--- a/gcc/testsuite/gcc.target/i386/quad-sse.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/quad-sse.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 __float128 x, y;
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/reload-1.c
--- a/gcc/testsuite/gcc.target/i386/reload-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/reload-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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 } } */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-10.c
--- a/gcc/testsuite/gcc.target/i386/sse-10.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-10.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-11.c
--- a/gcc/testsuite/gcc.target/i386/sse-11.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-11.c	Mon May 17 19:14:34 2010 +0200
@@ -1,6 +1,7 @@
 /* PR rtl-optimization/21239 */
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-15.c
--- a/gcc/testsuite/gcc.target/i386/sse-15.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-15.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-17.c
--- a/gcc/testsuite/gcc.target/i386/sse-17.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-17.c	Mon May 17 19:14:34 2010 +0200
@@ -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();
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-18.c
--- a/gcc/testsuite/gcc.target/i386/sse-18.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-18.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O3 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-19.c
--- a/gcc/testsuite/gcc.target/i386/sse-19.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-19.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-4.c
--- a/gcc/testsuite/gcc.target/i386/sse-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-6.c
--- a/gcc/testsuite/gcc.target/i386/sse-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-6.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse-vect-types.c
--- a/gcc/testsuite/gcc.target/i386/sse-vect-types.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse-vect-types.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O0 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-addpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-addpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-addpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-addsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-addsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-andpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-andpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -std=c99" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-3.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-4.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-5.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-comisd-6.c
--- a/gcc/testsuite/gcc.target/i386/sse2-comisd-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-comisd-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c
--- a/gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-divpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-divpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-divsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-divsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
--- a/gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c
--- a/gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-minpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-minpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-minpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-minsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-minsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-minsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-mmx.c
--- a/gcc/testsuite/gcc.target/i386/sse2-mmx.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-mmx.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movapd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movq-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movq-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movq-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movq-3.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movq-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movq-3.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movsd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movsd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movsd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movupd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movupd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movupd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-movupd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-movupd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-movupd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-orpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-orpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-orpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-paddw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-paddw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-paddw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pand-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pand-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pand-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pandn-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pandn-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pandn-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pminub-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pminub-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pminub-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-por-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-por-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-por-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pslld-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pslld-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pslld-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pslld-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pslld-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pslld-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psllq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psllq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psllq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psllq-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psllq-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psllq-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psllw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psllw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psllw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psllw-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psllw-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psllw-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrad-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrad-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrad-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrad-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrad-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrad-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psraw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psraw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psraw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psraw-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psraw-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psraw-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrld-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrld-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrld-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrld-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrld-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrld-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-psubw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-psubw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-psubw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-pxor-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-pxor-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-pxor-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
--- a/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-shufps-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-shufps-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-subpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-subpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-subsd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-subsd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c
--- a/gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-unpack-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-unpack-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-unpack-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-2.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-3.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-3.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-4.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-4.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-5.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-5.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-vec-6.c
--- a/gcc/testsuite/gcc.target/i386/sse2-vec-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-vec-6.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c
--- a/gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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"
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-addsubpd.c
--- a/gcc/testsuite/gcc.target/i386/sse3-addsubpd.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-addsubpd.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-addsubps.c
--- a/gcc/testsuite/gcc.target/i386/sse3-addsubps.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-addsubps.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-haddpd.c
--- a/gcc/testsuite/gcc.target/i386/sse3-haddpd.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-haddpd.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-haddps.c
--- a/gcc/testsuite/gcc.target/i386/sse3-haddps.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-haddps.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-hsubpd.c
--- a/gcc/testsuite/gcc.target/i386/sse3-hsubpd.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-hsubpd.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-hsubps.c
--- a/gcc/testsuite/gcc.target/i386/sse3-hsubps.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-hsubps.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-lddqu.c
--- a/gcc/testsuite/gcc.target/i386/sse3-lddqu.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-lddqu.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-movddup.c
--- a/gcc/testsuite/gcc.target/i386/sse3-movddup.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-movddup.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-movshdup.c
--- a/gcc/testsuite/gcc.target/i386/sse3-movshdup.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-movshdup.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sse3-movsldup.c
--- a/gcc/testsuite/gcc.target/i386/sse3-movsldup.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sse3-movsldup.c	Mon May 17 19:14:34 2010 +0200
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssefn-2.c
--- a/gcc/testsuite/gcc.target/i386/ssefn-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssefn-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssefn-4.c
--- a/gcc/testsuite/gcc.target/i386/ssefn-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssefn-4.c	Mon May 17 19:14:34 2010 +0200
@@ -3,6 +3,7 @@
 
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssefp-1.c
--- a/gcc/testsuite/gcc.target/i386/ssefp-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssefp-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssefp-2.c
--- a/gcc/testsuite/gcc.target/i386/ssefp-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssefp-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sseregparm-3.c
--- a/gcc/testsuite/gcc.target/i386/sseregparm-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sseregparm-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sseregparm-4.c
--- a/gcc/testsuite/gcc.target/i386/sseregparm-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sseregparm-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sseregparm-5.c
--- a/gcc/testsuite/gcc.target/i386/sseregparm-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sseregparm-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sseregparm-6.c
--- a/gcc/testsuite/gcc.target/i386/sseregparm-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sseregparm-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/sseregparm-7.c
--- a/gcc/testsuite/gcc.target/i386/sseregparm-7.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/sseregparm-7.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssetype-1.c
--- a/gcc/testsuite/gcc.target/i386/ssetype-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssetype-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssetype-2.c
--- a/gcc/testsuite/gcc.target/i386/ssetype-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssetype-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssetype-3.c
--- a/gcc/testsuite/gcc.target/i386/ssetype-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssetype-3.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssetype-4.c
--- a/gcc/testsuite/gcc.target/i386/ssetype-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssetype-4.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/ssetype-5.c
--- a/gcc/testsuite/gcc.target/i386/ssetype-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/ssetype-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/unordcmp-1.c
--- a/gcc/testsuite/gcc.target/i386/unordcmp-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/unordcmp-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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" } } */
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-1.c
--- a/gcc/testsuite/gcc.target/i386/vararg-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-1.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-2.c
--- a/gcc/testsuite/gcc.target/i386/vararg-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-2.c	Mon May 17 19:14:34 2010 +0200
@@ -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>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-3.c
--- a/gcc/testsuite/gcc.target/i386/vararg-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-3.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-4.c
--- a/gcc/testsuite/gcc.target/i386/vararg-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-4.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-7.c
--- a/gcc/testsuite/gcc.target/i386/vararg-7.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-7.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vararg-8.c
--- a/gcc/testsuite/gcc.target/i386/vararg-8.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vararg-8.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-1.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 float a;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-2.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-2.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 int a;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-3.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-3.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 char a;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-4.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-4.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 short a;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-5.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-5.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-5.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vecinit-6.c
--- a/gcc/testsuite/gcc.target/i386/vecinit-6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vecinit-6.c	Mon May 17 19:14:34 2010 +0200
@@ -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;
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize2.c
--- a/gcc/testsuite/gcc.target/i386/vectorize2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize2.c	Mon May 17 19:14:34 2010 +0200
@@ -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];
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize3.c
--- a/gcc/testsuite/gcc.target/i386/vectorize3.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize3.c	Mon May 17 19:14:34 2010 +0200
@@ -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];
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize4.c
--- a/gcc/testsuite/gcc.target/i386/vectorize4.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize4.c	Mon May 17 19:14:34 2010 +0200
@@ -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.  */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize6.c
--- a/gcc/testsuite/gcc.target/i386/vectorize6.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize6.c	Mon May 17 19:14:34 2010 +0200
@@ -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];
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize7.c
--- a/gcc/testsuite/gcc.target/i386/vectorize7.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize7.c	Mon May 17 19:14:34 2010 +0200
@@ -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];
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vectorize8.c
--- a/gcc/testsuite/gcc.target/i386/vectorize8.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vectorize8.c	Mon May 17 19:14:34 2010 +0200
@@ -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];
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vperm-v2df.c
--- a/gcc/testsuite/gcc.target/i386/vperm-v2df.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vperm-v2df.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vperm-v2di.c
--- a/gcc/testsuite/gcc.target/i386/vperm-v2di.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vperm-v2di.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/vperm-v4si-1.c
--- a/gcc/testsuite/gcc.target/i386/vperm-v4si-1.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/vperm-v4si-1.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/xorps-sse2.c
--- a/gcc/testsuite/gcc.target/i386/xorps-sse2.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/xorps-sse2.c	Mon May 17 19:14:34 2010 +0200
@@ -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 *-*-* } } } */
 
diff -r 02bed8325076 gcc/testsuite/gcc.target/i386/xorps.c
--- a/gcc/testsuite/gcc.target/i386/xorps.c	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gcc.target/i386/xorps.c	Mon May 17 19:14:34 2010 +0200
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef float __m128 __attribute__ ((vector_size (16)));
 
diff -r 02bed8325076 gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90
--- a/gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90	Mon May 17 19:14:34 2010 +0200
@@ -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)
diff -r 02bed8325076 gcc/testsuite/gfortran.dg/graphite/pr42326.f90
--- a/gcc/testsuite/gfortran.dg/graphite/pr42326.f90	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gfortran.dg/graphite/pr42326.f90	Mon May 17 19:14:34 2010 +0200
@@ -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)
diff -r 02bed8325076 gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
--- a/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f	Mon May 17 19:14:34 2010 +0200
@@ -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" }
 
 
diff -r 02bed8325076 gcc/testsuite/gfortran.dg/vect/vect.exp
--- a/gcc/testsuite/gfortran.dg/vect/vect.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/gfortran.dg/vect/vect.exp	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/lib/fortran-torture.exp
--- a/gcc/testsuite/lib/fortran-torture.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/lib/fortran-torture.exp	Mon May 17 19:14:34 2010 +0200
@@ -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
diff -r 02bed8325076 gcc/testsuite/lib/target-supports-dg.exp
--- a/gcc/testsuite/lib/target-supports-dg.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/lib/target-supports-dg.exp	Mon May 17 19:14:34 2010 +0200
@@ -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"]
diff -r 02bed8325076 gcc/testsuite/lib/target-supports.exp
--- a/gcc/testsuite/lib/target-supports.exp	Mon May 17 19:10:31 2010 +0200
+++ b/gcc/testsuite/lib/target-supports.exp	Mon May 17 19:14:34 2010 +0200
@@ -3152,6 +3152,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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]