OSDN Git Service

gcc:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 May 2010 16:10:05 +0000 (16:10 +0000)
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 May 2010 16:10:05 +0000 (16:10 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159584 138bc75d-0d04-0410-961f-82ee72b054a4

344 files changed:
gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/mangle42.C
gcc/testsuite/g++.dg/ext/attrib35.C
gcc/testsuite/g++.dg/opt/pr40496.C
gcc/testsuite/g++.dg/other/i386-1.C
gcc/testsuite/g++.dg/other/i386-4.C
gcc/testsuite/g++.dg/other/pr34435.C
gcc/testsuite/g++.dg/other/pr39496.C
gcc/testsuite/g++.dg/other/pr40446.C
gcc/testsuite/g++.dg/vect/vect.exp
gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
gcc/testsuite/gcc.dg/compat/vector-1a_main.c
gcc/testsuite/gcc.dg/compat/vector-2a_main.c
gcc/testsuite/gcc.dg/lto/20090206-1_0.c
gcc/testsuite/gcc.dg/pr34856.c
gcc/testsuite/gcc.dg/pr36584.c
gcc/testsuite/gcc.dg/pr36997.c
gcc/testsuite/gcc.dg/pr37544.c
gcc/testsuite/gcc.dg/torture/pr16104-1.c
gcc/testsuite/gcc.dg/torture/pr35771-1.c
gcc/testsuite/gcc.dg/torture/pr35771-2.c
gcc/testsuite/gcc.dg/torture/pr35771-3.c
gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
gcc/testsuite/gcc.dg/vect/vect.exp
gcc/testsuite/gcc.target/i386/20060512-1.c
gcc/testsuite/gcc.target/i386/20060512-3.c
gcc/testsuite/gcc.target/i386/3dnow-1.c
gcc/testsuite/gcc.target/i386/3dnow-2.c
gcc/testsuite/gcc.target/i386/3dnowA-1.c
gcc/testsuite/gcc.target/i386/3dnowA-2.c
gcc/testsuite/gcc.target/i386/all_one_m128i.c
gcc/testsuite/gcc.target/i386/float128-1.c
gcc/testsuite/gcc.target/i386/float128-2.c
gcc/testsuite/gcc.target/i386/fpcvt-1.c
gcc/testsuite/gcc.target/i386/fpcvt-2.c
gcc/testsuite/gcc.target/i386/fpcvt-3.c
gcc/testsuite/gcc.target/i386/fpprec-1.c
gcc/testsuite/gcc.target/i386/funcspec-9.c
gcc/testsuite/gcc.target/i386/i386.exp
gcc/testsuite/gcc.target/i386/incoming-1.c
gcc/testsuite/gcc.target/i386/incoming-12.c
gcc/testsuite/gcc.target/i386/incoming-2.c
gcc/testsuite/gcc.target/i386/incoming-3.c
gcc/testsuite/gcc.target/i386/incoming-4.c
gcc/testsuite/gcc.target/i386/incoming-6.c
gcc/testsuite/gcc.target/i386/incoming-7.c
gcc/testsuite/gcc.target/i386/incoming-8.c
gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
gcc/testsuite/gcc.target/i386/opt-1.c
gcc/testsuite/gcc.target/i386/opt-2.c
gcc/testsuite/gcc.target/i386/ordcmp-1.c
gcc/testsuite/gcc.target/i386/pr17692.c
gcc/testsuite/gcc.target/i386/pr18614-1.c
gcc/testsuite/gcc.target/i386/pr22152.c
gcc/testsuite/gcc.target/i386/pr23570.c
gcc/testsuite/gcc.target/i386/pr23575.c
gcc/testsuite/gcc.target/i386/pr26449-1.c
gcc/testsuite/gcc.target/i386/pr26600.c
gcc/testsuite/gcc.target/i386/pr27790.c
gcc/testsuite/gcc.target/i386/pr28839.c
gcc/testsuite/gcc.target/i386/pr30970.c
gcc/testsuite/gcc.target/i386/pr32000-1.c
gcc/testsuite/gcc.target/i386/pr32000-2.c
gcc/testsuite/gcc.target/i386/pr32280.c
gcc/testsuite/gcc.target/i386/pr32661.c
gcc/testsuite/gcc.target/i386/pr32708-1.c
gcc/testsuite/gcc.target/i386/pr32961.c
gcc/testsuite/gcc.target/i386/pr33329.c
gcc/testsuite/gcc.target/i386/pr35714.c
gcc/testsuite/gcc.target/i386/pr35767-1.c
gcc/testsuite/gcc.target/i386/pr35767-1d.c
gcc/testsuite/gcc.target/i386/pr35767-1i.c
gcc/testsuite/gcc.target/i386/pr35767-2.c
gcc/testsuite/gcc.target/i386/pr35767-2d.c
gcc/testsuite/gcc.target/i386/pr35767-2i.c
gcc/testsuite/gcc.target/i386/pr35767-3.c
gcc/testsuite/gcc.target/i386/pr35767-5.c
gcc/testsuite/gcc.target/i386/pr36222-1.c
gcc/testsuite/gcc.target/i386/pr36578-1.c
gcc/testsuite/gcc.target/i386/pr36578-2.c
gcc/testsuite/gcc.target/i386/pr36992-1.c
gcc/testsuite/gcc.target/i386/pr37101.c
gcc/testsuite/gcc.target/i386/pr37216.c
gcc/testsuite/gcc.target/i386/pr37434-1.c
gcc/testsuite/gcc.target/i386/pr37434-2.c
gcc/testsuite/gcc.target/i386/pr37843-3.c
gcc/testsuite/gcc.target/i386/pr37843-4.c
gcc/testsuite/gcc.target/i386/pr39162.c
gcc/testsuite/gcc.target/i386/pr39315-1.c
gcc/testsuite/gcc.target/i386/pr39315-2.c
gcc/testsuite/gcc.target/i386/pr39315-3.c
gcc/testsuite/gcc.target/i386/pr39315-4.c
gcc/testsuite/gcc.target/i386/pr39445.c
gcc/testsuite/gcc.target/i386/pr39496.c
gcc/testsuite/gcc.target/i386/pr40809.c
gcc/testsuite/gcc.target/i386/pr40906-3.c
gcc/testsuite/gcc.target/i386/pr41019.c
gcc/testsuite/gcc.target/i386/pr42542-1.c
gcc/testsuite/gcc.target/i386/pr42542-2.c
gcc/testsuite/gcc.target/i386/pr42542-3.c
gcc/testsuite/gcc.target/i386/pr42542-3a.c
gcc/testsuite/gcc.target/i386/pr42549.c
gcc/testsuite/gcc.target/i386/pr42881.c
gcc/testsuite/gcc.target/i386/push-1.c
gcc/testsuite/gcc.target/i386/quad-sse.c
gcc/testsuite/gcc.target/i386/reload-1.c
gcc/testsuite/gcc.target/i386/sse-10.c
gcc/testsuite/gcc.target/i386/sse-11.c
gcc/testsuite/gcc.target/i386/sse-15.c
gcc/testsuite/gcc.target/i386/sse-17.c
gcc/testsuite/gcc.target/i386/sse-18.c
gcc/testsuite/gcc.target/i386/sse-19.c
gcc/testsuite/gcc.target/i386/sse-4.c
gcc/testsuite/gcc.target/i386/sse-6.c
gcc/testsuite/gcc.target/i386/sse-vect-types.c
gcc/testsuite/gcc.target/i386/sse2-addpd-1.c
gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
gcc/testsuite/gcc.target/i386/sse2-comisd-1.c
gcc/testsuite/gcc.target/i386/sse2-comisd-2.c
gcc/testsuite/gcc.target/i386/sse2-comisd-3.c
gcc/testsuite/gcc.target/i386/sse2-comisd-4.c
gcc/testsuite/gcc.target/i386/sse2-comisd-5.c
gcc/testsuite/gcc.target/i386/sse2-comisd-6.c
gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c
gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c
gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c
gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c
gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c
gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c
gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c
gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c
gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c
gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c
gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c
gcc/testsuite/gcc.target/i386/sse2-minpd-1.c
gcc/testsuite/gcc.target/i386/sse2-minsd-1.c
gcc/testsuite/gcc.target/i386/sse2-mmx.c
gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
gcc/testsuite/gcc.target/i386/sse2-movapd-2.c
gcc/testsuite/gcc.target/i386/sse2-movd-1.c
gcc/testsuite/gcc.target/i386/sse2-movd-2.c
gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c
gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c
gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c
gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c
gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c
gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c
gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c
gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c
gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c
gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
gcc/testsuite/gcc.target/i386/sse2-movq-1.c
gcc/testsuite/gcc.target/i386/sse2-movq-2.c
gcc/testsuite/gcc.target/i386/sse2-movq-3.c
gcc/testsuite/gcc.target/i386/sse2-movsd-1.c
gcc/testsuite/gcc.target/i386/sse2-movsd-2.c
gcc/testsuite/gcc.target/i386/sse2-movupd-1.c
gcc/testsuite/gcc.target/i386/sse2-movupd-2.c
gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c
gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c
gcc/testsuite/gcc.target/i386/sse2-orpd-1.c
gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c
gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c
gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c
gcc/testsuite/gcc.target/i386/sse2-paddb-1.c
gcc/testsuite/gcc.target/i386/sse2-paddd-1.c
gcc/testsuite/gcc.target/i386/sse2-paddq-1.c
gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c
gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c
gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c
gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c
gcc/testsuite/gcc.target/i386/sse2-paddw-1.c
gcc/testsuite/gcc.target/i386/sse2-pand-1.c
gcc/testsuite/gcc.target/i386/sse2-pandn-1.c
gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c
gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c
gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c
gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c
gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c
gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c
gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c
gcc/testsuite/gcc.target/i386/sse2-pminub-1.c
gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c
gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c
gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c
gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c
gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c
gcc/testsuite/gcc.target/i386/sse2-por-1.c
gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c
gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c
gcc/testsuite/gcc.target/i386/sse2-pslld-1.c
gcc/testsuite/gcc.target/i386/sse2-pslld-2.c
gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c
gcc/testsuite/gcc.target/i386/sse2-psllq-1.c
gcc/testsuite/gcc.target/i386/sse2-psllq-2.c
gcc/testsuite/gcc.target/i386/sse2-psllw-1.c
gcc/testsuite/gcc.target/i386/sse2-psllw-2.c
gcc/testsuite/gcc.target/i386/sse2-psrad-1.c
gcc/testsuite/gcc.target/i386/sse2-psrad-2.c
gcc/testsuite/gcc.target/i386/sse2-psraw-1.c
gcc/testsuite/gcc.target/i386/sse2-psraw-2.c
gcc/testsuite/gcc.target/i386/sse2-psrld-1.c
gcc/testsuite/gcc.target/i386/sse2-psrld-2.c
gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c
gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c
gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c
gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c
gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c
gcc/testsuite/gcc.target/i386/sse2-psubb-1.c
gcc/testsuite/gcc.target/i386/sse2-psubd-1.c
gcc/testsuite/gcc.target/i386/sse2-psubq-1.c
gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c
gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c
gcc/testsuite/gcc.target/i386/sse2-psubw-1.c
gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c
gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c
gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c
gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c
gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c
gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c
gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c
gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c
gcc/testsuite/gcc.target/i386/sse2-pxor-1.c
gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c
gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c
gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c
gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c
gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c
gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c
gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c
gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c
gcc/testsuite/gcc.target/i386/sse2-unpack-1.c
gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c
gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c
gcc/testsuite/gcc.target/i386/sse2-vec-1.c
gcc/testsuite/gcc.target/i386/sse2-vec-2.c
gcc/testsuite/gcc.target/i386/sse2-vec-3.c
gcc/testsuite/gcc.target/i386/sse2-vec-4.c
gcc/testsuite/gcc.target/i386/sse2-vec-5.c
gcc/testsuite/gcc.target/i386/sse2-vec-6.c
gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c
gcc/testsuite/gcc.target/i386/sse3-addsubpd.c
gcc/testsuite/gcc.target/i386/sse3-addsubps.c
gcc/testsuite/gcc.target/i386/sse3-haddpd.c
gcc/testsuite/gcc.target/i386/sse3-haddps.c
gcc/testsuite/gcc.target/i386/sse3-hsubpd.c
gcc/testsuite/gcc.target/i386/sse3-hsubps.c
gcc/testsuite/gcc.target/i386/sse3-lddqu.c
gcc/testsuite/gcc.target/i386/sse3-movddup.c
gcc/testsuite/gcc.target/i386/sse3-movshdup.c
gcc/testsuite/gcc.target/i386/sse3-movsldup.c
gcc/testsuite/gcc.target/i386/ssefn-2.c
gcc/testsuite/gcc.target/i386/ssefn-4.c
gcc/testsuite/gcc.target/i386/ssefp-1.c
gcc/testsuite/gcc.target/i386/ssefp-2.c
gcc/testsuite/gcc.target/i386/sseregparm-3.c
gcc/testsuite/gcc.target/i386/sseregparm-4.c
gcc/testsuite/gcc.target/i386/sseregparm-5.c
gcc/testsuite/gcc.target/i386/sseregparm-6.c
gcc/testsuite/gcc.target/i386/sseregparm-7.c
gcc/testsuite/gcc.target/i386/ssetype-1.c
gcc/testsuite/gcc.target/i386/ssetype-2.c
gcc/testsuite/gcc.target/i386/ssetype-3.c
gcc/testsuite/gcc.target/i386/ssetype-4.c
gcc/testsuite/gcc.target/i386/ssetype-5.c
gcc/testsuite/gcc.target/i386/unordcmp-1.c
gcc/testsuite/gcc.target/i386/vararg-1.c
gcc/testsuite/gcc.target/i386/vararg-2.c
gcc/testsuite/gcc.target/i386/vararg-3.c
gcc/testsuite/gcc.target/i386/vararg-4.c
gcc/testsuite/gcc.target/i386/vararg-7.c
gcc/testsuite/gcc.target/i386/vararg-8.c
gcc/testsuite/gcc.target/i386/vecinit-1.c
gcc/testsuite/gcc.target/i386/vecinit-2.c
gcc/testsuite/gcc.target/i386/vecinit-3.c
gcc/testsuite/gcc.target/i386/vecinit-4.c
gcc/testsuite/gcc.target/i386/vecinit-5.c
gcc/testsuite/gcc.target/i386/vecinit-6.c
gcc/testsuite/gcc.target/i386/vectorize2.c
gcc/testsuite/gcc.target/i386/vectorize3.c
gcc/testsuite/gcc.target/i386/vectorize4.c
gcc/testsuite/gcc.target/i386/vectorize6.c
gcc/testsuite/gcc.target/i386/vectorize7.c
gcc/testsuite/gcc.target/i386/vectorize8.c
gcc/testsuite/gcc.target/i386/vperm-v2df.c
gcc/testsuite/gcc.target/i386/vperm-v2di.c
gcc/testsuite/gcc.target/i386/vperm-v4si-1.c
gcc/testsuite/gcc.target/i386/xorps-sse2.c
gcc/testsuite/gcc.target/i386/xorps.c
gcc/testsuite/gfortran.dg/graphite/pr42326-1.f90
gcc/testsuite/gfortran.dg/graphite/pr42326.f90
gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
gcc/testsuite/gfortran.dg/vect/vect.exp
gcc/testsuite/lib/fortran-torture.exp
gcc/testsuite/lib/target-supports-dg.exp
gcc/testsuite/lib/target-supports.exp

index 5eb9e02..4167712 100644 (file)
@@ -1,3 +1,10 @@
+2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords): Document
+       3dnow, sse3, sse2.
+       (Directives): Document optional dg-require-effective-target
+       selector.
+
 2010-05-19  Richard Guenther  <rguenther@suse.de>
 
        PR lto/44196
index 14397b7..a27aea2 100644 (file)
@@ -1094,9 +1094,12 @@ but not if @code{-fpic} is also present:
 /* @{ 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 @@ Target uses a ColdFire FPU.
 @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 @@ Target supports @code{wchar_t} that is compatible with @code{char32_t}.
 @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 @@ Target supports attribute @code{ms_hook_prologue}.
 @item pclmul
 Target supports compiling @code{pclmul} instructions.
 
+@item sse3
+Target supports compiling @code{sse3} instructions.
+
 @item sse4
 Target supports compiling @code{sse4} instructions.
 
index 4de8c08..d68e7c6 100644 (file)
@@ -1,3 +1,356 @@
+2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * lib/target-supports.exp (check_effective_target_sse2): New proc.
+       * lib/target-supports-dg.exp (dg-require-effective-target): Allow
+       for optional selector.
+       * gcc.target/i386/i386.exp (check_effective_target_3dnow): New proc.
+       (check_effective_target_sse3): New proc.
+       * gcc.target/i386/math-torture/math-torture.exp: Load
+       target-supports.exp.
+       Only add options with -msse2 to MATH_TORTURE_OPTIONS if
+       check_effective_target_sse2.
+       * gcc.dg/vect/vect.exp: Return unless check_effective_target_sse2.
+       * gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Likewise.
+       * g++.dg/vect/vect.exp: Likewise.
+       * gfortran.dg/vect/vect.exp: Likewise.
+       * lib/fortran-torture.exp (get-fortran-torture-options): Only use
+       -msse2 if check_effective_target_sse2.
+
+       * gcc.target/i386/3dnow-1.c: Use dg-require-effective-target 3dnow.
+       * gcc.target/i386/3dnow-2.c: Likewise.
+       * gcc.target/i386/3dnowA-1.c: Likewise.
+       * gcc.target/i386/3dnowA-2.c: Likewise.
+       * gcc.target/i386/pr42549.c: Likewise.
+
+       * gcc.target/i386/sse3-addsubpd.c: Use dg-require-effective-target sse3.
+       * gcc.target/i386/sse3-addsubps.c: Likewise.
+       * gcc.target/i386/sse3-haddpd.c: Likewise.
+       * gcc.target/i386/sse3-haddps.c: Likewise.
+       * gcc.target/i386/sse3-hsubpd.c: Likewise.
+       * gcc.target/i386/sse3-hsubps.c: Likewise.
+       * gcc.target/i386/sse3-lddqu.c: Likewise.
+       * gcc.target/i386/sse3-movddup.c: Likewise.
+       * gcc.target/i386/sse3-movshdup.c: Likewise.
+       * gcc.target/i386/sse3-movsldup.c: Likewise.
+
+       * g++.dg/abi/mangle42.C: Use dg-require-effective-target sse2.
+       * g++.dg/ext/attrib35.C: Likewise.
+       * g++.dg/opt/pr40496.C: Likewise.
+       * g++.dg/other/i386-1.C: Likewise.
+       * g++.dg/other/i386-4.C: Likewise.
+       * g++.dg/other/pr34435.C: Likewise.
+       * g++.dg/other/pr39496.C: Likewise.
+       * g++.dg/other/pr40446.C: Likewise.
+       * gcc.dg/compat/union-m128-1_main.c: Likewise.
+       * gcc.dg/compat/vector-1a_main.c: Likewise.
+       * gcc.dg/compat/vector-2a_main.c: Likewise.
+       * gcc.dg/lto/20090206-1_0.c: Likewise.
+       * gcc.dg/pr34856.c: Likewise.
+       * gcc.dg/pr36584.c: Likewise.
+       * gcc.dg/pr36997.c: Likewise.  Adapt dg-message line number.
+       * gcc.dg/pr37544.c: Likewise.
+       * gcc.dg/torture/pr16104-1.c: Likewise.
+       * gcc.dg/torture/pr35771-1.c: Likewise.
+       * gcc.dg/torture/pr35771-2.c: Likewise.
+       * gcc.dg/torture/pr35771-3.c: Likewise.
+       * gcc.dg/torture/stackalign/alloca-2.c: Likewise.
+       * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
+       * gcc.dg/torture/stackalign/push-1.c: Likewise.
+       * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
+       * gcc.dg/tree-ssa/prefetch-6.c: Likewise.
+       * gcc.dg/tree-ssa/prefetch-7.c: Likewise.
+       * gcc.dg/vect/vect-debug-pr41926.c: Likewise.
+       * gcc.target/i386/20060512-1.c: Likewise.
+       * gcc.target/i386/20060512-3.c: Likewise.
+       * gcc.target/i386/all_one_m128i.c: Likewise.
+       * gcc.target/i386/float128-1.c: Likewise.
+       * gcc.target/i386/float128-2.c: Likewise.
+       * gcc.target/i386/fpcvt-1.c: Likewise.
+       * gcc.target/i386/fpcvt-2.c: Likewise.
+       * gcc.target/i386/fpcvt-3.c: Likewise.
+       * gcc.target/i386/fpprec-1.c: Likewise.
+       * gcc.target/i386/funcspec-9.c: Likewise.
+       * gcc.target/i386/incoming-1.c: Likewise.
+       * gcc.target/i386/incoming-12.c: Likewise.
+       * gcc.target/i386/incoming-2.c: Likewise.
+       * gcc.target/i386/incoming-3.c: Likewise.
+       * gcc.target/i386/incoming-4.c: Likewise.
+       * gcc.target/i386/incoming-6.c: Likewise.
+       * gcc.target/i386/incoming-7.c: Likewise.
+       * gcc.target/i386/incoming-8.c: Likewise.
+       * gcc.target/i386/opt-1.c: Likewise.
+       * gcc.target/i386/opt-2.c: Likewise.
+       * gcc.target/i386/ordcmp-1.c: Likewise.
+       * gcc.target/i386/pr17692.c: Likewise.
+       * gcc.target/i386/pr18614-1.c: Likewise.
+       * gcc.target/i386/pr22152.c: Likewise.
+       * gcc.target/i386/pr23570.c: Likewise.
+       * gcc.target/i386/pr23575.c: Likewise.
+       * gcc.target/i386/pr26449-1.c: Likewise.
+       * gcc.target/i386/pr26600.c: Likewise.
+       * gcc.target/i386/pr27790.c: Likewise.
+       * gcc.target/i386/pr28839.c: Likewise.
+       * gcc.target/i386/pr30970.c: Likewise.
+       * gcc.target/i386/pr32000-1.c: Likewise.
+       * gcc.target/i386/pr32000-2.c: Likewise.
+       * gcc.target/i386/pr32280.c: Likewise.
+       * gcc.target/i386/pr32661.c: Likewise.
+       * gcc.target/i386/pr32708-1.c: Likewise.
+       * gcc.target/i386/pr32961.c: Likewise.
+       * gcc.target/i386/pr33329.c: Likewise.
+       * gcc.target/i386/pr35714.c: Likewise.
+       * gcc.target/i386/pr35767-1.c: Likewise.
+       * gcc.target/i386/pr35767-1d.c: Likewise.
+       * gcc.target/i386/pr35767-1i.c: Likewise.
+       * gcc.target/i386/pr35767-2.c: Likewise.
+       * gcc.target/i386/pr35767-2d.c: Likewise.
+       * gcc.target/i386/pr35767-2i.c: Likewise.
+       * gcc.target/i386/pr35767-3.c: Likewise.
+       * gcc.target/i386/pr35767-5.c: Likewise.
+       * gcc.target/i386/pr36222-1.c: Likewise.
+       * gcc.target/i386/pr36578-1.c: Likewise.
+       * gcc.target/i386/pr36578-2.c: Likewise.
+       * gcc.target/i386/pr36992-1.c: Likewise.
+       * gcc.target/i386/pr37101.c: Likewise.
+       * gcc.target/i386/pr37216.c: Likewise.
+       * gcc.target/i386/pr37434-1.c: Likewise.
+       * gcc.target/i386/pr37434-2.c: Likewise.
+       * gcc.target/i386/pr37843-3.c: Likewise.
+       * gcc.target/i386/pr37843-4.c: Likewise.
+       * gcc.target/i386/pr39162.c: Likewise.
+       * gcc.target/i386/pr39315-1.c: Likewise.
+       * gcc.target/i386/pr39315-2.c: Likewise.
+       * gcc.target/i386/pr39315-3.c: Likewise.
+       * gcc.target/i386/pr39315-4.c: Likewise.
+       * gcc.target/i386/pr39445.c: Likewise.
+       * gcc.target/i386/pr39496.c: Likewise.
+       * gcc.target/i386/pr40809.c: Likewise.
+       * gcc.target/i386/pr40906-3.c: Likewise.
+       * gcc.target/i386/pr41019.c: Likewise.
+       * gcc.target/i386/pr42542-1.c: Likewise.
+       * gcc.target/i386/pr42542-2.c: Likewise.
+       * gcc.target/i386/pr42542-3.c: Likewise.
+       * gcc.target/i386/pr42542-3a.c: Likewise.
+       * gcc.target/i386/pr42881.c: Likewise.
+       * gcc.target/i386/push-1.c: Likewise.
+       * gcc.target/i386/quad-sse.c: Likewise.
+       * gcc.target/i386/reload-1.c: Likewise.
+       * gcc.target/i386/sse-10.c: Likewise.
+       * gcc.target/i386/sse-11.c: Likewise.
+       * gcc.target/i386/sse-15.c: Likewise.
+       * gcc.target/i386/sse-17.c: Likewise.
+       * gcc.target/i386/sse-18.c: Likewise.
+       * gcc.target/i386/sse-19.c: Likewise.
+       * gcc.target/i386/sse-4.c: Likewise.
+       * gcc.target/i386/sse-6.c: Likewise.
+       * gcc.target/i386/sse-vect-types.c: Likewise.
+       * gcc.target/i386/sse2-addpd-1.c: Likewise.
+       * gcc.target/i386/sse2-addsd-1.c: Likewise.
+       * gcc.target/i386/sse2-andnpd-1.c: Likewise.
+       * gcc.target/i386/sse2-andpd-1.c: Likewise.
+       * gcc.target/i386/sse2-cmpsd-1.c: Likewise.
+       * gcc.target/i386/sse2-comisd-1.c: Likewise.
+       * gcc.target/i386/sse2-comisd-2.c: Likewise.
+       * gcc.target/i386/sse2-comisd-3.c: Likewise.
+       * gcc.target/i386/sse2-comisd-4.c: Likewise.
+       * gcc.target/i386/sse2-comisd-5.c: Likewise.
+       * gcc.target/i386/sse2-comisd-6.c: Likewise.
+       * gcc.target/i386/sse2-copysign-vec.c: Likewise.
+       * gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
+       * gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
+       * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
+       * gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
+       * gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
+       * gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
+       * gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
+       * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
+       * gcc.target/i386/sse2-divpd-1.c: Likewise.
+       * gcc.target/i386/sse2-divsd-1.c: Likewise.
+       * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
+       * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
+       * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
+       * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
+       * gcc.target/i386/sse2-lrint-vec.c: Likewise.
+       * gcc.target/i386/sse2-lrintf-vec.c: Likewise.
+       * gcc.target/i386/sse2-maxpd-1.c: Likewise.
+       * gcc.target/i386/sse2-maxsd-1.c: Likewise.
+       * gcc.target/i386/sse2-minpd-1.c: Likewise.
+       * gcc.target/i386/sse2-minsd-1.c: Likewise.
+       * gcc.target/i386/sse2-mmx.c: Likewise.
+       * gcc.target/i386/sse2-movapd-1.c: Likewise.
+       * gcc.target/i386/sse2-movapd-2.c: Likewise.
+       * gcc.target/i386/sse2-movd-1.c: Likewise.
+       * gcc.target/i386/sse2-movd-2.c: Likewise.
+       * gcc.target/i386/sse2-movdqa-1.c: Likewise.
+       * gcc.target/i386/sse2-movdqa-2.c: Likewise.
+       * gcc.target/i386/sse2-movdqu-1.c: Likewise.
+       * gcc.target/i386/sse2-movdqu-2.c: Likewise.
+       * gcc.target/i386/sse2-movhpd-1.c: Likewise.
+       * gcc.target/i386/sse2-movhpd-2.c: Likewise.
+       * gcc.target/i386/sse2-movlpd-1.c: Likewise.
+       * gcc.target/i386/sse2-movlpd-2.c: Likewise.
+       * gcc.target/i386/sse2-movmskpd-1.c: Likewise.
+       * gcc.target/i386/sse2-movntdq-1.c: Likewise.
+       * gcc.target/i386/sse2-movntpd-1.c: Likewise.
+       * gcc.target/i386/sse2-movq-1.c: Likewise.
+       * gcc.target/i386/sse2-movq-2.c: Likewise.
+       * gcc.target/i386/sse2-movq-3.c: Likewise.
+       * gcc.target/i386/sse2-movsd-1.c: Likewise.
+       * gcc.target/i386/sse2-movsd-2.c: Likewise.
+       * gcc.target/i386/sse2-movupd-1.c: Likewise.
+       * gcc.target/i386/sse2-movupd-2.c: Likewise.
+       * gcc.target/i386/sse2-mulpd-1.c: Likewise.
+       * gcc.target/i386/sse2-mulsd-1.c: Likewise.
+       * gcc.target/i386/sse2-orpd-1.c: Likewise.
+       * gcc.target/i386/sse2-packssdw-1.c: Likewise.
+       * gcc.target/i386/sse2-packsswb-1.c: Likewise.
+       * gcc.target/i386/sse2-packuswb-1.c: Likewise.
+       * gcc.target/i386/sse2-paddb-1.c: Likewise.
+       * gcc.target/i386/sse2-paddd-1.c: Likewise.
+       * gcc.target/i386/sse2-paddq-1.c: Likewise.
+       * gcc.target/i386/sse2-paddsb-1.c: Likewise.
+       * gcc.target/i386/sse2-paddsw-1.c: Likewise.
+       * gcc.target/i386/sse2-paddusb-1.c: Likewise.
+       * gcc.target/i386/sse2-paddusw-1.c: Likewise.
+       * gcc.target/i386/sse2-paddw-1.c: Likewise.
+       * gcc.target/i386/sse2-pand-1.c: Likewise.
+       * gcc.target/i386/sse2-pandn-1.c: Likewise.
+       * gcc.target/i386/sse2-pavgb-1.c: Likewise.
+       * gcc.target/i386/sse2-pavgw-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
+       * gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
+       * gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
+       * gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
+       * gcc.target/i386/sse2-pmaxub-1.c: Likewise.
+       * gcc.target/i386/sse2-pminsw-1.c: Likewise.
+       * gcc.target/i386/sse2-pminub-1.c: Likewise.
+       * gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
+       * gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
+       * gcc.target/i386/sse2-pmulhw-1.c: Likewise.
+       * gcc.target/i386/sse2-pmullw-1.c: Likewise.
+       * gcc.target/i386/sse2-pmuludq-1.c: Likewise.
+       * gcc.target/i386/sse2-por-1.c: Likewise.
+       * gcc.target/i386/sse2-psadbw-1.c: Likewise.
+       * gcc.target/i386/sse2-pshufd-1.c: Likewise.
+       * gcc.target/i386/sse2-pshufhw-1.c: Likewise.
+       * gcc.target/i386/sse2-pshuflw-1.c: Likewise.
+       * gcc.target/i386/sse2-pslld-1.c: Likewise.
+       * gcc.target/i386/sse2-pslld-2.c: Likewise.
+       * gcc.target/i386/sse2-pslldq-1.c: Likewise.
+       * gcc.target/i386/sse2-psllq-1.c: Likewise.
+       * gcc.target/i386/sse2-psllq-2.c: Likewise.
+       * gcc.target/i386/sse2-psllw-1.c: Likewise.
+       * gcc.target/i386/sse2-psllw-2.c: Likewise.
+       * gcc.target/i386/sse2-psrad-1.c: Likewise.
+       * gcc.target/i386/sse2-psrad-2.c: Likewise.
+       * gcc.target/i386/sse2-psraw-1.c: Likewise.
+       * gcc.target/i386/sse2-psraw-2.c: Likewise.
+       * gcc.target/i386/sse2-psrld-1.c: Likewise.
+       * gcc.target/i386/sse2-psrld-2.c: Likewise.
+       * gcc.target/i386/sse2-psrldq-1.c: Likewise.
+       * gcc.target/i386/sse2-psrlq-1.c: Likewise.
+       * gcc.target/i386/sse2-psrlq-2.c: Likewise.
+       * gcc.target/i386/sse2-psrlw-1.c: Likewise.
+       * gcc.target/i386/sse2-psrlw-2.c: Likewise.
+       * gcc.target/i386/sse2-psubb-1.c: Likewise.
+       * gcc.target/i386/sse2-psubd-1.c: Likewise.
+       * gcc.target/i386/sse2-psubq-1.c: Likewise.
+       * gcc.target/i386/sse2-psubsb-1.c: Likewise.
+       * gcc.target/i386/sse2-psubsw-1.c: Likewise.
+       * gcc.target/i386/sse2-psubw-1.c: Likewise.
+       * gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
+       * gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
+       * gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
+       * gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
+       * gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
+       * gcc.target/i386/sse2-punpckldq-1.c: Likewise.
+       * gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
+       * gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
+       * gcc.target/i386/sse2-pxor-1.c: Likewise.
+       * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
+       * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
+       * gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
+       * gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
+       * gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
+       * gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
+       * gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
+       * gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
+       * gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
+       * gcc.target/i386/sse2-shufpd-1.c: Likewise.
+       * gcc.target/i386/sse2-shufps-1.c: Likewise.
+       * gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
+       * gcc.target/i386/sse2-subpd-1.c: Likewise.
+       * gcc.target/i386/sse2-subsd-1.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-1.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-2.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-3.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-4.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-5.c: Likewise.
+       * gcc.target/i386/sse2-ucomisd-6.c: Likewise.
+       * gcc.target/i386/sse2-unpack-1.c: Likewise.
+       * gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
+       * gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
+       * gcc.target/i386/sse2-vec-1.c: Likewise.
+       * gcc.target/i386/sse2-vec-2.c: Likewise.
+       * gcc.target/i386/sse2-vec-3.c: Likewise.
+       * gcc.target/i386/sse2-vec-4.c: Likewise.
+       * gcc.target/i386/sse2-vec-5.c: Likewise.
+       * gcc.target/i386/sse2-vec-6.c: Likewise.
+       * gcc.target/i386/sse2-xorpd-1.c: Likewise.
+       * gcc.target/i386/ssefn-2.c: Likewise.
+       * gcc.target/i386/ssefn-4.c: Likewise.
+       * gcc.target/i386/ssefp-1.c: Likewise.
+       * gcc.target/i386/ssefp-2.c: Likewise.
+       * gcc.target/i386/sseregparm-3.c: Likewise.
+       * gcc.target/i386/sseregparm-4.c: Likewise.
+       * gcc.target/i386/sseregparm-5.c: Likewise.
+       * gcc.target/i386/sseregparm-6.c: Likewise.
+       * gcc.target/i386/sseregparm-7.c: Likewise.
+       * gcc.target/i386/ssetype-1.c: Likewise.
+       * gcc.target/i386/ssetype-2.c: Likewise.
+       * gcc.target/i386/ssetype-3.c: Likewise.
+       * gcc.target/i386/ssetype-4.c: Likewise.
+       * gcc.target/i386/ssetype-5.c: Likewise.
+       * gcc.target/i386/unordcmp-1.c: Likewise.
+       * gcc.target/i386/vararg-1.c: Likewise.
+       * gcc.target/i386/vararg-2.c: Likewise.
+       * gcc.target/i386/vararg-3.c: Likewise.
+       * gcc.target/i386/vararg-4.c: Likewise.
+       * gcc.target/i386/vararg-7.c: Likewise.
+       * gcc.target/i386/vararg-8.c: Likewise.
+       * gcc.target/i386/vecinit-1.c: Likewise.
+       * gcc.target/i386/vecinit-2.c: Likewise.
+       * gcc.target/i386/vecinit-3.c: Likewise.
+       * gcc.target/i386/vecinit-4.c: Likewise.
+       * gcc.target/i386/vecinit-5.c: Likewise.
+       * gcc.target/i386/vecinit-6.c: Likewise.
+       * gcc.target/i386/vectorize2.c: Likewise.
+       * gcc.target/i386/vectorize3.c: Likewise.
+       * gcc.target/i386/vectorize4.c: Likewise.
+       * gcc.target/i386/vectorize6.c: Likewise.
+       * gcc.target/i386/vectorize7.c: Likewise.
+       * gcc.target/i386/vectorize8.c: Likewise.
+       * gcc.target/i386/vperm-v2df.c: Likewise.
+       * gcc.target/i386/vperm-v2di.c: Likewise.
+       * gcc.target/i386/vperm-v4si-1.c: Likewise.
+       * gcc.target/i386/xorps-sse2.c: Likewise.
+       * gcc.target/i386/xorps.c: Likewise.
+       * gfortran.dg/graphite/pr42326-1.f90: Likewise.
+       * gfortran.dg/graphite/pr42326.f90: Likewise.
+       * gfortran.dg/vect/fast-math-mgrid-resid.f: Likewise.
+
 2010-05-19  Richard Guenther  <rguenther@suse.de>
 
        PR lto/44196
index 730781b..b7e3bd5 100644 (file)
@@ -1,6 +1,7 @@
 // Origin: PR c++/43375
 // { dg-do compile { target i?86-*-* x86_64-*-* } }
 // { dg-options "-msse2 -std=gnu++0x" }
+// { dg-require-effective-target sse2 }
 
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));
 typedef int __v4si __attribute__ ((__vector_size__ (16)));
index 63892e1..e60a59d 100644 (file)
@@ -1,5 +1,6 @@
 // { dg-do compile { target i?86-*-* x86_64-*-* } }
 // { dg-options "-O3 -msse2" }
+// { dg-require-effective-target sse2 }
 
 // You can make NON-template typedefs with a large alignment.
 typedef double AlignedDoubleType __attribute__((aligned(16)));
index b0eaebf..961f067 100644 (file)
@@ -1,5 +1,6 @@
 // { dg-do compile }
 // { dg-options "-O2 -fprefetch-loop-arrays -msse2" { target i?86-*-* x86_64-*-* } }
+// { dg-require-effective-target sse2 { target i?86-*-* x86_64-*-* } }
 
 struct DOMStringHandle
 {
index 853f913..5a91e60 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
index 3e0d94e..858a3a7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-O1 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
index 5352a40..107ff6a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2 -Wno-abi" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 5b1e76c..3791434 100644 (file)
@@ -1,6 +1,7 @@
 // PR target/39496
 // { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } }
 // { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" }
+// { dg-require-effective-target sse2 }
 // Verify that {foo,bar}{,2}param are all passed on the stack, using
 // normal calling conventions, when not optimizing.
 // { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } }
index 33dbcec..dd0aa48 100644 (file)
@@ -1,6 +1,7 @@
 // PR middle-end/40446
 // { dg-do run { target i?86-*-* x86_64-*-* } }
 // { dg-options "-O1 -msse2" }
+// { dg-require-effective-target sse2 }
 
 #include <emmintrin.h>
 #include "cpuid.h"
index b735c22..65a0235 100644 (file)
@@ -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 @@ if  [istarget "powerpc-*paired*"]  {
 } elseif { [istarget  "spu-*-*"] } {
    set dg-do-what-default run
 } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+    if { ![check_effective_target_sse2] } then {
+       return
+    }
     lappend DEFAULT_VECTCFLAGS "-msse2"
     if [check_sse2_hw_available] {
        set dg-do-what-default run
index 11f8721..cfd081d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
 /* { dg-options "-O" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "cpuid.h"
 
index 76fb291..c5acc35 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-skip-if "test SSE2 vector" { ! { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target sse2 } */
 
 /* Test compatibility of vector types: layout between separately-compiled
    modules, parameter passing, and function return.  This test uses
index 96c1111..164c4b2 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target sse2 } */
 
 /* Test compatibility of vector types: layout between separately-compiled
    modules, parameter passing, and function return.  This test uses
index 13cd886..1fabb91 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-lto-do link } */
 /* { dg-skip-if "" { ! { i?86-*-linux* x86_64-*-linux* } } { "*" } { "" } } */
 /* { dg-lto-options {{-fPIC -r -nostdlib -fwhopr -msse2}} } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-suppress-ld-options {-fPIC -msse2} } */
 
 typedef short v8hi __attribute__((__vector_size__(16)));
index 6bfc704..76499f7 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
 /* { dg-options "-O2 -maltivec" { target { powerpc*-*-linux* && powerpc_altivec_ok } } } */
 
 typedef unsigned __attribute__ ((__mode__ (__pointer__))) uintptr_t;
index 7d83ece..a39eb57 100644 (file)
@@ -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"
index 13461b8..51b06a7 100644 (file)
@@ -1,9 +1,10 @@
 /* { dg-do compile { target x86_64-*-* i?86-*-* } } */
 /* { dg-options "-std=c99 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
 __m64 _mm_add_si64 (__m64 __m1, __m64 __m2)
 {
     return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); /* { dg-error "incompatible type" } */
-    /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
+    /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 8 } */
 }
index 6393d2f..efca1db 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -msse2 -mtune=core2 -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
 
 #ifdef __i386__
 #include "cpuid.h"
index 018a1ba..3eb4059 100644 (file)
@@ -1,6 +1,7 @@
 /* PR rtl-optimization/16104 */
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "cpuid.h"
 
index c88241b..8def464 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
 
index d036f39..3d6add1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
 
index b76c569..9a69b21 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
 
index b52dcf0..cbbb9d0 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 #include "cpuid.h"
index 47f3607..ffe52f2 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 #include "cpuid.h"
index 7417324..c020d73 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37010 */
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-options "-msse2 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 #include "cpuid.h"
index cac2064..3e34cf1 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-options "-msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <emmintrin.h>
index 44f65bf..2ce94c3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details" } */
 
 #define N 1000
index 55d7e15..b174874 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=athlon" } } */
 /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 --param max-unrolled-insns=1 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
 
index 3518de0..c651006 100644 (file)
@@ -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 @@ lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" "-fvect-cost-model"
 global dg-do-what-default
 set save-dg-do-what-default ${dg-do-what-default}
 
+if { ![check_effective_target_sse2] } then {
+  return
+}
 lappend DEFAULT_VECTCFLAGS "-msse2"
 if [check_sse2_hw_available] {
     set dg-do-what-default run
index 6eea84a..a2d36d3 100644 (file)
@@ -1,6 +1,7 @@
 /* PR debug/41926 */
 /* { dg-do compile } */
 /* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
 
 void
 foo (double (*__restrict p)[4], double (*__restrict q)[4],
index 56e599f..f6e50d2 100644 (file)
@@ -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 @@ if  [istarget "powerpc-*paired*"]  {
 } elseif { [istarget  "spu-*-*"] } {
    set dg-do-what-default run
 } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+    if { ![check_effective_target_sse2] } then {
+       return
+    }
     lappend DEFAULT_VECTCFLAGS "-msse2"
     if [check_sse2_hw_available] {
        set dg-do-what-default run
index 8109f94..ae432e7 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target ilp32 } */
 /* { dg-options "-std=gnu99 -msse2 -mpreferred-stack-boundary=4" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 847f0eb..4b62b16 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-std=gnu99 -msse2 -mstackrealign -mpreferred-stack-boundary=4" } */
 
 #include "sse2-check.h"
index de5a2c3..953dc2a 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do assemble } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow" } */
 
 /* Test that the intrinsics compile with optimization.  All of them are
index 4b4d747..84b8540 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do assemble } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow" } */
 
 /* Test that the intrinsics compile without optimization.  All of them are
index 6d4f325..e502dc9 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do assemble } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
 
 /* Test that the intrinsics compile with optimization.  All of them are
index 0a30d61..8475094 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do assemble } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
 
 /* Test that the intrinsics compile without optimization.  All of them are
index fa973e4..24d870f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
 typedef int __v4si __attribute__ ((__vector_size__ (16)));
index 9c6d227..a435f63 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target *-*-linux* } } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 94408d2..6f9dd97 100644 (file)
@@ -2,6 +2,7 @@
 
 /* { dg-do run { target *-*-linux* *-*-darwin* } } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 1c3b9b8..5f09aed 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "cvtss2sd" } } */
 float a,b;
 main()
index 066d843..317aa13 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "cvtss2sd" } } */
 float a,b;
 main()
index 569d21a..70377c3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "cvtss2sd" } } */
 extern double fabs (double);
 float a,b;
index 0174e7c..1c17c1d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -fno-math-errno -fno-trapping-math -msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 78714e1..1c05f13 100644 (file)
@@ -1,6 +1,7 @@
 /* Test whether using target specific options, we can generate FMA4 code.  */
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=k8 -mfpmath=sse -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 extern void exit (int);
 
index 85c6e04..622fbf8 100644 (file)
@@ -37,6 +37,29 @@ proc check_effective_target_ms_hook_prologue { } {
     }
 }
 
+# Return 1 if 3dnow instructions can be compiled.
+proc check_effective_target_3dnow { } {
+    return [check_no_compiler_messages 3dnow object {
+       void _m_pfadd (void)
+       {
+           __builtin_ia32_pfadd();
+       }
+    } "-O2 -m3dnow" ]
+}
+
+# Return 1 if sse3 instructions can be compiled.
+proc check_effective_target_sse3 { } {
+    return [check_no_compiler_messages sse3 object {
+       typedef double __m128d __attribute__ ((__vector_size__ (16)));
+       typedef double __v2df __attribute__ ((__vector_size__ (16)));
+
+       __m128d _mm_addsub_pd (__m128d __X, __m128d __Y)
+       {
+           return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y);
+       }
+    } "-O2 -msse3" ]
+}
+
 # Return 1 if ssse3 instructions can be compiled.
 proc check_effective_target_ssse3 { } {
     return [check_no_compiler_messages ssse3 object {
index 86e98a7..9129ad0 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index d7ef103..b6bfa41 100644 (file)
@@ -1,6 +1,7 @@
 /* PR target/40838 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef int v4si __attribute__ ((vector_size (16)));
 
index 2947d33..1845166 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 1edbfda..bb9653a 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 80c169c..e1d1b75 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/37009 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <emmintrin.h>
index 5cc4ab3..f6b64b7 100644 (file)
@@ -1,6 +1,7 @@
 /* PR target/40838 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef int v4si __attribute__ ((vector_size (16)));
 
index cdd6037..fb53804 100644 (file)
@@ -1,6 +1,7 @@
 /* PR target/40838 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -mstackrealign -O2 -msse2 -mpreferred-stack-boundary=4" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef int v4si __attribute__ ((vector_size (16)));
 
index 2dd8800..0f27af7 100644 (file)
@@ -1,6 +1,7 @@
 /* PR target/40838 */
 /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
 /* { dg-options "-w -mstackrealign -O3 -msse2 -mpreferred-stack-boundary=4" } */
+/* { dg-require-effective-target sse2 } */
 
 float
 foo (float f)
index 9b97ccb..a0e7b8d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is part of GCC.
 #
@@ -18,6 +18,8 @@
 
 # This harness is for tests that should be run at all optimisation levels.
 
+load_lib target-supports.exp
+
 # Exit immediately if this isn't a x86 target.
 if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
   return
@@ -27,27 +29,31 @@ set MATH_TORTURE_OPTIONS [list \
         { -O0 } \
         { -O0 -mfpmath=387 } \
         { -O0 -msse -mno-sse2 -mfpmath=sse } \
-        { -O0 -msse -msse2 -mfpmath=sse } \
         { -O0 -msse -mno-sse2 -mfpmath=sse,387 } \
-        { -O0 -msse -msse2 -mfpmath=sse,387 } \
         { -O0 -mfpmath=387 -ffast-math } \
         { -O0 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
-        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
         { -O0 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
-        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
         { -O2 } \
         { -O2 -mfpmath=387 } \
         { -O2 -msse -mno-sse2 -mfpmath=sse } \
-        { -O2 -msse -msse2 -mfpmath=sse } \
         { -O2 -msse -mno-sse2 -mfpmath=sse,387 } \
-        { -O2 -msse -msse2 -mfpmath=sse,387 } \
         { -O2 -mfpmath=387 -ffast-math } \
         { -O2 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
-        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
         { -O2 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
-        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
 ]
 
+if { [check_effective_target_sse2] } {
+    lappend MATH_TORTURE_OPTIONS \
+        { -O0 -msse -msse2 -mfpmath=sse } \
+        { -O0 -msse -msse2 -mfpmath=sse,387 } \
+        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
+        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+        { -O2 -msse -msse2 -mfpmath=sse } \
+        { -O2 -msse -msse2 -mfpmath=sse,387 } \
+        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
+        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+}
+
 load_lib gcc-dg.exp
 load_lib torture-options.exp
 
index 28e2ef3..74d3e8d 100644 (file)
@@ -2,6 +2,7 @@
    whether we vectorize a simple loop.  */
 /* { dg-do compile } */
 /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "prefetcht0" } } */
 /* { dg-final { scan-assembler "addps" } } */
 /* { dg-final { scan-assembler "subss" } } */
index d2791e0..d247d71 100644 (file)
@@ -2,6 +2,7 @@
    whether we vectorize a simple loop.  */
 /* { dg-do compile } */
 /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "prefetcht0" } } */
 /* { dg-final { scan-assembler "addps" } } */
 /* { dg-final { scan-assembler "subss" } } */
index a136182..9be97e5 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "cmpordss" } } */
 /* { dg-final { scan-assembler "cmpordps" } } */
 /* { dg-final { scan-assembler "cmpordsd" } } */
index a837386..f8aed82 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mfpmath=sse -msse2" } */
+/* { dg-require-effective-target sse2 } */
 /* The fact that t1 and t2 are uninitialized is critical.  With them
    uninitialized, the register allocator is free to put them in the same
    hard register, which results in
index 1a49975..6e16616 100644 (file)
@@ -1,6 +1,7 @@
 /* PR rtl-optimization/18614 */
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef double v2df __attribute__ ((vector_size (16)));
 
index d125977..4dce76c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <mmintrin.h>
 
index 1542663..f220a8c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));
 typedef float __m128 __attribute__ ((__vector_size__ (16)));
index 522226e..1b0ec7f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
+/* { dg-require-effective-target sse2 } */
 
 /* We used to ICE because of a bogous pattern.  */
 
index b4ef780..e83375d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -mtune=k8" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef short __v8hi __attribute__ ((__vector_size__ (16)));
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
index bbe0663..61941de 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 void foo(int *p, int N)
 {
index e8986c4..4c5cdb6 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 void binarize (int npixels, unsigned char *b)
 {
index 6a21516..ccb715d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -ftree-vectorize -funswitch-loops" } */
+/* { dg-require-effective-target sse2 } */
 
 static int ready[10];
 void abort (void);
index 96d64e5..25f7739 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile }
 /* { dg-options "-msse2 -O2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #define N 256
 int b[N];
index 483d24a..9c7bfa2 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target dfp } */
 /* { dg-options "-O -msse2 -std=gnu99" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 6effafc..6f10560 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { ! { ilp32 && dfp } } { "*" } { "" } } */
 /* { dg-options "-O -msse2 -std=gnu99 -mpreferred-stack-boundary=2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index d48a635..49865ea 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
 
index 247ae13..2eb1544 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef int __v4si __attribute__ ((__vector_size__ (16)));
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));
index c530893..5200f3f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __v2di __attribute__ ((__vector_size__ (16)));
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
index a232628..8b51362 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O0 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
index bb589ee..e803608 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 extern void g (int *);
 
index 13ca47c..d5d2755 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 5ed5b85..0945e19 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index cdf17fa..fa7d73f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 188e8e7..b762048 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 82062ff..5457c48 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index ae96cd8..cb9d741 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index d241644..f2dede9 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index e7592ff..19162cf 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O -msse2 -std=gnu99" } */
 
 #include "sse2-check.h"
index 4372d2e..9f53303 100644 (file)
@@ -1,6 +1,7 @@
 /* Test that we generate aligned load when memory is aligned.  */
 /* { dg-do compile } */
 /* { dg-options "-O -msse2 -mtune=generic" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "movups" } } */
 /* { dg-final { scan-assembler "movaps" } } */
 
index 2d4c5b9..647e103 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
 typedef int __v4si __attribute__ ((__vector_size__ (16)));
index cae0d70..4999935 100644 (file)
@@ -1,6 +1,7 @@
 /* Test for unsafe floating-point conversions.  PR 36578.  */
 /* { dg-do run } */
 /* { dg-options "-msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 19143cf..5d6556f 100644 (file)
@@ -1,6 +1,7 @@
 /* Test for unsafe floating-point conversions.  */
 /* { dg-do run } */
 /* { dg-options "-msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 7cd24cc..017616b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile }
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 8fd3bfc..69b913c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef __SIZE_TYPE__ size_t;
 extern void *malloc (size_t);
index 5c847a7..05eb2ee 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-options "-O3 -msse2" } */
 /* { dg-options "-O3 -msse2 -mpe-aligned-commons" { target pe_aligned_commons } } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index b556bf0..00ed55e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef short __v8hi __attribute__ ((__vector_size__ (16)));
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
index 00ff9fd..b92d521 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mtune=core2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef short __v8hi __attribute__ ((__vector_size__ (16)));
 typedef long long __m128i __attribute__ ((__vector_size__ (16)));
index 15d05c1..ed6478e 100644 (file)
@@ -1,6 +1,7 @@
 /* Test for stack alignment with sibcall optimization.  */
 /* { dg-do compile { target { ilp32 && nonpic } } } */
 /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
 /* { dg-final { scan-assembler-not "call\[\\t \]*_?foo" } } */
 /* { dg-final { scan-assembler "jmp\[\\t \]*_?foo" } } */
index 8e5f51f..f5e024c 100644 (file)
@@ -1,6 +1,7 @@
 /* Test for stack alignment with sibcall optimization.  */
 /* { dg-do compile { target { ilp32 && nonpic } } } */
 /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
 /* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
 /* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
index 2d114b8..1a5e3e7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -mno-avx" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));
 
index 16ba5d5..9f4d484 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/39315  */
 /* { dg-do compile } */
 /* { dg-options "-O -msse2 -mtune=generic" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "movups" } } */
 /* { dg-final { scan-assembler-not "movlps" } } */
 /* { dg-final { scan-assembler-not "movhps" } } */
index ab3dcd0..5363e97 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/39315  */
 /* { dg-do run } */
 /* { dg-options "-O -msse2 -mtune=generic" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-additional-sources pr39315-check.c } */
 
 typedef float __m128 __attribute__ ((__vector_size__ (16)));
index 07862db..38ea7ae 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/39315  */
 /* { dg-do compile } */
 /* { dg-options "-O -msse2 -mtune=generic" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler-not "movups" } } */
 /* { dg-final { scan-assembler-not "movlps" } } */
 /* { dg-final { scan-assembler-not "movhps" } } */
index 2e55c25..4a62a1d 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/39315  */
 /* { dg-do run } */
 /* { dg-options "-O -msse2 -mtune=generic" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-additional-sources pr39315-check.c } */
 
 typedef float __m128 __attribute__ ((__vector_size__ (16)));
index 6f0295b..48e2d39 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index e4132a1..bdaca2e 100644 (file)
@@ -1,6 +1,7 @@
 /* PR target/39496 */
 /* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
 /* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 /* Verify that {foo,bar}{,2}param are all passed on the stack, using
    normal calling conventions, when not optimizing.  */
 /* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */
index 979b531..8b63e55 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index b639b62..e976805 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run { target *-*-linux* } } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -fomit-frame-pointer -msse2 -mpush-args -mno-accumulate-outgoing-args" } */
 
 #include "sse2-check.h"
index c0021c6..a6a2f4e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 60da8ee..761b91b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index fc59534..80ed9c3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 028d2f8..372f2c1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 754e59e..89c9ed4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "pr42542-3.c"
 
index 0a9bfa8..733853c 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target 3dnow } */
 /* { dg-options "-O2 -m3dnow" } */
 
 #include "mmx-3dnow-check.h"
index 1be307b..c8ad09d 100644 (file)
@@ -1,6 +1,8 @@
 /* PR target/42881 */
 /* { dg-do run } */
 /* { dg-options "-O0 -msse2" } */
+/* { dg-require-effective-target sse2 } */
+
 #include "sse2-check.h"
 static void
 sse2_test (void)
index 09464bf..797ad57 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-options "-w -msse2 -Os" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
 
index 4b6fe79..8c59445 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 __float128 x, y;
 
index f8075ac..2998715 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O3 -msse2 -fdump-rtl-csa" } */
 /* { dg-skip-if "no stdint" { vxworks_kernel } } */
 
index 5cf0714..798551d 100644 (file)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" } */
 /* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 3745dbf..c764c0b 100644 (file)
@@ -1,6 +1,7 @@
 /* PR rtl-optimization/21239 */
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 5a1da7a..ed91ee6 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 /* Test that the intrinsics compile with optimization.  These were not
    tested in i386-sse-[12].c because these builtins require immediate
index f7b3d0d..3386a3b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #include "sse2-check.h"
 #include <xmmintrin.h>
 extern void abort();
index fc0224f..6a1352b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O3 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 43c090b..112c3e1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O3 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "punpcklbw" } } */
 extern void abort();
 #include <emmintrin.h>
index 394ad9d..5d49884 100644 (file)
@@ -1,6 +1,7 @@
 /* This testcase caused a buffer overflow in simplify_immed_subreg.  */
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index 930b23f..77131d4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 9cb6f3e..2658f02 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O0 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <xmmintrin.h>
 
index 2c1e81d..99ff02f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d81b1bb..2297539 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 36b3c31..0250d6b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 90902bf..9f037ab 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 224a609..953f220 100644 (file)
@@ -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"
index e8478d9..7229906 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f18cf16..03b5b9e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 6bd8855..720c63e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cf377c4..e33ec71 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dd2127b..e41ee0c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1337117..9d32b7a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 710aa64..5726448 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 5640e39..9d85f5c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a8839a4..4b2965e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f25290c..ebcf153 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 365d5e7..15c8188 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 68c2a99..e4dcd11 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 16093ef..cdc6051 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 75770ee..9c5a0e2 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dfc543f..908e82f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
index ae0b2c3..6f8a7a7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 12ca895..cda223c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 29d6d86..7035c4e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
index e8172d3..eda870d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 93dd624..eebc259 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1c963a1..d80a1a9 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a87ec1a..d04d6d4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index ec0fe20..0284a73 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
index cc4f9d1..2cf160c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e8b9e8c..fb72320 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 903a5ad..6528800 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 7dc80a3..ef1863c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 71e27be..bcb9405 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 3874b2e..6273482 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 5276c7e..43797f7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 43037a5..eaec22c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 3ca51a2..f6360c7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e2c6829..24377cc 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 9ec53e2..e64091e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 50dc124..3c34d98 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index ca375cb..fb226a8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 0a047dd..b8b9dba 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index decfd22..8298551 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 2475bbc..67f0a87 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f986e6e..a12787b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cf95b62..7599b05 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 7bf49dc..ff6c91f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index c24e128..0688dd9 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 9ab0195..20e79ea 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 82e7671..e906cbc 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mfpmath=sse -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 335c898..e86259a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mfpmath=sse -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 548f2e6..9e7432b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d63aedf..1bbb741 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cef6f8d..6a865fe 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d36eaef..4435ad8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index edcb90c..204174e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 9d22df9..718b51a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1b4c02a..edf16f4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
index 3538bd3..571fd6d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2" } */
 
 #ifndef CHECK_H
index 98f9987..14342ea 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e6e83d1..f1958f0 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f9bf585..6533b4c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index b5c59b8..c66e70c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index c87e9e2..737730e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1b66573..777b439 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4eaa70a..1d88474 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a610326..187b880 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 76532fb..3643a8a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d176ac0..6fd00ae 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d9414ca..faea05c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index c2d9b04..0c910c8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4867cb4..1363978 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index bb3bafc..6b2195e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 885ed26..5fec2f2 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index ee1f038..807287e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 449d141..90a2269 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index db1664f..3ed7329 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cab3c1f..a6a1702 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 5a300c1..d9c653f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cb80431..98b4894 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 341e5af..4f9bf21 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 240fa0d..7db34ba 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cb18d11..d401892 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e87e9b1..f341583 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 916ec3c..34c74e8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index bba5eae..8d03536 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index bfa58a9..835ba36 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index df1907a..c26d02b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index b07fcb6..836f2c6 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e5eafc1..6447aa3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index ad26ca9..5c553d1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 953f8dd..6c4598c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f1f5ff7..fce068c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index fd6a3d2..f77ec6a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 447b5ca..ac38389 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a68d065..38014b7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dac14ef..51540c1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 7c332ed..a5a0183 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index c5fa0b2..83e83cb 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index b106283..b0f8834 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4eec55d..cfff757 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 3749625..9915ca4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4fbde24..31474e3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index adef576..1741141 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 3189106..2d4dc1b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index cd916eb..a07cfc4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index b20e872..6792fd3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1fc5aa4..3153ec4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 22a54b6..e317040 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 37091ba..ea27439 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dc24a0f..0b8d5b8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 3e0d88f..49db1b2 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index c3823eb..8aa6681 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 0e57731..d310fc4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 0270d92..a5ddce1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 7513191..c4484bc 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 9c1ce5e..12ace37 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 8c65940..ee4fb04 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e5375f7..d51ee45 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dbe6a68..0d4004c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a8d5b67..a416f57 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 296a261..9700a77 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index fe8c0f4..a31ec68 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d9cb1af..88308cb 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 85fdbeb..a0f4215 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e2d8be5..dbf08ad 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f673b0b..33f3020 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 7fcef77..26689aa 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4cb60d7..4dbd46b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1ba04e1..11fd91e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4e63885..d3d5a71 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1e7b44f..c24ee1e 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 4f84ca1..ce9b885 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 8ba26b3..6736186 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 7e06440..c9d2b90 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f4dac40..c1f5d0f 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 67510b5..ac32015 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 61f19cb..cc0af7c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index 918fa5c..01f2699 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index 2c0227d..3c3ae26 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index cab461e..e4231a4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index 816c19e..b2a8778 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mtune=core2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index 2b4a8be..2d500b7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index b5103ac..1afe68b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mtune=core2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #define CHECK_H "sse2-check.h"
 #define TEST sse2_test
index cffa469..0a05680 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index f1ef347..6095aaa 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 3a476cf..edbf829 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e8ac1b8..6a91e21 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index d70c3f8..954f81a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index deae8e7..0bf8708 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 110f7cd..fd566f0 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 1e3a1a6..df9e09b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 99c9aa2..f65572a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 19a730a..b08c441 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index dd5ed70..bb0bee5 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index a267639..ed06708 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <emmintrin.h>
 
index a682725..a07302c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index 0e4a5cc..3562edc 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index ba7e2e8..ab2ca5b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index c7586e1..6f5c514 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 545dbe0..fa18de5 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 31e4806..0867e9c 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 7ca45ba..c676bbd 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index ecd0b33..856c3e7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 88cf0d3..669f571 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"
index e82fa76..147a1ec 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 091b58c..604c404 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 8750ddf..ae4f94a 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index dcb0a7c..e944eab 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 77018f5..37bd60c 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 326adfd..1980638 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 5df19a6..700bd57 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 2eb33ad..cbf3206 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 8f6706c..0d30ccb 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 9ae8454..1ef2dd1 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target sse3 } */
 /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
 
 #ifndef CHECK_H
index 09b920e..dfaacf6 100644 (file)
@@ -3,6 +3,7 @@
 
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "movss" } } */
 /* { dg-final { scan-assembler "mulss" } } */
 /* { dg-final { scan-assembler "movsd" } } */
index eacdfa7..2d7407e 100644 (file)
@@ -3,6 +3,7 @@
 
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 
index 621e362..fdce233 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "maxsd" } } */
 /* { dg-final { scan-assembler "minsd" } } */
 double x;
index a6caee3..0b8b722 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "maxsd" } } */
 /* { dg-final { scan-assembler "minsd" } } */
 double x;
index 9ee82af..7475e4f 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 
 /* Make sure we know that mysinfp returns in %xmm0.  */
 
index a29cf06..b8fc521 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 
 /* Make sure we know that mysinfp returns in %xmm0.  */
 
index 7423722..fa41a2c 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 
 /* Make sure we know that mysinfp returns in %xmm0.  */
 
index 6203b6b..d0358c5 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 
 /* Make sure we know that mysinfp returns in %xmm0.  */
 
index 61267df..99953b5 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-msse2 -O2" } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 
 /* Make sure we know that mysinfp returns in %xmm0.  */
 
index ef89059..00ea285 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* This test checks for absolute memory operands.  */
 /* { dg-require-effective-target nonpic } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
 /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
 /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
index b68a639..c6a8ba7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "andpd" } } */
 /* { dg-final { scan-assembler "andnpd" } } */
 /* { dg-final { scan-assembler "xorpd" } } */
index d6887d5..0e83e28 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* This test checks for absolute memory operands.  */
 /* { dg-require-effective-target nonpic } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
 /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
 /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
index 9994b07..9b68792 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "andps" } } */
 /* { dg-final { scan-assembler "andnps" } } */
 /* { dg-final { scan-assembler "xorps" } } */
index 75133e9..098ed89 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* This test checks for absolute memory operands.  */
 /* { dg-require-effective-target nonpic } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -msse2 -march=k8" } */
 /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
 /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
index 49d4b8e..85de486 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "cmpunordss" } } */
 /* { dg-final { scan-assembler "cmpunordps" } } */
 /* { dg-final { scan-assembler "cmpunordsd" } } */
index 1875e0a..cfb1e30 100644 (file)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-w" { target { lp64 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 #include <stdarg.h>
index 0534ac7..6079317 100644 (file)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-w" { target { lp64 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
+/* { dg-require-effective-target sse2 } */
 
 #include "sse2-check.h"
 #include <stdarg.h>
index a6b5876..3bfc3f1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
index e2f83b0..8034dca 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
index bebf609..0f10d67 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
index bf6d3b5..5c5a0b4 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include <stdarg.h>
 #include <assert.h>
index 8553eb0..cba7429 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 float a;
index d6c715f..fdfa837 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 int a;
index 053b566..aae642a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 char a;
index 773a316..101b68b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 short a;
index 5764889..b9e7e27 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 float a, b;
index ba58f12..3b22043 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
+/* { dg-require-effective-target sse2 } */
 #define vector __attribute__((vector_size(16)))
 
 int a, b;
index 4196487..a7196c7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
 
 double a[256];
index 2947acb..e19f8d8 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
 
 float a[256];
index f3d605e..9933d29 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
 /* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue.  */
 
index 78ec53d..41e61aa 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2 -ftree-vectorize -mveclibabi=svml -ffast-math" } */
+/* { dg-require-effective-target sse2 } */
 
 double x[256];
 
index 10b7ba2..eca043b 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 unsigned int a[256];
 float b[256];
index ed1517b..e263620 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 unsigned int a[256];
 double b[256];
index f17e065..d039463 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
index c6fe561..940de68 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
index 663feb3..93c25c6 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 #include "isa-check.h"
 
index 3c268b4..4d3994c 100644 (file)
@@ -1,6 +1,7 @@
 /* Test that we generate xorps when the result is used in FP math.  */
 /* { dg-do compile } */
 /* { dg-options "-O -msse2 -mno-sse3" } */
+/* { dg-require-effective-target sse2 } */
 /* { dg-final { scan-assembler "xorps\[ \t\]" { xfail *-*-* } } } */
 /* { dg-final { scan-assembler-not "pxor" { xfail *-*-* } } } */
 
index 6803a4d..bc2e97d 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
 
 typedef float __m128 __attribute__ ((vector_size (16)));
 
index c17446a..8c9d110 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile { target i?86-*-* x86_64-*-* } }
 ! { dg-require-effective-target ilp32 }
+! { dg-require-effective-target sse2 }
 ! { dg-options "-O2 -floop-parallelize-all -fprefetch-loop-arrays -msse2" }
 
 subroutine phasad(t,i,ium)
index d6939da..06ef2b7 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile { target i?86-*-* x86_64-*-* } }
 ! { dg-require-effective-target ilp32 }
+! { dg-require-effective-target sse2 }
 ! { dg-options "-O2 -floop-strip-mine -fprefetch-loop-arrays -msse2" }
 
 subroutine blts ( ldmx, ldmy, v, tmp1, i, j, k)
index cf47204..8f196a6 100644 (file)
@@ -1,5 +1,6 @@
 ! { dg-do compile { target i?86-*-* x86_64-*-* } }
 ! { dg-require-effective-target vect_double }
+! { dg-require-effective-target sse2 }
 ! { dg-options "-O3 -ffast-math -msse2 -fpredictive-commoning -ftree-vectorize -fdump-tree-optimized" }
 
 
index d818e7d..9f9ed22 100644 (file)
@@ -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 @@ if  [istarget "powerpc-*paired*"]  {
 } elseif { [istarget  "spu-*-*"] } {
    set dg-do-what-default run
 } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+    if { ![check_effective_target_sse2] } then {
+       return
+    }
     lappend DEFAULT_VECTCFLAGS "-msse2"
     if [check_sse2_hw_available] {
        set dg-do-what-default run
index 811b4cf..72ce9d6 100644 (file)
@@ -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 @@ proc get-fortran-torture-options { } {
     } elseif { [istarget  "spu-*-*"] } {
        set test_tree_vectorize 1
     } elseif { ( [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] )
+              && [check_effective_target_sse2]
               && [check_sse2_hw_available] } {
        lappend vectorizer_options "-msse2"
        set test_tree_vectorize 1
index 12631fa..e742d75 100644 (file)
@@ -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 @@ proc dg-require-named-sections { args } {
 }
 
 # If the target does not match the required effective target, skip this test.
+# Only apply this if the optional selector matches.
 
 proc dg-require-effective-target { args } {
     set args [lreplace $args 0 0]
-    if { [llength $args] != 1 } {
-       error "syntax error, need a single effective-target keyword"
+    # Verify the number of arguments.  The last is optional.
+    if { [llength $args] < 1 || [llength $args] > 2 } {
+       error "syntax error, need a single effective-target keyword with optional selector"
     }
+    
+    # Evaluate selector if present.
+    if { [llength $args] == 2 } {
+       switch [dg-process-target [lindex $args 1]] {
+           "S" { }
+           "N" { return }
+       }
+    }
+
     if { ![is-effective-target [lindex $args 0]] } {
        upvar dg-do-what dg-do-what
         set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
index e91c033..66413c6 100644 (file)
@@ -3152,6 +3152,18 @@ proc check_effective_target_avx { } {
     } "-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 { } {