mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-17 05:10:28 +08:00
AVX-512. 87/n. Add rest of the tests.
gcc/testsuite/ * gcc.target/i386/avx512bw-check.h: New. * gcc.target/i386/avx512bw-kunpckdq-1.c: Ditto. * gcc.target/i386/avx512bw-kunpckwd-1.c: Ditto. * gcc.target/i386/avx512bw-vdbpsadbw-1.c: Ditto. * gcc.target/i386/avx512bw-vdbpsadbw-2.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu16-1.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu16-2.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu8-1.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu8-2.c: Ditto. * gcc.target/i386/avx512bw-vpabsb-1.c: Ditto. * gcc.target/i386/avx512bw-vpabsb-2.c: Ditto. * gcc.target/i386/avx512bw-vpabsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpabsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpackssdw-1.c: Ditto. * gcc.target/i386/avx512bw-vpackssdw-2.c: Ditto. * gcc.target/i386/avx512bw-vpacksswb-1.c: Ditto. * gcc.target/i386/avx512bw-vpacksswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpackusdw-1.c: Ditto. * gcc.target/i386/avx512bw-vpackusdw-2.c: Ditto. * gcc.target/i386/avx512bw-vpackuswb-1.c: Ditto. * gcc.target/i386/avx512bw-vpackuswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddb-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddb-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddsb-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddsb-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddusb-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddusb-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddusw-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddusw-2.c: Ditto. * gcc.target/i386/avx512bw-vpaddw-1.c: Ditto. * gcc.target/i386/avx512bw-vpaddw-2.c: Ditto. * gcc.target/i386/avx512bw-vpalignr-1.c: Ditto. * gcc.target/i386/avx512bw-vpalignr-2.c: Ditto. * gcc.target/i386/avx512bw-vpavgb-1.c: Ditto. * gcc.target/i386/avx512bw-vpavgb-2.c: Ditto. * gcc.target/i386/avx512bw-vpavgw-1.c: Ditto. * gcc.target/i386/avx512bw-vpavgw-2.c: Ditto. * gcc.target/i386/avx512bw-vpblendmb-1.c: Ditto. * gcc.target/i386/avx512bw-vpblendmb-2.c: Ditto. * gcc.target/i386/avx512bw-vpblendmw-1.c: Ditto. * gcc.target/i386/avx512bw-vpblendmw-2.c: Ditto. * gcc.target/i386/avx512bw-vpbroadcastb-1.c: Ditto. * gcc.target/i386/avx512bw-vpbroadcastb-2.c: Ditto. * gcc.target/i386/avx512bw-vpbroadcastw-1.c: Ditto. * gcc.target/i386/avx512bw-vpbroadcastw-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpb-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpb-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpeqb-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpeqb-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpeqw-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpeqw-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtb-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtb-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtw-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpgtw-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpub-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpub-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpuw-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpuw-2.c: Ditto. * gcc.target/i386/avx512bw-vpcmpw-1.c: Ditto. * gcc.target/i386/avx512bw-vpcmpw-2.c: Ditto. * gcc.target/i386/avx512bw-vpermi2w-1.c: Ditto. * gcc.target/i386/avx512bw-vpermi2w-2.c: Ditto. * gcc.target/i386/avx512bw-vpermt2w-1.c: Ditto. * gcc.target/i386/avx512bw-vpermt2w-2.c: Ditto. * gcc.target/i386/avx512bw-vpermw-1.c: Ditto. * gcc.target/i386/avx512bw-vpermw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaddubsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaddubsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaddwd-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaddwd-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaxsb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaxsb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaxsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaxsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaxub-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaxub-2.c: Ditto. * gcc.target/i386/avx512bw-vpmaxuw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmaxuw-2.c: Ditto. * gcc.target/i386/avx512bw-vpminsb-1.c: Ditto. * gcc.target/i386/avx512bw-vpminsb-2.c: Ditto. * gcc.target/i386/avx512bw-vpminsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpminsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpminub-1.c: Ditto. * gcc.target/i386/avx512bw-vpminub-2.c: Ditto. * gcc.target/i386/avx512bw-vpminuw-1.c: Ditto. * gcc.target/i386/avx512bw-vpminuw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovb2m-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovb2m-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovm2b-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovm2b-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovm2w-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovm2w-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovswb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovsxbw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovsxbw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovuswb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovw2m-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovw2m-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovwb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovzxbw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovzxbw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmulhrsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmulhrsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmulhuw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmulhuw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmulhw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmulhw-2.c: Ditto. * gcc.target/i386/avx512bw-vpmullw-1.c: Ditto. * gcc.target/i386/avx512bw-vpmullw-2.c: Ditto. * gcc.target/i386/avx512bw-vpshufb-1.c: Ditto. * gcc.target/i386/avx512bw-vpshufb-2.c: Ditto. * gcc.target/i386/avx512bw-vpshufhw-1.c: Ditto. * gcc.target/i386/avx512bw-vpshufhw-2.c: Ditto. * gcc.target/i386/avx512bw-vpshuflw-1.c: Ditto. * gcc.target/i386/avx512bw-vpshuflw-2.c: Ditto. * gcc.target/i386/avx512bw-vpslldq-1.c: Ditto. * gcc.target/i386/avx512bw-vpsllvw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsllvw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsllw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsllw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsllwi-1.c: Ditto. * gcc.target/i386/avx512bw-vpsllwi-2.c: Ditto. * gcc.target/i386/avx512bw-vpsravw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsravw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsraw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsraw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsrawi-1.c: Ditto. * gcc.target/i386/avx512bw-vpsrawi-2.c: Ditto. * gcc.target/i386/avx512bw-vpsrldq-1.c: Ditto. * gcc.target/i386/avx512bw-vpsrlvw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsrlvw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsrlw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsrlw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsrlwi-1.c: Ditto. * gcc.target/i386/avx512bw-vpsrlwi-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubb-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubb-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubsb-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubsb-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubsw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubsw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubusb-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubusb-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubusw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubusw-2.c: Ditto. * gcc.target/i386/avx512bw-vpsubw-1.c: Ditto. * gcc.target/i386/avx512bw-vpsubw-2.c: Ditto. * gcc.target/i386/avx512bw-vptestmb-1.c: Ditto. * gcc.target/i386/avx512bw-vptestmb-2.c: Ditto. * gcc.target/i386/avx512bw-vptestmw-1.c: Ditto. * gcc.target/i386/avx512bw-vptestmw-2.c: Ditto. * gcc.target/i386/avx512bw-vptestnmb-1.c: Ditto. * gcc.target/i386/avx512bw-vptestnmb-2.c: Ditto. * gcc.target/i386/avx512bw-vptestnmw-1.c: Ditto. * gcc.target/i386/avx512bw-vptestnmw-2.c: Ditto. * gcc.target/i386/avx512bw-vpunpckhbw-1.c: Ditto. * gcc.target/i386/avx512bw-vpunpckhbw-2.c: Ditto. * gcc.target/i386/avx512bw-vpunpckhwd-1.c: Ditto. * gcc.target/i386/avx512bw-vpunpckhwd-2.c: Ditto. * gcc.target/i386/avx512bw-vpunpcklbw-1.c: Ditto. * gcc.target/i386/avx512bw-vpunpcklbw-2.c: Ditto. * gcc.target/i386/avx512bw-vpunpcklwd-1.c: Ditto. * gcc.target/i386/avx512bw-vpunpcklwd-2.c: Ditto. * gcc.target/i386/avx512dq-check.h: Ditto. * gcc.target/i386/avx512dq-vandnpd-1.c: Ditto. * gcc.target/i386/avx512dq-vandnpd-2.c: Ditto. * gcc.target/i386/avx512dq-vandnps-1.c: Ditto. * gcc.target/i386/avx512dq-vandnps-2.c: Ditto. * gcc.target/i386/avx512dq-vandpd-1.c: Ditto. * gcc.target/i386/avx512dq-vandpd-2.c: Ditto. * gcc.target/i386/avx512dq-vandps-1.c: Ditto. * gcc.target/i386/avx512dq-vandps-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf32x2-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf32x2-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf32x8-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcastf64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti32x2-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti32x2-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti32x8-2.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vbroadcasti64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtpd2qq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtpd2qq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtpd2uqq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtpd2uqq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtps2qq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtps2qq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtps2uqq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtps2uqq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtqq2pd-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtqq2pd-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtqq2ps-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtqq2ps-2.c: Ditto. * gcc.target/i386/avx512dq-vcvttpd2qq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvttpd2qq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvttpd2uqq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvttpd2uqq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvttps2qq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvttps2qq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvttps2uqq-1.c: Ditto. * gcc.target/i386/avx512dq-vcvttps2uqq-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtuqq2pd-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtuqq2pd-2.c: Ditto. * gcc.target/i386/avx512dq-vcvtuqq2ps-1.c: Ditto. * gcc.target/i386/avx512dq-vcvtuqq2ps-2.c: Ditto. * gcc.target/i386/avx512dq-vextractf32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vextractf64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vextractf64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vextracti32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vextracti64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vextracti64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vfpclasspd-1.c: Ditto. * gcc.target/i386/avx512dq-vfpclasspd-2.c: Ditto. * gcc.target/i386/avx512dq-vfpclassps-1.c: Ditto. * gcc.target/i386/avx512dq-vfpclassps-2.c: Ditto. * gcc.target/i386/avx512dq-vfpclasssd-1.c: Ditto. * gcc.target/i386/avx512dq-vfpclassss-1.c: Ditto. * gcc.target/i386/avx512dq-vinsertf32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vinsertf64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vinsertf64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vinserti32x8-1.c: Ditto. * gcc.target/i386/avx512dq-vinserti64x2-1.c: Ditto. * gcc.target/i386/avx512dq-vinserti64x2-2.c: Ditto. * gcc.target/i386/avx512dq-vorpd-1.c: Ditto. * gcc.target/i386/avx512dq-vorpd-2.c: Ditto. * gcc.target/i386/avx512dq-vorps-1.c: Ditto. * gcc.target/i386/avx512dq-vorps-2.c: Ditto. * gcc.target/i386/avx512dq-vpmovd2m-1.c: Ditto. * gcc.target/i386/avx512dq-vpmovd2m-2.c: Ditto. * gcc.target/i386/avx512dq-vpmovm2d-1.c: Ditto. * gcc.target/i386/avx512dq-vpmovm2d-2.c: Ditto. * gcc.target/i386/avx512dq-vpmovm2q-1.c: Ditto. * gcc.target/i386/avx512dq-vpmovm2q-2.c: Ditto. * gcc.target/i386/avx512dq-vpmovq2m-1.c: Ditto. * gcc.target/i386/avx512dq-vpmovq2m-2.c: Ditto. * gcc.target/i386/avx512dq-vpmullq-1.c: Ditto. * gcc.target/i386/avx512dq-vpmullq-2.c: Ditto. * gcc.target/i386/avx512dq-vrangepd-1.c: Ditto. * gcc.target/i386/avx512dq-vrangepd-2.c: Ditto. * gcc.target/i386/avx512dq-vrangeps-1.c: Ditto. * gcc.target/i386/avx512dq-vrangeps-2.c: Ditto. * gcc.target/i386/avx512dq-vrangesd-1.c: Ditto. * gcc.target/i386/avx512dq-vrangess-1.c: Ditto. * gcc.target/i386/avx512dq-vreducepd-1.c: Ditto. * gcc.target/i386/avx512dq-vreducepd-2.c: Ditto. * gcc.target/i386/avx512dq-vreduceps-1.c: Ditto. * gcc.target/i386/avx512dq-vreduceps-2.c: Ditto. * gcc.target/i386/avx512dq-vreducesd-1.c: Ditto. * gcc.target/i386/avx512dq-vreducess-1.c: Ditto. * gcc.target/i386/avx512dq-vxorpd-1.c: Ditto. * gcc.target/i386/avx512dq-vxorpd-2.c: Ditto. * gcc.target/i386/avx512dq-vxorps-1.c: Ditto. * gcc.target/i386/avx512dq-vxorps-2.c: Ditto. * gcc.target/i386/avx512vl-check.h: Ditto. * gcc.target/i386/avx512vl-gather-1.c: Ditto. * gcc.target/i386/avx512vl-i32gatherd-1.c: Ditto. * gcc.target/i386/avx512vl-i32gatherpd-1.c: Ditto. * gcc.target/i386/avx512vl-i32gatherps-1.c: Ditto. * gcc.target/i386/avx512vl-i32gatherq-1.c: Ditto. * gcc.target/i386/avx512vl-i32scatterd-1.c: Ditto. * gcc.target/i386/avx512vl-i32scatterpd-1.c: Ditto. * gcc.target/i386/avx512vl-i32scatterps-1.c: Ditto. * gcc.target/i386/avx512vl-i32scatterq-1.c: Ditto. * gcc.target/i386/avx512vl-i64gatherd-1.c: Ditto. * gcc.target/i386/avx512vl-i64gatherpd-1.c: Ditto. * gcc.target/i386/avx512vl-i64gatherps-1.c: Ditto. * gcc.target/i386/avx512vl-i64gatherq-1.c: Ditto. * gcc.target/i386/avx512vl-i64scatterd-1.c: Ditto. * gcc.target/i386/avx512vl-i64scatterpd-1.c: Ditto. * gcc.target/i386/avx512vl-i64scatterps-1.c: Ditto. * gcc.target/i386/avx512vl-i64scatterq-1.c: Ditto. * gcc.target/i386/avx512vl-vaddpd-1.c: Ditto. * gcc.target/i386/avx512vl-vaddpd-2.c: Ditto. * gcc.target/i386/avx512vl-vaddps-1.c: Ditto. * gcc.target/i386/avx512vl-vaddps-2.c: Ditto. * gcc.target/i386/avx512vl-valignd-1.c: Ditto. * gcc.target/i386/avx512vl-valignd-2.c: Ditto. * gcc.target/i386/avx512vl-valignq-1.c: Ditto. * gcc.target/i386/avx512vl-valignq-2.c: Ditto. * gcc.target/i386/avx512vl-vandnpd-2.c: Ditto. * gcc.target/i386/avx512vl-vandnps-2.c: Ditto. * gcc.target/i386/avx512vl-vandpd-2.c: Ditto. * gcc.target/i386/avx512vl-vandps-2.c: Ditto. * gcc.target/i386/avx512vl-vblendmpd-1.c: Ditto. * gcc.target/i386/avx512vl-vblendmpd-2.c: Ditto. * gcc.target/i386/avx512vl-vblendmps-1.c: Ditto. * gcc.target/i386/avx512vl-vblendmps-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastf32x2-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastf32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastf32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastf64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcasti32x2-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcasti32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vbroadcasti32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcasti64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastsd-1.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastsd-2.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastss-1.c: Ditto. * gcc.target/i386/avx512vl-vbroadcastss-2.c: Ditto. * gcc.target/i386/avx512vl-vcmppd-1.c: Ditto. * gcc.target/i386/avx512vl-vcmppd-2.c: Ditto. * gcc.target/i386/avx512vl-vcmpps-1.c: Ditto. * gcc.target/i386/avx512vl-vcmpps-2.c: Ditto. * gcc.target/i386/avx512vl-vcompresspd-1.c: Ditto. * gcc.target/i386/avx512vl-vcompresspd-2.c: Ditto. * gcc.target/i386/avx512vl-vcompressps-1.c: Ditto. * gcc.target/i386/avx512vl-vcompressps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtdq2pd-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtdq2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtdq2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtdq2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2dq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2dq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2qq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2udq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2udq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtpd2uqq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtph2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtph2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2dq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2dq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2pd-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2ph-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2ph-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2qq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2udq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2udq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtps2uqq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtqq2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtqq2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2dq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2dq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2qq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2udq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2udq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttpd2uqq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2dq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2dq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2qq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2udq-1.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2udq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvttps2uqq-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtudq2pd-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtudq2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtudq2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vcvtudq2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtuqq2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vcvtuqq2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vdbpsadbw-2.c: Ditto. * gcc.target/i386/avx512vl-vdivpd-1.c: Ditto. * gcc.target/i386/avx512vl-vdivpd-2.c: Ditto. * gcc.target/i386/avx512vl-vdivps-1.c: Ditto. * gcc.target/i386/avx512vl-vdivps-2.c: Ditto. * gcc.target/i386/avx512vl-vexpandpd-1.c: Ditto. * gcc.target/i386/avx512vl-vexpandpd-2.c: Ditto. * gcc.target/i386/avx512vl-vexpandps-1.c: Ditto. * gcc.target/i386/avx512vl-vexpandps-2.c: Ditto. * gcc.target/i386/avx512vl-vextractf32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vextractf32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vextractf64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vextracti32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vextracti32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vextracti64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmps-2.c: Ditto. * gcc.target/i386/avx512vl-vfmaddXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfmaddXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfmaddXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfmaddXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfmaddsubXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfmaddsubXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfmaddsubXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfmaddsubXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfmsubXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfmsubXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfmsubXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfmsubXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfmsubaddXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfmsubaddXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfmsubaddXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfmsubaddXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfnmaddXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfnmaddXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfnmaddXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfnmaddXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfnmsubXXXpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfnmsubXXXpd-2.c: Ditto. * gcc.target/i386/avx512vl-vfnmsubXXXps-1.c: Ditto. * gcc.target/i386/avx512vl-vfnmsubXXXps-2.c: Ditto. * gcc.target/i386/avx512vl-vfpclasspd-2.c: Ditto. * gcc.target/i386/avx512vl-vfpclassps-2.c: Ditto. * gcc.target/i386/avx512vl-vgetexppd-1.c: Ditto. * gcc.target/i386/avx512vl-vgetexppd-2.c: Ditto. * gcc.target/i386/avx512vl-vgetexpps-1.c: Ditto. * gcc.target/i386/avx512vl-vgetexpps-2.c: Ditto. * gcc.target/i386/avx512vl-vgetmantpd-1.c: Ditto. * gcc.target/i386/avx512vl-vgetmantpd-2.c: Ditto. * gcc.target/i386/avx512vl-vgetmantps-1.c: Ditto. * gcc.target/i386/avx512vl-vgetmantps-2.c: Ditto. * gcc.target/i386/avx512vl-vinsertf32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vinsertf32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vinsertf64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vinserti32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vinserti32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vinserti64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vmaxpd-1.c: Ditto. * gcc.target/i386/avx512vl-vmaxpd-2.c: Ditto. * gcc.target/i386/avx512vl-vmaxps-1.c: Ditto. * gcc.target/i386/avx512vl-vmaxps-2.c: Ditto. * gcc.target/i386/avx512vl-vminpd-1.c: Ditto. * gcc.target/i386/avx512vl-vminpd-2.c: Ditto. * gcc.target/i386/avx512vl-vminps-1.c: Ditto. * gcc.target/i386/avx512vl-vminps-2.c: Ditto. * gcc.target/i386/avx512vl-vmovapd-1.c: Ditto. * gcc.target/i386/avx512vl-vmovapd-2.c: Ditto. * gcc.target/i386/avx512vl-vmovaps-1.c: Ditto. * gcc.target/i386/avx512vl-vmovaps-2.c: Ditto. * gcc.target/i386/avx512vl-vmovddup-1.c: Ditto. * gcc.target/i386/avx512vl-vmovddup-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa32-1.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa32-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa64-1.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa64-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu16-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu32-1.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu32-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu64-1.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu64-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqu8-2.c: Ditto. * gcc.target/i386/avx512vl-vmovntdqa-1.c: Ditto. * gcc.target/i386/avx512vl-vmovshdup-1.c: Ditto. * gcc.target/i386/avx512vl-vmovshdup-2.c: Ditto. * gcc.target/i386/avx512vl-vmovsldup-1.c: Ditto. * gcc.target/i386/avx512vl-vmovsldup-2.c: Ditto. * gcc.target/i386/avx512vl-vmovupd-1.c: Ditto. * gcc.target/i386/avx512vl-vmovupd-2.c: Ditto. * gcc.target/i386/avx512vl-vmovups-1.c: Ditto. * gcc.target/i386/avx512vl-vmovups-2.c: Ditto. * gcc.target/i386/avx512vl-vmulpd-1.c: Ditto. * gcc.target/i386/avx512vl-vmulpd-2.c: Ditto. * gcc.target/i386/avx512vl-vmulps-1.c: Ditto. * gcc.target/i386/avx512vl-vmulps-2.c: Ditto. * gcc.target/i386/avx512vl-vorpd-2.c: Ditto. * gcc.target/i386/avx512vl-vorps-2.c: Ditto. * gcc.target/i386/avx512vl-vpabsb-2.c: Ditto. * gcc.target/i386/avx512vl-vpabsd-1.c: Ditto. * gcc.target/i386/avx512vl-vpabsd-2.c: Ditto. * gcc.target/i386/avx512vl-vpabsq-1.c: Ditto. * gcc.target/i386/avx512vl-vpabsq-2.c: Ditto. * gcc.target/i386/avx512vl-vpabsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpackssdw-2.c: Ditto. * gcc.target/i386/avx512vl-vpacksswb-2.c: Ditto. * gcc.target/i386/avx512vl-vpackusdw-2.c: Ditto. * gcc.target/i386/avx512vl-vpackuswb-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddb-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddd-1.c: Ditto. * gcc.target/i386/avx512vl-vpaddd-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddq-1.c: Ditto. * gcc.target/i386/avx512vl-vpaddq-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddsb-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddusb-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddusw-2.c: Ditto. * gcc.target/i386/avx512vl-vpaddw-2.c: Ditto. * gcc.target/i386/avx512vl-vpalignr-2.c: Ditto. * gcc.target/i386/avx512vl-vpandd-1.c: Ditto. * gcc.target/i386/avx512vl-vpandd-2.c: Ditto. * gcc.target/i386/avx512vl-vpandnd-1.c: Ditto. * gcc.target/i386/avx512vl-vpandnd-2.c: Ditto. * gcc.target/i386/avx512vl-vpandnq-1.c: Ditto. * gcc.target/i386/avx512vl-vpandnq-2.c: Ditto. * gcc.target/i386/avx512vl-vpandq-1.c: Ditto. * gcc.target/i386/avx512vl-vpandq-2.c: Ditto. * gcc.target/i386/avx512vl-vpavgb-2.c: Ditto. * gcc.target/i386/avx512vl-vpavgw-2.c: Ditto. * gcc.target/i386/avx512vl-vpblendmb-2.c: Ditto. * gcc.target/i386/avx512vl-vpblendmd-1.c: Ditto. * gcc.target/i386/avx512vl-vpblendmd-2.c: Ditto. * gcc.target/i386/avx512vl-vpblendmq-1.c: Ditto. * gcc.target/i386/avx512vl-vpblendmq-2.c: Ditto. * gcc.target/i386/avx512vl-vpblendmw-2.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastb-2.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastd-1.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastd-2.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastmb2q-1.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastmw2d-1.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastq-1.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastq-2.c: Ditto. * gcc.target/i386/avx512vl-vpbroadcastw-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpb-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqb-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpeqw-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpged-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgeq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgeud-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgeuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtb-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpgtw-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpled-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpleq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpleud-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpleuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpltd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpltq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpltud-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpltuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpneqd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpneqq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpnequd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpnequq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpub-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpud-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpud-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpuq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcmpuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpuw-2.c: Ditto. * gcc.target/i386/avx512vl-vpcmpw-2.c: Ditto. * gcc.target/i386/avx512vl-vpcompressd-1.c: Ditto. * gcc.target/i386/avx512vl-vpcompressd-2.c: Ditto. * gcc.target/i386/avx512vl-vpcompressq-1.c: Ditto. * gcc.target/i386/avx512vl-vpcompressq-2.c: Ditto. * gcc.target/i386/avx512vl-vpconflictd-1.c: Ditto. * gcc.target/i386/avx512vl-vpconflictq-1.c: Ditto. * gcc.target/i386/avx512vl-vpermd-1.c: Ditto. * gcc.target/i386/avx512vl-vpermd-2.c: Ditto. * gcc.target/i386/avx512vl-vpermi2d-1.c: Ditto. * gcc.target/i386/avx512vl-vpermi2d-2.c: Ditto. * gcc.target/i386/avx512vl-vpermi2pd-1.c: Ditto. * gcc.target/i386/avx512vl-vpermi2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vpermi2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vpermi2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vpermi2q-1.c: Ditto. * gcc.target/i386/avx512vl-vpermi2q-2.c: Ditto. * gcc.target/i386/avx512vl-vpermi2w-2.c: Ditto. * gcc.target/i386/avx512vl-vpermilpd-1.c: Ditto. * gcc.target/i386/avx512vl-vpermilpd-2.c: Ditto. * gcc.target/i386/avx512vl-vpermilpdi-1.c: Ditto. * gcc.target/i386/avx512vl-vpermilpdi-2.c: Ditto. * gcc.target/i386/avx512vl-vpermilps-1.c: Ditto. * gcc.target/i386/avx512vl-vpermilps-2.c: Ditto. * gcc.target/i386/avx512vl-vpermilpsi-1.c: Ditto. * gcc.target/i386/avx512vl-vpermilpsi-2.c: Ditto. * gcc.target/i386/avx512vl-vpermpd-1.c: Ditto. * gcc.target/i386/avx512vl-vpermpd-2.c: Ditto. * gcc.target/i386/avx512vl-vpermpdi-1.c: Ditto. * gcc.target/i386/avx512vl-vpermpdi-2.c: Ditto. * gcc.target/i386/avx512vl-vpermps-1.c: Ditto. * gcc.target/i386/avx512vl-vpermps-2.c: Ditto. * gcc.target/i386/avx512vl-vpermq-imm-1.c: Ditto. * gcc.target/i386/avx512vl-vpermq-imm-2.c: Ditto. * gcc.target/i386/avx512vl-vpermq-var-1.c: Ditto. * gcc.target/i386/avx512vl-vpermq-var-2.c: Ditto. * gcc.target/i386/avx512vl-vpermt2d-1.c: Ditto. * gcc.target/i386/avx512vl-vpermt2d-2.c: Ditto. * gcc.target/i386/avx512vl-vpermt2pd-1.c: Ditto. * gcc.target/i386/avx512vl-vpermt2pd-2.c: Ditto. * gcc.target/i386/avx512vl-vpermt2ps-1.c: Ditto. * gcc.target/i386/avx512vl-vpermt2ps-2.c: Ditto. * gcc.target/i386/avx512vl-vpermt2q-1.c: Ditto. * gcc.target/i386/avx512vl-vpermt2q-2.c: Ditto. * gcc.target/i386/avx512vl-vpermt2w-2.c: Ditto. * gcc.target/i386/avx512vl-vpermw-2.c: Ditto. * gcc.target/i386/avx512vl-vpexpandd-1.c: Ditto. * gcc.target/i386/avx512vl-vpexpandd-2.c: Ditto. * gcc.target/i386/avx512vl-vpexpandq-1.c: Ditto. * gcc.target/i386/avx512vl-vpexpandq-2.c: Ditto. * gcc.target/i386/avx512vl-vplzcntd-1.c: Ditto. * gcc.target/i386/avx512vl-vplzcntq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmaddubsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaddwd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxub-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxud-1.c: Ditto. * gcc.target/i386/avx512vl-vpmaxud-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxuq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmaxuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmaxuw-2.c: Ditto. * gcc.target/i386/avx512vl-vpminsb-2.c: Ditto. * gcc.target/i386/avx512vl-vpminsd-1.c: Ditto. * gcc.target/i386/avx512vl-vpminsd-2.c: Ditto. * gcc.target/i386/avx512vl-vpminsq-1.c: Ditto. * gcc.target/i386/avx512vl-vpminsq-2.c: Ditto. * gcc.target/i386/avx512vl-vpminsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpminub-2.c: Ditto. * gcc.target/i386/avx512vl-vpminud-1.c: Ditto. * gcc.target/i386/avx512vl-vpminud-2.c: Ditto. * gcc.target/i386/avx512vl-vpminuq-1.c: Ditto. * gcc.target/i386/avx512vl-vpminuq-2.c: Ditto. * gcc.target/i386/avx512vl-vpminuw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovb2m-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovd2m-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovdb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovdb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovdw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovdw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovm2b-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovm2d-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovm2q-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovm2w-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovq2m-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovqb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovqb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovqd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovqd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovqw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovqw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsdb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsdb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsdw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsdw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsqw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovswb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxbd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxbd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxbq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxbq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxbw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxdq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxdq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxwd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxwd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxwq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovsxwq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovusdb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovusdb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovusdw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovusdw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqb-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqw-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovusqw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovuswb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovw2m-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovwb-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxbd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxbd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxbq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxbq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxbw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxdq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxdq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxwd-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxwd-2.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxwq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmovzxwq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmuldq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmuldq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmulhrsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmulhuw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmulhw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmulld-1.c: Ditto. * gcc.target/i386/avx512vl-vpmulld-2.c: Ditto. * gcc.target/i386/avx512vl-vpmullq-2.c: Ditto. * gcc.target/i386/avx512vl-vpmullw-2.c: Ditto. * gcc.target/i386/avx512vl-vpmuludq-1.c: Ditto. * gcc.target/i386/avx512vl-vpmuludq-2.c: Ditto. * gcc.target/i386/avx512vl-vpord-1.c: Ditto. * gcc.target/i386/avx512vl-vpord-2.c: Ditto. * gcc.target/i386/avx512vl-vporq-1.c: Ditto. * gcc.target/i386/avx512vl-vporq-2.c: Ditto. * gcc.target/i386/avx512vl-vprold-1.c: Ditto. * gcc.target/i386/avx512vl-vprold-2.c: Ditto. * gcc.target/i386/avx512vl-vprolq-1.c: Ditto. * gcc.target/i386/avx512vl-vprolq-2.c: Ditto. * gcc.target/i386/avx512vl-vprolvd-1.c: Ditto. * gcc.target/i386/avx512vl-vprolvd-2.c: Ditto. * gcc.target/i386/avx512vl-vprolvq-1.c: Ditto. * gcc.target/i386/avx512vl-vprolvq-2.c: Ditto. * gcc.target/i386/avx512vl-vprord-1.c: Ditto. * gcc.target/i386/avx512vl-vprord-2.c: Ditto. * gcc.target/i386/avx512vl-vprorq-1.c: Ditto. * gcc.target/i386/avx512vl-vprorq-2.c: Ditto. * gcc.target/i386/avx512vl-vprorvd-1.c: Ditto. * gcc.target/i386/avx512vl-vprorvd-2.c: Ditto. * gcc.target/i386/avx512vl-vprorvq-1.c: Ditto. * gcc.target/i386/avx512vl-vprorvq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsadbw-1.c: Ditto. * gcc.target/i386/avx512vl-vpshufb-2.c: Ditto. * gcc.target/i386/avx512vl-vpshufd-1.c: Ditto. * gcc.target/i386/avx512vl-vpshufd-2.c: Ditto. * gcc.target/i386/avx512vl-vpshufhw-2.c: Ditto. * gcc.target/i386/avx512vl-vpshuflw-2.c: Ditto. * gcc.target/i386/avx512vl-vpslld-1.c: Ditto. * gcc.target/i386/avx512vl-vpslld-2.c: Ditto. * gcc.target/i386/avx512vl-vpslldi-1.c: Ditto. * gcc.target/i386/avx512vl-vpslldi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsllq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllqi-1.c: Ditto. * gcc.target/i386/avx512vl-vpsllqi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllvd-1.c: Ditto. * gcc.target/i386/avx512vl-vpsllvd-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllvq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsllvq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllvw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsllwi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrad-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrad-2.c: Ditto. * gcc.target/i386/avx512vl-vpsradi-1.c: Ditto. * gcc.target/i386/avx512vl-vpsradi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsraq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsraq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsraqi-1.c: Ditto. * gcc.target/i386/avx512vl-vpsraqi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsravd-1.c: Ditto. * gcc.target/i386/avx512vl-vpsravd-2.c: Ditto. * gcc.target/i386/avx512vl-vpsravq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsravq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsravw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsraw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrawi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrld-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrld-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrldi-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrldi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrlq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlqi-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrlqi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlvd-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrlvd-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlvq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsrlvq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlvw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsrlwi-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubb-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubd-1.c: Ditto. * gcc.target/i386/avx512vl-vpsubd-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubq-1.c: Ditto. * gcc.target/i386/avx512vl-vpsubq-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubsb-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubsw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubusb-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubusw-2.c: Ditto. * gcc.target/i386/avx512vl-vpsubw-2.c: Ditto. * gcc.target/i386/avx512vl-vpternlogd-1.c: Ditto. * gcc.target/i386/avx512vl-vpternlogd-2.c: Ditto. * gcc.target/i386/avx512vl-vpternlogq-1.c: Ditto. * gcc.target/i386/avx512vl-vpternlogq-2.c: Ditto. * gcc.target/i386/avx512vl-vptestmb-2.c: Ditto. * gcc.target/i386/avx512vl-vptestmd-1.c: Ditto. * gcc.target/i386/avx512vl-vptestmd-2.c: Ditto. * gcc.target/i386/avx512vl-vptestmq-1.c: Ditto. * gcc.target/i386/avx512vl-vptestmq-2.c: Ditto. * gcc.target/i386/avx512vl-vptestmw-2.c: Ditto. * gcc.target/i386/avx512vl-vptestnmb-2.c: Ditto. * gcc.target/i386/avx512vl-vptestnmd-1.c: Ditto. * gcc.target/i386/avx512vl-vptestnmd-2.c: Ditto. * gcc.target/i386/avx512vl-vptestnmq-1.c: Ditto. * gcc.target/i386/avx512vl-vptestnmq-2.c: Ditto. * gcc.target/i386/avx512vl-vptestnmw-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhbw-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhdq-1.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhdq-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhqdq-1.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhqdq-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpckhwd-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpcklbw-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpckldq-1.c: Ditto. * gcc.target/i386/avx512vl-vpunpckldq-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpcklqdq-1.c: Ditto. * gcc.target/i386/avx512vl-vpunpcklqdq-2.c: Ditto. * gcc.target/i386/avx512vl-vpunpcklwd-2.c: Ditto. * gcc.target/i386/avx512vl-vpxord-1.c: Ditto. * gcc.target/i386/avx512vl-vpxord-2.c: Ditto. * gcc.target/i386/avx512vl-vpxorq-1.c: Ditto. * gcc.target/i386/avx512vl-vpxorq-2.c: Ditto. * gcc.target/i386/avx512vl-vrangepd-2.c: Ditto. * gcc.target/i386/avx512vl-vrangeps-2.c: Ditto. * gcc.target/i386/avx512vl-vrcp14pd-1.c: Ditto. * gcc.target/i386/avx512vl-vrcp14pd-2.c: Ditto. * gcc.target/i386/avx512vl-vrcp14ps-1.c: Ditto. * gcc.target/i386/avx512vl-vrcp14ps-2.c: Ditto. * gcc.target/i386/avx512vl-vreducepd-2.c: Ditto. * gcc.target/i386/avx512vl-vreduceps-2.c: Ditto. * gcc.target/i386/avx512vl-vrndscalepd-1.c: Ditto. * gcc.target/i386/avx512vl-vrndscalepd-2.c: Ditto. * gcc.target/i386/avx512vl-vrndscaleps-1.c: Ditto. * gcc.target/i386/avx512vl-vrndscaleps-2.c: Ditto. * gcc.target/i386/avx512vl-vrsqrt14pd-1.c: Ditto. * gcc.target/i386/avx512vl-vrsqrt14pd-2.c: Ditto. * gcc.target/i386/avx512vl-vrsqrt14ps-1.c: Ditto. * gcc.target/i386/avx512vl-vrsqrt14ps-2.c: Ditto. * gcc.target/i386/avx512vl-vscalefpd-1.c: Ditto. * gcc.target/i386/avx512vl-vscalefpd-2.c: Ditto. * gcc.target/i386/avx512vl-vscalefps-1.c: Ditto. * gcc.target/i386/avx512vl-vscalefps-2.c: Ditto. * gcc.target/i386/avx512vl-vshuff32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vshuff32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vshuff64x2-1.c: Ditto. * gcc.target/i386/avx512vl-vshuff64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vshufi32x4-1.c: Ditto. * gcc.target/i386/avx512vl-vshufi32x4-2.c: Ditto. * gcc.target/i386/avx512vl-vshufi64x2-1.c: Ditto. * gcc.target/i386/avx512vl-vshufi64x2-2.c: Ditto. * gcc.target/i386/avx512vl-vshufpd-1.c: Ditto. * gcc.target/i386/avx512vl-vshufpd-2.c: Ditto. * gcc.target/i386/avx512vl-vshufps-1.c: Ditto. * gcc.target/i386/avx512vl-vshufps-2.c: Ditto. * gcc.target/i386/avx512vl-vsqrtpd-1.c: Ditto. * gcc.target/i386/avx512vl-vsqrtpd-2.c: Ditto. * gcc.target/i386/avx512vl-vsqrtps-1.c: Ditto. * gcc.target/i386/avx512vl-vsqrtps-2.c: Ditto. * gcc.target/i386/avx512vl-vsubpd-1.c: Ditto. * gcc.target/i386/avx512vl-vsubpd-2.c: Ditto. * gcc.target/i386/avx512vl-vsubps-1.c: Ditto. * gcc.target/i386/avx512vl-vsubps-2.c: Ditto. * gcc.target/i386/avx512vl-vunpckhpd-1.c: Ditto. * gcc.target/i386/avx512vl-vunpckhpd-2.c: Ditto. * gcc.target/i386/avx512vl-vunpckhps-1.c: Ditto. * gcc.target/i386/avx512vl-vunpckhps-2.c: Ditto. * gcc.target/i386/avx512vl-vunpcklpd-1.c: Ditto. * gcc.target/i386/avx512vl-vunpcklpd-2.c: Ditto. * gcc.target/i386/avx512vl-vunpcklps-1.c: Ditto. * gcc.target/i386/avx512vl-vunpcklps-2.c: Ditto. * gcc.target/i386/avx512vl-vxorpd-2.c: Ditto. * gcc.target/i386/avx512vl-vxorps-2.c: Ditto. * gcc.target/i386/avx512f-helper.h: Make avx512vl friendly. * gcc.target/i386/avx512f-mask-type.h: Ditto. * gcc.target/i386/avx512f-vcmppd-2.c: Ditto. * gcc.target/i386/avx512f-vcmpps-2.c: Ditto. * gcc.target/i386/avx512f-vcvtpd2ps-2.c: Ditto. * gcc.target/i386/avx512f-vcvtpd2udq-2.c: Ditto. * gcc.target/i386/avx512f-vcvtph2ps-2.c: Ditto. * gcc.target/i386/avx512f-vcvtps2ph-2.c: Ditto. * gcc.target/i386/avx512f-vcvttpd2udq-2.c: Ditto. * gcc.target/i386/avx512f-vpandd-2.c: Ditto. * gcc.target/i386/avx512f-vpandnd-2.c: Ditto. * gcc.target/i386/avx512f-vpandnq-2.c: Ditto. * gcc.target/i386/avx512f-vpandq-2.c: Ditto. * gcc.target/i386/avx512f-vpbroadcastq-2.c: Ditto. * gcc.target/i386/avx512f-vpcmpd-2.c: Ditto. * gcc.target/i386/avx512f-vpcmpq-2.c: Ditto. * gcc.target/i386/avx512f-vpcmpud-2.c: Ditto. * gcc.target/i386/avx512f-vpcmpuq-2.c: Ditto. * gcc.target/i386/avx512f-vpermd-2.c: Ditto. * gcc.target/i386/avx512f-vpermilpdi-2.c: Ditto. * gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto. * gcc.target/i386/avx512f-vpermq-var-2.c: Ditto. * gcc.target/i386/avx512f-vpmovdb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovdw-2.c: Ditto. * gcc.target/i386/avx512f-vpmovqb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovqd-2.c: Ditto. * gcc.target/i386/avx512f-vpmovqw-2.c: Ditto. * gcc.target/i386/avx512f-vpmovsdb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovsdw-2.c: Ditto. * gcc.target/i386/avx512f-vpmovsqb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovsqd-2.c: Ditto. * gcc.target/i386/avx512f-vpmovsqw-2.c: Ditto. * gcc.target/i386/avx512f-vpmovusdb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovusdw-2.c: Ditto. * gcc.target/i386/avx512f-vpmovusqb-2.c: Ditto. * gcc.target/i386/avx512f-vpmovusqd-2.c: Ditto. * gcc.target/i386/avx512f-vpmovusqw-2.c: Ditto. * gcc.target/i386/avx512f-vpord-2.c: Ditto. * gcc.target/i386/avx512f-vporq-2.c: Ditto. * gcc.target/i386/avx512f-vpxord-2.c: Ditto. * gcc.target/i386/avx512f-vpxorq-2.c: Ditto. * gcc.target/i386/avx512f-vrndscalepd-2.c: Ditto. * gcc.target/i386/avx512f-vrndscaleps-2.c: Ditto. * gcc.target/i386/avx512f-vshuff32x4-2.c: Ditto. * gcc.target/i386/avx512f-vshuff64x2-2.c: Ditto. * gcc.target/i386/avx512f-vshufi32x4-2.c: Ditto. * gcc.target/i386/avx512f-vshufi64x2-2.c: Ditto. * gcc.target/i386/avx512f-vshufpd-2.c: Ditto. * gcc.target/i386/i386.exp: Ditto. * gcc.target/i386/m512-check.h: Ditto. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216818
This commit is contained in:
parent
60463738d4
commit
6df7579fb0
@ -1,3 +1,938 @@
|
||||
2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
||||
Maxim Kuznetsov <maxim.kuznetsov@intel.com>
|
||||
Anna Tikhonova <anna.tikhonova@intel.com>
|
||||
Ilya Tocar <ilya.tocar@intel.com>
|
||||
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
||||
Ilya Verbin <ilya.verbin@intel.com>
|
||||
Kirill Yukhin <kirill.yukhin@intel.com>
|
||||
Michael Zolotukhin <michael.v.zolotukhin@intel.com>
|
||||
|
||||
* gcc.target/i386/avx512bw-check.h: New.
|
||||
* gcc.target/i386/avx512bw-kunpckdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-kunpckwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vdbpsadbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vdbpsadbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vmovdqu16-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vmovdqu16-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vmovdqu8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vmovdqu8-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpabsb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpabsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpabsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpabsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackssdw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackssdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpacksswb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpacksswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackusdw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackusdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackuswb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpackuswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddsb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddusb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddusb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddusw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddusw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpaddw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpalignr-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpalignr-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpavgb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpavgb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpavgw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpavgw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpblendmb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpblendmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpblendmw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpblendmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpbroadcastb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpbroadcastb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpbroadcastw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpbroadcastw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpeqb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpeqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpeqw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpeqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpgtb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpgtb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpgtw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpgtw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpub-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpuw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpcmpw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermi2w-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermi2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermt2w-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermt2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpermw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaddubsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaddubsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaddwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaddwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxsb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxub-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxuw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmaxuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminsb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminub-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminuw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpminuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovb2m-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovb2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovm2b-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovm2b-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovm2w-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovm2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovswb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovsxbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovsxbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovuswb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovw2m-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovw2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovwb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovzxbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmovzxbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhrsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhrsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhuw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmulhw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmullw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpmullw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshufb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshufb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshufhw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshufhw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshuflw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpshuflw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpslldq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllvw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllvw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllwi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsllwi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsravw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsravw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsraw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsraw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrawi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrawi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrldq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlvw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlvw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlwi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsrlwi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubsb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubsw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubusb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubusb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubusw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubusw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpsubw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestmb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestmw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestnmb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestnmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestnmw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vptestnmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpckhbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpckhbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpckhwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpckhwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpcklbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpcklbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpcklwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512bw-vpunpcklwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-check.h: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandnpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandnpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandnps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandnps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vandps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf32x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf32x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf32x8-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcastf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti32x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti32x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti32x8-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vbroadcasti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtpd2qq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtpd2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtpd2uqq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtpd2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtps2qq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtps2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtps2uqq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtps2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtqq2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtqq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtqq2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtqq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttpd2qq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttpd2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttpd2uqq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttpd2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttps2qq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttps2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttps2uqq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvttps2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtuqq2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtuqq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtuqq2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vcvtuqq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextractf32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextractf64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextractf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextracti32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextracti64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vextracti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclasspd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclasspd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclassps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclassps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclasssd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vfpclassss-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinsertf32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinsertf64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinsertf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinserti32x8-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinserti64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vinserti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vorpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vorpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vorps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vorps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovd2m-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovd2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovm2d-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovm2d-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovm2q-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovm2q-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovq2m-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmovq2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmullq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vpmullq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangepd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangeps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangeps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangesd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vrangess-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreducepd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreducepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreduceps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreduceps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreducesd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vreducess-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vxorpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vxorpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vxorps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512dq-vxorps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-check.h: Ditto.
|
||||
* gcc.target/i386/avx512vl-gather-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32gatherd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32gatherpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32gatherps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32gatherq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32scatterd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32scatterpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32scatterps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i32scatterq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64gatherd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64gatherpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64gatherps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64gatherq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64scatterd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64scatterpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64scatterps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-i64scatterq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vaddpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vaddpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vaddps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vaddps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-valignd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-valignd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-valignq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-valignq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vandnpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vandnps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vandpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vandps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vblendmpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vblendmpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vblendmps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vblendmps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastf32x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastf32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastf32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcasti32x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcasti32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcasti32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcasti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastsd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastsd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastss-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vbroadcastss-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcmppd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcmppd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcmpps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcmpps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcompresspd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcompresspd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcompressps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcompressps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtdq2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtdq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtdq2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtdq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2dq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2dq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2udq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtpd2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtph2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtph2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2dq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2dq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2ph-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2ph-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2udq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtps2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtqq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtqq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2dq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2dq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2udq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttpd2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2dq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2dq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2qq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2udq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvttps2uqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtudq2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtudq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtudq2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtudq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtuqq2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vcvtuqq2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vdbpsadbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vdivpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vdivpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vdivps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vdivps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vexpandpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vexpandpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vexpandps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vexpandps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextractf32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextractf32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextractf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextracti32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextracti32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vextracti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfixupimmpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfixupimmps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddsubXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddsubXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddsubXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmaddsubXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubaddXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubaddXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubaddXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfmsubaddXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmaddXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmaddXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmaddXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmaddXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmsubXXXpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmsubXXXpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmsubXXXps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfnmsubXXXps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfpclasspd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vfpclassps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetexppd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetexppd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetexpps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetexpps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetmantpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetmantpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetmantps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vgetmantps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinsertf32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinsertf32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinsertf64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinserti32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinserti32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vinserti64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmaxpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmaxpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmaxps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmaxps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vminpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vminpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vminps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vminps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovapd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovapd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovaps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovaps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovddup-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovddup-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqa32-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqa32-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqa64-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqa64-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu16-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu32-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu32-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu64-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu64-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovdqu8-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovntdqa-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovshdup-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovshdup-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovsldup-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovsldup-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovupd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovupd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovups-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmovups-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmulpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmulpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmulps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vmulps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vorpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vorps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpabsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpackssdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpacksswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpackusdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpackuswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddusb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddusw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpaddw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpalignr-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandnd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandnd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandnq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandnq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpandq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpavgb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpavgw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpblendmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastmb2q-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastmw2d-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpbroadcastw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpeqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpged-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgeq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgeud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgeuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpgtw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpled-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpleq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpleud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpleuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpltd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpltq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpltud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpltuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpneqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpneqq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpnequd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpnequq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpud-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpuq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcmpw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcompressd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcompressd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcompressq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpcompressq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpconflictd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpconflictq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2d-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2d-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2q-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2q-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermi2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpdi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpdi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpsi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermilpsi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermpdi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermpdi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermq-imm-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermq-imm-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermq-var-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermq-var-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2d-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2d-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2q-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2q-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermt2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpermw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpexpandd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpexpandd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpexpandq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpexpandq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vplzcntd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vplzcntq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaddubsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaddwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxud-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxuq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmaxuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminub-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminud-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminuq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpminuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovb2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovd2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovdb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovdw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovm2b-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovm2d-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovm2q-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovm2w-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovq2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsdb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsdw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxbd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxbd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxbq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxbq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxdq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxwq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovsxwq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusdb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusdw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqb-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovusqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovuswb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovw2m-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovwb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxbd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxbd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxbq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxbq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxdq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxwd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxwq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmovzxwq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmuldq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmuldq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmulhrsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmulhuw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmulhw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmulld-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmulld-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmullq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmullw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmuludq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpmuludq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpord-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpord-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vporq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vporq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprold-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprold-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolvd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolvd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolvq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprolvq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprord-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprord-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorvd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorvd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorvq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vprorvq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsadbw-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpshufb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpshufd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpshufd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpshufhw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpshuflw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpslld-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpslld-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpslldi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpslldi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllqi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllqi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllvd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllvd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllvq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllvq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllvw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsllwi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrad-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrad-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsradi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsradi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsraq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsraq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsraqi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsraqi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsravd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsravd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsravq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsravq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsravw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsraw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrawi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrld-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrld-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrldi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrldi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlqi-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlqi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlvd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlvd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlvq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlvq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlvw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsrlwi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubsb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubsw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubusb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubusw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpsubw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpternlogd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpternlogd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpternlogq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpternlogq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vptestnmw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhdq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhqdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhqdq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckhwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpcklbw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckldq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpckldq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpcklqdq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpcklqdq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpunpcklwd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpxord-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpxord-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpxorq-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vpxorq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrangepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrangeps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrcp14pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrcp14pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrcp14ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrcp14ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vreducepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vreduceps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrndscalepd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrndscalepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrndscaleps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrndscaleps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrsqrt14pd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrsqrt14pd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrsqrt14ps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vrsqrt14ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vscalefpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vscalefpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vscalefps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vscalefps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshuff32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshuff32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshuff64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshuff64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufi32x4-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufi32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufi64x2-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufi64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vshufps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsqrtpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsqrtpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsqrtps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsqrtps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsubpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsubpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsubps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vsubps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpckhpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpckhpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpckhps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpckhps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpcklpd-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpcklpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpcklps-1.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vunpcklps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vxorpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512vl-vxorps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-helper.h: Make avx512vl friendly.
|
||||
* gcc.target/i386/avx512f-mask-type.h: Ditto.
|
||||
* gcc.target/i386/avx512f-vcmppd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcmpps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcvtpd2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcvtpd2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcvtph2ps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcvtps2ph-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vcvttpd2udq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpandd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpandnd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpandnq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpandq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpbroadcastq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpcmpd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpcmpq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpcmpud-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpcmpuq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpermd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpermilpdi-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpermq-var-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovsdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovsdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovsqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovsqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovsqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovusdb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovusdw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovusqb-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovusqd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpmovusqw-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpord-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vporq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpxord-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vpxorq-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vrndscalepd-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vrndscaleps-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vshuff32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vshuff64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vshufi32x4-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vshufi64x2-2.c: Ditto.
|
||||
* gcc.target/i386/avx512f-vshufpd-2.c: Ditto.
|
||||
* gcc.target/i386/i386.exp: Ditto.
|
||||
* gcc.target/i386/m512-check.h: Ditto.
|
||||
|
||||
2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
||||
Maxim Kuznetsov <maxim.kuznetsov@intel.com>
|
||||
Anna Tikhonova <anna.tikhonova@intel.com>
|
||||
Ilya Tocar <ilya.tocar@intel.com>
|
||||
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
||||
Ilya Verbin <ilya.verbin@intel.com>
|
||||
Kirill Yukhin <kirill.yukhin@intel.com>
|
||||
Michael Zolotukhin <michael.v.zolotukhin@intel.com>
|
||||
|
||||
* g++.dg/other/i386-2.C: Add new options.
|
||||
* g++.dg/other/i386-3.C: Ditto.
|
||||
* gcc.target/i386/sse-12.c: Ditto.
|
||||
* gcc.target/i386/sse-14.c: Ditto.
|
||||
* gcc.target/i386/sse-22.c: Ditto.
|
||||
* gcc.target/i386/sse-13.c: Add new options and builtins.
|
||||
* gcc.target/i386/sse-23.c: Ditto.
|
||||
* gcc.target/i386/avx-1.c: Add new builtins.
|
||||
|
||||
2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||||
|
||||
* gcc.misc-tests/godump.exp: New.
|
||||
|
47
gcc/testsuite/gcc.target/i386/avx512bw-check.h
Normal file
47
gcc/testsuite/gcc.target/i386/avx512bw-check.h
Normal file
@ -0,0 +1,47 @@
|
||||
#include <stdlib.h>
|
||||
#include "cpuid.h"
|
||||
#include "m512-check.h"
|
||||
#include "avx512f-os-support.h"
|
||||
|
||||
static void avx512bw_test (void);
|
||||
|
||||
static void __attribute__ ((noinline)) do_test (void)
|
||||
{
|
||||
avx512bw_test ();
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
unsigned int eax, ebx, ecx, edx;
|
||||
|
||||
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
|
||||
return 0;
|
||||
|
||||
/* Run AVX512BW test only if host has AVX512BW support. */
|
||||
if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE))
|
||||
{
|
||||
if (__get_cpuid_max (0, NULL) < 7)
|
||||
return 0;
|
||||
|
||||
__cpuid_count (7, 0, eax, ebx, ecx, edx);
|
||||
|
||||
if ((avx512f_os_support ()) && ((ebx & bit_AVX512BW) == bit_AVX512BW))
|
||||
{
|
||||
do_test ();
|
||||
#ifdef DEBUG
|
||||
printf ("PASSED\n");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#ifdef DEBUG
|
||||
printf ("SKIPPED\n");
|
||||
#endif
|
||||
}
|
||||
#ifdef DEBUG
|
||||
else
|
||||
printf ("SKIPPED\n");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
17
gcc/testsuite/gcc.target/i386/avx512bw-kunpckdq-1.c
Normal file
17
gcc/testsuite/gcc.target/i386/avx512bw-kunpckdq-1.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -O2" } */
|
||||
/* { dg-final { scan-assembler-times "kunpckdq\[ \\t\]+\[^\n\]*%k\[1-7\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
void
|
||||
avx512bw_test () {
|
||||
__mmask64 k1, k2, k3;
|
||||
volatile __m512i x;
|
||||
|
||||
__asm__( "kmovq %1, %0" : "=k" (k1) : "r" (1) );
|
||||
__asm__( "kmovq %1, %0" : "=k" (k2) : "r" (2) );
|
||||
|
||||
k3 = _mm512_kunpackd (k1, k2);
|
||||
x = _mm512_mask_avg_epu8 (x, k3, x, x);
|
||||
}
|
17
gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-1.c
Normal file
17
gcc/testsuite/gcc.target/i386/avx512bw-kunpckwd-1.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -O2" } */
|
||||
/* { dg-final { scan-assembler-times "kunpckwd\[ \\t\]+\[^\n\]*%k\[1-7\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
void
|
||||
avx512bw_test () {
|
||||
volatile __mmask32 k1, k2, k3;
|
||||
volatile __m256i x;
|
||||
|
||||
__asm__( "kmovd %1, %0" : "=k" (k1) : "r" (1) );
|
||||
__asm__( "kmovd %1, %0" : "=k" (k2) : "r" (2) );
|
||||
|
||||
k3 = _mm512_kunpackw (k1, k2);
|
||||
//x = _mm256_mask_avg_epu8 (x, k3, x, x);
|
||||
}
|
34
gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-1.c
Normal file
34
gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-1.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vdbpsadbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x, a;
|
||||
volatile __m256i y, b;
|
||||
volatile __m128i z, c;
|
||||
volatile __mmask32 m1;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_dbsad_epu8 (a, a, 0xaa);
|
||||
x = _mm512_mask_dbsad_epu8 (x, m1, a, a, 0xaa);
|
||||
x = _mm512_maskz_dbsad_epu8 (m1, a, a, 0xaa);
|
||||
y = _mm256_dbsad_epu8 (b, b, 0xbb);
|
||||
y = _mm256_mask_dbsad_epu8 (y, m2, b, b, 0xbb);
|
||||
y = _mm256_maskz_dbsad_epu8 (m2, b, b, 0xbb);
|
||||
z = _mm_dbsad_epu8 (c, c, 0xcc);
|
||||
z = _mm_mask_dbsad_epu8 (z, m3, c, c, 0xcc);
|
||||
z = _mm_maskz_dbsad_epu8 (m3, c, c, 0xcc);
|
||||
}
|
80
gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-2.c
Normal file
80
gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-2.c
Normal file
@ -0,0 +1,80 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned short *dst, unsigned char *src1, unsigned char *src2,
|
||||
int imm)
|
||||
{
|
||||
int i, j, k, part, power;
|
||||
unsigned char tmp[2 * SIZE];;
|
||||
|
||||
for (i = 0; i < 2 * SIZE; i += 16)
|
||||
{
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
power = 1;
|
||||
for (k = 0; k < j; k++)
|
||||
power *= 4;
|
||||
part = (imm & (3 * power)) >> (2 * j);
|
||||
for (k = 0; k < 4; k++)
|
||||
tmp[i + 4 * j + k] = src2[i + 4 * part + k];
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < SIZE; i += 4)
|
||||
{
|
||||
dst[i] = dst[i + 1] = dst[i + 2] = dst[i + 3] = 0;
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
dst[i] += abs (src1[2 * i + j] - tmp[2 * i + j]);
|
||||
dst[i + 1] += abs (src1[2 * i + j] - tmp[2 * i + j + 1]);
|
||||
dst[i + 2] += abs (src1[2 * i + j + 4] - tmp[2 * i + j + 2]);
|
||||
dst[i + 3] += abs (src1[2 * i + j + 4] - tmp[2 * i + j + 3]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned short res_ref[SIZE];
|
||||
int imm = 0x22;
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < 2*SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 1 + 34 * i * sign;
|
||||
src1.a[i] = 179 - i;
|
||||
sign = sign * -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_dbsad_epu8) (src1.x, src2.x, imm);
|
||||
res2.x = INTRINSIC (_mask_dbsad_epu8) (res2.x, mask, src1.x, src2.x, imm);
|
||||
res3.x = INTRINSIC (_maskz_dbsad_epu8) (mask, src1.x, src2.x, imm);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a, imm);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*\\)\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu16\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
short *p;
|
||||
volatile __m512i x1, yy;
|
||||
volatile __m256i x2, y2;
|
||||
volatile __m128i x3, y3;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask8 m8;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x1 = _mm512_mask_mov_epi16 (x1, m32, yy);
|
||||
x2 = _mm256_mask_mov_epi16 (x2, m16, y2);
|
||||
x3 = _mm_mask_mov_epi16 (x3, m8, y3);
|
||||
|
||||
x1 = _mm512_maskz_mov_epi16 (m32, yy);
|
||||
x2 = _mm256_maskz_mov_epi16 (m16, y2);
|
||||
x3 = _mm_maskz_mov_epi16 (m8, y3);
|
||||
|
||||
x1 = _mm512_mask_loadu_epi16 (x1, m32, p);
|
||||
x2 = _mm256_mask_loadu_epi16 (x2, m16, p);
|
||||
x3 = _mm_mask_loadu_epi16 (x3, m8, p);
|
||||
|
||||
x1 = _mm512_maskz_loadu_epi16 (m32, p);
|
||||
x2 = _mm256_maskz_loadu_epi16 (m16, p);
|
||||
x3 = _mm_maskz_loadu_epi16 (m8, p);
|
||||
|
||||
_mm512_mask_storeu_epi16 (p, m32, x1);
|
||||
_mm256_mask_storeu_epi16 (p, m16, x2);
|
||||
_mm_mask_storeu_epi16 (p, m8, x3);
|
||||
}
|
60
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c
Normal file
60
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c
Normal file
@ -0,0 +1,60 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE ((AVX512F_LEN) / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char c;
|
||||
short a[SIZE];
|
||||
} __attribute__ ((packed)) EVAL(unaligned_array, AVX512F_LEN,);
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s3, res1, res2, res3, res4;
|
||||
EVAL(unaligned_array, AVX512F_LEN,) s2, res5;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i, sign = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = 123 * i * sign;
|
||||
s2.a[i] = 456 * i * sign;
|
||||
s3.a[i] = 789 * i * sign;
|
||||
res1.a[i] = DEFAULT_VALUE;
|
||||
res3.a[i] = DEFAULT_VALUE;
|
||||
res5.a[i] = DEFAULT_VALUE;
|
||||
sign = -sign;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_mask_mov_epi16) (res1.x, mask, s1.x);
|
||||
res2.x = INTRINSIC (_maskz_mov_epi16) (mask, s1.x);
|
||||
res3.x = INTRINSIC (_mask_loadu_epi16) (res3.x, mask, s2.a);
|
||||
res4.x = INTRINSIC (_maskz_loadu_epi16) (mask, s2.a);
|
||||
INTRINSIC (_mask_storeu_epi16) (res5.a, mask, s3.x);
|
||||
|
||||
MASK_MERGE (i_w) (s1.a, mask, SIZE);
|
||||
if (checkVs (res1.a, s1.a, SIZE))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (s1.a, mask, SIZE);
|
||||
if (checkVs (res2.a, s1.a, SIZE))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (s2.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, s2.a))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (s2.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res4, s2.a))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (s3.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (s3, res5.a))
|
||||
abort ();
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-1.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-1.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*\\)\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vmovdqu8\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*\\)\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
char *p;
|
||||
volatile __m512i x1, yy;
|
||||
volatile __m256i x2, y2;
|
||||
volatile __m128i x3, y3;
|
||||
volatile __mmask64 m64;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x1 = _mm512_mask_mov_epi8 (x1, m64, yy);
|
||||
x2 = _mm256_mask_mov_epi8 (x2, m32, y2);
|
||||
x3 = _mm_mask_mov_epi8 (x3, m16, y3);
|
||||
|
||||
x1 = _mm512_maskz_mov_epi8 (m64, yy);
|
||||
x2 = _mm256_maskz_mov_epi8 (m32, y2);
|
||||
x3 = _mm_maskz_mov_epi8 (m16, y3);
|
||||
|
||||
x1 = _mm512_mask_loadu_epi8 (x1, m64, p);
|
||||
x2 = _mm256_mask_loadu_epi8 (x2, m32, p);
|
||||
x3 = _mm_mask_loadu_epi8 (x3, m16, p);
|
||||
|
||||
x1 = _mm512_maskz_loadu_epi8 (m64, p);
|
||||
x2 = _mm256_maskz_loadu_epi8 (m32, p);
|
||||
x3 = _mm_maskz_loadu_epi8 (m16, p);
|
||||
|
||||
_mm512_mask_storeu_epi8 (p, m64, x1);
|
||||
_mm256_mask_storeu_epi8 (p, m32, x2);
|
||||
_mm_mask_storeu_epi8 (p, m16, x3);
|
||||
}
|
60
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-2.c
Normal file
60
gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-2.c
Normal file
@ -0,0 +1,60 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE ((AVX512F_LEN) / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char c;
|
||||
char a[SIZE];
|
||||
} __attribute__ ((packed)) EVAL(unaligned_array, AVX512F_LEN,);
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_b) s1, s3, res1, res2, res3, res4;
|
||||
EVAL(unaligned_array, AVX512F_LEN,) s2, res5;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i, sign = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = (i + 1) * sign;
|
||||
s2.a[i] = (i + 2) * sign;
|
||||
s3.a[i] = (i * 2) * sign;
|
||||
res1.a[i] = DEFAULT_VALUE;
|
||||
res3.a[i] = DEFAULT_VALUE;
|
||||
res5.a[i] = DEFAULT_VALUE;
|
||||
sign = -sign;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_mask_mov_epi8) (res1.x, mask, s1.x);
|
||||
res2.x = INTRINSIC (_maskz_mov_epi8) (mask, s1.x);
|
||||
res3.x = INTRINSIC (_mask_loadu_epi8) (res3.x, mask, s2.a);
|
||||
res4.x = INTRINSIC (_maskz_loadu_epi8) (mask, s2.a);
|
||||
INTRINSIC (_mask_storeu_epi8) (res5.a, mask, s3.x);
|
||||
|
||||
MASK_MERGE (i_b) (s1.a, mask, SIZE);
|
||||
if (checkVc (res1.a, s1.a, SIZE))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (s1.a, mask, SIZE);
|
||||
if (checkVc (res2.a, s1.a, SIZE))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (s2.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, s2.a))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (s2.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res4, s2.a))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (s3.a, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (s3, res5.a))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i z;
|
||||
volatile __m256i y;
|
||||
volatile __m128i x;
|
||||
volatile __mmask64 m1;
|
||||
volatile __mmask32 m2;
|
||||
volatile __mmask16 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm512_abs_epi8 (z);
|
||||
z = _mm512_mask_abs_epi8 (z, m1, z);
|
||||
z = _mm512_maskz_abs_epi8 (m1, z);
|
||||
y = _mm256_mask_abs_epi8 (y, m2, y);
|
||||
y = _mm256_maskz_abs_epi8 (m2, y);
|
||||
x = _mm_mask_abs_epi8 (x, m3, x);
|
||||
x = _mm_maskz_abs_epi8 (m3, x);
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-2.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-2.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *s, char *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s[i] < 0)
|
||||
r[i] = -s[i];
|
||||
else
|
||||
r[i] = s[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_b) s, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s.a[i] = i * 7 + (i << 15) + 356;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
CALC (s.a, res_ref);
|
||||
|
||||
res1.x = INTRINSIC (_abs_epi8) (s.x);
|
||||
res2.x = INTRINSIC (_mask_abs_epi8) (res2.x, mask, s.x);
|
||||
res3.x = INTRINSIC (_maskz_abs_epi8) (mask, s.x);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpabsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i z;
|
||||
volatile __m256i y;
|
||||
volatile __m128i x;
|
||||
volatile __mmask32 m1;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm512_abs_epi16 (z);
|
||||
z = _mm512_mask_abs_epi16 (z, m1, z);
|
||||
z = _mm512_maskz_abs_epi16 (m1, z);
|
||||
y = _mm256_mask_abs_epi16 (y, m2, y);
|
||||
y = _mm256_maskz_abs_epi16 (m2, y);
|
||||
x = _mm_mask_abs_epi16 (x, m3, x);
|
||||
x = _mm_maskz_abs_epi16 (m3, x);
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-2.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-2.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *s, short *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s[i] < 0)
|
||||
r[i] = -s[i];
|
||||
else
|
||||
r[i] = s[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s.a[i] = i * 7 + (i << 15) + 356;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
CALC (s.a, res_ref);
|
||||
|
||||
res1.x = INTRINSIC (_abs_epi16) (s.x);
|
||||
res2.x = INTRINSIC (_mask_abs_epi16) (res2.x, mask, s.x);
|
||||
res3.x = INTRINSIC (_maskz_abs_epi16) (mask, s.x);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
31
gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-1.c
Normal file
31
gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-1.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackssdw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask64 mx;
|
||||
volatile __mmask32 my;
|
||||
volatile __mmask16 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_packs_epi32 (x, x);
|
||||
x = _mm512_mask_packs_epi32 (x, mx, x, x);
|
||||
x = _mm512_maskz_packs_epi32 (mx, x, x);
|
||||
y = _mm256_mask_packs_epi32 (y, my, y, y);
|
||||
y = _mm256_maskz_packs_epi32 (my, y, y);
|
||||
z = _mm_mask_packs_epi32 (z, mz, z, z);
|
||||
z = _mm_maskz_packs_epi32 (mz, z, z);
|
||||
}
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define DST_SIZE (AVX512F_LEN / 16)
|
||||
#define SRC_SIZE (AVX512F_LEN / 32)
|
||||
|
||||
#include "limits.h"
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
static short
|
||||
EVAL(int_to_short, AVX512F_LEN,) (int iVal)
|
||||
{
|
||||
short sVal;
|
||||
|
||||
if (iVal < SHRT_MIN)
|
||||
sVal = SHRT_MIN;
|
||||
else if (iVal > SHRT_MAX)
|
||||
sVal = SHRT_MAX;
|
||||
else
|
||||
sVal = iVal;
|
||||
|
||||
return sVal;
|
||||
}
|
||||
|
||||
void
|
||||
CALC (int *src1, int *src2, short *dst)
|
||||
{
|
||||
int i;
|
||||
int *ptr;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
{
|
||||
ptr = (i / 4) % 2 ? src2 : src1;
|
||||
dst[i] = EVAL(int_to_short, AVX512F_LEN,) (ptr[i % 4 + (i / 8) * 4]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_d) s1, s2;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short dst_ref[DST_SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
for (i = 0; i < SRC_SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 10;
|
||||
s2.a[i] = i + 15;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_packs_epi32) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_packs_epi32) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_packs_epi32) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, dst_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, dst_ref))
|
||||
abort ();
|
||||
|
||||
}
|
31
gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-1.c
Normal file
31
gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-1.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpacksswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask64 mx;
|
||||
volatile __mmask32 my;
|
||||
volatile __mmask16 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_packs_epi16 (x, x);
|
||||
x = _mm512_mask_packs_epi16 (x, mx, x, x);
|
||||
x = _mm512_maskz_packs_epi16 (mx, x, x);
|
||||
y = _mm256_mask_packs_epi16 (y, my, y, y);
|
||||
y = _mm256_maskz_packs_epi16 (my, y, y);
|
||||
z = _mm_mask_packs_epi16 (z, mz, z, z);
|
||||
z = _mm_maskz_packs_epi16 (mz, z, z);
|
||||
}
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define DST_SIZE (AVX512F_LEN / 8)
|
||||
#define SRC_SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "limits.h"
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
static char
|
||||
EVAL(short_to_char, AVX512F_LEN,) (short iVal)
|
||||
{
|
||||
char sVal;
|
||||
|
||||
if (iVal < CHAR_MIN)
|
||||
sVal = CHAR_MIN;
|
||||
else if (iVal > CHAR_MAX)
|
||||
sVal = CHAR_MAX;
|
||||
else
|
||||
sVal = iVal;
|
||||
|
||||
return sVal;
|
||||
}
|
||||
|
||||
void
|
||||
CALC (short *src1, short *src2, char *dst)
|
||||
{
|
||||
int i;
|
||||
short *ptr;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
{
|
||||
ptr = (i / 8) % 2 ? src2 : src1;
|
||||
dst[i] = EVAL(short_to_char, AVX512F_LEN,) (ptr[i % 8 + (i / 16) * 8]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char dst_ref[DST_SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
for (i = 0; i < SRC_SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 10;
|
||||
s2.a[i] = i + 15;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_packs_epi16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_packs_epi16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_packs_epi16) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, dst_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, dst_ref))
|
||||
abort ();
|
||||
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackusdw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask64 mx;
|
||||
volatile __mmask32 my;
|
||||
volatile __mmask16 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_packus_epi32 (x, x);
|
||||
x = _mm512_mask_packus_epi32 (x, mx, x, x);
|
||||
x = _mm512_maskz_packus_epi32 (mx, x, x);
|
||||
y = _mm256_mask_packus_epi32 (y, my, y, y);
|
||||
y = _mm256_maskz_packus_epi32 (my, y, y);
|
||||
z = _mm_mask_packus_epi32 (z, mz, z, z);
|
||||
z = _mm_maskz_packus_epi32 (mz, z, z);
|
||||
}
|
||||
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define DST_SIZE (AVX512F_LEN / 16)
|
||||
#define SRC_SIZE (AVX512F_LEN / 32)
|
||||
|
||||
#include "limits.h"
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
static unsigned short
|
||||
EVAL(int_to_ushort, AVX512F_LEN,) (int iVal)
|
||||
{
|
||||
unsigned short sVal;
|
||||
|
||||
if (iVal < 0)
|
||||
sVal = 0;
|
||||
else if (iVal > USHRT_MAX)
|
||||
sVal = USHRT_MAX;
|
||||
else
|
||||
sVal = iVal;
|
||||
|
||||
return sVal;
|
||||
}
|
||||
|
||||
void
|
||||
CALC (int *src1, int *src2, unsigned short *dst)
|
||||
{
|
||||
int i;
|
||||
int *ptr;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
{
|
||||
ptr = (i / 4) % 2 ? src2 : src1;
|
||||
dst[i] = EVAL(int_to_ushort, AVX512F_LEN,) (ptr[i % 4 + (i / 8) * 4]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_d) s1, s2;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned short dst_ref[DST_SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
for (i = 0; i < SRC_SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 10;
|
||||
s2.a[i] = i + 15;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_packus_epi32) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_packus_epi32) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_packus_epi32) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, dst_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, dst_ref))
|
||||
abort ();
|
||||
|
||||
}
|
31
gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-1.c
Normal file
31
gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-1.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpackuswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask64 mx;
|
||||
volatile __mmask32 my;
|
||||
volatile __mmask16 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_packus_epi16 (x, x);
|
||||
x = _mm512_mask_packus_epi16 (x, mx, x, x);
|
||||
x = _mm512_maskz_packus_epi16 (mx, x, x);
|
||||
y = _mm256_mask_packus_epi16 (y, my, y, y);
|
||||
y = _mm256_maskz_packus_epi16 (my, y, y);
|
||||
z = _mm_mask_packus_epi16 (z, mz, z, z);
|
||||
z = _mm_maskz_packus_epi16 (mz, z, z);
|
||||
}
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define DST_SIZE (AVX512F_LEN / 8)
|
||||
#define SRC_SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "limits.h"
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
static unsigned char
|
||||
EVAL(short_to_uchar, AVX512F_LEN,) (short iVal)
|
||||
{
|
||||
unsigned char sVal;
|
||||
|
||||
if (iVal < 0)
|
||||
sVal = 0;
|
||||
else if (iVal > UCHAR_MAX)
|
||||
sVal = UCHAR_MAX;
|
||||
else
|
||||
sVal = iVal;
|
||||
|
||||
return sVal;
|
||||
}
|
||||
|
||||
void
|
||||
CALC (short *src1, short *src2, unsigned char *dst)
|
||||
{
|
||||
int i;
|
||||
short *ptr;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
{
|
||||
ptr = (i / 8) % 2 ? src2 : src1;
|
||||
dst[i] = EVAL(short_to_uchar, AVX512F_LEN,) (ptr[i % 8 + (i / 16) * 8]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned char dst_ref[DST_SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
for (i = 0; i < SRC_SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 10;
|
||||
s2.a[i] = i + 15;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_packus_epi16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_packus_epi16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_packus_epi16) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, dst_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, dst_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (dst_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, dst_ref))
|
||||
abort ();
|
||||
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask64 m512;
|
||||
volatile __mmask32 m256;
|
||||
volatile __mmask16 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_add_epi8 (x512, x512);
|
||||
x512 = _mm512_mask_add_epi8 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_add_epi8 (m512, x512, x512);
|
||||
x256 = _mm256_mask_add_epi8 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_add_epi8 (m256, x256, x256);
|
||||
x128 = _mm_mask_add_epi8 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_add_epi8 (m128, x128, x128);
|
||||
}
|
54
gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-2.c
Normal file
54
gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-2.c
Normal file
@ -0,0 +1,54 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *r, char *s1, char *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = s1[i] + s2[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + sign * 7 * i % 291;
|
||||
src2.a[i] = 3 + sign * 11 * (i % 377) * i;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_add_epi8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_add_epi8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_add_epi8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsb-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsb-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask64 m512;
|
||||
volatile __mmask32 m256;
|
||||
volatile __mmask16 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_adds_epi8 (x512, x512);
|
||||
x512 = _mm512_mask_adds_epi8 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_adds_epi8 (m512, x512, x512);
|
||||
x256 = _mm256_mask_adds_epi8 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_adds_epi8 (m256, x256, x256);
|
||||
x128 = _mm_mask_adds_epi8 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_adds_epi8 (m128, x128, x128);
|
||||
}
|
57
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsb-2.c
Normal file
57
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsb-2.c
Normal file
@ -0,0 +1,57 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *r, char *s1, char *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
int tmp = (int)s1[i] + (int)s2[i];
|
||||
if (tmp > 0x7F) tmp = 0x7F;
|
||||
if (tmp < (char)0x80) tmp = (char)0x80;
|
||||
r[i] = (char)tmp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + sign * 7 * i % 291;
|
||||
src2.a[i] = 3 + sign * 11 * (i % 377) * i;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_adds_epi8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_adds_epi8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_adds_epi8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask32 m512;
|
||||
volatile __mmask16 m256;
|
||||
volatile __mmask8 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_adds_epi16 (x512, x512);
|
||||
x512 = _mm512_mask_adds_epi16 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_adds_epi16 (m512, x512, x512);
|
||||
x256 = _mm256_mask_adds_epi16 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_adds_epi16 (m256, x256, x256);
|
||||
x128 = _mm_mask_adds_epi16 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_adds_epi16 (m128, x128, x128);
|
||||
}
|
57
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsw-2.c
Normal file
57
gcc/testsuite/gcc.target/i386/avx512bw-vpaddsw-2.c
Normal file
@ -0,0 +1,57 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *r, short *s1, short *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
int tmp = (int)s1[i] + (int)s2[i];
|
||||
if (tmp > 0x7FFF) tmp = 0x7FFF;
|
||||
if (tmp < (short)0x8000) tmp = (short)0x8000;
|
||||
r[i] = (short)tmp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + sign * 7 * i % 291;
|
||||
src2.a[i] = 3 + sign * 11 * (i % 377) * i;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_adds_epi16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_adds_epi16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_adds_epi16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusb-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusb-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask64 m512;
|
||||
volatile __mmask32 m256;
|
||||
volatile __mmask16 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_adds_epu8 (x512, x512);
|
||||
x512 = _mm512_mask_adds_epu8 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_adds_epu8 (m512, x512, x512);
|
||||
x256 = _mm256_mask_adds_epu8 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_adds_epu8 (m256, x256, x256);
|
||||
x128 = _mm_mask_adds_epu8 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_adds_epu8 (m128, x128, x128);
|
||||
}
|
55
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusb-2.c
Normal file
55
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusb-2.c
Normal file
@ -0,0 +1,55 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned char *r, unsigned char *s1, unsigned char *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
int tmp = (int)s1[i] + (int)s2[i];
|
||||
if (tmp > 0xFF) tmp = 0xFF;
|
||||
if (tmp < 0) tmp = 0;
|
||||
r[i] = (unsigned char)tmp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned char res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + 7 * i % 291;
|
||||
src2.a[i] = 3 + 11 * (i % 377) * i;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_adds_epu8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_adds_epu8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_adds_epu8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddusw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask32 m512;
|
||||
volatile __mmask16 m256;
|
||||
volatile __mmask8 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_adds_epu16 (x512, x512);
|
||||
x512 = _mm512_mask_adds_epu16 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_adds_epu16 (m512, x512, x512);
|
||||
x256 = _mm256_mask_adds_epu16 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_adds_epu16 (m256, x256, x256);
|
||||
x128 = _mm_mask_adds_epu16 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_adds_epu16 (m128, x128, x128);
|
||||
}
|
55
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusw-2.c
Normal file
55
gcc/testsuite/gcc.target/i386/avx512bw-vpaddusw-2.c
Normal file
@ -0,0 +1,55 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned short *r, unsigned short *s1, unsigned short *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
int tmp = (int)s1[i] + (int)s2[i];
|
||||
if (tmp > 0xFFFF) tmp = 0xFFFF;
|
||||
if (tmp < 0) tmp = 0;
|
||||
r[i] = (unsigned short)tmp;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned short res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + 7 * i % 291;
|
||||
src2.a[i] = 3 + 11 * (i % 377) * i;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_adds_epu16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_adds_epu16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_adds_epu16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpaddw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpaddw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask32 m512;
|
||||
volatile __mmask16 m256;
|
||||
volatile __mmask8 m128;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x512 = _mm512_add_epi16 (x512, x512);
|
||||
x512 = _mm512_mask_add_epi16 (x512, m512, x512, x512);
|
||||
x512 = _mm512_maskz_add_epi16 (m512, x512, x512);
|
||||
x256 = _mm256_mask_add_epi16 (x256, m256, x256, x256);
|
||||
x256 = _mm256_maskz_add_epi16 (m256, x256, x256);
|
||||
x128 = _mm_mask_add_epi16 (x128, m128, x128, x128);
|
||||
x128 = _mm_maskz_add_epi16 (m128, x128, x128);
|
||||
}
|
54
gcc/testsuite/gcc.target/i386/avx512bw-vpaddw-2.c
Normal file
54
gcc/testsuite/gcc.target/i386/avx512bw-vpaddw-2.c
Normal file
@ -0,0 +1,54 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *r, short *s1, short *s2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = s1[i] + s2[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 2 + sign * 7 * i % 291;
|
||||
src2.a[i] = 3 + sign * 11 * (i % 377) * i;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_add_epi16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_add_epi16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_add_epi16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpalignr\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i z;
|
||||
volatile __m256i y;
|
||||
volatile __m128i x;
|
||||
volatile __mmask64 m1;
|
||||
volatile __mmask32 m2;
|
||||
volatile __mmask16 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm512_alignr_epi8 (z, z, 10);
|
||||
z = _mm512_mask_alignr_epi8 (z, m1, z, z, 10);
|
||||
z = _mm512_maskz_alignr_epi8 (m1, z, z, 10);
|
||||
y = _mm256_mask_alignr_epi8 (y, m2, y, y, 10);
|
||||
y = _mm256_maskz_alignr_epi8 (m2, y, y, 10);
|
||||
x = _mm_mask_alignr_epi8 (x, m3, x, x, 10);
|
||||
x = _mm_maskz_alignr_epi8 (m3, x, x, 10);
|
||||
}
|
74
gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-2.c
Normal file
74
gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-2.c
Normal file
@ -0,0 +1,74 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#define N 0x3
|
||||
|
||||
void
|
||||
CALC (char *src1, char *src2, char * dst)
|
||||
{
|
||||
/* result for EVEX.U1.512 version consists from 4 result block, each of them
|
||||
* has length of 128 bits. */
|
||||
unsigned block_len = 16;
|
||||
unsigned double_block_len = 32;
|
||||
unsigned shift = 0;
|
||||
char buf[double_block_len];
|
||||
char *bout = dst;
|
||||
int bits, i;
|
||||
|
||||
for (bits = 0; bits < AVX512F_LEN; bits += 128)
|
||||
{
|
||||
memcpy (&buf[0], src2 + shift, block_len);
|
||||
memcpy (&buf[block_len], src1 + shift, block_len);
|
||||
|
||||
for (i = 0; i < block_len; i++)
|
||||
/* shift counts larger than 32 produces zero result. */
|
||||
if (N >= 32 || N + i >= 32)
|
||||
bout[i] = 0;
|
||||
else
|
||||
bout[i] = buf[N + i];
|
||||
|
||||
shift += block_len;
|
||||
bout += block_len;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_b) s1, s2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i;
|
||||
s2.a[i] = i * 2;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_alignr_epi8) (s1.x, s2.x, N);
|
||||
res2.x = INTRINSIC (_mask_alignr_epi8) (res2.x, mask, s1.x, s2.x, N);
|
||||
res3.x = INTRINSIC (_maskz_alignr_epi8) (mask, s1.x, s2.x, N);
|
||||
|
||||
CALC (s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m128i x;
|
||||
volatile __m256i y;
|
||||
volatile __m512i z;
|
||||
volatile __mmask64 m1;
|
||||
volatile __mmask32 m2;
|
||||
volatile __mmask16 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm512_avg_epu8 (z, z);
|
||||
z = _mm512_mask_avg_epu8 (z, m1, z, z);
|
||||
z = _mm512_maskz_avg_epu8 (m1, z, z);
|
||||
y = _mm256_mask_avg_epu8 (y, m2, y, y);
|
||||
y = _mm256_maskz_avg_epu8 (m2, y, y);
|
||||
x = _mm_mask_avg_epu8 (x, m3, x, x);
|
||||
x = _mm_maskz_avg_epu8 (m3, x, x);
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-2.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-2.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *s1, char *s2, char *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
r[i] = ((unsigned char) s1[i] +
|
||||
(unsigned char) s2[i] + 1) >> 1;
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_b) s1, s2, res1, res2 ,res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 15;
|
||||
s2.a[i] = i + 14;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_avg_epu8) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_avg_epu8) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_avg_epu8) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpavgw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m128i x;
|
||||
volatile __m256i y;
|
||||
volatile __m512i z;
|
||||
volatile __mmask32 m1;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm512_avg_epu16 (z, z);
|
||||
z = _mm512_mask_avg_epu16 (z, m1, z, z);
|
||||
z = _mm512_maskz_avg_epu16 (m1, z, z);
|
||||
y = _mm256_mask_avg_epu16 (y, m2, y, y);
|
||||
y = _mm256_maskz_avg_epu16 (m2, y, y);
|
||||
x = _mm_mask_avg_epu16 (x, m3, x, x);
|
||||
x = _mm_maskz_avg_epu16 (m3, x, x);
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-2.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-2.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *s1, short *s2, short *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
r[i] = ((unsigned short) s1[i] +
|
||||
(unsigned short) s2[i] + 1) >> 1;
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2, res1, res2 ,res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i + 15;
|
||||
s2.a[i] = i + 14;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_avg_epu16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_avg_epu16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_avg_epu16) (mask, s1.x, s2.x);
|
||||
|
||||
CALC (s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
20
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmb-1.c
Normal file
20
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmb-1.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "(vpblendmb|vmovdqu8)\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "(vpblendmb|vmovdqu8)\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "(vpblendmb|vmovdqu8)\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __m512i xxx;
|
||||
volatile __mmask8 m;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm256_mask_blend_epi8 (m, x, x);
|
||||
xx = _mm_mask_blend_epi8 (m, xx, xx);
|
||||
xxx = _mm512_mask_blend_epi8 (m, xxx, xxx);
|
||||
}
|
42
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmb-2.c
Normal file
42
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmb-2.c
Normal file
@ -0,0 +1,42 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *r, char *s1, char *s2, MASK_TYPE mask)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = (mask & (1LL << i)) ? s2[i] : s1[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 15 + 46 * i * sign;
|
||||
src2.a[i] = -22 + i * sign;
|
||||
sign = sign * -1;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_mask_blend_epi8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a, mask);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
20
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmw-1.c
Normal file
20
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmw-1.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "(vpblendmw|vmovdqu16)\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "(vpblendmw|vmovdqu16)\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "(vpblendmw|vmovdqu16)\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __m512i xxx;
|
||||
volatile __mmask8 m;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm256_mask_blend_epi16 (m, x, x);
|
||||
xx = _mm_mask_blend_epi16 (m, xx, xx);
|
||||
xxx = _mm512_mask_blend_epi16 (m, xxx, xxx);
|
||||
}
|
42
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmw-2.c
Normal file
42
gcc/testsuite/gcc.target/i386/avx512bw-vpblendmw-2.c
Normal file
@ -0,0 +1,42 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *r, short *s1, short *s2, MASK_TYPE mask)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = (mask & (1 << i)) ? s2[i] : s1[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, src1, src2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = 15 + 3467 * i * sign;
|
||||
src2.a[i] = -2217 * i * sign;
|
||||
sign = sign * -1;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_mask_blend_epi16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (res_ref, src1.a, src2.a, mask);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
39
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-1.c
Normal file
39
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-1.c
Normal file
@ -0,0 +1,39 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile char w;
|
||||
volatile __mmask64 mx;
|
||||
volatile __mmask32 my;
|
||||
volatile __mmask16 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_broadcastb_epi8 (z);
|
||||
x = _mm512_mask_broadcastb_epi8 (x, mx, z);
|
||||
x = _mm512_maskz_broadcastb_epi8 (mx, z);
|
||||
y = _mm256_mask_broadcastb_epi8 (y, my, z);
|
||||
y = _mm256_maskz_broadcastb_epi8 (my, z);
|
||||
z = _mm_mask_broadcastb_epi8 (z, mz, z);
|
||||
z = _mm_maskz_broadcastb_epi8 (mz, z);
|
||||
|
||||
x = _mm512_set1_epi8 (w);
|
||||
x = _mm512_mask_set1_epi8 (x, mx, w);
|
||||
x = _mm512_maskz_set1_epi8 (mx, w);
|
||||
y = _mm256_mask_set1_epi8 (y, my, w);
|
||||
y = _mm256_maskz_set1_epi8 (my, w);
|
||||
z = _mm_mask_set1_epi8 (z, mz, w);
|
||||
z = _mm_maskz_set1_epi8 (mz, w);
|
||||
}
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *r, char *s)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = s[0];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res1, res2, res3;
|
||||
UNION_TYPE (128, i_b) src;
|
||||
MASK_TYPE mask = SIZE | 123;
|
||||
char res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
src.a[i] = 1 + 3 * i * sign;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
CALC (res_ref, src.a);
|
||||
|
||||
if (AVX512F_LEN == 512)
|
||||
{
|
||||
res1.x = INTRINSIC (_broadcastb_epi8) (src.x);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
||||
|
||||
res2.x = INTRINSIC (_mask_broadcastb_epi8) (res2.x, mask, src.x);
|
||||
res3.x = INTRINSIC (_maskz_broadcastb_epi8) (mask, src.x);
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
|
||||
CALC (res_ref, src.a);
|
||||
|
||||
if (AVX512F_LEN == 512)
|
||||
{
|
||||
res1.x = INTRINSIC (_set1_epi8) (src.a[0]);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
||||
|
||||
res2.x = INTRINSIC (_mask_set1_epi8) (res2.x, mask, src.a[0]);
|
||||
res3.x = INTRINSIC (_maskz_set1_epi8) (mask, src.a[0]);
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
39
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-1.c
Normal file
39
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-1.c
Normal file
@ -0,0 +1,39 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 2 } } */
|
||||
/* { dg-final { scan-assembler-times "vpbroadcastw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 2 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile short w;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_broadcastw_epi16 (z);
|
||||
x = _mm512_mask_broadcastw_epi16 (x, mx, z);
|
||||
x = _mm512_maskz_broadcastw_epi16 (mx, z);
|
||||
y = _mm256_mask_broadcastw_epi16 (y, my, z);
|
||||
y = _mm256_maskz_broadcastw_epi16 (my, z);
|
||||
z = _mm_mask_broadcastw_epi16 (z, mz, z);
|
||||
z = _mm_maskz_broadcastw_epi16 (mz, z);
|
||||
|
||||
x = _mm512_set1_epi16 (w);
|
||||
x = _mm512_mask_set1_epi16 (x, mx, w);
|
||||
x = _mm512_maskz_set1_epi16 (mx, w);
|
||||
y = _mm256_mask_set1_epi16 (y, my, w);
|
||||
y = _mm256_maskz_set1_epi16 (my, w);
|
||||
z = _mm_mask_set1_epi16 (z, mz, w);
|
||||
z = _mm_maskz_set1_epi16 (mz, w);
|
||||
}
|
77
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c
Normal file
77
gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *r, short *s)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
r[i] = s[0];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3;
|
||||
UNION_TYPE (128, i_w) src;
|
||||
MASK_TYPE mask = SIZE | 123;
|
||||
short res_ref[SIZE];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
src.a[i] = 1 + 3 * i * sign;
|
||||
sign = sign * -1;
|
||||
}
|
||||
for (i = 0; i < SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
CALC (res_ref, src.a);
|
||||
|
||||
if (AVX512F_LEN == 512)
|
||||
{
|
||||
res1.x = INTRINSIC (_broadcastw_epi16) (src.x);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
||||
|
||||
res2.x = INTRINSIC (_mask_broadcastw_epi16) (res2.x, mask, src.x);
|
||||
res3.x = INTRINSIC (_maskz_broadcastw_epi16) (mask, src.x);
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
|
||||
CALC (res_ref, src.a);
|
||||
|
||||
if (AVX512F_LEN == 512)
|
||||
{
|
||||
res1.x = INTRINSIC (_set1_epi16) (src.a[0]);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
}
|
||||
|
||||
res2.x = INTRINSIC (_mask_set1_epi16) (res2.x, mask, src.a[0]);
|
||||
res3.x = INTRINSIC (_maskz_set1_epi16) (mask, src.a[0]);
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i xq;
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __mmask16 m;
|
||||
volatile __mmask32 mm;
|
||||
volatile __mmask64 mmm;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
mmm = _mm512_cmp_epi8_mask (xq, xq, _MM_CMPINT_GE);
|
||||
mmm = _mm512_mask_cmp_epi8_mask (m, xq, xq, _MM_CMPINT_NLE);
|
||||
mm = _mm256_cmp_epi8_mask (x, x, _MM_CMPINT_GT);
|
||||
mm = _mm256_mask_cmp_epi8_mask (m, x, x, _MM_CMPINT_EQ);
|
||||
m = _mm_cmp_epi8_mask (xx, xx, _MM_CMPINT_LT);
|
||||
m = _mm_mask_cmp_epi8_mask (m, xx, xx, _MM_CMPINT_LE);
|
||||
}
|
107
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c
Normal file
107
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c
Normal file
@ -0,0 +1,107 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#if AVX512F_LEN == 512
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 64; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm512_loadu_si512 (s1); \
|
||||
source2.x = _mm512_loadu_si512 (s2); \
|
||||
dst1 = _mm512_cmp_epi8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm512_mask_cmp_epi8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 256
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 32; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm256_loadu_si256 ((__m256i*)s1); \
|
||||
source2.x = _mm256_loadu_si256 ((__m256i*)s2); \
|
||||
dst1 = _mm256_cmp_epi8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm256_mask_cmp_epi8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 128
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 16; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm_loadu_si128 ((__m128i*)s1); \
|
||||
source2.x = _mm_loadu_si128 ((__m128i*)s2); \
|
||||
dst1 = _mm_cmp_epi8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm_mask_cmp_epi8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
void
|
||||
TEST ()
|
||||
{
|
||||
char s1[64] = {34, 78, 53, 64,
|
||||
1, 57, 11, 231,
|
||||
14, 45, 71, 75,
|
||||
55, 66, 21, 73,
|
||||
34, 68, 3, 56,
|
||||
1, 57, 111, 241,
|
||||
14, 15, 61, 75,
|
||||
55, 16, 52, 3,
|
||||
34, 78, 53, 64,
|
||||
1, 57, 11, 231,
|
||||
14, 45, 71, 75,
|
||||
45, 66, 21, 73,
|
||||
34, 68, 3, 56,
|
||||
1, 57, 111, 241,
|
||||
14, 15, 61, 75,
|
||||
55, 16, 52, 3};
|
||||
char s2[64] = {4, 68, 86, 8,
|
||||
1, 46, 1, 1,
|
||||
45, 67, 36, 3,
|
||||
4, 39, 56, 56,
|
||||
124, 78, 53, 56,
|
||||
1, 46, 1, 12,
|
||||
45, 47, 36, 13,
|
||||
4, 35, 56, 67,
|
||||
4, 68, 86, 8,
|
||||
1, 46, 1, 1,
|
||||
45, 67, 36, 3,
|
||||
4, 39, 56, 56,
|
||||
124, 78, 53, 56,
|
||||
1, 46, 1, 12,
|
||||
45, 47, 36, 13,
|
||||
4, 35, 56, 67};
|
||||
UNION_TYPE (AVX512F_LEN, i_b) source1, source2;
|
||||
MASK_TYPE dst1, dst2, dst_ref;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
CMP(0x00, s1[i] == s2[i]);
|
||||
CMP(0x01, s1[i] < s2[i]);
|
||||
CMP(0x02, s1[i] <= s2[i]);
|
||||
CMP(0x03, 0);
|
||||
CMP(0x04, s1[i] != s2[i]);
|
||||
CMP(0x05, s1[i] >= s2[i]);
|
||||
CMP(0x06, s1[i] > s2[i]);
|
||||
CMP(0x07, 1);
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\[\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\[\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\[\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask64 m64;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
m16 = _mm_cmpeq_epi8_mask (x128, x128);
|
||||
m32 = _mm256_cmpeq_epi8_mask (x256, x256);
|
||||
m64 = _mm512_cmpeq_epi8_mask (x512, x512);
|
||||
m16 = _mm_mask_cmpeq_epi8_mask (3, x128, x128);
|
||||
m32 = _mm256_mask_cmpeq_epi8_mask (3, x256, x256);
|
||||
m64 = _mm512_mask_cmpeq_epi8_mask (3, x512, x512);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (MASK_TYPE *r, char *s1, char *s2)
|
||||
{
|
||||
int i;
|
||||
*r = 0;
|
||||
MASK_TYPE one = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s1[i] == s2[i])
|
||||
*r = *r | (one << i);
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2;
|
||||
MASK_TYPE res_ref, res1, res2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
res1 = 0;
|
||||
res2 = 0;
|
||||
|
||||
for (i = 0; i < SIZE / 2; i++)
|
||||
{
|
||||
src1.a[i * 2] = i;
|
||||
src1.a[i * 2 + 1] = i * i;
|
||||
src2.a[i * 2] = 2 * i;
|
||||
src2.a[i * 2 + 1] = i * i;
|
||||
}
|
||||
|
||||
res1 = INTRINSIC (_cmpeq_epi8_mask) (src1.x, src2.x);
|
||||
res2 = INTRINSIC (_mask_cmpeq_epi8_mask) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (&res_ref, src1.a, src2.a);
|
||||
|
||||
if (res_ref != res1)
|
||||
abort ();
|
||||
|
||||
res_ref &= mask;
|
||||
|
||||
if (res_ref != res2)
|
||||
abort ();
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpeqw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask8 m8;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask32 m32;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
m8 = _mm_cmpeq_epi16_mask (x128, x128);
|
||||
m8 = _mm_mask_cmpeq_epi16_mask (3, x128, x128);
|
||||
m16 = _mm256_cmpeq_epi16_mask (x256, x256);
|
||||
m16 = _mm256_mask_cmpeq_epi16_mask (3, x256, x256);
|
||||
m32 = _mm512_mask_cmpeq_epi16_mask (3, x512, x512);
|
||||
m32 = _mm512_cmpeq_epi16_mask (x512, x512);
|
||||
}
|
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-2.c
Normal file
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-2.c
Normal file
@ -0,0 +1,50 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (MASK_TYPE *r, short *s1, short *s2)
|
||||
{
|
||||
int i;
|
||||
*r = 0;
|
||||
MASK_TYPE one = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s1[i] == s2[i])
|
||||
*r = *r | (one << i);
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2;
|
||||
MASK_TYPE res_ref, res1, res2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
|
||||
for (i = 0; i < SIZE / 2; i++)
|
||||
{
|
||||
src1.a[i * 2] = i;
|
||||
src1.a[i * 2 + 1] = i * i;
|
||||
src2.a[i * 2] = 2 * i;
|
||||
src2.a[i * 2 + 1] = i * i;
|
||||
}
|
||||
|
||||
res1 = INTRINSIC (_cmpeq_epi16_mask) (src1.x, src2.x);
|
||||
res2 = INTRINSIC (_mask_cmpeq_epi16_mask) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (&res_ref, src1.a, src2.a);
|
||||
|
||||
if (res_ref != res1)
|
||||
abort ();
|
||||
|
||||
res_ref &= mask;
|
||||
|
||||
if (res_ref != res2)
|
||||
abort ();
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask64 m64;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
m16 = _mm_cmpgt_epi8_mask (x128, x128);
|
||||
m32 = _mm256_cmpgt_epi8_mask (x256, x256);
|
||||
m64 = _mm512_cmpgt_epi8_mask (x512, x512);
|
||||
m16 = _mm_mask_cmpgt_epi8_mask (3, x128, x128);
|
||||
m32 = _mm256_mask_cmpgt_epi8_mask (3, x256, x256);
|
||||
m64 = _mm512_mask_cmpgt_epi8_mask (3, x512, x512);
|
||||
}
|
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-2.c
Normal file
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-2.c
Normal file
@ -0,0 +1,50 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (MASK_TYPE *r, char *s1, char *s2)
|
||||
{
|
||||
int i;
|
||||
*r = 0;
|
||||
MASK_TYPE one = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s1[i] > s2[i])
|
||||
*r = *r | (one << i);
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2;
|
||||
MASK_TYPE res_ref, res1, res2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
|
||||
for (i = 0; i < SIZE / 2; i++)
|
||||
{
|
||||
src1.a[i * 2] = i;
|
||||
src1.a[i * 2 + 1] = i * i;
|
||||
src2.a[i * 2] = 2 * i;
|
||||
src2.a[i * 2 + 1] = i * i;
|
||||
}
|
||||
|
||||
res1 = INTRINSIC (_cmpgt_epi8_mask) (src1.x, src2.x);
|
||||
res2 = INTRINSIC (_mask_cmpgt_epi8_mask) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (&res_ref, src1.a, src2.a);
|
||||
|
||||
if (res_ref != res1)
|
||||
abort ();
|
||||
|
||||
res_ref &= mask;
|
||||
|
||||
if (res_ref != res2)
|
||||
abort ();
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\{%k\[1-7\]\}" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpgtw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]\[^\{\]" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask8 m8;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask32 m32;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
m8 = _mm_cmpgt_epi16_mask (x128, x128);
|
||||
m16 = _mm256_cmpgt_epi16_mask (x256, x256);
|
||||
m32 = _mm512_cmpgt_epi16_mask (x512, x512);
|
||||
m8 = _mm_mask_cmpgt_epi16_mask (3, x128, x128);
|
||||
m16 = _mm256_mask_cmpgt_epi16_mask (3, x256, x256);
|
||||
m32 = _mm512_mask_cmpgt_epi16_mask (3, x512, x512);
|
||||
}
|
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-2.c
Normal file
50
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-2.c
Normal file
@ -0,0 +1,50 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (MASK_TYPE *r, short *s1, short *s2)
|
||||
{
|
||||
int i;
|
||||
*r = 0;
|
||||
MASK_TYPE one = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s1[i] > s2[i])
|
||||
*r = *r | (one << i);
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2;
|
||||
MASK_TYPE res_ref, res1, res2;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
|
||||
for (i = 0; i < SIZE / 2; i++)
|
||||
{
|
||||
src1.a[i * 2] = i;
|
||||
src1.a[i * 2 + 1] = i * i;
|
||||
src2.a[i * 2] = 2 * i;
|
||||
src2.a[i * 2 + 1] = i * i;
|
||||
}
|
||||
|
||||
res1 = INTRINSIC (_cmpgt_epi16_mask) (src1.x, src2.x);
|
||||
res2 = INTRINSIC (_mask_cmpgt_epi16_mask) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (&res_ref, src1.a, src2.a);
|
||||
|
||||
if (res_ref != res1)
|
||||
abort ();
|
||||
|
||||
res_ref &= mask;
|
||||
|
||||
if (res_ref != res2)
|
||||
abort ();
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i xq;
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __mmask16 m;
|
||||
volatile __mmask32 mm;
|
||||
volatile __mmask64 mmm;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
mmm = _mm512_cmp_epu8_mask (xq, xq, _MM_CMPINT_EQ);
|
||||
mmm = _mm512_mask_cmp_epu8_mask (m, xq, xq, _MM_CMPINT_LT);
|
||||
mm = _mm256_cmp_epu8_mask (x, x, _MM_CMPINT_LE);
|
||||
mm = _mm256_mask_cmp_epu8_mask (m, x, x, _MM_CMPINT_UNUSED);
|
||||
m = _mm_cmp_epu8_mask (xx, xx, _MM_CMPINT_NE);
|
||||
m = _mm_mask_cmp_epu8_mask (m, xx, xx, _MM_CMPINT_NLT);
|
||||
}
|
107
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-2.c
Normal file
107
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-2.c
Normal file
@ -0,0 +1,107 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#if AVX512F_LEN == 512
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 64; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm512_loadu_si512 (s1); \
|
||||
source2.x = _mm512_loadu_si512 (s2); \
|
||||
dst1 = _mm512_cmp_epu8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm512_mask_cmp_epu8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 256
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 32; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm256_loadu_si256 ((__m256i*)s1); \
|
||||
source2.x = _mm256_loadu_si256 ((__m256i*)s2); \
|
||||
dst1 = _mm256_cmp_epu8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm256_mask_cmp_epu8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 128
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 16; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm_loadu_si128 ((__m128i*)s1); \
|
||||
source2.x = _mm_loadu_si128 ((__m128i*)s2); \
|
||||
dst1 = _mm_cmp_epu8_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm_mask_cmp_epu8_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
void
|
||||
TEST ()
|
||||
{
|
||||
unsigned char s1[64] = {34, 78, 53, 64,
|
||||
1, 57, 11, 231,
|
||||
14, 45, 71, 75,
|
||||
55, 66, 21, 73,
|
||||
34, 68, 3, 56,
|
||||
1, 57, 111, 241,
|
||||
14, 15, 61, 75,
|
||||
55, 16, 52, 3,
|
||||
34, 78, 53, 64,
|
||||
1, 57, 11, 231,
|
||||
14, 45, 71, 75,
|
||||
55, 66, 21, 73,
|
||||
34, 68, 3, 56,
|
||||
1, 57, 111, 241,
|
||||
14, 15, 61, 75,
|
||||
55, 16, 52, 3};
|
||||
unsigned char s2[64] = {4, 68, 86, 8,
|
||||
1, 46, 1, 1,
|
||||
45, 67, 36, 3,
|
||||
4, 39, 56, 56,
|
||||
124, 78, 53, 56,
|
||||
1, 46, 1, 12,
|
||||
45, 47, 36, 13,
|
||||
4, 35, 56, 67,
|
||||
4, 68, 86, 8,
|
||||
1, 46, 1, 1,
|
||||
45, 67, 36, 3,
|
||||
4, 39, 56, 56,
|
||||
124, 78, 53, 56,
|
||||
1, 46, 1, 12,
|
||||
45, 47, 36, 13,
|
||||
4, 35, 56, 67};
|
||||
UNION_TYPE (AVX512F_LEN, i_b) source1, source2;
|
||||
MASK_TYPE dst1, dst2, dst_ref;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
CMP(0x00, s1[i] == s2[i]);
|
||||
CMP(0x01, s1[i] < s2[i]);
|
||||
CMP(0x02, s1[i] <= s2[i]);
|
||||
CMP(0x03, 0);
|
||||
CMP(0x04, s1[i] != s2[i]);
|
||||
CMP(0x05, s1[i] >= s2[i]);
|
||||
CMP(0x06, s1[i] > s2[i]);
|
||||
CMP(0x07, 1);
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i xq;
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __mmask8 m;
|
||||
volatile __mmask16 mm;
|
||||
volatile __mmask32 mmm;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
mmm = _mm512_cmp_epu16_mask (xq, xq, _MM_CMPINT_NE);
|
||||
mmm = _mm512_mask_cmp_epu16_mask (m, xq, xq, _MM_CMPINT_NLT);
|
||||
mm = _mm256_cmp_epu16_mask (x, x, _MM_CMPINT_GE);
|
||||
mm = _mm256_mask_cmp_epu16_mask (m, x, x, _MM_CMPINT_NLE);
|
||||
m = _mm_cmp_epu16_mask (xx, xx, _MM_CMPINT_GT);
|
||||
m = _mm_mask_cmp_epu16_mask (m, xx, xx, _MM_CMPINT_EQ);
|
||||
}
|
91
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-2.c
Normal file
91
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-2.c
Normal file
@ -0,0 +1,91 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#if AVX512F_LEN == 512
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 32; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm512_loadu_si512 (s1); \
|
||||
source2.x = _mm512_loadu_si512 (s2); \
|
||||
dst1 = _mm512_cmp_epu16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm512_mask_cmp_epu16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 256
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 16; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm256_loadu_si256 ((__m256i*)s1); \
|
||||
source2.x = _mm256_loadu_si256 ((__m256i*)s2); \
|
||||
dst1 = _mm256_cmp_epu16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm256_mask_cmp_epu16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 128
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 8; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm_loadu_si128 ((__m128i*)s1); \
|
||||
source2.x = _mm_loadu_si128 ((__m128i*)s2); \
|
||||
dst1 = _mm_cmp_epu16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm_mask_cmp_epu16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
void
|
||||
TEST ()
|
||||
{
|
||||
unsigned short s1[32] = {2134, 6678, 453, 54646,
|
||||
231, 5674, 111, 23241,
|
||||
12314, 145, 671, 7575,
|
||||
23455, 166, 5321, 5673,
|
||||
2134, 6678, 453, 54646,
|
||||
231, 5674, 111, 23241,
|
||||
12314, 145, 671, 7575,
|
||||
23455, 166, 5321, 5673};
|
||||
unsigned short s2[32] = {41124, 6678, 8653, 856,
|
||||
231, 4646, 111, 124,
|
||||
2745, 4567, 3676, 123,
|
||||
714, 3589, 5683, 5673,
|
||||
41124, 6678, 8653, 856,
|
||||
231, 4646, 111, 124,
|
||||
2745, 4567, 3676, 123,
|
||||
714, 3589, 5683, 5673};
|
||||
UNION_TYPE (AVX512F_LEN, i_w) source1, source2;
|
||||
MASK_TYPE dst1, dst2, dst_ref;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
CMP(0x00, s1[i] == s2[i]);
|
||||
CMP(0x01, s1[i] < s2[i]);
|
||||
CMP(0x02, s1[i] <= s2[i]);
|
||||
CMP(0x03, 0);
|
||||
CMP(0x04, s1[i] != s2[i]);
|
||||
CMP(0x05, s1[i] >= s2[i]);
|
||||
CMP(0x06, s1[i] > s2[i]);
|
||||
CMP(0x07, 1);
|
||||
}
|
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c
Normal file
28
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\[^\{\]" } } */
|
||||
/* { dg-final { scan-assembler "vpcmpw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n^k\]*%k\[1-7\]\{" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i xq;
|
||||
volatile __m256i x;
|
||||
volatile __m128i xx;
|
||||
volatile __mmask8 m;
|
||||
volatile __mmask16 mm;
|
||||
volatile __mmask32 mmm;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
mmm = _mm512_cmp_epi16_mask (xq, xq, _MM_CMPINT_GT);
|
||||
mmm = _mm512_mask_cmp_epi16_mask (m, xq, xq, _MM_CMPINT_EQ);
|
||||
mm = _mm256_cmp_epi16_mask (x, x, _MM_CMPINT_EQ);
|
||||
mm = _mm256_mask_cmp_epi16_mask (m, x, x, _MM_CMPINT_LT);
|
||||
m = _mm_cmp_epi16_mask (xx, xx, _MM_CMPINT_LE);
|
||||
m = _mm_mask_cmp_epi16_mask (m, xx, xx, _MM_CMPINT_UNUSED);
|
||||
}
|
91
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-2.c
Normal file
91
gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-2.c
Normal file
@ -0,0 +1,91 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#if AVX512F_LEN == 512
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 32; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm512_loadu_si512 (s1); \
|
||||
source2.x = _mm512_loadu_si512 (s2); \
|
||||
dst1 = _mm512_cmp_epi16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm512_mask_cmp_epi16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 256
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 16; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm256_loadu_si256 ((__m256i*)s1); \
|
||||
source2.x = _mm256_loadu_si256 ((__m256i*)s2); \
|
||||
dst1 = _mm256_cmp_epi16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm256_mask_cmp_epi16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
#if AVX512F_LEN == 128
|
||||
#undef CMP
|
||||
#define CMP(imm, rel) \
|
||||
dst_ref = 0; \
|
||||
for (i = 0; i < 8; i++) \
|
||||
{ \
|
||||
dst_ref = ((rel) << i) | dst_ref; \
|
||||
} \
|
||||
source1.x = _mm_loadu_si128 ((__m128i*)s1); \
|
||||
source2.x = _mm_loadu_si128 ((__m128i*)s2); \
|
||||
dst1 = _mm_cmp_epi16_mask (source1.x, source2.x, imm);\
|
||||
dst2 = _mm_mask_cmp_epi16_mask (mask, source1.x, source2.x, imm);\
|
||||
if (dst_ref != dst1) abort(); \
|
||||
if ((mask & dst_ref) != dst2) abort();
|
||||
#endif
|
||||
|
||||
void
|
||||
TEST ()
|
||||
{
|
||||
short s1[32] = {2134, 6678, 453, 54646,
|
||||
231, 5674, 111, 23241,
|
||||
12314, 145, 671, 7575,
|
||||
23455, 166, 5321, 5673,
|
||||
2134, 6678, 453, 54646,
|
||||
231, 5674, 111, 23241,
|
||||
12314, 145, 671, 7575,
|
||||
23455, 166, 5321, 5673};
|
||||
short s2[32] = {41124, 6678, 8653, 856,
|
||||
231, 4646, 111, 124,
|
||||
2745, 4567, 3676, 123,
|
||||
714, 3589, 5683, 5673,
|
||||
41124, 6678, 8653, 856,
|
||||
231, 4646, 111, 124,
|
||||
2745, 4567, 3676, 123,
|
||||
714, 3589, 5683, 5673};
|
||||
UNION_TYPE (AVX512F_LEN, i_w) source1, source2;
|
||||
MASK_TYPE dst1, dst2, dst_ref;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
CMP(0x00, s1[i] == s2[i]);
|
||||
CMP(0x01, s1[i] < s2[i]);
|
||||
CMP(0x02, s1[i] <= s2[i]);
|
||||
CMP(0x03, 0);
|
||||
CMP(0x04, s1[i] != s2[i]);
|
||||
CMP(0x05, s1[i] >= s2[i]);
|
||||
CMP(0x06, s1[i] > s2[i]);
|
||||
CMP(0x07, 1);
|
||||
}
|
25
gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-1.c
Normal file
25
gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-1.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpermi2w\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermi2w\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermi2w\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x3;
|
||||
volatile __m256i x2;
|
||||
volatile __m128i x1;
|
||||
volatile __m512i z;
|
||||
volatile __m256i y;
|
||||
volatile __m128i x;
|
||||
volatile __mmask32 m3;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m1;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x3 = _mm512_mask2_permutex2var_epi16 (x3, z, m3, x3);
|
||||
x2 = _mm256_mask2_permutex2var_epi16 (x2, y, m2, x2);
|
||||
x1 = _mm_mask2_permutex2var_epi16 (x1, x, m1, x1);
|
||||
}
|
58
gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-2.c
Normal file
58
gcc/testsuite/gcc.target/i386/avx512bw-vpermi2w-2.c
Normal file
@ -0,0 +1,58 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "math.h"
|
||||
#include "values.h"
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#define NUM 32
|
||||
|
||||
void
|
||||
CALC (short *dst, short *src1, short *ind, short *src2)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
unsigned long long offset = ind[i] & (SIZE - 1);
|
||||
unsigned long long cond = ind[i] & SIZE;
|
||||
|
||||
dst[i] = cond ? src2[offset] : src1[offset];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, j;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2, res, ind;
|
||||
short res_ref[SIZE];
|
||||
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
|
||||
for (i = 0; i < NUM; i++)
|
||||
{
|
||||
for (j = 0; j < SIZE; j++)
|
||||
{
|
||||
ind.a[j] = DEFAULT_VALUE;
|
||||
s1.a[j] = i * 2 * j + 1;
|
||||
s2.a[j] = i * 2 * j;
|
||||
|
||||
res.a[j] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
CALC (res_ref, s1.a, ind.a, s2.a);
|
||||
|
||||
res.x =
|
||||
INTRINSIC (_mask2_permutex2var_epi16) (s1.x, ind.x, mask,
|
||||
s2.x);
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res, res_ref))
|
||||
abort ();
|
||||
}
|
||||
}
|
37
gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-1.c
Normal file
37
gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-1.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%zmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%ymm\[0-9\]" 3 } } *
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%xmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermt2w\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x3;
|
||||
volatile __m256i x2;
|
||||
volatile __m128i x1;
|
||||
volatile __m512i z;
|
||||
volatile __m256i y;
|
||||
volatile __m128i x;
|
||||
volatile __mmask32 m3;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m1;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x3 = _mm512_permutex2var_epi16 (x3, z, x3);
|
||||
x3 = _mm512_mask_permutex2var_epi16 (x3, m3, z, x3);
|
||||
x3 = _mm512_maskz_permutex2var_epi16 (m3, x3, z, x3);
|
||||
x2 = _mm256_permutex2var_epi16 (x2, y, x2);
|
||||
x2 = _mm256_mask_permutex2var_epi16 (x2, m2, y, x2);
|
||||
x2 = _mm256_maskz_permutex2var_epi16 (m2, x2, y, x2);
|
||||
x1 = _mm_permutex2var_epi16 (x1, x, x1);
|
||||
x1 = _mm_mask_permutex2var_epi16 (x1, m1, x, x1);
|
||||
x1 = _mm_maskz_permutex2var_epi16 (m1, x1, x, x1);
|
||||
}
|
70
gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-2.c
Normal file
70
gcc/testsuite/gcc.target/i386/avx512bw-vpermt2w-2.c
Normal file
@ -0,0 +1,70 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "math.h"
|
||||
#include "values.h"
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
#define NUM 32
|
||||
|
||||
void
|
||||
CALC (short *dst, short *src1, short *ind, short *src2)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
unsigned long long offset = ind[i] & (SIZE - 1);
|
||||
unsigned long long cond = ind[i] & SIZE;
|
||||
|
||||
dst[i] = cond ? src2[offset] : src1[offset];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, j;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2, res1, res2, res3, ind;
|
||||
short res_ref[SIZE];
|
||||
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
|
||||
for (i = 0; i < NUM; i++)
|
||||
{
|
||||
for (j = 0; j < SIZE; j++)
|
||||
{
|
||||
ind.a[j] = i * (j << 1);
|
||||
s1.a[j] = DEFAULT_VALUE;
|
||||
s2.a[j] = 1.5 * i * 2 * j;
|
||||
|
||||
res1.a[j] = DEFAULT_VALUE;
|
||||
res2.a[j] = DEFAULT_VALUE;
|
||||
res3.a[j] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
CALC (res_ref, s1.a, ind.a, s2.a);
|
||||
|
||||
res1.x = INTRINSIC (_permutex2var_epi16) (s1.x, ind.x, s2.x);
|
||||
res2.x =
|
||||
INTRINSIC (_mask_permutex2var_epi16) (s1.x, mask, ind.x, s2.x);
|
||||
res3.x =
|
||||
INTRINSIC (_maskz_permutex2var_epi16) (mask, s1.x, ind.x,
|
||||
s2.x);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
||||
}
|
34
gcc/testsuite/gcc.target/i386/avx512bw-vpermw-1.c
Normal file
34
gcc/testsuite/gcc.target/i386/avx512bw-vpermw-1.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpermw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x1;
|
||||
volatile __m256i x2;
|
||||
volatile __m128i x3;
|
||||
volatile __mmask32 m1;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask8 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x1 = _mm512_permutexvar_epi16 (x1, x1);
|
||||
x1 = _mm512_maskz_permutexvar_epi16 (m1, x1, x1);
|
||||
x1 = _mm512_mask_permutexvar_epi16 (x1, m1, x1, x1);
|
||||
x2 = _mm256_permutexvar_epi16 (x2, x2);
|
||||
x2 = _mm256_maskz_permutexvar_epi16 (m2, x2, x2);
|
||||
x2 = _mm256_mask_permutexvar_epi16 (x2, m2, x2, x2);
|
||||
x3 = _mm_permutexvar_epi16 (x3, x3);
|
||||
x3 = _mm_maskz_permutexvar_epi16 (m3, x3, x3);
|
||||
x3 = _mm_mask_permutexvar_epi16 (x3, m3, x3, x3);
|
||||
}
|
51
gcc/testsuite/gcc.target/i386/avx512bw-vpermw-2.c
Normal file
51
gcc/testsuite/gcc.target/i386/avx512bw-vpermw-2.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *ind, short *src, short *res)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
res[i] = src[ind[i] & (SIZE - 1)];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2, res1, res2, res3;
|
||||
short res_ref[SIZE];
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i * i * i;
|
||||
s2.a[i] = i + 20;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_permutexvar_epi16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_permutexvar_epi16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_permutexvar_epi16) (mask, s1.x, s2.x);
|
||||
CALC (s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w)(res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w)(res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
27
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddubsw-1.c
Normal file
27
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddubsw-1.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddubsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i xq;
|
||||
volatile __m128i xw;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_maddubs_epi16 (x, x);
|
||||
x = _mm512_mask_maddubs_epi16 (x, 2, x, x);
|
||||
x = _mm512_maskz_maddubs_epi16 (2, x, x);
|
||||
xq = _mm256_mask_maddubs_epi16 (xq, 2, xq, xq);
|
||||
xq = _mm256_maskz_maddubs_epi16 (2, xq, xq);
|
||||
xw = _mm_mask_maddubs_epi16 (xw, 2, xw, xw);
|
||||
xw = _mm_maskz_maddubs_epi16 (2, xw, xw);
|
||||
}
|
66
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddubsw-2.c
Normal file
66
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddubsw-2.c
Normal file
@ -0,0 +1,66 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <values.h>
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *i1, short *i2, short *r)
|
||||
{
|
||||
unsigned char *ub1 = (unsigned char *) i1;
|
||||
char *sb2 = (char *) i2;
|
||||
short *sout = (short *) r;
|
||||
int t0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
t0 = ((int) ub1[2 * i] * (int) sb2[2 * i] +
|
||||
(int) ub1[2 * i + 1] * (int) sb2[2 * i + 1]);
|
||||
if (t0 > (int) 0x7fff)
|
||||
sout[i] = 0x7fff;
|
||||
else if (t0 < (int) 0xffff8000)
|
||||
sout[i] = 0x8000;
|
||||
else
|
||||
sout[i] = (short) t0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2, res1, res2, res3;
|
||||
short res_ref[SIZE];
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
int fail = 0;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
s1.a[i] = i * 17 + i;
|
||||
s2.a[i] = i * -17 + i * 2;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_maddubs_epi16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_maddubs_epi16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_maddubs_epi16) (mask, s1.x, s2.x);
|
||||
|
||||
CALC(s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
27
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddwd-1.c
Normal file
27
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddwd-1.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%zmm\[0-9\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaddwd\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i xq;
|
||||
volatile __m128i xw;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_madd_epi16 (x, x);
|
||||
x = _mm512_mask_madd_epi16 (x, 2, x, x);
|
||||
x = _mm512_maskz_madd_epi16 (2, x, x);
|
||||
xq = _mm256_mask_madd_epi16 (xq, 2, xq, xq);
|
||||
xq = _mm256_maskz_madd_epi16 (2, xq, xq);
|
||||
xw = _mm_mask_madd_epi16 (xw, 2, xw, xw);
|
||||
xw = _mm_maskz_madd_epi16 (2, xw, xw);
|
||||
}
|
58
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddwd-2.c
Normal file
58
gcc/testsuite/gcc.target/i386/avx512bw-vpmaddwd-2.c
Normal file
@ -0,0 +1,58 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <values.h>
|
||||
#define SIZE (AVX512F_LEN / 32)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *i1, short *i2, int *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
r[i] = ((int) i1[2 * i] * (int) i2[2 * i] +
|
||||
(int) i1[2 * i + 1] * (int) i2[2 * i + 1]);
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN, i_w) s1, s2;
|
||||
UNION_TYPE (AVX512F_LEN, i_d) res1, res2, res3;
|
||||
int res_ref[SIZE];
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE * 2; i++)
|
||||
{
|
||||
s1.a[i] = i * 17 + i;
|
||||
s2.a[i] = i * -17 + i * 2;
|
||||
}
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_madd_epi16) (s1.x, s2.x);
|
||||
res2.x = INTRINSIC (_mask_madd_epi16) (res2.x, mask, s1.x, s2.x);
|
||||
res3.x = INTRINSIC (_maskz_madd_epi16) (mask, s1.x, s2.x);
|
||||
|
||||
CALC(s1.a, s2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_d) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_d) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsb-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsb-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_max_epi8 (x, x);
|
||||
x = _mm512_mask_max_epi8 (x, mx, x, x);
|
||||
x = _mm512_maskz_max_epi8 (mx, x, x);
|
||||
y = _mm256_mask_max_epi8 (y, my, y, y);
|
||||
y = _mm256_maskz_max_epi8 (my, y, y);
|
||||
z = _mm_mask_max_epi8 (z, mz, z, z);
|
||||
z = _mm_maskz_max_epi8 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsb-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsb-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *src1, char *src2, char *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] > src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * sign;
|
||||
src2.a[i] = (i + 20) * sign;
|
||||
sign = -sign;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_max_epi8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_max_epi8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_max_epi8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsw-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsw-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_max_epi16 (x, x);
|
||||
x = _mm512_mask_max_epi16 (x, mx, x, x);
|
||||
x = _mm512_maskz_max_epi16 (mx, x, x);
|
||||
y = _mm256_mask_max_epi16 (y, my, y, y);
|
||||
y = _mm256_maskz_max_epi16 (my, y, y);
|
||||
z = _mm_mask_max_epi16 (z, mz, z, z);
|
||||
z = _mm_maskz_max_epi16 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsw-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxsw-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *src1, short *src2, short *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] > src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * sign;
|
||||
src2.a[i] = (i + 20) * sign;
|
||||
sign = -sign;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_max_epi16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_max_epi16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_max_epi16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxub-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxub-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_max_epu8 (x, x);
|
||||
x = _mm512_mask_max_epu8 (x, mx, x, x);
|
||||
x = _mm512_maskz_max_epu8 (mx, x, x);
|
||||
y = _mm256_mask_max_epu8 (y, my, y, y);
|
||||
y = _mm256_maskz_max_epu8 (my, y, y);
|
||||
z = _mm_mask_max_epu8 (z, mz, z, z);
|
||||
z = _mm_maskz_max_epu8 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxub-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxub-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned char *src1, unsigned char *src2,
|
||||
unsigned char *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] > src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned char res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * i;
|
||||
src2.a[i] = i + 20;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_max_epu8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_max_epu8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_max_epu8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxuw-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxuw-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmaxuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_max_epu16 (x, x);
|
||||
x = _mm512_mask_max_epu16 (x, mx, x, x);
|
||||
x = _mm512_maskz_max_epu16 (mx, x, x);
|
||||
y = _mm256_mask_max_epu16 (y, my, y, y);
|
||||
y = _mm256_maskz_max_epu16 (my, y, y);
|
||||
z = _mm_mask_max_epu16 (z, mz, z, z);
|
||||
z = _mm_maskz_max_epu16 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxuw-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpmaxuw-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned short *src1, unsigned short *src2,
|
||||
unsigned short *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] > src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned short res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * i;
|
||||
src2.a[i] = i + 20;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_max_epu16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_max_epu16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_max_epu16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminsb-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminsb-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_min_epi8 (x, x);
|
||||
x = _mm512_mask_min_epi8 (x, mx, x, x);
|
||||
x = _mm512_maskz_min_epi8 (mx, x, x);
|
||||
y = _mm256_mask_min_epi8 (y, my, y, y);
|
||||
y = _mm256_maskz_min_epi8 (my, y, y);
|
||||
z = _mm_mask_min_epi8 (z, mz, z, z);
|
||||
z = _mm_maskz_min_epi8 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminsb-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminsb-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *src1, char *src2, char *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] < src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * sign;
|
||||
src2.a[i] = (i + 20) * sign;
|
||||
sign = -sign;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_min_epi8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_min_epi8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_min_epi8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminsw-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminsw-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminsw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_min_epi16 (x, x);
|
||||
x = _mm512_mask_min_epi16 (x, mx, x, x);
|
||||
x = _mm512_maskz_min_epi16 (mx, x, x);
|
||||
y = _mm256_mask_min_epi16 (y, my, y, y);
|
||||
y = _mm256_maskz_min_epi16 (my, y, y);
|
||||
z = _mm_mask_min_epi16 (z, mz, z, z);
|
||||
z = _mm_maskz_min_epi16 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminsw-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminsw-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *src1, short *src2, short *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] < src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * sign;
|
||||
src2.a[i] = (i + 20) * sign;
|
||||
sign = -sign;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_min_epi16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_min_epi16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_min_epi16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminub-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminub-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminub\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_min_epu8 (x, x);
|
||||
x = _mm512_mask_min_epu8 (x, mx, x, x);
|
||||
x = _mm512_maskz_min_epu8 (mx, x, x);
|
||||
y = _mm256_mask_min_epu8 (y, my, y, y);
|
||||
y = _mm256_maskz_min_epu8 (my, y, y);
|
||||
z = _mm_mask_min_epu8 (z, mz, z, z);
|
||||
z = _mm_maskz_min_epu8 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminub-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminub-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned char *src1, unsigned char *src2,
|
||||
unsigned char *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] < src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned char res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * i;
|
||||
src2.a[i] = i + 20;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_min_epu8) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_min_epu8) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_min_epu8) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminuw-1.c
Normal file
30
gcc/testsuite/gcc.target/i386/avx512bw-vpminuw-1.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\{\]" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpminuw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x;
|
||||
volatile __m256i y;
|
||||
volatile __m128i z;
|
||||
volatile __mmask32 mx;
|
||||
volatile __mmask16 my;
|
||||
volatile __mmask8 mz;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x = _mm512_min_epu16 (x, x);
|
||||
x = _mm512_mask_min_epu16 (x, mx, x, x);
|
||||
x = _mm512_maskz_min_epu16 (mx, x, x);
|
||||
y = _mm256_mask_min_epu16 (y, my, y, y);
|
||||
y = _mm256_maskz_min_epu16 (my, y, y);
|
||||
z = _mm_mask_min_epu16 (z, mz, z, z);
|
||||
z = _mm_maskz_min_epu16 (mz, z, z);
|
||||
}
|
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminuw-2.c
Normal file
52
gcc/testsuite/gcc.target/i386/avx512bw-vpminuw-2.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (unsigned short *src1, unsigned short *src2,
|
||||
unsigned short *dst)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
dst[i] = src1[i] < src2[i] ? src1[i] : src2[i];
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src1, src2, res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
unsigned short res_ref[SIZE];
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src1.a[i] = i * i;
|
||||
src2.a[i] = i + 20;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_min_epu16) (src1.x, src2.x);
|
||||
res2.x = INTRINSIC (_mask_min_epu16) (res2.x, mask, src1.x, src2.x);
|
||||
res3.x = INTRINSIC (_maskz_min_epu16) (mask, src1.x, src2.x);
|
||||
|
||||
CALC (src1.a, src2.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovb2m-1.c
Normal file
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovb2m-1.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpmovb2m\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%k\[1-7\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovb2m\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%k\[1-7\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovb2m\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%k\[1-7\]" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask64 m64;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
m16 = _mm_movepi8_mask (x128);
|
||||
m32 = _mm256_movepi8_mask (x256);
|
||||
m64 = _mm512_movepi8_mask (x512);
|
||||
}
|
44
gcc/testsuite/gcc.target/i386/avx512bw-vpmovb2m-2.c
Normal file
44
gcc/testsuite/gcc.target/i386/avx512bw-vpmovb2m-2.c
Normal file
@ -0,0 +1,44 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (MASK_TYPE *r, char *s1)
|
||||
{
|
||||
int i;
|
||||
MASK_TYPE res = 0;
|
||||
MASK_TYPE one = 1;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
if (s1[i] >> 7)
|
||||
res = res | (one << i);
|
||||
|
||||
*r = res;
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) src;
|
||||
MASK_TYPE res, res_ref = 0;
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src.a[i] = 2 * i * sign;
|
||||
sign = sign * -1;
|
||||
}
|
||||
|
||||
res = INTRINSIC (_movepi8_mask) (src.x);
|
||||
|
||||
CALC (&res_ref, src.a);
|
||||
|
||||
if (res_ref != res)
|
||||
abort ();
|
||||
}
|
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-1.c
Normal file
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-1.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpmovm2b\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%xmm\[0-9\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovm2b\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%ymm\[0-9\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovm2b\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%zmm\[0-9\]" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask64 m64;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x128 = _mm_movm_epi8 (m16);
|
||||
x256 = _mm256_movm_epi8 (m32);
|
||||
x512 = _mm512_movm_epi8 (m64);
|
||||
}
|
33
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-2.c
Normal file
33
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-2.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *r, MASK_TYPE s)
|
||||
{
|
||||
int i;
|
||||
char all_ones = 0xff;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
r[i] = ((s >> i) & 1) ? all_ones : 0;
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_b) res, res_ref;
|
||||
MASK_TYPE src = (MASK_TYPE) 0x1111abeffeec1234;
|
||||
|
||||
res.x = INTRINSIC (_movm_epi8) (src);
|
||||
|
||||
CALC (res_ref.a, src);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_b) (res, res_ref.a))
|
||||
abort ();
|
||||
}
|
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-1.c
Normal file
22
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-1.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler "vpmovm2w\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%xmm\[0-9\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovm2w\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%ymm\[0-9\]" } } */
|
||||
/* { dg-final { scan-assembler "vpmovm2w\[ \\t\]+\[^\n\]*%k\[1-7\]\[^\n\]*%zmm\[0-9\]" } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i x512;
|
||||
volatile __m256i x256;
|
||||
volatile __m128i x128;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask8 m8;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
x128 = _mm_movm_epi16 (m8);
|
||||
x256 = _mm256_movm_epi16 (m16);
|
||||
x512 = _mm512_movm_epi16 (m32);
|
||||
}
|
33
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-2.c
Normal file
33
gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-2.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (short *r, MASK_TYPE s)
|
||||
{
|
||||
int i;
|
||||
short all_ones = 0xffff;
|
||||
|
||||
for (i = 0; i < SIZE; i++)
|
||||
r[i] = ((s >> i) & 1) ? all_ones : 0;
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res, res_ref;
|
||||
MASK_TYPE src = (MASK_TYPE) 0x1111abc2;
|
||||
|
||||
res.x = INTRINSIC (_movm_epi16) (src);
|
||||
|
||||
CALC (res_ref.a, src);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res, res_ref.a))
|
||||
abort ();
|
||||
}
|
34
gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-1.c
Normal file
34
gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-1.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%xmm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%ymm\[0-9\]\[\\n\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovswb\[ \\t\]+\[^\n\]*%zmm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}{z}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m128i x, z;
|
||||
volatile __m256i y;
|
||||
volatile __m512i u;
|
||||
volatile __mmask8 m1;
|
||||
volatile __mmask16 m2;
|
||||
volatile __mmask32 m3;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
z = _mm_cvtsepi16_epi8 (x);
|
||||
z = _mm_mask_cvtsepi16_epi8 (z, m1, x);
|
||||
z = _mm_maskz_cvtsepi16_epi8 (m1, x);
|
||||
z = _mm256_cvtsepi16_epi8 (y);
|
||||
z = _mm256_mask_cvtsepi16_epi8 (z, m2, y);
|
||||
z = _mm256_maskz_cvtsepi16_epi8 (m2, y);
|
||||
y = _mm512_cvtsepi16_epi8 (u);
|
||||
y = _mm512_mask_cvtsepi16_epi8 (y, m3, u);
|
||||
y = _mm512_maskz_cvtsepi16_epi8 (m3, u);
|
||||
}
|
61
gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-2.c
Normal file
61
gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-2.c
Normal file
@ -0,0 +1,61 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SIZE (AVX512F_LEN / 16)
|
||||
#define SIZE_HALF (AVX512F_LEN_HALF / 8)
|
||||
#include "avx512f-mask-type.h"
|
||||
#include <limits.h>
|
||||
|
||||
void
|
||||
CALC (char *r, short *s)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < SIZE_HALF; i++)
|
||||
{
|
||||
if (s[i] < CHAR_MIN)
|
||||
r[i] = CHAR_MIN;
|
||||
else if (s[i] > CHAR_MAX)
|
||||
r[i] = CHAR_MAX;
|
||||
else
|
||||
r[i] = s[i];
|
||||
r[i] = (i < SIZE) ? r[i] : 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
int i, sign;
|
||||
UNION_TYPE (AVX512F_LEN_HALF, i_b) res1, res2, res3;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) src;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
char res_ref[32];
|
||||
|
||||
sign = -1;
|
||||
for (i = 0; i < SIZE; i++)
|
||||
{
|
||||
src.a[i] = 1 + 34 * i * sign;
|
||||
sign = sign * -1;
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
}
|
||||
|
||||
res1.x = INTRINSIC (_cvtsepi16_epi8) (src.x);
|
||||
res2.x = INTRINSIC (_mask_cvtsepi16_epi8) (res2.x, mask, src.x);
|
||||
res3.x = INTRINSIC (_maskz_cvtsepi16_epi8) (mask, src.x);
|
||||
|
||||
CALC (res_ref, src.a);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_b) (res_ref, mask, SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
32
gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c
Normal file
32
gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-mavx512bw -mavx512vl -O2" } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%zmm\[0-9\]\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\[^\{\]" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%ymm\[0-9\]\[^\n\]*%zmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%ymm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
/* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%xmm\[0-9\]\[^\n\]*%xmm\[0-9\]\{%k\[1-7\]\}\{z\}" 1 } } */
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
volatile __m512i res1;
|
||||
volatile __m256i s1, res2;
|
||||
volatile __m128i s2, res3;
|
||||
volatile __mmask32 m32;
|
||||
volatile __mmask16 m16;
|
||||
volatile __mmask8 m8;
|
||||
|
||||
void extern
|
||||
avx512bw_test (void)
|
||||
{
|
||||
res1 = _mm512_cvtepi8_epi16 (s1);
|
||||
|
||||
res1 = _mm512_mask_cvtepi8_epi16 (res1, m32, s1);
|
||||
res2 = _mm256_mask_cvtepi8_epi16 (res2, m16, s2);
|
||||
res3 = _mm_mask_cvtepi8_epi16 (res3, m8, s2);
|
||||
|
||||
res1 = _mm512_maskz_cvtepi8_epi16 (m32, s1);
|
||||
res2 = _mm256_maskz_cvtepi8_epi16 (m16, s2);
|
||||
res3 = _mm_maskz_cvtepi8_epi16 (m8, s2);
|
||||
}
|
56
gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c
Normal file
56
gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c
Normal file
@ -0,0 +1,56 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
|
||||
/* { dg-require-effective-target avx512bw } */
|
||||
|
||||
#include "avx512f-helper.h"
|
||||
|
||||
#define SRC_SIZE (AVX512F_LEN_HALF / 8)
|
||||
#define DST_SIZE (AVX512F_LEN / 16)
|
||||
#include "avx512f-mask-type.h"
|
||||
|
||||
void
|
||||
CALC (char *s, short *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
{
|
||||
r[i] = (short) s[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TEST (void)
|
||||
{
|
||||
UNION_TYPE (AVX512F_LEN_HALF, i_b) s;
|
||||
UNION_TYPE (AVX512F_LEN, i_w) res1, res2, res3;
|
||||
MASK_TYPE mask = MASK_VALUE;
|
||||
short res_ref[DST_SIZE];
|
||||
int i, sign = 1;
|
||||
|
||||
for (i = 0; i < SRC_SIZE; i++)
|
||||
{
|
||||
s.a[i] = 8 * i * sign;
|
||||
sign = -sign;
|
||||
}
|
||||
|
||||
for (i = 0; i < DST_SIZE; i++)
|
||||
res2.a[i] = DEFAULT_VALUE;
|
||||
|
||||
res1.x = INTRINSIC (_cvtepi8_epi16) (s.x);
|
||||
res2.x = INTRINSIC (_mask_cvtepi8_epi16) (res2.x, mask, s.x);
|
||||
res3.x = INTRINSIC (_maskz_cvtepi8_epi16) (mask, s.x);
|
||||
|
||||
CALC (s.a, res_ref);
|
||||
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_MERGE (i_w) (res_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
|
||||
abort ();
|
||||
|
||||
MASK_ZERO (i_w) (res_ref, mask, DST_SIZE);
|
||||
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
|
||||
abort ();
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user