https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89021
--- Comment #46 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Wed May 15 15:39:38 2019 New Revision: 271254 URL: https://gcc.gnu.org/viewcvs?rev=271254&root=gcc&view=rev Log: i386: Add tests for MMX intrinsic emulations with SSE Test MMX intrinsics with -msse2 in 32-bit mode and -msse2 -mno-mmx in 64-bit mode. PR target/89021 * gcc.target/i386/mmx-vals.h: New file. * gcc.target/i386/sse2-mmx-2.c: Likewise. * gcc.target/i386/sse2-mmx-3.c: Likewise. * gcc.target/i386/sse2-mmx-4.c: Likewise. * gcc.target/i386/sse2-mmx-5.c: Likewise. * gcc.target/i386/sse2-mmx-6.c: Likewise. * gcc.target/i386/sse2-mmx-7.c: Likewise. * gcc.target/i386/sse2-mmx-8.c: Likewise. * gcc.target/i386/sse2-mmx-9.c: Likewise. * gcc.target/i386/sse2-mmx-10.c: Likewise. * gcc.target/i386/sse2-mmx-11.c: Likewise. * gcc.target/i386/sse2-mmx-12.c: Likewise. * gcc.target/i386/sse2-mmx-13.c: Likewise. * gcc.target/i386/sse2-mmx-14.c: Likewise. * gcc.target/i386/sse2-mmx-15.c: Likewise. * gcc.target/i386/sse2-mmx-16.c: Likewise. * gcc.target/i386/sse2-mmx-17.c: Likewise. * gcc.target/i386/sse2-mmx-18a.c: Likewise. * gcc.target/i386/sse2-mmx-18b.c: Likewise. * gcc.target/i386/sse2-mmx-18c.c: Likewise. * gcc.target/i386/sse2-mmx-19a.c: Likewise. * gcc.target/i386/sse2-mmx-18b.c: Likewise. * gcc.target/i386/sse2-mmx-19c.c: Likewise. * gcc.target/i386/sse2-mmx-19d.c: Likewise. * gcc.target/i386/sse2-mmx-19e.c: Likewise. * gcc.target/i386/sse2-mmx-20.c: Likewise. * gcc.target/i386/sse2-mmx-21.c: Likewise. * gcc.target/i386/sse2-mmx-22.c: Likewise. * gcc.target/i386/sse2-mmx-cvtpi2ps.c: Likewise. * gcc.target/i386/sse2-mmx-cvtps2pi.c: Likewise. * gcc.target/i386/sse2-mmx-cvttps2pi.c: Likewise. * gcc.target/i386/sse2-mmx-maskmovq.c: Likewise. * gcc.target/i386/sse2-mmx-packssdw.c: Likewise. * gcc.target/i386/sse2-mmx-packsswb.c: Likewise. * gcc.target/i386/sse2-mmx-packuswb.c: Likewise. * gcc.target/i386/sse2-mmx-paddb.c: Likewise. * gcc.target/i386/sse2-mmx-paddd.c: Likewise. * gcc.target/i386/sse2-mmx-paddq.c: Likewise. * gcc.target/i386/sse2-mmx-paddsb.c: Likewise. * gcc.target/i386/sse2-mmx-paddsw.c: Likewise. * gcc.target/i386/sse2-mmx-paddusb.c: Likewise. * gcc.target/i386/sse2-mmx-paddusw.c: Likewise. * gcc.target/i386/sse2-mmx-paddw.c: Likewise. * gcc.target/i386/sse2-mmx-pand.c: Likewise. * gcc.target/i386/sse2-mmx-pandn.c: Likewise. * gcc.target/i386/sse2-mmx-pavgb.c: Likewise. * gcc.target/i386/sse2-mmx-pavgw.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpeqb.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpeqd.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpeqw.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpgtb.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpgtd.c: Likewise. * gcc.target/i386/sse2-mmx-pcmpgtw.c: Likewise. * gcc.target/i386/sse2-mmx-pextrw.c: Likewise. * gcc.target/i386/sse2-mmx-pinsrw.c: Likewise. * gcc.target/i386/sse2-mmx-pmaddwd.c: Likewise. * gcc.target/i386/sse2-mmx-pmaxsw.c: Likewise. * gcc.target/i386/sse2-mmx-pmaxub.c: Likewise. * gcc.target/i386/sse2-mmx-pminsw.c: Likewise. * gcc.target/i386/sse2-mmx-pminub.c: Likewise. * gcc.target/i386/sse2-mmx-pmovmskb.c: Likewise. * gcc.target/i386/sse2-mmx-pmulhuw.c: Likewise. * gcc.target/i386/sse2-mmx-pmulhw.c: Likewise. * gcc.target/i386/sse2-mmx-pmullw.c: Likewise. * gcc.target/i386/sse2-mmx-pmuludq.c: Likewise. * gcc.target/i386/sse2-mmx-por.c: Likewise. * gcc.target/i386/sse2-mmx-psadbw.c: Likewise. * gcc.target/i386/sse2-mmx-pshufw.c: Likewise. * gcc.target/i386/sse2-mmx-pslld.c: Likewise. * gcc.target/i386/sse2-mmx-pslldi.c: Likewise. * gcc.target/i386/sse2-mmx-psllq.c: Likewise. * gcc.target/i386/sse2-mmx-psllqi.c: Likewise. * gcc.target/i386/sse2-mmx-psllw.c: Likewise. * gcc.target/i386/sse2-mmx-psllwi.c: Likewise. * gcc.target/i386/sse2-mmx-psrad.c: Likewise. * gcc.target/i386/sse2-mmx-psradi.c: Likewise. * gcc.target/i386/sse2-mmx-psraw.c: Likewise. * gcc.target/i386/sse2-mmx-psrawi.c: Likewise. * gcc.target/i386/sse2-mmx-psrld.c: Likewise. * gcc.target/i386/sse2-mmx-psrldi.c: Likewise. * gcc.target/i386/sse2-mmx-psrlq.c: Likewise. * gcc.target/i386/sse2-mmx-psrlqi.c: Likewise. * gcc.target/i386/sse2-mmx-psrlw.c: Likewise. * gcc.target/i386/sse2-mmx-psrlwi.c: Likewise. * gcc.target/i386/sse2-mmx-psubb.c: Likewise. * gcc.target/i386/sse2-mmx-psubd.c: Likewise. * gcc.target/i386/sse2-mmx-psubq.c: Likewise. * gcc.target/i386/sse2-mmx-psubusb.c: Likewise. * gcc.target/i386/sse2-mmx-psubusw.c: Likewise. * gcc.target/i386/sse2-mmx-psubw.c: Likewise. * gcc.target/i386/sse2-mmx-punpckhbw.c: Likewise. * gcc.target/i386/sse2-mmx-punpckhdq.c: Likewise. * gcc.target/i386/sse2-mmx-punpckhwd.c: Likewise. * gcc.target/i386/sse2-mmx-punpcklbw.c: Likewise. * gcc.target/i386/sse2-mmx-punpckldq.c: Likewise. * gcc.target/i386/sse2-mmx-punpcklwd.c: Likewise. * gcc.target/i386/sse2-mmx-pxor.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/i386/mmx-vals.h trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-10.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-11.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-12.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-13.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-14.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-15.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-16.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-17.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-18a.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-18b.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-18c.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-19a.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-19b.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-19c.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-19d.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-19e.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-2.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-20.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-21.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-22.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-3.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-4.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-5.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-6.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-7.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-8.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-9.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-cvtpi2ps.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-cvtps2pi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-cvttps2pi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-maskmovq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-packssdw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-packsswb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-packuswb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-paddw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pand.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pandn.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pavgb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pavgw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpeqb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpeqd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpeqw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpgtb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpgtd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pcmpgtw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pextrw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pinsrw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmaddwd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmaxsw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmaxub.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pminsw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pminub.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmovmskb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmulhuw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmulhw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmullw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pmuludq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-por.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psadbw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pshufw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pslld.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pslldi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psllq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psllqi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psllw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psllwi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrad.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psradi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psraw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrawi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrld.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrldi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrlq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrlqi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrlw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psrlwi.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubusb.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubusw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-psubw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpckhbw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpckhdq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpckhwd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpcklbw.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpckldq.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-punpcklwd.c trunk/gcc/testsuite/gcc.target/i386/sse2-mmx-pxor.c Modified: trunk/gcc/testsuite/ChangeLog