diff --git a/.travis.yml b/.travis.yml index 42eda1625610c..45292f0bd26f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ matrix: - env: TARGET=i586-unknown-linux-gnu - env: TARGET=i686-unknown-linux-gnu - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - - env: TARGET=x86_64-unknown-linux-gnu-emulated NO_ADD=1 STDSIMD_TEST_EVERYTHING=1 FEATURES="intel_sde" + - env: TARGET=x86_64-unknown-linux-gnu-emulated NO_ADD=1 STDSIMD_TEST_EVERYTHING=1 - env: TARGET=arm-unknown-linux-gnueabihf - env: TARGET=armv7-unknown-linux-gnueabihf - env: TARGET=aarch64-unknown-linux-gnu @@ -55,7 +55,6 @@ matrix: cargo clippy --all -- -D clippy-pedantic allow_failures: - env: CLIPPY=On TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - - env: VERIFY_X86 before_install: # FIXME (travis-ci/travis-ci#8920) shouldn't be necessary... diff --git a/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile index 5af97f9adf9e7..2ed84ec828212 100644 --- a/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile @@ -11,3 +11,4 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ RUN wget https://github.com/gnzlbg/intel_sde/raw/master/sde-external-8.16.0-2018-01-30-lin.tar.bz2 RUN tar -xjf sde-external-8.16.0-2018-01-30-lin.tar.bz2 ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="/sde-external-8.16.0-2018-01-30-lin/sde64 --" +ENV RUSTFLAGS --cfg stdsimd_intel_sde diff --git a/ci/run-docker.sh b/ci/run-docker.sh index d08a164be366d..e07e1b0dc1698 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -17,7 +17,6 @@ run() { --env CARGO_HOME=/cargo \ --volume `rustc --print sysroot`:/rust:ro \ --env TARGET=$target \ - --env FEATURES=$2 \ --env STDSIMD_TEST_EVERYTHING \ --volume `pwd`:/checkout:ro \ --volume `pwd`/target:/checkout/target \ @@ -33,5 +32,5 @@ if [ -z "$1" ]; then run $d done else - run $1 $2 + run $1 fi diff --git a/ci/run.sh b/ci/run.sh index cdcd9b3bbee29..3ea3ae08b58a4 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -10,7 +10,7 @@ export RUST_TEST_THREADS=1 #export RUST_BACKTRACE=full #export RUST_TEST_NOCAPTURE=1 -FEATURES="strict,$FEATURES" +RUSTFLAGS="$RUSTFLAGS --cfg stdsimd_strict" # FIXME: on armv7 neon intrinsics require the neon target-feature to be # unconditionally enabled. @@ -27,9 +27,8 @@ echo "FEATURES=${FEATURES}" echo "OBJDUMP=${OBJDUMP}" cargo_test() { - cmd="cargo test --target=$TARGET --features $FEATURES $1" + cmd="cargo test --target=$TARGET $1" cmd="$cmd -p coresimd -p stdsimd" - cmd="$cmd --manifest-path crates/stdsimd/Cargo.toml" cmd="$cmd -- $2" $cmd } diff --git a/coresimd/aarch64/crypto.rs b/coresimd/aarch64/crypto.rs index 28f1c5ded3948..a71c0b460d5f4 100644 --- a/coresimd/aarch64/crypto.rs +++ b/coresimd/aarch64/crypto.rs @@ -189,7 +189,7 @@ mod tests { use std::mem; use stdsimd_test::simd_test; - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vaeseq_u8() { let data = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8) .into_bits(); @@ -219,7 +219,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vaesdq_u8() { let data = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8) .into_bits(); @@ -249,7 +249,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vaesmcq_u8() { let data = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8) .into_bits(); @@ -277,7 +277,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vaesimcq_u8() { let data = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8) .into_bits(); @@ -305,13 +305,13 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1h_u32() { assert_eq!(vsha1h_u32(0x1234), 0x048d); assert_eq!(vsha1h_u32(0x5678), 0x159e); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1su0q_u32() { let r: u32x4 = vsha1su0q_u32( u32x4::new(0x1234_u32, 0x5678_u32, 0x9abc_u32, 0xdef0_u32) @@ -324,7 +324,7 @@ mod tests { assert_eq!(r, u32x4::new(0x9abc, 0xdef0, 0x1234, 0x5678)); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1su1q_u32() { let r: u32x4 = vsha1su1q_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -336,7 +336,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1cq_u32() { let r: u32x4 = vsha1cq_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -349,7 +349,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1pq_u32() { let r: u32x4 = vsha1pq_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -362,7 +362,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha1mq_u32() { let r: u32x4 = vsha1mq_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -375,7 +375,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha256hq_u32() { let r: u32x4 = vsha256hq_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -388,7 +388,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha256h2q_u32() { let r: u32x4 = vsha256h2q_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -401,7 +401,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha256su0q_u32() { let r: u32x4 = vsha256su0q_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), @@ -413,7 +413,7 @@ mod tests { ); } - #[simd_test = "crypto"] + #[simd_test(enable = "crypto")] unsafe fn test_vsha256su1q_u32() { let r: u32x4 = vsha256su1q_u32( u32x4::new(0x1234, 0x5678, 0x9abc, 0xdef0).into_bits(), diff --git a/coresimd/aarch64/neon.rs b/coresimd/aarch64/neon.rs index ca7f02f48af6d..b05113056e50b 100644 --- a/coresimd/aarch64/neon.rs +++ b/coresimd/aarch64/neon.rs @@ -554,7 +554,7 @@ mod tests { use std::mem; use stdsimd_test::simd_test; - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_f64() { let a = 1.; let b = 8.; @@ -564,7 +564,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_f64() { let a = f64x2::new(1., 2.); let b = f64x2::new(8., 7.); @@ -573,7 +573,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddd_s64() { let a = 1_i64; let b = 8_i64; @@ -583,7 +583,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddd_u64() { let a = 1_u64; let b = 8_u64; @@ -593,13 +593,13 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_s8() { let r = vmaxv_s8(i8x8::new(1, 2, 3, 4, -8, 6, 7, 5).into_bits()); assert_eq!(r, 7_i8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_s8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = vmaxvq_s8(i8x16::new( @@ -611,37 +611,37 @@ mod tests { assert_eq!(r, 8_i8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_s16() { let r = vmaxv_s16(i16x4::new(1, 2, -4, 3).into_bits()); assert_eq!(r, 3_i16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_s16() { let r = vmaxvq_s16(i16x8::new(1, 2, 7, 4, -16, 6, 7, 5).into_bits()); assert_eq!(r, 7_i16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_s32() { let r = vmaxv_s32(i32x2::new(1, -4).into_bits()); assert_eq!(r, 1_i32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_s32() { let r = vmaxvq_s32(i32x4::new(1, 2, -32, 4).into_bits()); assert_eq!(r, 4_i32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_u8() { let r = vmaxv_u8(u8x8::new(1, 2, 3, 4, 8, 6, 7, 5).into_bits()); assert_eq!(r, 8_u8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_u8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = vmaxvq_u8(u8x16::new( @@ -653,55 +653,55 @@ mod tests { assert_eq!(r, 16_u8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_u16() { let r = vmaxv_u16(u16x4::new(1, 2, 4, 3).into_bits()); assert_eq!(r, 4_u16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_u16() { let r = vmaxvq_u16(u16x8::new(1, 2, 7, 4, 16, 6, 7, 5).into_bits()); assert_eq!(r, 16_u16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_u32() { let r = vmaxv_u32(u32x2::new(1, 4).into_bits()); assert_eq!(r, 4_u32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_u32() { let r = vmaxvq_u32(u32x4::new(1, 2, 32, 4).into_bits()); assert_eq!(r, 32_u32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxv_f32() { let r = vmaxv_f32(f32x2::new(1., 4.).into_bits()); assert_eq!(r, 4_f32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_f32() { let r = vmaxvq_f32(f32x4::new(1., 2., 32., 4.).into_bits()); assert_eq!(r, 32_f32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmaxvq_f64() { let r = vmaxvq_f64(f64x2::new(1., 4.).into_bits()); assert_eq!(r, 4_f64); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_s8() { let r = vminv_s8(i8x8::new(1, 2, 3, 4, -8, 6, 7, 5).into_bits()); assert_eq!(r, -8_i8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_s8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = vminvq_s8(i8x16::new( @@ -713,37 +713,37 @@ mod tests { assert_eq!(r, -16_i8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_s16() { let r = vminv_s16(i16x4::new(1, 2, -4, 3).into_bits()); assert_eq!(r, -4_i16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_s16() { let r = vminvq_s16(i16x8::new(1, 2, 7, 4, -16, 6, 7, 5).into_bits()); assert_eq!(r, -16_i16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_s32() { let r = vminv_s32(i32x2::new(1, -4).into_bits()); assert_eq!(r, -4_i32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_s32() { let r = vminvq_s32(i32x4::new(1, 2, -32, 4).into_bits()); assert_eq!(r, -32_i32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_u8() { let r = vminv_u8(u8x8::new(1, 2, 3, 4, 8, 6, 7, 5).into_bits()); assert_eq!(r, 1_u8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_u8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = vminvq_u8(u8x16::new( @@ -755,49 +755,49 @@ mod tests { assert_eq!(r, 1_u8); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_u16() { let r = vminv_u16(u16x4::new(1, 2, 4, 3).into_bits()); assert_eq!(r, 1_u16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_u16() { let r = vminvq_u16(u16x8::new(1, 2, 7, 4, 16, 6, 7, 5).into_bits()); assert_eq!(r, 1_u16); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_u32() { let r = vminv_u32(u32x2::new(1, 4).into_bits()); assert_eq!(r, 1_u32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_u32() { let r = vminvq_u32(u32x4::new(1, 2, 32, 4).into_bits()); assert_eq!(r, 1_u32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminv_f32() { let r = vminv_f32(f32x2::new(1., 4.).into_bits()); assert_eq!(r, 1_f32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_f32() { let r = vminvq_f32(f32x4::new(1., 2., 32., 4.).into_bits()); assert_eq!(r, 1_f32); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vminvq_f64() { let r = vminvq_f64(f64x2::new(1., 4.).into_bits()); assert_eq!(r, 1_f64); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_s8() { #[cfg_attr(rustfmt, skip)] let a = i8x16::new( @@ -818,7 +818,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_s16() { let a = i16x8::new(1, -2, 3, 4, 5, 6, 7, 8); let b = i16x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -827,7 +827,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_s32() { let a = i32x4::new(1, -2, 3, 4); let b = i32x4::new(0, 3, 2, 5); @@ -836,7 +836,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_u8() { #[cfg_attr(rustfmt, skip)] let a = u8x16::new( @@ -857,7 +857,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_u16() { let a = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u16x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -866,7 +866,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpminq_u32() { let a = u32x4::new(1, 2, 3, 4); let b = u32x4::new(0, 3, 2, 5); @@ -875,7 +875,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_f32() { let a = f32x4::new(1., -2., 3., 4.); let b = f32x4::new(0., 3., 2., 5.); @@ -884,7 +884,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_f64() { let a = f64x2::new(1., -2.); let b = f64x2::new(0., 3.); @@ -893,7 +893,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_s8() { #[cfg_attr(rustfmt, skip)] let a = i8x16::new( @@ -914,7 +914,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_s16() { let a = i16x8::new(1, -2, 3, 4, 5, 6, 7, 8); let b = i16x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -923,7 +923,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_s32() { let a = i32x4::new(1, -2, 3, 4); let b = i32x4::new(0, 3, 2, 5); @@ -932,7 +932,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_u8() { #[cfg_attr(rustfmt, skip)] let a = u8x16::new( @@ -953,7 +953,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_u16() { let a = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u16x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -962,7 +962,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmaxq_u32() { let a = u32x4::new(1, 2, 3, 4); let b = u32x4::new(0, 3, 2, 5); @@ -971,7 +971,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_f32() { let a = f32x4::new(1., -2., 3., 4.); let b = f32x4::new(0., 3., 2., 5.); @@ -980,7 +980,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_f64() { let a = f64x2::new(1., -2.); let b = f64x2::new(0., 3.); diff --git a/coresimd/arm/neon.rs b/coresimd/arm/neon.rs index 21c767d360135..4973d257555cb 100644 --- a/coresimd/arm/neon.rs +++ b/coresimd/arm/neon.rs @@ -924,7 +924,7 @@ mod tests { use std::mem; use stdsimd_test::simd_test; - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_s8() { let a = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = i8x8::new(8, 7, 6, 5, 4, 3, 2, 1); @@ -933,7 +933,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_s8() { let a = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8); let b = i8x16::new(8, 7, 6, 5, 4, 3, 2, 1, 8, 7, 6, 5, 4, 3, 2, 1); @@ -942,7 +942,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_s16() { let a = i16x4::new(1, 2, 3, 4); let b = i16x4::new(8, 7, 6, 5); @@ -951,7 +951,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_s16() { let a = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = i16x8::new(8, 7, 6, 5, 4, 3, 2, 1); @@ -960,7 +960,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_s32() { let a = i32x2::new(1, 2); let b = i32x2::new(8, 7); @@ -969,7 +969,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_s32() { let a = i32x4::new(1, 2, 3, 4); let b = i32x4::new(8, 7, 6, 5); @@ -978,7 +978,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_u8() { let a = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u8x8::new(8, 7, 6, 5, 4, 3, 2, 1); @@ -987,7 +987,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_u8() { let a = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8); let b = u8x16::new(8, 7, 6, 5, 4, 3, 2, 1, 8, 7, 6, 5, 4, 3, 2, 1); @@ -996,7 +996,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_u16() { let a = u16x4::new(1, 2, 3, 4); let b = u16x4::new(8, 7, 6, 5); @@ -1005,7 +1005,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_u16() { let a = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u16x8::new(8, 7, 6, 5, 4, 3, 2, 1); @@ -1014,7 +1014,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_u32() { let a = u32x2::new(1, 2); let b = u32x2::new(8, 7); @@ -1023,7 +1023,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_u32() { let a = u32x4::new(1, 2, 3, 4); let b = u32x4::new(8, 7, 6, 5); @@ -1032,7 +1032,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vadd_f32() { let a = f32x2::new(1., 2.); let b = f32x2::new(8., 7.); @@ -1041,7 +1041,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddq_f32() { let a = f32x4::new(1., 2., 3., 4.); let b = f32x4::new(8., 7., 6., 5.); @@ -1050,7 +1050,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_s8() { let v = ::std::i8::MAX; let a = i8x8::new(v, v, v, v, v, v, v, v); @@ -1060,7 +1060,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_s16() { let v = ::std::i16::MAX; let a = i16x4::new(v, v, v, v); @@ -1070,7 +1070,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_s32() { let v = ::std::i32::MAX; let a = i32x2::new(v, v); @@ -1080,7 +1080,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_u8() { let v = ::std::u8::MAX; let a = u8x8::new(v, v, v, v, v, v, v, v); @@ -1090,7 +1090,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_u16() { let v = ::std::u16::MAX; let a = u16x4::new(v, v, v, v); @@ -1100,7 +1100,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vaddl_u32() { let v = ::std::u32::MAX; let a = u32x2::new(v, v); @@ -1110,7 +1110,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_s16() { let a = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let e = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8); @@ -1118,7 +1118,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_s32() { let a = i32x4::new(1, 2, 3, 4); let e = i16x4::new(1, 2, 3, 4); @@ -1126,7 +1126,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_s64() { let a = i64x2::new(1, 2); let e = i32x2::new(1, 2); @@ -1134,7 +1134,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_u16() { let a = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let e = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8); @@ -1142,7 +1142,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_u32() { let a = u32x4::new(1, 2, 3, 4); let e = u16x4::new(1, 2, 3, 4); @@ -1150,7 +1150,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovn_u64() { let a = u64x2::new(1, 2); let e = u32x2::new(1, 2); @@ -1158,7 +1158,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_s8() { let e = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let a = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8); @@ -1166,7 +1166,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_s16() { let e = i32x4::new(1, 2, 3, 4); let a = i16x4::new(1, 2, 3, 4); @@ -1174,7 +1174,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_s32() { let e = i64x2::new(1, 2); let a = i32x2::new(1, 2); @@ -1182,7 +1182,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_u8() { let e = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8); let a = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8); @@ -1190,7 +1190,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_u16() { let e = u32x4::new(1, 2, 3, 4); let a = u16x4::new(1, 2, 3, 4); @@ -1198,7 +1198,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vmovl_u32() { let e = u64x2::new(1, 2); let a = u32x2::new(1, 2); @@ -1206,7 +1206,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vrsqrt_f32() { let a = f32x2::new(1.0, 2.0); let e = f32x2::new(0.9980469, 0.7050781); @@ -1214,7 +1214,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_s8() { let a = i8x8::new(1, -2, 3, -4, 5, 6, 7, 8); let b = i8x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -1223,7 +1223,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_s16() { let a = i16x4::new(1, 2, 3, -4); let b = i16x4::new(0, 3, 2, 5); @@ -1232,7 +1232,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_s32() { let a = i32x2::new(1, -2); let b = i32x2::new(0, 3); @@ -1241,7 +1241,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_u8() { let a = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u8x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -1250,7 +1250,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_u16() { let a = u16x4::new(1, 2, 3, 4); let b = u16x4::new(0, 3, 2, 5); @@ -1259,7 +1259,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_u32() { let a = u32x2::new(1, 2); let b = u32x2::new(0, 3); @@ -1268,7 +1268,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmin_f32() { let a = f32x2::new(1., -2.); let b = f32x2::new(0., 3.); @@ -1277,7 +1277,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_s8() { let a = i8x8::new(1, -2, 3, -4, 5, 6, 7, 8); let b = i8x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -1286,7 +1286,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_s16() { let a = i16x4::new(1, 2, 3, -4); let b = i16x4::new(0, 3, 2, 5); @@ -1295,7 +1295,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_s32() { let a = i32x2::new(1, -2); let b = i32x2::new(0, 3); @@ -1304,7 +1304,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_u8() { let a = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8); let b = u8x8::new(0, 3, 2, 5, 4, 7, 6, 9); @@ -1313,7 +1313,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_u16() { let a = u16x4::new(1, 2, 3, 4); let b = u16x4::new(0, 3, 2, 5); @@ -1322,7 +1322,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_u32() { let a = u32x2::new(1, 2); let b = u32x2::new(0, 3); @@ -1331,7 +1331,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "neon"] + #[simd_test(enable = "neon")] unsafe fn test_vpmax_f32() { let a = f32x2::new(1., -2.); let b = f32x2::new(0., 3.); diff --git a/coresimd/mips/msa.rs b/coresimd/mips/msa.rs index 899330026e832..d26ad305d660c 100644 --- a/coresimd/mips/msa.rs +++ b/coresimd/mips/msa.rs @@ -32,7 +32,7 @@ mod tests { use simd::*; use stdsimd_test::simd_test; - #[simd_test = "msa"] + #[simd_test(enable = "msa")] unsafe fn __msa_add_a_b() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = i8x16::new( diff --git a/coresimd/ppsv/api/load_store.rs b/coresimd/ppsv/api/load_store.rs index c25f1fcc36974..11ea10d30c24b 100644 --- a/coresimd/ppsv/api/load_store.rs +++ b/coresimd/ppsv/api/load_store.rs @@ -12,7 +12,6 @@ macro_rules! impl_load_store { /// aligned to an `align_of::()` boundary. #[inline] pub fn store_aligned(self, slice: &mut [$elem_ty]) { - use slice::SliceExt; unsafe { assert!(slice.len() >= $elem_count); let target_ptr = @@ -32,7 +31,6 @@ macro_rules! impl_load_store { /// If `slice.len() < Self::lanes()`. #[inline] pub fn store_unaligned(self, slice: &mut [$elem_ty]) { - use slice::SliceExt; unsafe { assert!(slice.len() >= $elem_count); self.store_unaligned_unchecked(slice); @@ -50,7 +48,6 @@ macro_rules! impl_load_store { pub unsafe fn store_aligned_unchecked( self, slice: &mut [$elem_ty] ) { - use slice::SliceExt; *(slice.get_unchecked_mut(0) as *mut $elem_ty as *mut Self) = self; } @@ -64,7 +61,6 @@ macro_rules! impl_load_store { pub unsafe fn store_unaligned_unchecked( self, slice: &mut [$elem_ty] ) { - use slice::SliceExt; let target_ptr = slice.get_unchecked_mut(0) as *mut $elem_ty as *mut u8; let self_ptr = &self as *const Self as *const u8; @@ -84,7 +80,6 @@ macro_rules! impl_load_store { #[inline] pub fn load_aligned(slice: &[$elem_ty]) -> Self { unsafe { - use slice::SliceExt; assert!(slice.len() >= $elem_count); let target_ptr = slice.get_unchecked(0) as *const $elem_ty; assert!( @@ -102,7 +97,6 @@ macro_rules! impl_load_store { /// If `slice.len() < Self::lanes()`. #[inline] pub fn load_unaligned(slice: &[$elem_ty]) -> Self { - use slice::SliceExt; unsafe { assert!(slice.len() >= $elem_count); Self::load_unaligned_unchecked(slice) @@ -117,7 +111,6 @@ macro_rules! impl_load_store { /// to an `align_of::()` boundary, the behavior is undefined. #[inline] pub unsafe fn load_aligned_unchecked(slice: &[$elem_ty]) -> Self { - use slice::SliceExt; *(slice.get_unchecked(0) as *const $elem_ty as *const Self) } @@ -131,7 +124,6 @@ macro_rules! impl_load_store { slice: &[$elem_ty] ) -> Self { use mem::size_of; - use slice::SliceExt; let target_ptr = slice.get_unchecked(0) as *const $elem_ty as *const u8; let mut x = Self::splat(0 as $elem_ty); diff --git a/coresimd/ppsv/api/minmax.rs b/coresimd/ppsv/api/minmax.rs index 9278bd5033d4b..7ba93b22f3304 100644 --- a/coresimd/ppsv/api/minmax.rs +++ b/coresimd/ppsv/api/minmax.rs @@ -94,7 +94,6 @@ macro_rules! impl_float_minmax_ops { // FIXME: https://github.com/rust-lang-nursery/stdsimd/issues/416 // use coresimd::simd_llvm::simd_fmax; // unsafe { simd_fmax(self, x) } - use num::Float; let mut r = self; for i in 0..$id::lanes() { let a = self.extract(i); diff --git a/coresimd/ppsv/api/minmax_reductions.rs b/coresimd/ppsv/api/minmax_reductions.rs index 359a72ae249b3..dd461b30dd246 100644 --- a/coresimd/ppsv/api/minmax_reductions.rs +++ b/coresimd/ppsv/api/minmax_reductions.rs @@ -20,7 +20,6 @@ macro_rules! impl_minmax_reductions { // FIXME: broken on AArch64 // https://bugs.llvm.org/show_bug.cgi?id=36796 use cmp::Ord; - use num::Float; let mut x = self.extract(0); for i in 1..$id::lanes() { x = x.max(self.extract(i)); @@ -44,7 +43,6 @@ macro_rules! impl_minmax_reductions { // FIXME: broken on AArch64 // https://bugs.llvm.org/show_bug.cgi?id=36796 use cmp::Ord; - use num::Float; let mut x = self.extract(0); for i in 1..$id::lanes() { x = x.min(self.extract(i)); diff --git a/coresimd/x86/abm.rs b/coresimd/x86/abm.rs index b8d336b03e23a..51157ab7739ab 100644 --- a/coresimd/x86/abm.rs +++ b/coresimd/x86/abm.rs @@ -50,12 +50,12 @@ mod tests { use coresimd::x86::*; - #[simd_test = "lzcnt"] + #[simd_test(enable = "lzcnt")] unsafe fn test_lzcnt_u32() { assert_eq!(_lzcnt_u32(0b0101_1010), 25); } - #[simd_test = "popcnt"] + #[simd_test(enable = "popcnt")] unsafe fn test_popcnt32() { assert_eq!(_popcnt32(0b0101_1010), 4); } diff --git a/coresimd/x86/aes.rs b/coresimd/x86/aes.rs index 7a44d4ae5cad3..6a6e30c3d1a37 100644 --- a/coresimd/x86/aes.rs +++ b/coresimd/x86/aes.rs @@ -115,7 +115,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aesdec_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc664949.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); @@ -125,7 +125,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aesdeclast_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc714178.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); @@ -135,7 +135,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aesenc_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc664810.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); @@ -145,7 +145,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aesenclast_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc714136.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); @@ -155,7 +155,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aesimc_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc714195.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); @@ -164,7 +164,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "aes"] + #[simd_test(enable = "aes")] unsafe fn test_mm_aeskeygenassist_si128() { // Constants taken from https://msdn.microsoft.com/en-us/library/cc714138.aspx. let a = _mm_set_epi64x(0x0123456789abcdef, 0x8899aabbccddeeff); diff --git a/coresimd/x86/avx.rs b/coresimd/x86/avx.rs index 76ac06074ab22..7fe4c0a51db36 100644 --- a/coresimd/x86/avx.rs +++ b/coresimd/x86/avx.rs @@ -3210,7 +3210,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_add_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3219,7 +3219,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_add_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let b = _mm256_setr_ps(9., 10., 11., 12., 13., 14., 15., 16.); @@ -3228,7 +3228,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_and_pd() { let a = _mm256_set1_pd(1.); let b = _mm256_set1_pd(0.6); @@ -3237,7 +3237,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_and_ps() { let a = _mm256_set1_ps(1.); let b = _mm256_set1_ps(0.6); @@ -3246,7 +3246,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_or_pd() { let a = _mm256_set1_pd(1.); let b = _mm256_set1_pd(0.6); @@ -3255,7 +3255,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_or_ps() { let a = _mm256_set1_ps(1.); let b = _mm256_set1_ps(0.6); @@ -3264,7 +3264,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_shuffle_pd() { let a = _mm256_setr_pd(1., 4., 5., 8.); let b = _mm256_setr_pd(2., 3., 6., 7.); @@ -3273,7 +3273,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_shuffle_ps() { let a = _mm256_setr_ps(1., 4., 5., 8., 9., 12., 13., 16.); let b = _mm256_setr_ps(2., 3., 6., 7., 10., 11., 14., 15.); @@ -3282,7 +3282,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_andnot_pd() { let a = _mm256_set1_pd(0.); let b = _mm256_set1_pd(0.6); @@ -3290,7 +3290,7 @@ mod tests { assert_eq_m256d(r, b); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_andnot_ps() { let a = _mm256_set1_ps(0.); let b = _mm256_set1_ps(0.6); @@ -3298,7 +3298,7 @@ mod tests { assert_eq_m256(r, b); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_max_pd() { let a = _mm256_setr_pd(1., 4., 5., 8.); let b = _mm256_setr_pd(2., 3., 6., 7.); @@ -3307,7 +3307,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_max_ps() { let a = _mm256_setr_ps(1., 4., 5., 8., 9., 12., 13., 16.); let b = _mm256_setr_ps(2., 3., 6., 7., 10., 11., 14., 15.); @@ -3316,7 +3316,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_min_pd() { let a = _mm256_setr_pd(1., 4., 5., 8.); let b = _mm256_setr_pd(2., 3., 6., 7.); @@ -3325,7 +3325,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_min_ps() { let a = _mm256_setr_ps(1., 4., 5., 8., 9., 12., 13., 16.); let b = _mm256_setr_ps(2., 3., 6., 7., 10., 11., 14., 15.); @@ -3334,7 +3334,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_mul_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3343,7 +3343,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_mul_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let b = _mm256_setr_ps(9., 10., 11., 12., 13., 14., 15., 16.); @@ -3352,7 +3352,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_addsub_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3361,7 +3361,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_addsub_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 1., 2., 3., 4.); let b = _mm256_setr_ps(5., 6., 7., 8., 5., 6., 7., 8.); @@ -3370,7 +3370,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_sub_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3379,7 +3379,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_sub_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., -1., -2., -3., -4.); let b = _mm256_setr_ps(5., 6., 7., 8., 3., 2., 1., 0.); @@ -3388,7 +3388,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_round_pd() { let a = _mm256_setr_pd(1.55, 2.2, 3.99, -1.2); let result_closest = _mm256_round_pd(a, 0b00000000); @@ -3402,7 +3402,7 @@ mod tests { assert_eq_m256d(result_up, expected_up); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_floor_pd() { let a = _mm256_setr_pd(1.55, 2.2, 3.99, -1.2); let result_down = _mm256_floor_pd(a); @@ -3410,7 +3410,7 @@ mod tests { assert_eq_m256d(result_down, expected_down); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_ceil_pd() { let a = _mm256_setr_pd(1.55, 2.2, 3.99, -1.2); let result_up = _mm256_ceil_pd(a); @@ -3418,7 +3418,7 @@ mod tests { assert_eq_m256d(result_up, expected_up); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_round_ps() { let a = _mm256_setr_ps(1.55, 2.2, 3.99, -1.2, 1.55, 2.2, 3.99, -1.2); let result_closest = _mm256_round_ps(a, 0b00000000); @@ -3433,7 +3433,7 @@ mod tests { assert_eq_m256(result_up, expected_up); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_floor_ps() { let a = _mm256_setr_ps(1.55, 2.2, 3.99, -1.2, 1.55, 2.2, 3.99, -1.2); let result_down = _mm256_floor_ps(a); @@ -3441,7 +3441,7 @@ mod tests { assert_eq_m256(result_down, expected_down); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_ceil_ps() { let a = _mm256_setr_ps(1.55, 2.2, 3.99, -1.2, 1.55, 2.2, 3.99, -1.2); let result_up = _mm256_ceil_ps(a); @@ -3449,7 +3449,7 @@ mod tests { assert_eq_m256(result_up, expected_up); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_sqrt_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let r = _mm256_sqrt_pd(a); @@ -3457,7 +3457,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_sqrt_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let r = _mm256_sqrt_ps(a); @@ -3465,7 +3465,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_div_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); @@ -3474,7 +3474,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_div_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_setr_pd(4., 3., 2., 5.); @@ -3483,7 +3483,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_blend_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_setr_pd(4., 3., 2., 5.); @@ -3495,7 +3495,7 @@ mod tests { assert_eq_m256d(r, _mm256_setr_pd(4., 3., 2., 5.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_blend_ps() { let a = _mm256_setr_ps(1., 4., 5., 8., 9., 12., 13., 16.); let b = _mm256_setr_ps(2., 3., 6., 7., 10., 11., 14., 15.); @@ -3516,7 +3516,7 @@ mod tests { ); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_blendv_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_setr_pd(4., 3., 2., 5.); @@ -3526,7 +3526,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_blendv_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); @@ -3539,7 +3539,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_dp_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); @@ -3557,7 +3557,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_hadd_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_setr_pd(4., 3., 2., 5.); @@ -3572,7 +3572,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_hadd_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); @@ -3587,7 +3587,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_hsub_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_setr_pd(4., 3., 2., 5.); @@ -3602,7 +3602,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_hsub_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); @@ -3617,7 +3617,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_xor_pd() { let a = _mm256_setr_pd(4., 9., 16., 25.); let b = _mm256_set1_pd(0.); @@ -3625,7 +3625,7 @@ mod tests { assert_eq_m256d(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_xor_ps() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let b = _mm256_set1_ps(0.); @@ -3633,7 +3633,7 @@ mod tests { assert_eq_m256(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_cmp_pd() { let a = _mm_setr_pd(4., 9.); let b = _mm_setr_pd(4., 3.); @@ -3642,7 +3642,7 @@ mod tests { assert!(get_m128d(r, 1).is_nan()); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cmp_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3651,7 +3651,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_cmp_ps() { let a = _mm_setr_ps(4., 3., 2., 5.); let b = _mm_setr_ps(4., 9., 16., 25.); @@ -3662,7 +3662,7 @@ mod tests { assert_eq!(get_m128(r, 3), 0.); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cmp_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 1., 2., 3., 4.); let b = _mm256_setr_ps(5., 6., 7., 8., 5., 6., 7., 8.); @@ -3671,7 +3671,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_cmp_sd() { let a = _mm_setr_pd(4., 9.); let b = _mm_setr_pd(4., 3.); @@ -3680,7 +3680,7 @@ mod tests { assert_eq!(get_m128d(r, 1), 9.); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_cmp_ss() { let a = _mm_setr_ps(4., 3., 2., 5.); let b = _mm_setr_ps(4., 9., 16., 25.); @@ -3691,7 +3691,7 @@ mod tests { assert_eq!(get_m128(r, 3), 5.); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtepi32_pd() { let a = _mm_setr_epi32(4, 9, 16, 25); let r = _mm256_cvtepi32_pd(a); @@ -3699,7 +3699,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtepi32_ps() { let a = _mm256_setr_epi32(4, 9, 16, 25, 4, 9, 16, 25); let r = _mm256_cvtepi32_ps(a); @@ -3707,7 +3707,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtpd_ps() { let a = _mm256_setr_pd(4., 9., 16., 25.); let r = _mm256_cvtpd_ps(a); @@ -3715,7 +3715,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtps_epi32() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let r = _mm256_cvtps_epi32(a); @@ -3723,7 +3723,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtps_pd() { let a = _mm_setr_ps(4., 9., 16., 25.); let r = _mm256_cvtps_pd(a); @@ -3731,7 +3731,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvttpd_epi32() { let a = _mm256_setr_pd(4., 9., 16., 25.); let r = _mm256_cvttpd_epi32(a); @@ -3739,7 +3739,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtpd_epi32() { let a = _mm256_setr_pd(4., 9., 16., 25.); let r = _mm256_cvtpd_epi32(a); @@ -3747,7 +3747,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvttps_epi32() { let a = _mm256_setr_ps(4., 9., 16., 25., 4., 9., 16., 25.); let r = _mm256_cvttps_epi32(a); @@ -3755,7 +3755,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_extractf128_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let r = _mm256_extractf128_ps(a, 0); @@ -3763,7 +3763,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_extractf128_pd() { let a = _mm256_setr_pd(4., 3., 2., 5.); let r = _mm256_extractf128_pd(a, 0); @@ -3771,7 +3771,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_extractf128_si256() { let a = _mm256_setr_epi64x(4, 3, 2, 5); let r = _mm256_extractf128_si256(a, 0); @@ -3779,17 +3779,17 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_zeroall() { _mm256_zeroall(); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_zeroupper() { _mm256_zeroupper(); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permutevar_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let b = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); @@ -3798,7 +3798,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_permutevar_ps() { let a = _mm_setr_ps(4., 3., 2., 5.); let b = _mm_setr_epi32(1, 2, 3, 4); @@ -3807,7 +3807,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permute_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let r = _mm256_permute_ps(a, 0x1b); @@ -3815,7 +3815,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_permute_ps() { let a = _mm_setr_ps(4., 3., 2., 5.); let r = _mm_permute_ps(a, 0x1b); @@ -3823,7 +3823,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permutevar_pd() { let a = _mm256_setr_pd(4., 3., 2., 5.); let b = _mm256_setr_epi64x(1, 2, 3, 4); @@ -3832,7 +3832,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_permutevar_pd() { let a = _mm_setr_pd(4., 3.); let b = _mm_setr_epi64x(3, 0); @@ -3841,7 +3841,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permute_pd() { let a = _mm256_setr_pd(4., 3., 2., 5.); let r = _mm256_permute_pd(a, 5); @@ -3849,7 +3849,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_permute_pd() { let a = _mm_setr_pd(4., 3.); let r = _mm_permute_pd(a, 1); @@ -3857,7 +3857,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permute2f128_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 1., 2., 3., 4.); let b = _mm256_setr_ps(5., 6., 7., 8., 5., 6., 7., 8.); @@ -3866,7 +3866,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permute2f128_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -3875,7 +3875,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_permute2f128_si256() { let a = _mm256_setr_epi32(1, 2, 3, 4, 1, 2, 3, 4); let b = _mm256_setr_epi32(5, 6, 7, 8, 5, 6, 7, 8); @@ -3884,28 +3884,28 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_broadcast_ss() { let r = _mm256_broadcast_ss(&3.); let e = _mm256_set1_ps(3.); assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_broadcast_ss() { let r = _mm_broadcast_ss(&3.); let e = _mm_set1_ps(3.); assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_broadcast_sd() { let r = _mm256_broadcast_sd(&3.); let e = _mm256_set1_pd(3.); assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_broadcast_ps() { let a = _mm_setr_ps(4., 3., 2., 5.); let r = _mm256_broadcast_ps(&a); @@ -3913,7 +3913,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_broadcast_pd() { let a = _mm_setr_pd(4., 3.); let r = _mm256_broadcast_pd(&a); @@ -3921,7 +3921,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insertf128_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let b = _mm_setr_ps(4., 9., 16., 25.); @@ -3930,7 +3930,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insertf128_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm_setr_pd(5., 6.); @@ -3939,7 +3939,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insertf128_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let b = _mm_setr_epi64x(5, 6); @@ -3948,7 +3948,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insert_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -3968,7 +3968,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insert_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -3984,7 +3984,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insert_epi32() { let a = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); let r = _mm256_insert_epi32(a, 0, 7); @@ -3992,7 +3992,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_load_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let p = &a as *const _ as *const f64; @@ -4001,7 +4001,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_store_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let mut r = _mm256_undefined_pd(); @@ -4009,7 +4009,7 @@ mod tests { assert_eq_m256d(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_load_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let p = &a as *const _ as *const f32; @@ -4018,7 +4018,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_store_ps() { let a = _mm256_setr_ps(4., 3., 2., 5., 8., 9., 64., 50.); let mut r = _mm256_undefined_ps(); @@ -4026,7 +4026,7 @@ mod tests { assert_eq_m256(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu_pd() { let a = &[1.0f64, 2., 3., 4.]; let p = a.as_ptr(); @@ -4035,7 +4035,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu_pd() { let a = _mm256_set1_pd(9.); let mut r = _mm256_undefined_pd(); @@ -4043,7 +4043,7 @@ mod tests { assert_eq_m256d(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu_ps() { let a = &[4., 3., 2., 5., 8., 9., 64., 50.]; let p = a.as_ptr(); @@ -4052,7 +4052,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu_ps() { let a = _mm256_set1_ps(9.); let mut r = _mm256_undefined_ps(); @@ -4060,7 +4060,7 @@ mod tests { assert_eq_m256(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_load_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let p = &a as *const _; @@ -4069,7 +4069,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_store_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let mut r = _mm256_undefined_si256(); @@ -4077,7 +4077,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let p = &a as *const _; @@ -4086,7 +4086,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu_si256() { let a = _mm256_set1_epi8(9); let mut r = _mm256_undefined_si256(); @@ -4094,7 +4094,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_maskload_pd() { let a = &[1.0f64, 2., 3., 4.]; let p = a.as_ptr(); @@ -4104,7 +4104,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_maskstore_pd() { let mut r = _mm256_set1_pd(0.); let mask = _mm256_setr_epi64x(0, !0, 0, !0); @@ -4114,7 +4114,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_maskload_pd() { let a = &[1.0f64, 2.]; let p = a.as_ptr(); @@ -4124,7 +4124,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_maskstore_pd() { let mut r = _mm_set1_pd(0.); let mask = _mm_setr_epi64x(0, !0); @@ -4134,7 +4134,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_maskload_ps() { let a = &[1.0f32, 2., 3., 4., 5., 6., 7., 8.]; let p = a.as_ptr(); @@ -4144,7 +4144,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_maskstore_ps() { let mut r = _mm256_set1_ps(0.); let mask = _mm256_setr_epi32(0, !0, 0, !0, 0, !0, 0, !0); @@ -4154,7 +4154,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_maskload_ps() { let a = &[1.0f32, 2., 3., 4.]; let p = a.as_ptr(); @@ -4164,7 +4164,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_maskstore_ps() { let mut r = _mm_set1_ps(0.); let mask = _mm_setr_epi32(0, !0, 0, !0); @@ -4174,7 +4174,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_movehdup_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_movehdup_ps(a); @@ -4182,7 +4182,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_moveldup_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_moveldup_ps(a); @@ -4190,7 +4190,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_movedup_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_movedup_pd(a); @@ -4198,7 +4198,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_lddqu_si256() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4219,7 +4219,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_stream_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let mut r = _mm256_undefined_si256(); @@ -4227,7 +4227,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_stream_pd() { #[repr(align(32))] struct Memory { @@ -4244,7 +4244,7 @@ mod tests { } } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_stream_ps() { #[repr(align(32))] struct Memory { @@ -4261,7 +4261,7 @@ mod tests { } } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_rcp_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_rcp_ps(a); @@ -4276,7 +4276,7 @@ mod tests { } } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_rsqrt_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_rsqrt_ps(a); @@ -4291,7 +4291,7 @@ mod tests { } } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_unpackhi_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -4300,7 +4300,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_unpackhi_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let b = _mm256_setr_ps(9., 10., 11., 12., 13., 14., 15., 16.); @@ -4309,7 +4309,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_unpacklo_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -4318,7 +4318,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_unpacklo_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let b = _mm256_setr_ps(9., 10., 11., 12., 13., 14., 15., 16.); @@ -4327,7 +4327,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testz_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let b = _mm256_setr_epi64x(5, 6, 7, 8); @@ -4338,7 +4338,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testc_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let b = _mm256_setr_epi64x(5, 6, 7, 8); @@ -4349,7 +4349,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testnzc_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let b = _mm256_setr_epi64x(5, 6, 7, 8); @@ -4361,7 +4361,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testz_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -4372,7 +4372,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testc_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -4384,7 +4384,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testnzc_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let b = _mm256_setr_pd(5., 6., 7., 8.); @@ -4396,7 +4396,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testz_pd() { let a = _mm_setr_pd(1., 2.); let b = _mm_setr_pd(5., 6.); @@ -4407,7 +4407,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testc_pd() { let a = _mm_setr_pd(1., 2.); let b = _mm_setr_pd(5., 6.); @@ -4419,7 +4419,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testnzc_pd() { let a = _mm_setr_pd(1., 2.); let b = _mm_setr_pd(5., 6.); @@ -4431,7 +4431,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testz_ps() { let a = _mm256_set1_ps(1.); let r = _mm256_testz_ps(a, a); @@ -4441,7 +4441,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testc_ps() { let a = _mm256_set1_ps(1.); let r = _mm256_testc_ps(a, a); @@ -4451,7 +4451,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_testnzc_ps() { let a = _mm256_set1_ps(1.); let r = _mm256_testnzc_ps(a, a); @@ -4462,7 +4462,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testz_ps() { let a = _mm_set1_ps(1.); let r = _mm_testz_ps(a, a); @@ -4472,7 +4472,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testc_ps() { let a = _mm_set1_ps(1.); let r = _mm_testc_ps(a, a); @@ -4482,7 +4482,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm_testnzc_ps() { let a = _mm_set1_ps(1.); let r = _mm_testnzc_ps(a, a); @@ -4493,45 +4493,45 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_movemask_pd() { let a = _mm256_setr_pd(1., -2., 3., -4.); let r = _mm256_movemask_pd(a); assert_eq!(r, 0xA); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_movemask_ps() { let a = _mm256_setr_ps(1., -2., 3., -4., 1., -2., 3., -4.); let r = _mm256_movemask_ps(a); assert_eq!(r, 0xAA); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setzero_pd() { let r = _mm256_setzero_pd(); assert_eq_m256d(r, _mm256_set1_pd(0.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setzero_ps() { let r = _mm256_setzero_ps(); assert_eq_m256(r, _mm256_set1_ps(0.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setzero_si256() { let r = _mm256_setzero_si256(); assert_eq_m256i(r, _mm256_set1_epi8(0)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_pd() { let r = _mm256_set_pd(1., 2., 3., 4.); assert_eq_m256d(r, _mm256_setr_pd(4., 3., 2., 1.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_ps() { let r = _mm256_set_ps(1., 2., 3., 4., 5., 6., 7., 8.); assert_eq_m256( @@ -4540,7 +4540,7 @@ mod tests { ); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm256_set_epi8( @@ -4559,7 +4559,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm256_set_epi16( @@ -4574,25 +4574,25 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_epi32() { let r = _mm256_set_epi32(1, 2, 3, 4, 5, 6, 7, 8); assert_eq_m256i(r, _mm256_setr_epi32(8, 7, 6, 5, 4, 3, 2, 1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_epi64x() { let r = _mm256_set_epi64x(1, 2, 3, 4); assert_eq_m256i(r, _mm256_setr_epi64x(4, 3, 2, 1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_pd() { let r = _mm256_setr_pd(1., 2., 3., 4.); assert_eq_m256d(r, _mm256_setr_pd(1., 2., 3., 4.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_ps() { let r = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); assert_eq_m256( @@ -4601,7 +4601,7 @@ mod tests { ); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm256_setr_epi8( @@ -4621,7 +4621,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm256_setr_epi16( @@ -4636,55 +4636,55 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_epi32() { let r = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); assert_eq_m256i(r, _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_epi64x() { let r = _mm256_setr_epi64x(1, 2, 3, 4); assert_eq_m256i(r, _mm256_setr_epi64x(1, 2, 3, 4)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_pd() { let r = _mm256_set1_pd(1.); assert_eq_m256d(r, _mm256_set1_pd(1.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_ps() { let r = _mm256_set1_ps(1.); assert_eq_m256(r, _mm256_set1_ps(1.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_epi8() { let r = _mm256_set1_epi8(1); assert_eq_m256i(r, _mm256_set1_epi8(1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_epi16() { let r = _mm256_set1_epi16(1); assert_eq_m256i(r, _mm256_set1_epi16(1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_epi32() { let r = _mm256_set1_epi32(1); assert_eq_m256i(r, _mm256_set1_epi32(1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set1_epi64x() { let r = _mm256_set1_epi64x(1); assert_eq_m256i(r, _mm256_set1_epi64x(1)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castpd_ps() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_castpd_ps(a); @@ -4692,7 +4692,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castps_pd() { let a = _mm256_setr_ps(0., 1.875, 0., 2., 0., 2.125, 0., 2.25); let r = _mm256_castps_pd(a); @@ -4700,7 +4700,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castps_si256() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_castps_si256(a); @@ -4714,7 +4714,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castsi256_ps() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4728,42 +4728,42 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castpd_si256() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_castpd_si256(a); assert_eq_m256d(mem::transmute(r), a); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castsi256_pd() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let r = _mm256_castsi256_pd(a); assert_eq_m256d(r, mem::transmute(a)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castps256_ps128() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_castps256_ps128(a); assert_eq_m128(r, _mm_setr_ps(1., 2., 3., 4.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castpd256_pd128() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_castpd256_pd128(a); assert_eq_m128d(r, _mm_setr_pd(1., 2.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_castsi256_si128() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let r = _mm256_castsi256_si128(a); assert_eq_m128i(r, _mm_setr_epi64x(1, 2)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_zextps128_ps256() { let a = _mm_setr_ps(1., 2., 3., 4.); let r = _mm256_zextps128_ps256(a); @@ -4771,7 +4771,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_zextsi128_si256() { let a = _mm_setr_epi64x(1, 2); let r = _mm256_zextsi128_si256(a); @@ -4779,7 +4779,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_zextpd128_pd256() { let a = _mm_setr_pd(1., 2.); let r = _mm256_zextpd128_pd256(a); @@ -4787,7 +4787,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_m128() { let hi = _mm_setr_ps(5., 6., 7., 8.); let lo = _mm_setr_ps(1., 2., 3., 4.); @@ -4796,7 +4796,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_m128d() { let hi = _mm_setr_pd(3., 4.); let lo = _mm_setr_pd(1., 2.); @@ -4805,7 +4805,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_set_m128i() { #[cfg_attr(rustfmt, rustfmt_skip)] let hi = _mm_setr_epi8( @@ -4832,7 +4832,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_m128() { let lo = _mm_setr_ps(1., 2., 3., 4.); let hi = _mm_setr_ps(5., 6., 7., 8.); @@ -4841,7 +4841,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_m128d() { let lo = _mm_setr_pd(1., 2.); let hi = _mm_setr_pd(3., 4.); @@ -4850,7 +4850,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_setr_m128i() { #[cfg_attr(rustfmt, rustfmt_skip)] let lo = _mm_setr_epi8( @@ -4875,7 +4875,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu2_m128() { let hi = &[5., 6., 7., 8.]; let hiaddr = hi.as_ptr(); @@ -4886,7 +4886,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu2_m128d() { let hi = &[3., 4.]; let hiaddr = hi.as_ptr(); @@ -4897,7 +4897,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_loadu2_m128i() { #[cfg_attr(rustfmt, rustfmt_skip)] let hi = _mm_setr_epi8( @@ -4923,7 +4923,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu2_m128() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let mut hi = _mm_undefined_ps(); @@ -4937,7 +4937,7 @@ mod tests { assert_eq_m128(lo, _mm_setr_ps(1., 2., 3., 4.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu2_m128d() { let a = _mm256_setr_pd(1., 2., 3., 4.); let mut hi = _mm_undefined_pd(); @@ -4951,7 +4951,7 @@ mod tests { assert_eq_m128d(lo, _mm_setr_pd(1., 2.)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_storeu2_m128i() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4978,7 +4978,7 @@ mod tests { assert_eq_m128i(lo, e_lo); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_cvtss_f32() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let r = _mm256_cvtss_f32(a); diff --git a/coresimd/x86/avx2.rs b/coresimd/x86/avx2.rs index 9d0ef1bb0fe83..982b293b88ec5 100644 --- a/coresimd/x86/avx2.rs +++ b/coresimd/x86/avx2.rs @@ -2792,8 +2792,6 @@ pub unsafe fn _mm256_shuffle_epi8(a: __m256i, b: __m256i) -> __m256i { /// `imm8`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3546,8 +3544,6 @@ pub unsafe fn _mm256_subs_epu8(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane in `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3601,8 +3597,6 @@ pub unsafe fn _mm256_unpackhi_epi8(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3655,8 +3649,6 @@ pub unsafe fn _mm256_unpacklo_epi8(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3707,8 +3699,6 @@ pub unsafe fn _mm256_unpackhi_epi16(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3760,8 +3750,6 @@ pub unsafe fn _mm256_unpacklo_epi16(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3809,8 +3797,6 @@ pub unsafe fn _mm256_unpackhi_epi32(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3858,8 +3844,6 @@ pub unsafe fn _mm256_unpacklo_epi32(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -3903,8 +3887,6 @@ pub unsafe fn _mm256_unpackhi_epi64(a: __m256i, b: __m256i) -> __m256i { /// 128-bit lane of `a` and `b`. /// /// ```rust -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature, stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -4280,7 +4262,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_abs_epi32() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi32( @@ -4296,7 +4278,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_abs_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -4312,7 +4294,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_abs_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4332,7 +4314,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_add_epi64() { let a = _mm256_setr_epi64x(-10, 0, 100, 1_000_000_000); let b = _mm256_setr_epi64x(-1, 0, 1, 2); @@ -4341,7 +4323,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_add_epi32() { let a = _mm256_setr_epi32(-1, 0, 1, 2, 3, 4, 5, 6); let b = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); @@ -4350,7 +4332,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_add_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -4371,7 +4353,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_add_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4398,7 +4380,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4425,7 +4407,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi8_saturate_positive() { let a = _mm256_set1_epi8(0x7F); let b = _mm256_set1_epi8(1); @@ -4433,7 +4415,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi8_saturate_negative() { let a = _mm256_set1_epi8(-0x80); let b = _mm256_set1_epi8(-1); @@ -4441,7 +4423,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -4463,7 +4445,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi16_saturate_positive() { let a = _mm256_set1_epi16(0x7FFF); let b = _mm256_set1_epi16(1); @@ -4471,7 +4453,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epi16_saturate_negative() { let a = _mm256_set1_epi16(-0x8000); let b = _mm256_set1_epi16(-1); @@ -4479,7 +4461,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epu8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4506,7 +4488,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epu8_saturate() { let a = _mm256_set1_epi8(!0); let b = _mm256_set1_epi8(1); @@ -4514,7 +4496,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epu16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -4536,7 +4518,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_adds_epu16_saturate() { let a = _mm256_set1_epi16(!0); let b = _mm256_set1_epi16(1); @@ -4544,7 +4526,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_and_si256() { let a = _mm256_set1_epi8(5); let b = _mm256_set1_epi8(3); @@ -4552,7 +4534,7 @@ mod tests { assert_eq_m256i(got, _mm256_set1_epi8(1)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_andnot_si256() { let a = _mm256_set1_epi8(5); let b = _mm256_set1_epi8(3); @@ -4560,21 +4542,21 @@ mod tests { assert_eq_m256i(got, _mm256_set1_epi8(2)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_avg_epu8() { let (a, b) = (_mm256_set1_epi8(3), _mm256_set1_epi8(9)); let r = _mm256_avg_epu8(a, b); assert_eq_m256i(r, _mm256_set1_epi8(6)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_avg_epu16() { let (a, b) = (_mm256_set1_epi16(3), _mm256_set1_epi16(9)); let r = _mm256_avg_epu16(a, b); assert_eq_m256i(r, _mm256_set1_epi16(6)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_blend_epi32() { let (a, b) = (_mm_set1_epi32(3), _mm_set1_epi32(9)); let e = _mm_setr_epi32(9, 3, 3, 3); @@ -4585,7 +4567,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_blend_epi32() { let (a, b) = (_mm256_set1_epi32(3), _mm256_set1_epi32(9)); let e = _mm256_setr_epi32(9, 3, 3, 3, 3, 3, 3, 3); @@ -4601,7 +4583,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_blend_epi16() { let (a, b) = (_mm256_set1_epi16(3), _mm256_set1_epi16(9)); let e = @@ -4613,7 +4595,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_blendv_epi8() { let (a, b) = (_mm256_set1_epi8(4), _mm256_set1_epi8(2)); let mask = _mm256_insert_epi8(_mm256_set1_epi8(0), -1, 2); @@ -4622,63 +4604,63 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastb_epi8() { let a = _mm_insert_epi8(_mm_set1_epi8(0x00), 0x2a, 0); let res = _mm_broadcastb_epi8(a); assert_eq_m128i(res, _mm_set1_epi8(0x2a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastb_epi8() { let a = _mm_insert_epi8(_mm_set1_epi8(0x00), 0x2a, 0); let res = _mm256_broadcastb_epi8(a); assert_eq_m256i(res, _mm256_set1_epi8(0x2a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastd_epi32() { let a = _mm_setr_epi32(0x2a, 0x8000000, 0, 0); let res = _mm_broadcastd_epi32(a); assert_eq_m128i(res, _mm_set1_epi32(0x2a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastd_epi32() { let a = _mm_setr_epi32(0x2a, 0x8000000, 0, 0); let res = _mm256_broadcastd_epi32(a); assert_eq_m256i(res, _mm256_set1_epi32(0x2a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastq_epi64() { let a = _mm_setr_epi64x(0x1ffffffff, 0); let res = _mm_broadcastq_epi64(a); assert_eq_m128i(res, _mm_set1_epi64x(0x1ffffffff)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastq_epi64() { let a = _mm_setr_epi64x(0x1ffffffff, 0); let res = _mm256_broadcastq_epi64(a); assert_eq_m256i(res, _mm256_set1_epi64x(0x1ffffffff)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastsd_pd() { let a = _mm_setr_pd(6.28, 3.14); let res = _mm_broadcastsd_pd(a); assert_eq_m128d(res, _mm_set1_pd(6.28f64)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastsd_pd() { let a = _mm_setr_pd(6.28, 3.14); let res = _mm256_broadcastsd_pd(a); assert_eq_m256d(res, _mm256_set1_pd(6.28f64)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastsi128_si256() { let a = _mm_setr_epi64x(0x0987654321012334, 0x5678909876543210); let res = _mm256_broadcastsi128_si256(a); @@ -4691,35 +4673,35 @@ mod tests { assert_eq_m256i(res, retval); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastss_ps() { let a = _mm_setr_ps(6.28, 3.14, 0.0, 0.0); let res = _mm_broadcastss_ps(a); assert_eq_m128(res, _mm_set1_ps(6.28f32)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastss_ps() { let a = _mm_setr_ps(6.28, 3.14, 0.0, 0.0); let res = _mm256_broadcastss_ps(a); assert_eq_m256(res, _mm256_set1_ps(6.28f32)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_broadcastw_epi16() { let a = _mm_insert_epi16(_mm_set1_epi16(0x2a), 0x22b, 0); let res = _mm_broadcastw_epi16(a); assert_eq_m128i(res, _mm_set1_epi16(0x22b)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_broadcastw_epi16() { let a = _mm_insert_epi16(_mm_set1_epi16(0x2a), 0x22b, 0); let res = _mm256_broadcastw_epi16(a); assert_eq_m256i(res, _mm256_set1_epi16(0x22b)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpeq_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -4742,7 +4724,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpeq_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -4761,7 +4743,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpeq_epi32() { let a = _mm256_setr_epi32(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm256_setr_epi32(7, 6, 2, 4, 3, 2, 1, 0); @@ -4771,7 +4753,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpeq_epi64() { let a = _mm256_setr_epi64x(0, 1, 2, 3); let b = _mm256_setr_epi64x(3, 2, 2, 0); @@ -4782,7 +4764,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpgt_epi8() { let a = _mm256_insert_epi8(_mm256_set1_epi8(0), 5, 0); let b = _mm256_set1_epi8(0); @@ -4793,7 +4775,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpgt_epi16() { let a = _mm256_insert_epi16(_mm256_set1_epi16(0), 5, 0); let b = _mm256_set1_epi16(0); @@ -4804,7 +4786,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpgt_epi32() { let a = _mm256_insert_epi32(_mm256_set1_epi32(0), 5, 0); let b = _mm256_set1_epi32(0); @@ -4815,7 +4797,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cmpgt_epi64() { let a = _mm256_insert_epi64(_mm256_set1_epi64x(0), 5, 0); let b = _mm256_set1_epi64x(0); @@ -4826,7 +4808,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi8_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4841,7 +4823,7 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepi8_epi16(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi8_epi32() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4852,7 +4834,7 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepi8_epi32(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi8_epi64() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4863,49 +4845,49 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepi8_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi16_epi32() { let a = _mm_setr_epi16(0, 0, -1, 1, -2, 2, -3, 3); let r = _mm256_setr_epi32(0, 0, -1, 1, -2, 2, -3, 3); assert_eq_m256i(r, _mm256_cvtepi16_epi32(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi16_epi64() { let a = _mm_setr_epi16(0, 0, -1, 1, -2, 2, -3, 3); let r = _mm256_setr_epi64x(0, 0, -1, 1); assert_eq_m256i(r, _mm256_cvtepi16_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepi32_epi64() { let a = _mm_setr_epi32(0, 0, -1, 1); let r = _mm256_setr_epi64x(0, 0, -1, 1); assert_eq_m256i(r, _mm256_cvtepi32_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu16_epi32() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let r = _mm256_setr_epi32(0, 1, 2, 3, 4, 5, 6, 7); assert_eq_m256i(r, _mm256_cvtepu16_epi32(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu16_epi64() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let r = _mm256_setr_epi64x(0, 1, 2, 3); assert_eq_m256i(r, _mm256_cvtepu16_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu32_epi64() { let a = _mm_setr_epi32(0, 1, 2, 3); let r = _mm256_setr_epi64x(0, 1, 2, 3); assert_eq_m256i(r, _mm256_cvtepu32_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu8_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4920,7 +4902,7 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepu8_epi16(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu8_epi32() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4931,7 +4913,7 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepu8_epi32(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtepu8_epi64() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4942,7 +4924,7 @@ mod tests { assert_eq_m256i(r, _mm256_cvtepu8_epi64(a)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_extracti128_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let r = _mm256_extracti128_si256(a, 0b01); @@ -4950,7 +4932,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hadd_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -4960,7 +4942,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hadd_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -4969,7 +4951,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hadds_epi16() { let a = _mm256_set1_epi16(2); let a = _mm256_insert_epi16(a, 0x7fff, 0); @@ -4984,7 +4966,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hsub_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -4993,7 +4975,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hsub_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5002,7 +4984,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_hsubs_epi16() { let a = _mm256_set1_epi16(2); let a = _mm256_insert_epi16(a, 0x7fff, 0); @@ -5013,7 +4995,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_madd_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5022,7 +5004,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_inserti128_si256() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let b = _mm_setr_epi64x(7, 8); @@ -5031,7 +5013,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_maddubs_epi16() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5040,7 +5022,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_maskload_epi32() { let nums = [1, 2, 3, 4]; let a = &nums as *const i32; @@ -5050,7 +5032,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_maskload_epi32() { let nums = [1, 2, 3, 4, 5, 6, 7, 8]; let a = &nums as *const i32; @@ -5060,7 +5042,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_maskload_epi64() { let nums = [1_i64, 2_i64]; let a = &nums as *const i64; @@ -5070,7 +5052,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_maskload_epi64() { let nums = [1_i64, 2_i64, 3_i64, 4_i64]; let a = &nums as *const i64; @@ -5080,7 +5062,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_maskstore_epi32() { let a = _mm_setr_epi32(1, 2, 3, 4); let mut arr = [-1, -1, -1, -1]; @@ -5090,7 +5072,7 @@ mod tests { assert_eq!(arr, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_maskstore_epi32() { let a = _mm256_setr_epi32(1, 0x6d726f, 3, 42, 0x777161, 6, 7, 8); let mut arr = [-1, -1, -1, 0x776173, -1, 0x68657265, -1, -1]; @@ -5100,7 +5082,7 @@ mod tests { assert_eq!(arr, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_maskstore_epi64() { let a = _mm_setr_epi64x(1_i64, 2_i64); let mut arr = [-1_i64, -1_i64]; @@ -5110,7 +5092,7 @@ mod tests { assert_eq!(arr, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_maskstore_epi64() { let a = _mm256_setr_epi64x(1_i64, 2_i64, 3_i64, 4_i64); let mut arr = [-1_i64, -1_i64, -1_i64, -1_i64]; @@ -5120,7 +5102,7 @@ mod tests { assert_eq!(arr, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5128,7 +5110,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5136,7 +5118,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epi8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5144,7 +5126,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epu16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5152,7 +5134,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epu32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5160,7 +5142,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_max_epu8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5168,7 +5150,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5176,7 +5158,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5184,7 +5166,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epi8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5192,7 +5174,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epu16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5200,7 +5182,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epu32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5208,7 +5190,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_min_epu8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5216,7 +5198,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_movemask_epi8() { let a = _mm256_set1_epi8(-1); let r = _mm256_movemask_epi8(a); @@ -5224,7 +5206,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mpsadbw_epu8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5233,7 +5215,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mul_epi32() { let a = _mm256_setr_epi32(0, 0, 0, 0, 2, 2, 2, 2); let b = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); @@ -5242,7 +5224,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mul_epu32() { let a = _mm256_setr_epi32(0, 0, 0, 0, 2, 2, 2, 2); let b = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); @@ -5251,7 +5233,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mulhi_epi16() { let a = _mm256_set1_epi16(6535); let b = _mm256_set1_epi16(6535); @@ -5260,7 +5242,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mulhi_epu16() { let a = _mm256_set1_epi16(6535); let b = _mm256_set1_epi16(6535); @@ -5269,7 +5251,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mullo_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5278,7 +5260,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mullo_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5287,7 +5269,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mulhrs_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5296,7 +5278,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_or_si256() { let a = _mm256_set1_epi8(-1); let b = _mm256_set1_epi8(0); @@ -5304,7 +5286,7 @@ mod tests { assert_eq_m256i(r, a); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_packs_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5320,7 +5302,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_packs_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5331,7 +5313,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_packus_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(4); @@ -5347,7 +5329,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_packus_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(4); @@ -5358,7 +5340,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sad_epu8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(4); @@ -5367,7 +5349,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_shufflehi_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -5383,7 +5365,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_shufflelo_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -5399,7 +5381,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sign_epi16() { let a = _mm256_set1_epi16(2); let b = _mm256_set1_epi16(-1); @@ -5408,7 +5390,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sign_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(-1); @@ -5417,7 +5399,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sign_epi8() { let a = _mm256_set1_epi8(2); let b = _mm256_set1_epi8(-1); @@ -5426,7 +5408,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sll_epi16() { let a = _mm256_set1_epi16(0xFF); let b = _mm_insert_epi16(_mm_set1_epi16(0), 4, 0); @@ -5434,7 +5416,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi16(0xFF0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sll_epi32() { let a = _mm256_set1_epi32(0xFFFF); let b = _mm_insert_epi32(_mm_set1_epi32(0), 4, 0); @@ -5442,7 +5424,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi32(0xFFFF0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sll_epi64() { let a = _mm256_set1_epi64x(0xFFFFFFFF); let b = _mm_insert_epi64(_mm_set1_epi64x(0), 4, 0); @@ -5450,7 +5432,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi64x(0xFFFFFFFF0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_slli_epi16() { assert_eq_m256i( _mm256_slli_epi16(_mm256_set1_epi16(0xFF), 4), @@ -5458,7 +5440,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_slli_epi32() { assert_eq_m256i( _mm256_slli_epi32(_mm256_set1_epi32(0xFFFF), 4), @@ -5466,7 +5448,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_slli_epi64() { assert_eq_m256i( _mm256_slli_epi64(_mm256_set1_epi64x(0xFFFFFFFF), 4), @@ -5474,14 +5456,14 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_slli_si256() { let a = _mm256_set1_epi64x(0xFFFFFFFF); let r = _mm256_slli_si256(a, 3); assert_eq_m256i(r, _mm256_set1_epi64x(0xFFFFFFFF000000)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_sllv_epi32() { let a = _mm_set1_epi32(2); let b = _mm_set1_epi32(1); @@ -5490,7 +5472,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sllv_epi32() { let a = _mm256_set1_epi32(2); let b = _mm256_set1_epi32(1); @@ -5499,7 +5481,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_sllv_epi64() { let a = _mm_set1_epi64x(2); let b = _mm_set1_epi64x(1); @@ -5508,7 +5490,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sllv_epi64() { let a = _mm256_set1_epi64x(2); let b = _mm256_set1_epi64x(1); @@ -5517,7 +5499,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sra_epi16() { let a = _mm256_set1_epi16(-1); let b = _mm_setr_epi16(1, 0, 0, 0, 0, 0, 0, 0); @@ -5525,7 +5507,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi16(-1)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sra_epi32() { let a = _mm256_set1_epi32(-1); let b = _mm_insert_epi32(_mm_set1_epi32(0), 1, 0); @@ -5533,7 +5515,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi32(-1)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srai_epi16() { assert_eq_m256i( _mm256_srai_epi16(_mm256_set1_epi16(-1), 1), @@ -5541,7 +5523,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srai_epi32() { assert_eq_m256i( _mm256_srai_epi32(_mm256_set1_epi32(-1), 1), @@ -5549,7 +5531,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_srav_epi32() { let a = _mm_set1_epi32(4); let count = _mm_set1_epi32(1); @@ -5558,7 +5540,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srav_epi32() { let a = _mm256_set1_epi32(4); let count = _mm256_set1_epi32(1); @@ -5567,7 +5549,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srli_si256() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -5587,7 +5569,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srl_epi16() { let a = _mm256_set1_epi16(0xFF); let b = _mm_insert_epi16(_mm_set1_epi16(0), 4, 0); @@ -5595,7 +5577,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi16(0xF)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srl_epi32() { let a = _mm256_set1_epi32(0xFFFF); let b = _mm_insert_epi32(_mm_set1_epi32(0), 4, 0); @@ -5603,7 +5585,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi32(0xFFF)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srl_epi64() { let a = _mm256_set1_epi64x(0xFFFFFFFF); let b = _mm_setr_epi64x(4, 0); @@ -5611,7 +5593,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi64x(0xFFFFFFF)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srli_epi16() { assert_eq_m256i( _mm256_srli_epi16(_mm256_set1_epi16(0xFF), 4), @@ -5619,7 +5601,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srli_epi32() { assert_eq_m256i( _mm256_srli_epi32(_mm256_set1_epi32(0xFFFF), 4), @@ -5627,7 +5609,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srli_epi64() { assert_eq_m256i( _mm256_srli_epi64(_mm256_set1_epi64x(0xFFFFFFFF), 4), @@ -5635,7 +5617,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_srlv_epi32() { let a = _mm_set1_epi32(2); let count = _mm_set1_epi32(1); @@ -5644,7 +5626,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srlv_epi32() { let a = _mm256_set1_epi32(2); let count = _mm256_set1_epi32(1); @@ -5653,7 +5635,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_srlv_epi64() { let a = _mm_set1_epi64x(2); let count = _mm_set1_epi64x(1); @@ -5662,7 +5644,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_srlv_epi64() { let a = _mm256_set1_epi64x(2); let count = _mm256_set1_epi64x(1); @@ -5671,7 +5653,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sub_epi16() { let a = _mm256_set1_epi16(4); let b = _mm256_set1_epi16(2); @@ -5679,7 +5661,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sub_epi32() { let a = _mm256_set1_epi32(4); let b = _mm256_set1_epi32(2); @@ -5687,7 +5669,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sub_epi64() { let a = _mm256_set1_epi64x(4); let b = _mm256_set1_epi64x(2); @@ -5695,7 +5677,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_sub_epi8() { let a = _mm256_set1_epi8(4); let b = _mm256_set1_epi8(2); @@ -5703,7 +5685,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_subs_epi16() { let a = _mm256_set1_epi16(4); let b = _mm256_set1_epi16(2); @@ -5711,7 +5693,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_subs_epi8() { let a = _mm256_set1_epi8(4); let b = _mm256_set1_epi8(2); @@ -5719,7 +5701,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_subs_epu16() { let a = _mm256_set1_epi16(4); let b = _mm256_set1_epi16(2); @@ -5727,7 +5709,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_subs_epu8() { let a = _mm256_set1_epi8(4); let b = _mm256_set1_epi8(2); @@ -5735,7 +5717,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_xor_si256() { let a = _mm256_set1_epi8(5); let b = _mm256_set1_epi8(3); @@ -5743,7 +5725,7 @@ mod tests { assert_eq_m256i(r, _mm256_set1_epi8(6)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_alignr_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -5806,7 +5788,7 @@ mod tests { assert_eq_m256i(r, b); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_shuffle_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -5833,7 +5815,7 @@ mod tests { assert_eq_m256i(r, expected); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_permutevar8x32_epi32() { let a = _mm256_setr_epi32(100, 200, 300, 400, 500, 600, 700, 800); let b = _mm256_setr_epi32(5, 0, 5, 1, 7, 6, 3, 4); @@ -5843,7 +5825,7 @@ mod tests { assert_eq_m256i(r, expected); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_permute4x64_epi64() { let a = _mm256_setr_epi64x(100, 200, 300, 400); let expected = _mm256_setr_epi64x(400, 100, 200, 100); @@ -5851,7 +5833,7 @@ mod tests { assert_eq_m256i(r, expected); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_permute2x128_si256() { let a = _mm256_setr_epi64x(100, 200, 500, 600); let b = _mm256_setr_epi64x(300, 400, 700, 800); @@ -5860,7 +5842,7 @@ mod tests { assert_eq_m256i(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_permute4x64_pd() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_permute4x64_pd(a, 0b00_01_00_11); @@ -5868,7 +5850,7 @@ mod tests { assert_eq_m256d(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_permutevar8x32_ps() { let a = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); let b = _mm256_setr_epi32(5, 0, 5, 1, 7, 6, 3, 4); @@ -5877,7 +5859,7 @@ mod tests { assert_eq_m256(r, e); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i32gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -5892,7 +5874,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 16, 32, 48)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i32gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -5909,7 +5891,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 16, 64, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i32gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -5924,7 +5906,7 @@ mod tests { assert_eq_m256i(r, _mm256_setr_epi32(0, 16, 32, 48, 1, 2, 3, 4)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i32gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -5944,7 +5926,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i32gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -5958,7 +5940,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 16.0, 32.0, 48.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i32gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -5977,7 +5959,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 16.0, 64.0, 256.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i32gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -5997,7 +5979,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i32gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -6028,7 +6010,7 @@ mod tests { ); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i32gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6040,7 +6022,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi64x(0, 16)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i32gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6057,7 +6039,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi64x(16, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i32gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6072,7 +6054,7 @@ mod tests { assert_eq_m256i(r, _mm256_setr_epi64x(0, 16, 32, 48)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i32gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6089,7 +6071,7 @@ mod tests { assert_eq_m256i(r, _mm256_setr_epi64x(0, 16, 64, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i32gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6102,7 +6084,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(0.0, 16.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i32gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6121,7 +6103,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(16.0, 256.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i32gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6138,7 +6120,7 @@ mod tests { assert_eq_m256d(r, _mm256_setr_pd(0.0, 16.0, 32.0, 48.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i32gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6157,7 +6139,7 @@ mod tests { assert_eq_m256d(r, _mm256_setr_pd(0.0, 16.0, 64.0, 256.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i64gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -6168,7 +6150,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 16, 0, 0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i64gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -6185,7 +6167,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 256, 0, 0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i64gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -6200,7 +6182,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 16, 32, 48)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i64gather_epi32() { let mut arr = [0i32; 128]; for i in 0..128i32 { @@ -6217,7 +6199,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 16, 64, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i64gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -6230,7 +6212,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 16.0, 0.0, 0.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i64gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -6249,7 +6231,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 256.0, 0.0, 0.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i64gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -6266,7 +6248,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 16.0, 32.0, 48.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i64gather_ps() { let mut arr = [0.0f32; 128]; let mut j = 0.0; @@ -6285,7 +6267,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.0, 16.0, 64.0, 256.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i64gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6296,7 +6278,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi64x(0, 16)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i64gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6313,7 +6295,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi64x(16, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i64gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6328,7 +6310,7 @@ mod tests { assert_eq_m256i(r, _mm256_setr_epi64x(0, 16, 32, 48)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i64gather_epi64() { let mut arr = [0i64; 128]; for i in 0..128i64 { @@ -6345,7 +6327,7 @@ mod tests { assert_eq_m256i(r, _mm256_setr_epi64x(0, 16, 64, 256)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_i64gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6358,7 +6340,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(0.0, 16.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm_mask_i64gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6377,7 +6359,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(16.0, 256.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_i64gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6394,7 +6376,7 @@ mod tests { assert_eq_m256d(r, _mm256_setr_pd(0.0, 16.0, 32.0, 48.0)); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_mask_i64gather_pd() { let mut arr = [0.0f64; 128]; let mut j = 0.0; @@ -6413,7 +6395,7 @@ mod tests { assert_eq_m256d(r, _mm256_setr_pd(0.0, 16.0, 64.0, 256.0)); } - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_extract_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi8( @@ -6428,7 +6410,7 @@ mod tests { assert_eq!(r2, 3); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_extract_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm256_setr_epi16( @@ -6441,7 +6423,7 @@ mod tests { assert_eq!(r2, 3); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_extract_epi32() { let a = _mm256_setr_epi32(-1, 1, 2, 3, 4, 5, 6, 7); let r1 = _mm256_extract_epi32(a, 0); @@ -6450,14 +6432,14 @@ mod tests { assert_eq!(r2, 3); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtsd_f64() { let a = _mm256_setr_pd(1., 2., 3., 4.); let r = _mm256_cvtsd_f64(a); assert_eq!(r, 1.); } - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_cvtsi256_si32() { let a = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); let r = _mm256_cvtsi256_si32(a); diff --git a/coresimd/x86/bmi1.rs b/coresimd/x86/bmi1.rs index cf29102e2ff10..953e3d91351a7 100644 --- a/coresimd/x86/bmi1.rs +++ b/coresimd/x86/bmi1.rs @@ -125,13 +125,13 @@ mod tests { use coresimd::x86::*; - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_bextr_u32() { let r = _bextr_u32(0b0101_0000u32, 4, 4); assert_eq!(r, 0b0000_0101u32); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_andn_u32() { assert_eq!(_andn_u32(0, 0), 0); assert_eq!(_andn_u32(0, 1), 1); @@ -154,25 +154,25 @@ mod tests { assert_eq!(r, 0b0001_1101u32); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsi_u32() { assert_eq!(_blsi_u32(0b1101_0000u32), 0b0001_0000u32); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsmsk_u32() { let r = _blsmsk_u32(0b0011_0000u32); assert_eq!(r, 0b0001_1111u32); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsr_u32() { // TODO: test the behavior when the input is 0 let r = _blsr_u32(0b0011_0000u32); assert_eq!(r, 0b0010_0000u32); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_tzcnt_u32() { assert_eq!(_tzcnt_u32(0b0000_0001u32), 0u32); assert_eq!(_tzcnt_u32(0b0000_0000u32), 32u32); diff --git a/coresimd/x86/bmi2.rs b/coresimd/x86/bmi2.rs index adb1b52fee9c2..18ee2b3fd78c7 100644 --- a/coresimd/x86/bmi2.rs +++ b/coresimd/x86/bmi2.rs @@ -81,7 +81,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_pext_u32() { let n = 0b1011_1110_1001_0011u32; @@ -95,7 +95,7 @@ mod tests { assert_eq!(_pext_u32(n, m1), s1); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_pdep_u32() { let n = 0b1011_1110_1001_0011u32; @@ -109,14 +109,14 @@ mod tests { assert_eq!(_pdep_u32(n, m1), s1); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_bzhi_u32() { let n = 0b1111_0010u32; let s = 0b0001_0010u32; assert_eq!(_bzhi_u32(n, 5), s); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_mulx_u32() { let a: u32 = 4_294_967_200; let b: u32 = 2; diff --git a/coresimd/x86/fxsr.rs b/coresimd/x86/fxsr.rs index 8a7b7d02234a0..b70e84eaf9cda 100644 --- a/coresimd/x86/fxsr.rs +++ b/coresimd/x86/fxsr.rs @@ -99,7 +99,7 @@ mod tests { } } - #[simd_test = "fxsr"] + #[simd_test(enable = "fxsr")] unsafe fn fxsave() { let mut a = FxsaveArea::new(); let mut b = FxsaveArea::new(); diff --git a/coresimd/x86/mmx.rs b/coresimd/x86/mmx.rs index b3f42f67c7c54..6e6b0b7d4faac 100644 --- a/coresimd/x86/mmx.rs +++ b/coresimd/x86/mmx.rs @@ -490,13 +490,13 @@ mod tests { use coresimd::x86::*; use stdsimd_test::simd_test; - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_setzero_si64() { let r: __m64 = ::std::mem::transmute(0_i64); assert_eq_m64(r, _mm_setzero_si64()); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_add_pi8() { let a = _mm_setr_pi8(-1, -1, 1, 1, -1, 0, 1, 0); let b = _mm_setr_pi8(-127, 101, 99, 126, 0, -1, 0, 1); @@ -505,7 +505,7 @@ mod tests { assert_eq_m64(e, _m_paddb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_add_pi16() { let a = _mm_setr_pi16(-1, -1, 1, 1); let b = _mm_setr_pi16( @@ -524,7 +524,7 @@ mod tests { assert_eq_m64(e, _m_paddw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_add_pi32() { let a = _mm_setr_pi32(1, -1); let b = _mm_setr_pi32(i32::max_value() - 1, i32::min_value() + 1); @@ -533,7 +533,7 @@ mod tests { assert_eq_m64(e, _m_paddd(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_adds_pi8() { let a = _mm_setr_pi8(-100, -1, 1, 100, -1, 0, 1, 0); let b = _mm_setr_pi8(-100, 1, -1, 100, 0, -1, 0, 1); @@ -551,7 +551,7 @@ mod tests { assert_eq_m64(e, _m_paddsb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_adds_pi16() { let a = _mm_setr_pi16(-32000, 32000, 4, 0); let b = _mm_setr_pi16(-32000, 32000, -5, 1); @@ -560,7 +560,7 @@ mod tests { assert_eq_m64(e, _m_paddsw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_adds_pu8() { let a = _mm_setr_pi8(0, 1, 2, 3, 4, 5, 6, 200u8 as i8); let b = _mm_setr_pi8(0, 10, 20, 30, 40, 50, 60, 200u8 as i8); @@ -569,7 +569,7 @@ mod tests { assert_eq_m64(e, _m_paddusb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_adds_pu16() { let a = _mm_setr_pi16(0, 1, 2, 60000u16 as i16); let b = _mm_setr_pi16(0, 10, 20, 60000u16 as i16); @@ -578,7 +578,7 @@ mod tests { assert_eq_m64(e, _m_paddusw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_sub_pi8() { let a = _mm_setr_pi8(0, 0, 1, 1, -1, -1, 0, 0); let b = _mm_setr_pi8(-1, 1, -2, 2, 100, -100, -127, 127); @@ -587,7 +587,7 @@ mod tests { assert_eq_m64(e, _m_psubb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_sub_pi16() { let a = _mm_setr_pi16(-20000, -20000, 20000, 30000); let b = _mm_setr_pi16(-10000, 10000, -10000, 30000); @@ -596,7 +596,7 @@ mod tests { assert_eq_m64(e, _m_psubw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_sub_pi32() { let a = _mm_setr_pi32(500_000, -500_000); let b = _mm_setr_pi32(500_000, 500_000); @@ -605,7 +605,7 @@ mod tests { assert_eq_m64(e, _m_psubd(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_subs_pi8() { let a = _mm_setr_pi8(-100, 100, 0, 0, 0, 0, -5, 5); let b = _mm_setr_pi8(100, -100, i8::min_value(), 127, -1, 1, 3, -3); @@ -623,7 +623,7 @@ mod tests { assert_eq_m64(e, _m_psubsb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_subs_pi16() { let a = _mm_setr_pi16(-20000, 20000, 0, 0); let b = _mm_setr_pi16(20000, -20000, -1, 1); @@ -632,7 +632,7 @@ mod tests { assert_eq_m64(e, _m_psubsw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_subs_pu8() { let a = _mm_setr_pi8(50, 10, 20, 30, 40, 60, 70, 80); let b = _mm_setr_pi8(60, 20, 30, 40, 30, 20, 10, 0); @@ -641,7 +641,7 @@ mod tests { assert_eq_m64(e, _m_psubusb(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_subs_pu16() { let a = _mm_setr_pi16(10000, 200, 0, 44444u16 as i16); let b = _mm_setr_pi16(20000, 300, 1, 11111); @@ -650,7 +650,7 @@ mod tests { assert_eq_m64(e, _m_psubusw(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_packs_pi16() { let a = _mm_setr_pi16(-1, 2, -3, 4); let b = _mm_setr_pi16(-5, 6, -7, 8); @@ -658,7 +658,7 @@ mod tests { assert_eq_m64(r, _mm_packs_pi16(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_packs_pi32() { let a = _mm_setr_pi32(-1, 2); let b = _mm_setr_pi32(-5, 6); @@ -666,7 +666,7 @@ mod tests { assert_eq_m64(r, _mm_packs_pi32(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_cmpgt_pi8() { let a = _mm_setr_pi8(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_pi8(8, 7, 6, 5, 4, 3, 2, 1); @@ -674,7 +674,7 @@ mod tests { assert_eq_m64(r, _mm_cmpgt_pi8(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_cmpgt_pi16() { let a = _mm_setr_pi16(0, 1, 2, 3); let b = _mm_setr_pi16(4, 3, 2, 1); @@ -682,7 +682,7 @@ mod tests { assert_eq_m64(r, _mm_cmpgt_pi16(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_cmpgt_pi32() { let a = _mm_setr_pi32(0, 3); let b = _mm_setr_pi32(1, 2); @@ -693,7 +693,7 @@ mod tests { assert_eq_m64(r1, _mm_cmpgt_pi32(b, a)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpackhi_pi8() { let a = _mm_setr_pi8(0, 3, 4, 7, 8, 11, 12, 15); let b = _mm_setr_pi8(1, 2, 5, 6, 9, 10, 13, 14); @@ -702,7 +702,7 @@ mod tests { assert_eq_m64(r, _mm_unpackhi_pi8(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpacklo_pi8() { let a = _mm_setr_pi8(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_pi8(8, 9, 10, 11, 12, 13, 14, 15); @@ -710,7 +710,7 @@ mod tests { assert_eq_m64(r, _mm_unpacklo_pi8(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpackhi_pi16() { let a = _mm_setr_pi16(0, 1, 2, 3); let b = _mm_setr_pi16(4, 5, 6, 7); @@ -718,7 +718,7 @@ mod tests { assert_eq_m64(r, _mm_unpackhi_pi16(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpacklo_pi16() { let a = _mm_setr_pi16(0, 1, 2, 3); let b = _mm_setr_pi16(4, 5, 6, 7); @@ -726,7 +726,7 @@ mod tests { assert_eq_m64(r, _mm_unpacklo_pi16(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpackhi_pi32() { let a = _mm_setr_pi32(0, 3); let b = _mm_setr_pi32(1, 2); @@ -735,7 +735,7 @@ mod tests { assert_eq_m64(r, _mm_unpackhi_pi32(a, b)); } - #[simd_test = "mmx"] + #[simd_test(enable = "mmx")] unsafe fn test_mm_unpacklo_pi32() { let a = _mm_setr_pi32(0, 3); let b = _mm_setr_pi32(1, 2); diff --git a/coresimd/x86/mod.rs b/coresimd/x86/mod.rs index f9a96f8f8e6f2..93faecf045bf5 100644 --- a/coresimd/x86/mod.rs +++ b/coresimd/x86/mod.rs @@ -33,9 +33,7 @@ types! { /// # Examples /// /// ``` - /// # #![feature(stdsimd)] - /// # #![cfg_attr(dox, feature(mmx_target_feature))] - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature))] + /// # #![feature(stdsimd, mmx_target_feature)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -85,7 +83,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -129,7 +127,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -173,7 +171,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -221,7 +219,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -265,7 +263,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -309,7 +307,7 @@ types! { /// # Examples /// /// ``` - /// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature, stdsimd))] + /// # #![cfg_attr(not(dox), feature(stdsimd))] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] /// # extern crate std as real_std; @@ -606,14 +604,14 @@ pub use self::bmi1::*; mod bmi2; pub use self::bmi2::*; -#[cfg(not(feature = "intel_sde"))] +#[cfg(not(stdsimd_intel_sde))] mod sse4a; -#[cfg(not(feature = "intel_sde"))] +#[cfg(not(stdsimd_intel_sde))] pub use self::sse4a::*; -#[cfg(not(feature = "intel_sde"))] +#[cfg(not(stdsimd_intel_sde))] mod tbm; -#[cfg(not(feature = "intel_sde"))] +#[cfg(not(stdsimd_intel_sde))] pub use self::tbm::*; mod mmx; diff --git a/coresimd/x86/pclmulqdq.rs b/coresimd/x86/pclmulqdq.rs index 4cef220295108..e33928f06d916 100644 --- a/coresimd/x86/pclmulqdq.rs +++ b/coresimd/x86/pclmulqdq.rs @@ -59,7 +59,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "pclmulqdq"] + #[simd_test(enable = "pclmulqdq")] unsafe fn test_mm_clmulepi64_si128() { // Constants taken from https://software.intel.com/sites/default/files/managed/72/cc/clmul-wp-rev-2.02-2014-04-20.pdf let a = _mm_set_epi64x(0x7b5b546573745665, 0x63746f725d53475d); diff --git a/coresimd/x86/rdrand.rs b/coresimd/x86/rdrand.rs index 2b900837fdccd..a20cee0747519 100644 --- a/coresimd/x86/rdrand.rs +++ b/coresimd/x86/rdrand.rs @@ -1,3 +1,4 @@ + //! RDRAND and RDSEED instructions for returning random numbers from an Intel //! on-chip hardware random number generator which has been seeded by an //! on-chip entropy source. diff --git a/coresimd/x86/rdtsc.rs b/coresimd/x86/rdtsc.rs index 79e32a7943878..975a1bbe79e18 100644 --- a/coresimd/x86/rdtsc.rs +++ b/coresimd/x86/rdtsc.rs @@ -62,13 +62,13 @@ mod tests { use coresimd::x86::rdtsc; use stdsimd_test::simd_test; - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn _rdtsc() { let r = rdtsc::_rdtsc(); assert_ne!(r, 0); // The chances of this being 0 are infinitesimal } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn _rdtscp() { let mut aux = 0; let r = rdtsc::__rdtscp(&mut aux); diff --git a/coresimd/x86/sha.rs b/coresimd/x86/sha.rs index 5135165cf6e3d..344cb43991e2a 100644 --- a/coresimd/x86/sha.rs +++ b/coresimd/x86/sha.rs @@ -147,7 +147,7 @@ mod tests { use stdsimd_test::simd_test; use test::black_box; // Used to inhibit constant-folding. - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha1msg1_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -157,7 +157,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha1msg2_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -167,7 +167,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha1nexte_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -177,7 +177,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha1rnds4_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -199,7 +199,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha256msg1_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -209,7 +209,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha256msg2_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); @@ -219,7 +219,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sha"] + #[simd_test(enable = "sha")] #[allow(overflowing_literals)] unsafe fn test_mm_sha256rnds2_epu32() { let a = _mm_set_epi64x(0xe9b5dba5b5c0fbcf, 0x71374491428a2f98); diff --git a/coresimd/x86/sse.rs b/coresimd/x86/sse.rs index be724472a5f9d..a51f3f14233be 100644 --- a/coresimd/x86/sse.rs +++ b/coresimd/x86/sse.rs @@ -1096,7 +1096,6 @@ pub unsafe fn _mm_movemask_ps(a: __m128) -> i32 { /// This corresponds to the `MOVHPS` / `MOVHPD` / `VMOVHPD` instructions. /// /// ```rust -/// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature))] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -1152,7 +1151,6 @@ pub unsafe fn _mm_loadh_pi(a: __m128, p: *const __m64) -> __m128 { /// This corresponds to the `MOVLPS` / `MOVLDP` / `VMOVLDP` instructions. /// /// ```rust -/// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature))] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -2525,7 +2523,7 @@ mod tests { use coresimd::simd::*; use coresimd::x86::*; - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_add_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2533,7 +2531,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-101.0, 25.0, 0.0, -15.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_add_ss() { let a = _mm_set_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_set_ps(-100.0, 20.0, 0.0, -5.0); @@ -2541,7 +2539,7 @@ mod tests { assert_eq_m128(r, _mm_set_ps(-1.0, 5.0, 0.0, -15.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_sub_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2549,7 +2547,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(99.0, -15.0, 0.0, -5.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_sub_ss() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2557,7 +2555,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(99.0, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_mul_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2565,7 +2563,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(100.0, 100.0, 0.0, 50.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_mul_ss() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2573,7 +2571,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(100.0, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_div_ps() { let a = _mm_setr_ps(-1.0, 5.0, 2.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.2, -5.0); @@ -2581,7 +2579,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.01, 0.25, 10.0, 2.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_div_ss() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2589,7 +2587,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(0.01, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_sqrt_ss() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_sqrt_ss(a); @@ -2597,7 +2595,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_sqrt_ps() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_sqrt_ps(a); @@ -2605,7 +2603,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_rcp_ss() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_rcp_ss(a); @@ -2613,7 +2611,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_rcp_ps() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_rcp_ps(a); @@ -2624,7 +2622,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_rsqrt_ss() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_rsqrt_ss(a); @@ -2635,7 +2633,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_rsqrt_ps() { let a = _mm_setr_ps(4.0, 13.0, 16.0, 100.0); let r = _mm_rsqrt_ps(a); @@ -2646,7 +2644,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_min_ss() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2654,7 +2652,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-100.0, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_min_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2662,7 +2660,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-100.0, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_max_ss() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2670,7 +2668,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-1.0, 5.0, 0.0, -10.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_max_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -2678,7 +2676,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-1.0, 20.0, 0.0, -5.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_and_ps() { let a = transmute(u32x4::splat(0b0011)); let b = transmute(u32x4::splat(0b0101)); @@ -2687,7 +2685,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_andnot_ps() { let a = transmute(u32x4::splat(0b0011)); let b = transmute(u32x4::splat(0b0101)); @@ -2696,7 +2694,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_or_ps() { let a = transmute(u32x4::splat(0b0011)); let b = transmute(u32x4::splat(0b0101)); @@ -2705,7 +2703,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_xor_ps() { let a = transmute(u32x4::splat(0b0011)); let b = transmute(u32x4::splat(0b0101)); @@ -2714,7 +2712,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpeq_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(-1.0, 5.0, 6.0, 7.0); @@ -2733,7 +2731,7 @@ mod tests { assert_eq!(r2, e2); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmplt_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2757,7 +2755,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmple_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2781,7 +2779,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpgt_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2805,7 +2803,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpge_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2829,7 +2827,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpneq_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2853,7 +2851,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnlt_ss() { // TODO: This test is exactly the same as for _mm_cmpge_ss, but there // must be a difference. It may have to do with behavior in the @@ -2882,7 +2880,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnle_ss() { // TODO: This test is exactly the same as for _mm_cmpgt_ss, but there // must be a difference. It may have to do with behavior in the @@ -2911,7 +2909,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpngt_ss() { // TODO: This test is exactly the same as for _mm_cmple_ss, but there // must be a difference. It may have to do with behavior in the @@ -2940,7 +2938,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnge_ss() { // TODO: This test is exactly the same as for _mm_cmplt_ss, but there // must be a difference. It may have to do with behavior in the @@ -2969,7 +2967,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpord_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -2993,7 +2991,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpunord_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(0.0, 5.0, 6.0, 7.0); @@ -3017,7 +3015,7 @@ mod tests { assert_eq!(rd, ed); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpeq_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, NAN); @@ -3029,7 +3027,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmplt_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, NAN); @@ -3041,7 +3039,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmple_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, 4.0); let b = _mm_setr_ps(15.0, 20.0, 1.0, NAN); @@ -3053,7 +3051,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpgt_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 42.0); @@ -3065,7 +3063,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpge_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 42.0); @@ -3077,7 +3075,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpneq_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, NAN); @@ -3089,7 +3087,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnlt_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 5.0); @@ -3101,7 +3099,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnle_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 5.0); @@ -3113,7 +3111,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpngt_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 5.0); @@ -3125,7 +3123,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpnge_ps() { let a = _mm_setr_ps(10.0, 50.0, 1.0, NAN); let b = _mm_setr_ps(15.0, 20.0, 1.0, 5.0); @@ -3137,7 +3135,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpord_ps() { let a = _mm_setr_ps(10.0, 50.0, NAN, NAN); let b = _mm_setr_ps(15.0, NAN, 1.0, NAN); @@ -3149,7 +3147,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cmpunord_ps() { let a = _mm_setr_ps(10.0, 50.0, NAN, NAN); let b = _mm_setr_ps(15.0, NAN, 1.0, NAN); @@ -3161,7 +3159,7 @@ mod tests { assert_eq!(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comieq_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3182,7 +3180,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comilt_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3203,7 +3201,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comile_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3224,7 +3222,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comigt_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3245,7 +3243,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comineq_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3266,7 +3264,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomieq_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3287,7 +3285,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomilt_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3308,7 +3306,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomile_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3329,7 +3327,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomigt_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3350,7 +3348,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomige_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3371,7 +3369,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_ucomineq_ss() { let aa = &[3.0f32, 12.0, 23.0, NAN]; let bb = &[3.0f32, 47.5, 1.5, NAN]; @@ -3392,7 +3390,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_comieq_ss_vs_ucomieq_ss() { // If one of the arguments is a quiet NaN `comieq_ss` should signal an // Invalid Operation Exception while `ucomieq_ss` should not. @@ -3441,7 +3439,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cvtss_si32() { let inputs = &[ 42.0f32, @@ -3471,7 +3469,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cvttss_si32() { let inputs = &[ (42.0f32, 42i32), @@ -3497,7 +3495,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] pub unsafe fn test_mm_cvtsi32_ss() { let inputs = &[ (4555i32, 4555.0f32), @@ -3515,19 +3513,19 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] pub unsafe fn test_mm_cvtss_f32() { let a = _mm_setr_ps(312.0134, 5.0, 6.0, 7.0); assert_eq!(_mm_cvtss_f32(a), 312.0134); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_set_ss() { let r = _mm_set_ss(black_box(4.25)); assert_eq_m128(r, _mm_setr_ps(4.25, 0.0, 0.0, 0.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_set1_ps() { let r1 = _mm_set1_ps(black_box(4.25)); let r2 = _mm_set_ps1(black_box(4.25)); @@ -3541,7 +3539,7 @@ mod tests { assert_eq!(get_m128(r2, 3), 4.25); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_set_ps() { let r = _mm_set_ps( black_box(1.0), @@ -3555,7 +3553,7 @@ mod tests { assert_eq!(get_m128(r, 3), 1.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_setr_ps() { let r = _mm_setr_ps( black_box(1.0), @@ -3566,13 +3564,13 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(1.0, 2.0, 3.0, 4.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_setzero_ps() { let r = *black_box(&_mm_setzero_ps()); assert_eq_m128(r, _mm_set1_ps(0.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_shuffle_ps() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3580,7 +3578,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(4.0, 2.0, 6.0, 5.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_unpackhi_ps() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3588,7 +3586,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(3.0, 7.0, 4.0, 8.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_unpacklo_ps() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3596,7 +3594,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(1.0, 5.0, 2.0, 6.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_movehl_ps() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3604,7 +3602,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(7.0, 8.0, 3.0, 4.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_movelh_ps() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3612,7 +3610,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(1.0, 2.0, 5.0, 6.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_loadh_pi() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let x: [f32; 4] = [5.0, 6.0, 7.0, 8.0]; @@ -3621,7 +3619,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(1.0, 2.0, 5.0, 6.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_loadl_pi() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let x: [f32; 4] = [5.0, 6.0, 7.0, 8.0]; @@ -3630,21 +3628,21 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(5.0, 6.0, 3.0, 4.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_load_ss() { let a = 42.0f32; let r = _mm_load_ss(&a as *const f32); assert_eq_m128(r, _mm_setr_ps(42.0, 0.0, 0.0, 0.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_load1_ps() { let a = 42.0f32; let r = _mm_load1_ps(&a as *const f32); assert_eq_m128(r, _mm_setr_ps(42.0, 42.0, 42.0, 42.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_load_ps() { let vals = &[1.0f32, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]; @@ -3669,7 +3667,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_loadu_ps() { let vals = &[1.0f32, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]; let p = vals.as_ptr().offset(3); @@ -3677,7 +3675,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(4.0, 5.0, 6.0, 7.0)); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_loadr_ps() { let vals = &[1.0f32, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]; @@ -3702,7 +3700,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_storeh_pi() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3713,7 +3711,7 @@ mod tests { assert_eq!(vals[2], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_storel_pi() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3724,7 +3722,7 @@ mod tests { assert_eq!(vals[2], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_store_ss() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3735,7 +3733,7 @@ mod tests { assert_eq!(vals[2], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_store1_ps() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3760,7 +3758,7 @@ mod tests { assert_eq!(vals[ofs + 4], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_store_ps() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3786,7 +3784,7 @@ mod tests { assert_eq!(vals[ofs + 4], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_storer_ps() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3812,7 +3810,7 @@ mod tests { assert_eq!(vals[ofs + 4], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_storeu_ps() { let mut vals = [0.0f32; 8]; let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -3838,7 +3836,7 @@ mod tests { assert_eq!(vals[ofs + 4], 0.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_move_ss() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3848,7 +3846,7 @@ mod tests { assert_eq_m128(e, r); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_movemask_ps() { let r = _mm_movemask_ps(_mm_setr_ps(-1.0, 5.0, -5.0, 0.0)); assert_eq!(r, 0b0101); @@ -3857,12 +3855,12 @@ mod tests { assert_eq!(r, 0b0111); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_sfence() { _mm_sfence(); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_getcsr_setcsr_1() { let saved_csr = _mm_getcsr(); @@ -3878,7 +3876,7 @@ mod tests { assert_eq_m128(r, exp); // first component is a denormalized f32 } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_getcsr_setcsr_2() { // Same as _mm_setcsr_1 test, but with opposite flag value. @@ -3896,7 +3894,7 @@ mod tests { assert_eq_m128(r, exp); // first component is a denormalized f32 } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_getcsr_setcsr_underflow() { _MM_SET_EXCEPTION_STATE(0); @@ -3914,7 +3912,7 @@ mod tests { assert_eq!(underflow, true); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_MM_TRANSPOSE4_PS() { let mut a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let mut b = _mm_setr_ps(5.0, 6.0, 7.0, 8.0); @@ -3934,7 +3932,7 @@ mod tests { pub data: [f32; 4], } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_stream_ps() { let a = _mm_set1_ps(7.0); let mut mem = Memory { @@ -3947,7 +3945,7 @@ mod tests { } } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_stream_pi() { let a = transmute(i8x8::new(0, 0, 0, 0, 0, 0, 0, 7)); let mut mem = @@ -3956,7 +3954,7 @@ mod tests { assert_eq_m64(a, *mem); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_max_pi16() { let a = _mm_setr_pi16(-1, 6, -3, 8); let b = _mm_setr_pi16(5, -2, 7, -4); @@ -3966,7 +3964,7 @@ mod tests { assert_eq_m64(r, _m_pmaxsw(a, b)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_max_pu8() { let a = _mm_setr_pi8(2, 6, 3, 8, 2, 6, 3, 8); let b = _mm_setr_pi8(5, 2, 7, 4, 5, 2, 7, 4); @@ -3976,7 +3974,7 @@ mod tests { assert_eq_m64(r, _m_pmaxub(a, b)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_min_pi16() { let a = _mm_setr_pi16(-1, 6, -3, 8); let b = _mm_setr_pi16(5, -2, 7, -4); @@ -3986,7 +3984,7 @@ mod tests { assert_eq_m64(r, _m_pminsw(a, b)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_min_pu8() { let a = _mm_setr_pi8(2, 6, 3, 8, 2, 6, 3, 8); let b = _mm_setr_pi8(5, 2, 7, 4, 5, 2, 7, 4); @@ -3996,21 +3994,21 @@ mod tests { assert_eq_m64(r, _m_pminub(a, b)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_mulhi_pu16() { let (a, b) = (_mm_set1_pi16(1000), _mm_set1_pi16(1001)); let r = _mm_mulhi_pu16(a, b); assert_eq_m64(r, _mm_set1_pi16(15)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_m_pmulhuw() { let (a, b) = (_mm_set1_pi16(1000), _mm_set1_pi16(1001)); let r = _m_pmulhuw(a, b); assert_eq_m64(r, _mm_set1_pi16(15)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_avg_pu8() { let (a, b) = (_mm_set1_pi8(3), _mm_set1_pi8(9)); let r = _mm_avg_pu8(a, b); @@ -4020,7 +4018,7 @@ mod tests { assert_eq_m64(r, _mm_set1_pi8(6)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_avg_pu16() { let (a, b) = (_mm_set1_pi16(3), _mm_set1_pi16(9)); let r = _mm_avg_pu16(a, b); @@ -4030,7 +4028,7 @@ mod tests { assert_eq_m64(r, _mm_set1_pi16(6)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_sad_pu8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_pi8( @@ -4045,7 +4043,7 @@ mod tests { assert_eq_m64(r, _mm_setr_pi16(1020, 0, 0, 0)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpi32_ps() { let a = _mm_setr_ps(0., 0., 3., 4.); let b = _mm_setr_pi32(1, 2); @@ -4057,7 +4055,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpi16_ps() { let a = _mm_setr_pi16(1, 2, 3, 4); let expected = _mm_setr_ps(1., 2., 3., 4.); @@ -4065,7 +4063,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpu16_ps() { let a = _mm_setr_pi16(1, 2, 3, 4); let expected = _mm_setr_ps(1., 2., 3., 4.); @@ -4073,7 +4071,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpi8_ps() { let a = _mm_setr_pi8(1, 2, 3, 4, 5, 6, 7, 8); let expected = _mm_setr_ps(1., 2., 3., 4.); @@ -4081,7 +4079,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpu8_ps() { let a = _mm_setr_pi8(1, 2, 3, 4, 5, 6, 7, 8); let expected = _mm_setr_ps(1., 2., 3., 4.); @@ -4089,7 +4087,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtpi32x2_ps() { let a = _mm_setr_pi32(1, 2); let b = _mm_setr_pi32(3, 4); @@ -4098,7 +4096,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_maskmove_si64() { let a = _mm_set1_pi8(9); let mask = _mm_setr_pi8(0, 0, 0x80u8 as i8, 0, 0, 0, 0, 0); @@ -4112,7 +4110,7 @@ mod tests { assert_eq_m64(r, e); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_extract_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let r = _mm_extract_pi16(a, 0); @@ -4124,7 +4122,7 @@ mod tests { assert_eq!(r, 2); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_insert_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let r = _mm_insert_pi16(a, 0, 0b0); @@ -4138,7 +4136,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_movemask_pi8() { let a = _mm_setr_pi16( 0b1000_0000, @@ -4153,7 +4151,7 @@ mod tests { assert_eq!(r, 0b10001); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_shuffle_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let r = _mm_shuffle_pi16(a, 0b00_01_01_11); @@ -4164,7 +4162,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtps_pi32() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let r = _mm_setr_pi32(1, 2); @@ -4173,7 +4171,7 @@ mod tests { assert_eq_m64(r, _mm_cvt_ps2pi(a)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvttps_pi32() { let a = _mm_setr_ps(7.0, 2.0, 3.0, 4.0); let r = _mm_setr_pi32(7, 2); @@ -4182,14 +4180,14 @@ mod tests { assert_eq_m64(r, _mm_cvtt_ps2pi(a)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtps_pi16() { let a = _mm_setr_ps(7.0, 2.0, 3.0, 4.0); let r = _mm_setr_pi16(7, 2, 3, 4); assert_eq_m64(r, _mm_cvtps_pi16(a)); } - #[simd_test = "sse,mmx"] + #[simd_test(enable = "sse,mmx")] unsafe fn test_mm_cvtps_pi8() { let a = _mm_setr_ps(7.0, 2.0, 3.0, 4.0); let r = _mm_setr_pi8(7, 2, 3, 4, 0, 0, 0, 0); diff --git a/coresimd/x86/sse2.rs b/coresimd/x86/sse2.rs index ca796e61b7040..7f7af002a49c8 100644 --- a/coresimd/x86/sse2.rs +++ b/coresimd/x86/sse2.rs @@ -3199,28 +3199,28 @@ mod tests { use stdsimd_test::simd_test; use test::black_box; // Used to inhibit constant-folding. - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_pause() { _mm_pause(); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_clflush() { let x = 0; _mm_clflush(&x as *const _ as *mut u8); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_lfence() { _mm_lfence(); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mfence() { _mm_mfence(); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_epi8() { let a = _mm_setr_epi8( 0, @@ -3252,7 +3252,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_epi8_overflow() { let a = _mm_set1_epi8(0x7F); let b = _mm_set1_epi8(1); @@ -3260,7 +3260,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(-128)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(8, 9, 10, 11, 12, 13, 14, 15); @@ -3269,7 +3269,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_epi32() { let a = _mm_setr_epi32(0, 1, 2, 3); let b = _mm_setr_epi32(4, 5, 6, 7); @@ -3278,7 +3278,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_epi64() { let a = _mm_setr_epi64x(0, 1); let b = _mm_setr_epi64x(2, 3); @@ -3287,7 +3287,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi8() { let a = _mm_setr_epi8( 0, @@ -3319,7 +3319,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi8_saturate_positive() { let a = _mm_set1_epi8(0x7F); let b = _mm_set1_epi8(1); @@ -3327,7 +3327,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi8_saturate_negative() { let a = _mm_set1_epi8(-0x80); let b = _mm_set1_epi8(-1); @@ -3335,7 +3335,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(8, 9, 10, 11, 12, 13, 14, 15); @@ -3344,7 +3344,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi16_saturate_positive() { let a = _mm_set1_epi16(0x7FFF); let b = _mm_set1_epi16(1); @@ -3352,7 +3352,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epi16_saturate_negative() { let a = _mm_set1_epi16(-0x8000); let b = _mm_set1_epi16(-1); @@ -3360,7 +3360,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epu8() { let a = _mm_setr_epi8( 0, @@ -3392,7 +3392,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epu8_saturate() { let a = _mm_set1_epi8(!0); let b = _mm_set1_epi8(1); @@ -3400,7 +3400,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epu16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(8, 9, 10, 11, 12, 13, 14, 15); @@ -3409,7 +3409,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_adds_epu16_saturate() { let a = _mm_set1_epi16(!0); let b = _mm_set1_epi16(1); @@ -3417,21 +3417,21 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_avg_epu8() { let (a, b) = (_mm_set1_epi8(3), _mm_set1_epi8(9)); let r = _mm_avg_epu8(a, b); assert_eq_m128i(r, _mm_set1_epi8(6)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_avg_epu16() { let (a, b) = (_mm_set1_epi16(3), _mm_set1_epi16(9)); let r = _mm_avg_epu16(a, b); assert_eq_m128i(r, _mm_set1_epi16(6)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_madd_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(9, 10, 11, 12, 13, 14, 15, 16); @@ -3440,7 +3440,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_max_epi16() { let a = _mm_set1_epi16(1); let b = _mm_set1_epi16(-1); @@ -3448,7 +3448,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_max_epu8() { let a = _mm_set1_epi8(1); let b = _mm_set1_epi8(!0); @@ -3456,7 +3456,7 @@ mod tests { assert_eq_m128i(r, b); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_min_epi16() { let a = _mm_set1_epi16(1); let b = _mm_set1_epi16(-1); @@ -3464,7 +3464,7 @@ mod tests { assert_eq_m128i(r, b); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_min_epu8() { let a = _mm_set1_epi8(1); let b = _mm_set1_epi8(!0); @@ -3472,28 +3472,28 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mulhi_epi16() { let (a, b) = (_mm_set1_epi16(1000), _mm_set1_epi16(-1001)); let r = _mm_mulhi_epi16(a, b); assert_eq_m128i(r, _mm_set1_epi16(-16)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mulhi_epu16() { let (a, b) = (_mm_set1_epi16(1000), _mm_set1_epi16(1001)); let r = _mm_mulhi_epu16(a, b); assert_eq_m128i(r, _mm_set1_epi16(15)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mullo_epi16() { let (a, b) = (_mm_set1_epi16(1000), _mm_set1_epi16(-1001)); let r = _mm_mullo_epi16(a, b); assert_eq_m128i(r, _mm_set1_epi16(-17960)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mul_epu32() { let a = _mm_setr_epi64x(1_000_000_000, 1 << 34); let b = _mm_setr_epi64x(1_000_000_000, 1 << 35); @@ -3502,7 +3502,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sad_epu8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -3517,42 +3517,42 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_epi8() { let (a, b) = (_mm_set1_epi8(5), _mm_set1_epi8(6)); let r = _mm_sub_epi8(a, b); assert_eq_m128i(r, _mm_set1_epi8(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_epi16() { let (a, b) = (_mm_set1_epi16(5), _mm_set1_epi16(6)); let r = _mm_sub_epi16(a, b); assert_eq_m128i(r, _mm_set1_epi16(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_epi32() { let (a, b) = (_mm_set1_epi32(5), _mm_set1_epi32(6)); let r = _mm_sub_epi32(a, b); assert_eq_m128i(r, _mm_set1_epi32(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_epi64() { let (a, b) = (_mm_set1_epi64x(5), _mm_set1_epi64x(6)); let r = _mm_sub_epi64(a, b); assert_eq_m128i(r, _mm_set1_epi64x(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi8() { let (a, b) = (_mm_set1_epi8(5), _mm_set1_epi8(2)); let r = _mm_subs_epi8(a, b); assert_eq_m128i(r, _mm_set1_epi8(3)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi8_saturate_positive() { let a = _mm_set1_epi8(0x7F); let b = _mm_set1_epi8(-1); @@ -3560,7 +3560,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi8_saturate_negative() { let a = _mm_set1_epi8(-0x80); let b = _mm_set1_epi8(1); @@ -3568,14 +3568,14 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi16() { let (a, b) = (_mm_set1_epi16(5), _mm_set1_epi16(2)); let r = _mm_subs_epi16(a, b); assert_eq_m128i(r, _mm_set1_epi16(3)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi16_saturate_positive() { let a = _mm_set1_epi16(0x7FFF); let b = _mm_set1_epi16(-1); @@ -3583,7 +3583,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epi16_saturate_negative() { let a = _mm_set1_epi16(-0x8000); let b = _mm_set1_epi16(1); @@ -3591,14 +3591,14 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epu8() { let (a, b) = (_mm_set1_epi8(5), _mm_set1_epi8(2)); let r = _mm_subs_epu8(a, b); assert_eq_m128i(r, _mm_set1_epi8(3)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epu8_saturate() { let a = _mm_set1_epi8(0); let b = _mm_set1_epi8(1); @@ -3606,14 +3606,14 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epu16() { let (a, b) = (_mm_set1_epi16(5), _mm_set1_epi16(2)); let r = _mm_subs_epu16(a, b); assert_eq_m128i(r, _mm_set1_epi16(3)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_subs_epu16_saturate() { let a = _mm_set1_epi16(0); let b = _mm_set1_epi16(1); @@ -3621,7 +3621,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_slli_si128() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -3678,7 +3678,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_slli_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi16( @@ -3694,7 +3694,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sll_epi16() { let a = _mm_setr_epi16(0xFF, 0, 0, 0, 0, 0, 0, 0); let r = _mm_sll_epi16(a, _mm_setr_epi16(4, 0, 0, 0, 0, 0, 0, 0)); @@ -3703,13 +3703,13 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi16(0xFF, 0, 0, 0, 0, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_slli_epi32() { let r = _mm_slli_epi32(_mm_set1_epi32(0xFFFF), 4); assert_eq_m128i(r, _mm_set1_epi32(0xFFFF0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sll_epi32() { let a = _mm_set1_epi32(0xFFFF); let b = _mm_setr_epi32(4, 0, 0, 0); @@ -3717,13 +3717,13 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi32(0xFFFF0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_slli_epi64() { let r = _mm_slli_epi64(_mm_set1_epi64x(0xFFFFFFFF), 4); assert_eq_m128i(r, _mm_set1_epi64x(0xFFFFFFFF0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sll_epi64() { let a = _mm_set1_epi64x(0xFFFFFFFF); let b = _mm_setr_epi64x(4, 0); @@ -3731,13 +3731,13 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi64x(0xFFFFFFFF0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srai_epi16() { let r = _mm_srai_epi16(_mm_set1_epi16(-1), 1); assert_eq_m128i(r, _mm_set1_epi16(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sra_epi16() { let a = _mm_set1_epi16(-1); let b = _mm_setr_epi16(1, 0, 0, 0, 0, 0, 0, 0); @@ -3745,13 +3745,13 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi16(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srai_epi32() { let r = _mm_srai_epi32(_mm_set1_epi32(-1), 1); assert_eq_m128i(r, _mm_set1_epi32(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sra_epi32() { let a = _mm_set1_epi32(-1); let b = _mm_setr_epi32(1, 0, 0, 0); @@ -3759,7 +3759,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi32(-1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srli_si128() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -3802,7 +3802,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srli_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi16( @@ -3816,7 +3816,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srl_epi16() { let a = _mm_setr_epi16(0xFF, 0, 0, 0, 0, 0, 0, 0); let r = _mm_srl_epi16(a, _mm_setr_epi16(4, 0, 0, 0, 0, 0, 0, 0)); @@ -3825,13 +3825,13 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi16(0xFF, 0, 0, 0, 0, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srli_epi32() { let r = _mm_srli_epi32(_mm_set1_epi32(0xFFFF), 4); assert_eq_m128i(r, _mm_set1_epi32(0xFFF)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srl_epi32() { let a = _mm_set1_epi32(0xFFFF); let b = _mm_setr_epi32(4, 0, 0, 0); @@ -3839,13 +3839,13 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi32(0xFFF)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srli_epi64() { let r = _mm_srli_epi64(_mm_set1_epi64x(0xFFFFFFFF), 4); assert_eq_m128i(r, _mm_set1_epi64x(0xFFFFFFF)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_srl_epi64() { let a = _mm_set1_epi64x(0xFFFFFFFF); let b = _mm_setr_epi64x(4, 0); @@ -3853,7 +3853,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi64x(0xFFFFFFF)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_and_si128() { let a = _mm_set1_epi8(5); let b = _mm_set1_epi8(3); @@ -3861,7 +3861,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_andnot_si128() { let a = _mm_set1_epi8(5); let b = _mm_set1_epi8(3); @@ -3869,7 +3869,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(2)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_or_si128() { let a = _mm_set1_epi8(5); let b = _mm_set1_epi8(3); @@ -3877,7 +3877,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(7)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_xor_si128() { let a = _mm_set1_epi8(5); let b = _mm_set1_epi8(3); @@ -3885,7 +3885,7 @@ mod tests { assert_eq_m128i(r, _mm_set1_epi8(6)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpeq_epi8() { let a = _mm_setr_epi8( 0, @@ -3933,7 +3933,7 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpeq_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(7, 6, 2, 4, 3, 2, 1, 0); @@ -3941,7 +3941,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi16(0, 0, !0, 0, 0, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpeq_epi32() { let a = _mm_setr_epi32(0, 1, 2, 3); let b = _mm_setr_epi32(3, 2, 2, 0); @@ -3949,7 +3949,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(0, 0, !0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpgt_epi8() { let a = _mm_set_epi8(5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); let b = _mm_set1_epi8(0); @@ -3958,7 +3958,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpgt_epi16() { let a = _mm_set_epi16(5, 0, 0, 0, 0, 0, 0, 0); let b = _mm_set1_epi16(0); @@ -3967,7 +3967,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpgt_epi32() { let a = _mm_set_epi32(5, 0, 0, 0); let b = _mm_set1_epi32(0); @@ -3975,7 +3975,7 @@ mod tests { assert_eq_m128i(r, _mm_set_epi32(!0, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmplt_epi8() { let a = _mm_set1_epi8(0); let b = _mm_set_epi8(5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -3984,7 +3984,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmplt_epi16() { let a = _mm_set1_epi16(0); let b = _mm_set_epi16(5, 0, 0, 0, 0, 0, 0, 0); @@ -3993,7 +3993,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmplt_epi32() { let a = _mm_set1_epi32(0); let b = _mm_set_epi32(5, 0, 0, 0); @@ -4001,65 +4001,65 @@ mod tests { assert_eq_m128i(r, _mm_set_epi32(!0, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtepi32_pd() { let a = _mm_set_epi32(35, 25, 15, 5); let r = _mm_cvtepi32_pd(a); assert_eq_m128d(r, _mm_setr_pd(5.0, 15.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi32_sd() { let a = _mm_set1_pd(3.5); let r = _mm_cvtsi32_sd(a, 5); assert_eq_m128d(r, _mm_setr_pd(5.0, 3.5)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtepi32_ps() { let a = _mm_setr_epi32(1, 2, 3, 4); let r = _mm_cvtepi32_ps(a); assert_eq_m128(r, _mm_setr_ps(1.0, 2.0, 3.0, 4.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtps_epi32() { let a = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); let r = _mm_cvtps_epi32(a); assert_eq_m128i(r, _mm_setr_epi32(1, 2, 3, 4)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi32_si128() { let r = _mm_cvtsi32_si128(5); assert_eq_m128i(r, _mm_setr_epi32(5, 0, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi128_si32() { let r = _mm_cvtsi128_si32(_mm_setr_epi32(5, 0, 0, 0)); assert_eq!(r, 5); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_epi64x() { let r = _mm_set_epi64x(0, 1); assert_eq_m128i(r, _mm_setr_epi64x(1, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_epi32() { let r = _mm_set_epi32(0, 1, 2, 3); assert_eq_m128i(r, _mm_setr_epi32(3, 2, 1, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_epi16() { let r = _mm_set_epi16(0, 1, 2, 3, 4, 5, 6, 7); assert_eq_m128i(r, _mm_setr_epi16(7, 6, 5, 4, 3, 2, 1, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm_set_epi8( @@ -4073,43 +4073,43 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set1_epi64x() { let r = _mm_set1_epi64x(1); assert_eq_m128i(r, _mm_set1_epi64x(1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set1_epi32() { let r = _mm_set1_epi32(1); assert_eq_m128i(r, _mm_set1_epi32(1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set1_epi16() { let r = _mm_set1_epi16(1); assert_eq_m128i(r, _mm_set1_epi16(1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set1_epi8() { let r = _mm_set1_epi8(1); assert_eq_m128i(r, _mm_set1_epi8(1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setr_epi32() { let r = _mm_setr_epi32(0, 1, 2, 3); assert_eq_m128i(r, _mm_setr_epi32(0, 1, 2, 3)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setr_epi16() { let r = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); assert_eq_m128i(r, _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setr_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let r = _mm_setr_epi8( @@ -4123,34 +4123,34 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setzero_si128() { let r = _mm_setzero_si128(); assert_eq_m128i(r, _mm_set1_epi64x(0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadl_epi64() { let a = _mm_setr_epi64x(6, 5); let r = _mm_loadl_epi64(&a as *const _); assert_eq_m128i(r, _mm_setr_epi64x(6, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_load_si128() { let a = _mm_set_epi64x(5, 6); let r = _mm_load_si128(&a as *const _ as *const _); assert_eq_m128i(a, r); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadu_si128() { let a = _mm_set_epi64x(5, 6); let r = _mm_loadu_si128(&a as *const _ as *const _); assert_eq_m128i(a, r); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_maskmoveu_si128() { let a = _mm_set1_epi8(9); #[cfg_attr(rustfmt, rustfmt_skip)] @@ -4164,7 +4164,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_store_si128() { let a = _mm_set1_epi8(9); let mut r = _mm_set1_epi8(0); @@ -4172,7 +4172,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_storeu_si128() { let a = _mm_set1_epi8(9); let mut r = _mm_set1_epi8(0); @@ -4180,7 +4180,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_storel_epi64() { let a = _mm_setr_epi64x(2, 9); let mut r = _mm_set1_epi8(0); @@ -4188,7 +4188,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi64x(2, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_stream_si128() { let a = _mm_setr_epi32(1, 2, 3, 4); let mut r = _mm_undefined_si128(); @@ -4196,7 +4196,7 @@ mod tests { assert_eq_m128i(r, a); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_stream_si32() { let a: i32 = 7; let mut mem = ::std::boxed::Box::::new(-1); @@ -4204,14 +4204,14 @@ mod tests { assert_eq!(a, *mem); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_move_epi64() { let a = _mm_setr_epi64x(5, 6); let r = _mm_move_epi64(a); assert_eq_m128i(r, _mm_setr_epi64x(5, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_packs_epi16() { let a = _mm_setr_epi16(0x80, -0x81, 0, 0, 0, 0, 0, 0); let b = _mm_setr_epi16(0, 0, 0, 0, 0, 0, -0x81, 0x80); @@ -4225,7 +4225,7 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_packs_epi32() { let a = _mm_setr_epi32(0x8000, -0x8001, 0, 0); let b = _mm_setr_epi32(0, 0, -0x8001, 0x8000); @@ -4236,7 +4236,7 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_packus_epi16() { let a = _mm_setr_epi16(0x100, -1, 0, 0, 0, 0, 0, 0); let b = _mm_setr_epi16(0, 0, 0, 0, 0, 0, -1, 0x100); @@ -4247,7 +4247,7 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_extract_epi16() { let a = _mm_setr_epi16(-1, 1, 2, 3, 4, 5, 6, 7); let r1 = _mm_extract_epi16(a, 0); @@ -4256,7 +4256,7 @@ mod tests { assert_eq!(r2, 3); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_insert_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let r = _mm_insert_epi16(a, 9, 0); @@ -4264,7 +4264,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_movemask_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4277,7 +4277,7 @@ mod tests { assert_eq!(r, 0b10100100_00100101); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_shuffle_epi32() { let a = _mm_setr_epi32(5, 10, 15, 20); let r = _mm_shuffle_epi32(a, 0b00_01_01_11); @@ -4285,7 +4285,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_shufflehi_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 10, 15, 20); let r = _mm_shufflehi_epi16(a, 0b00_01_01_11); @@ -4293,7 +4293,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_shufflelo_epi16() { let a = _mm_setr_epi16(5, 10, 15, 20, 1, 2, 3, 4); let r = _mm_shufflelo_epi16(a, 0b00_01_01_11); @@ -4301,7 +4301,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpackhi_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4320,7 +4320,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpackhi_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(8, 9, 10, 11, 12, 13, 14, 15); @@ -4329,7 +4329,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpackhi_epi32() { let a = _mm_setr_epi32(0, 1, 2, 3); let b = _mm_setr_epi32(4, 5, 6, 7); @@ -4338,7 +4338,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpackhi_epi64() { let a = _mm_setr_epi64x(0, 1); let b = _mm_setr_epi64x(2, 3); @@ -4347,7 +4347,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpacklo_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -4367,7 +4367,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpacklo_epi16() { let a = _mm_setr_epi16(0, 1, 2, 3, 4, 5, 6, 7); let b = _mm_setr_epi16(8, 9, 10, 11, 12, 13, 14, 15); @@ -4376,7 +4376,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpacklo_epi32() { let a = _mm_setr_epi32(0, 1, 2, 3); let b = _mm_setr_epi32(4, 5, 6, 7); @@ -4385,7 +4385,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpacklo_epi64() { let a = _mm_setr_epi64x(0, 1); let b = _mm_setr_epi64x(2, 3); @@ -4394,7 +4394,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4402,7 +4402,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(6.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_add_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4410,7 +4410,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(6.0, 12.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_div_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4418,7 +4418,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(0.2, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_div_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4426,7 +4426,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(0.2, 0.2)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_max_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4434,7 +4434,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(5.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_max_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4442,7 +4442,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(5.0, 10.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_min_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4450,7 +4450,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(1.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_min_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4458,7 +4458,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(1.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mul_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4466,7 +4466,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(5.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_mul_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4474,7 +4474,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(5.0, 20.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sqrt_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4482,13 +4482,13 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(5.0f64.sqrt(), 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sqrt_pd() { let r = _mm_sqrt_pd(_mm_setr_pd(1.0, 2.0)); assert_eq_m128d(r, _mm_setr_pd(1.0f64.sqrt(), 2.0f64.sqrt())); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_sd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4496,7 +4496,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(-4.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_sub_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(5.0, 10.0); @@ -4504,7 +4504,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(-4.0, -8.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_and_pd() { let a = transmute(u64x2::splat(5)); let b = transmute(u64x2::splat(3)); @@ -4513,7 +4513,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_andnot_pd() { let a = transmute(u64x2::splat(5)); let b = transmute(u64x2::splat(3)); @@ -4522,7 +4522,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_or_pd() { let a = transmute(u64x2::splat(5)); let b = transmute(u64x2::splat(3)); @@ -4531,7 +4531,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_xor_pd() { let a = transmute(u64x2::splat(5)); let b = transmute(u64x2::splat(3)); @@ -4540,7 +4540,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpeq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4548,7 +4548,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmplt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4556,7 +4556,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmple_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4564,7 +4564,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpgt_sd() { let (a, b) = (_mm_setr_pd(5.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4572,7 +4572,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpge_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4580,7 +4580,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpord_sd() { let (a, b) = (_mm_setr_pd(NAN, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(0, transmute(2.0f64)); @@ -4588,7 +4588,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpunord_sd() { let (a, b) = (_mm_setr_pd(NAN, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4596,7 +4596,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpneq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(!0, transmute(2.0f64)); @@ -4604,7 +4604,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnlt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(0, transmute(2.0f64)); @@ -4612,7 +4612,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnle_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, transmute(2.0f64)); @@ -4620,7 +4620,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpngt_sd() { let (a, b) = (_mm_setr_pd(5.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, transmute(2.0f64)); @@ -4628,7 +4628,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnge_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, transmute(2.0f64)); @@ -4636,7 +4636,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpeq_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, 0); @@ -4644,7 +4644,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmplt_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, !0); @@ -4652,7 +4652,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmple_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, !0); @@ -4660,7 +4660,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpgt_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, 0); @@ -4668,7 +4668,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpge_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(!0, 0); @@ -4676,7 +4676,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpord_pd() { let (a, b) = (_mm_setr_pd(NAN, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(0, !0); @@ -4684,7 +4684,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpunord_pd() { let (a, b) = (_mm_setr_pd(NAN, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(!0, 0); @@ -4692,7 +4692,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpneq_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(!0, !0); @@ -4700,7 +4700,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnlt_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(5.0, 3.0)); let e = _mm_setr_epi64x(0, 0); @@ -4708,7 +4708,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnle_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, 0); @@ -4716,7 +4716,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpngt_pd() { let (a, b) = (_mm_setr_pd(5.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, !0); @@ -4724,7 +4724,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cmpnge_pd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); let e = _mm_setr_epi64x(0, !0); @@ -4732,7 +4732,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comieq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comieq_sd(a, b) != 0); @@ -4741,37 +4741,37 @@ mod tests { assert!(_mm_comieq_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comilt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comilt_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comile_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comile_sd(a, b) != 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comigt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comigt_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comige_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comige_sd(a, b) != 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_comineq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_comineq_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomieq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomieq_sd(a, b) != 0); @@ -4780,37 +4780,37 @@ mod tests { assert!(_mm_ucomieq_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomilt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomilt_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomile_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomile_sd(a, b) != 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomigt_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomigt_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomige_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomige_sd(a, b) != 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_ucomineq_sd() { let (a, b) = (_mm_setr_pd(1.0, 2.0), _mm_setr_pd(1.0, 3.0)); assert!(_mm_ucomineq_sd(a, b) == 0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_movemask_pd() { let r = _mm_movemask_pd(_mm_setr_pd(-1.0, 5.0)); assert_eq!(r, 0b01); @@ -4824,7 +4824,7 @@ mod tests { data: [f64; 4], } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_load_pd() { let mem = Memory { data: [1.0f64, 2.0, 3.0, 4.0], @@ -4836,7 +4836,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(1.0, 2.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_load_sd() { let a = 1.; let expected = _mm_setr_pd(a, 0.); @@ -4844,7 +4844,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadh_pd() { let a = _mm_setr_pd(1., 2.); let b = 3.; @@ -4853,7 +4853,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadl_pd() { let a = _mm_setr_pd(1., 2.); let b = 3.; @@ -4862,7 +4862,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_stream_pd() { #[repr(align(128))] struct Memory { @@ -4879,7 +4879,7 @@ mod tests { } } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_store_sd() { let mut dest = 0.; let a = _mm_setr_pd(1., 2.); @@ -4887,7 +4887,7 @@ mod tests { assert_eq!(dest, _mm_cvtsd_f64(a)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_store_pd() { let mut mem = Memory { data: [0.0f64; 4], @@ -4901,7 +4901,7 @@ mod tests { assert_eq!(vals[1], 2.0); } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_storeu_pd() { let mut mem = Memory { data: [0.0f64; 4], @@ -4927,7 +4927,7 @@ mod tests { assert_eq!(vals[ofs + 1], 2.0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_store1_pd() { let mut mem = Memory { data: [0.0f64; 4], @@ -4941,7 +4941,7 @@ mod tests { assert_eq!(vals[1], 1.0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_store_pd1() { let mut mem = Memory { data: [0.0f64; 4], @@ -4955,7 +4955,7 @@ mod tests { assert_eq!(vals[1], 1.0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_storer_pd() { let mut mem = Memory { data: [0.0f64; 4], @@ -4969,7 +4969,7 @@ mod tests { assert_eq!(vals[1], 1.0); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_storeh_pd() { let mut dest = 0.; let a = _mm_setr_pd(1., 2.); @@ -4977,7 +4977,7 @@ mod tests { assert_eq!(dest, get_m128d(a, 1)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_storel_pd() { let mut dest = 0.; let a = _mm_setr_pd(1., 2.); @@ -4985,7 +4985,7 @@ mod tests { assert_eq!(dest, _mm_cvtsd_f64(a)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadr_pd() { let mut mem = Memory { data: [1.0f64, 2.0, 3.0, 4.0], @@ -4997,7 +4997,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(2.0, 1.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_loadu_pd() { let mut mem = Memory { data: [1.0f64, 2.0, 3.0, 4.0], @@ -5020,7 +5020,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtpd_ps() { let r = _mm_cvtpd_ps(_mm_setr_pd(-1.0, 5.0)); assert_eq_m128(r, _mm_setr_ps(-1.0, 5.0, 0.0, 0.0)); @@ -5038,7 +5038,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(f32::MAX, f32::MIN, 0.0, 0.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtps_pd() { let r = _mm_cvtps_pd(_mm_setr_ps(-1.0, 2.0, -3.0, 5.0)); assert_eq_m128d(r, _mm_setr_pd(-1.0, 2.0)); @@ -5052,7 +5052,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(f32::MAX as f64, f64::INFINITY)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtpd_epi32() { let r = _mm_cvtpd_epi32(_mm_setr_pd(-1.0, 5.0)); assert_eq_m128i(r, _mm_setr_epi32(-1, 5, 0, 0)); @@ -5070,7 +5070,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(i32::MIN, i32::MIN, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsd_si32() { let r = _mm_cvtsd_si32(_mm_setr_pd(-2.0, 5.0)); assert_eq!(r, -2); @@ -5082,7 +5082,7 @@ mod tests { assert_eq!(r, i32::MIN); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsd_ss() { let a = _mm_setr_ps(-1.1, -2.2, 3.3, 4.4); let b = _mm_setr_pd(2.0, -5.0); @@ -5112,13 +5112,13 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsd_f64() { let r = _mm_cvtsd_f64(_mm_setr_pd(-1.1, 2.2)); assert_eq!(r, -1.1); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtss_sd() { let a = _mm_setr_pd(-1.1, 2.2); let b = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -5133,7 +5133,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(f64::NEG_INFINITY, f64::INFINITY)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvttpd_epi32() { let a = _mm_setr_pd(-1.1, 2.2); let r = _mm_cvttpd_epi32(a); @@ -5144,7 +5144,7 @@ mod tests { assert_eq_m128i(r, _mm_setr_epi32(i32::MIN, i32::MIN, 0, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvttsd_si32() { let a = _mm_setr_pd(-1.1, 2.2); let r = _mm_cvttsd_si32(a); @@ -5155,7 +5155,7 @@ mod tests { assert_eq!(r, i32::MIN); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvttps_epi32() { let a = _mm_setr_ps(-1.1, 2.2, -3.3, 6.6); let r = _mm_cvttps_epi32(a); @@ -5174,57 +5174,57 @@ mod tests { ); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_sd() { let r = _mm_set_sd(-1.0_f64); assert_eq_m128d(r, _mm_setr_pd(-1.0_f64, 0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set1_pd() { let r = _mm_set1_pd(-1.0_f64); assert_eq_m128d(r, _mm_setr_pd(-1.0_f64, -1.0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_pd1() { let r = _mm_set_pd1(-2.0_f64); assert_eq_m128d(r, _mm_setr_pd(-2.0_f64, -2.0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_set_pd() { let r = _mm_set_pd(1.0_f64, 5.0_f64); assert_eq_m128d(r, _mm_setr_pd(5.0_f64, 1.0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setr_pd() { let r = _mm_setr_pd(1.0_f64, -5.0_f64); assert_eq_m128d(r, _mm_setr_pd(1.0_f64, -5.0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_setzero_pd() { let r = _mm_setzero_pd(); assert_eq_m128d(r, _mm_setr_pd(0_f64, 0_f64)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_load1_pd() { let d = -5.0; let r = _mm_load1_pd(&d); assert_eq_m128d(r, _mm_setr_pd(d, d)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_load_pd1() { let d = -5.0; let r = _mm_load_pd1(&d); assert_eq_m128d(r, _mm_setr_pd(d, d)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpackhi_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(3.0, 4.0); @@ -5232,7 +5232,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(2.0, 4.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_unpacklo_pd() { let a = _mm_setr_pd(1.0, 2.0); let b = _mm_setr_pd(3.0, 4.0); @@ -5240,7 +5240,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(1.0, 3.0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_shuffle_pd() { let a = _mm_setr_pd(1., 2.); let b = _mm_setr_pd(3., 4.); @@ -5249,7 +5249,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_move_sd() { let a = _mm_setr_pd(1., 2.); let b = _mm_setr_pd(3., 4.); @@ -5258,7 +5258,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castpd_ps() { let a = _mm_set1_pd(0.); let expected = _mm_set1_ps(0.); @@ -5266,7 +5266,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castpd_si128() { let a = _mm_set1_pd(0.); let expected = _mm_set1_epi64x(0); @@ -5274,7 +5274,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castps_pd() { let a = _mm_set1_ps(0.); let expected = _mm_set1_pd(0.); @@ -5282,7 +5282,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castps_si128() { let a = _mm_set1_ps(0.); let expected = _mm_set1_epi32(0); @@ -5290,7 +5290,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castsi128_pd() { let a = _mm_set1_epi64x(0); let expected = _mm_set1_pd(0.); @@ -5298,7 +5298,7 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_castsi128_ps() { let a = _mm_set1_epi32(0); let expected = _mm_set1_ps(0.); @@ -5306,7 +5306,7 @@ mod tests { assert_eq_m128(r, expected); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_add_si64() { let a = 1i64; let b = 2i64; @@ -5315,7 +5315,7 @@ mod tests { assert_eq!(mem::transmute::<__m64, i64>(r), expected); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_mul_su32() { let a = _mm_setr_pi32(1, 2); let b = _mm_setr_pi32(3, 4); @@ -5324,7 +5324,7 @@ mod tests { assert_eq_m64(r, mem::transmute(expected)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_sub_si64() { let a = 1i64; let b = 2i64; @@ -5333,7 +5333,7 @@ mod tests { assert_eq!(mem::transmute::<__m64, i64>(r), expected); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_cvtpi32_pd() { let a = _mm_setr_pi32(1, 2); let expected = _mm_setr_pd(1., 2.); @@ -5341,44 +5341,44 @@ mod tests { assert_eq_m128d(r, expected); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_set_epi64() { let r = _mm_set_epi64(mem::transmute(1i64), mem::transmute(2i64)); assert_eq_m128i(r, _mm_setr_epi64x(2, 1)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_set1_epi64() { let r = _mm_set1_epi64(mem::transmute(1i64)); assert_eq_m128i(r, _mm_setr_epi64x(1, 1)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_setr_epi64() { let r = _mm_setr_epi64(mem::transmute(1i64), mem::transmute(2i64)); assert_eq_m128i(r, _mm_setr_epi64x(1, 2)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_movepi64_pi64() { let r = _mm_movepi64_pi64(_mm_setr_epi64x(5, 0)); assert_eq_m64(r, _mm_setr_pi8(5, 0, 0, 0, 0, 0, 0, 0)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_movpi64_epi64() { let r = _mm_movpi64_epi64(_mm_setr_pi8(5, 0, 0, 0, 0, 0, 0, 0)); assert_eq_m128i(r, _mm_setr_epi64x(5, 0)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_cvtpd_pi32() { let a = _mm_setr_pd(5., 0.); let r = _mm_cvtpd_pi32(a); assert_eq_m64(r, _mm_setr_pi32(5, 0)); } - #[simd_test = "sse2,mmx"] + #[simd_test(enable = "sse2,mmx")] unsafe fn test_mm_cvttpd_pi32() { use std::{f64, i32}; diff --git a/coresimd/x86/sse3.rs b/coresimd/x86/sse3.rs index edcbf1deac862..2d1cfda85b5eb 100644 --- a/coresimd/x86/sse3.rs +++ b/coresimd/x86/sse3.rs @@ -164,7 +164,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_addsub_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -172,7 +172,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(99.0, 25.0, 0.0, -15.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_addsub_pd() { let a = _mm_setr_pd(-1.0, 5.0); let b = _mm_setr_pd(-100.0, 20.0); @@ -180,7 +180,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(99.0, 25.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_hadd_pd() { let a = _mm_setr_pd(-1.0, 5.0); let b = _mm_setr_pd(-100.0, 20.0); @@ -188,7 +188,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(4.0, -80.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_hadd_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -196,7 +196,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(4.0, -10.0, -80.0, -5.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_hsub_pd() { let a = _mm_setr_pd(-1.0, 5.0); let b = _mm_setr_pd(-100.0, 20.0); @@ -204,7 +204,7 @@ mod tests { assert_eq_m128d(r, _mm_setr_pd(-6.0, -120.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_hsub_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let b = _mm_setr_ps(-100.0, 20.0, 0.0, -5.0); @@ -212,7 +212,7 @@ mod tests { assert_eq_m128(r, _mm_setr_ps(-6.0, 10.0, -120.0, 5.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_lddqu_si128() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -225,28 +225,28 @@ mod tests { assert_eq_m128i(a, r); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_movedup_pd() { let a = _mm_setr_pd(-1.0, 5.0); let r = _mm_movedup_pd(a); assert_eq_m128d(r, _mm_setr_pd(-1.0, -1.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_movehdup_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let r = _mm_movehdup_ps(a); assert_eq_m128(r, _mm_setr_ps(5.0, 5.0, -10.0, -10.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_moveldup_ps() { let a = _mm_setr_ps(-1.0, 5.0, 0.0, -10.0); let r = _mm_moveldup_ps(a); assert_eq_m128(r, _mm_setr_ps(-1.0, -1.0, 0.0, 0.0)); } - #[simd_test = "sse3"] + #[simd_test(enable = "sse3")] unsafe fn test_mm_loaddup_pd() { let d = -5.0; let r = _mm_loaddup_pd(&d); diff --git a/coresimd/x86/sse41.rs b/coresimd/x86/sse41.rs index 81819f7b34062..ba65004966e9f 100644 --- a/coresimd/x86/sse41.rs +++ b/coresimd/x86/sse41.rs @@ -1233,7 +1233,7 @@ mod tests { use std::mem; use stdsimd_test::simd_test; - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blendv_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1256,7 +1256,7 @@ mod tests { assert_eq_m128i(_mm_blendv_epi8(a, b, mask), e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blendv_pd() { let a = _mm_set1_pd(0.0); let b = _mm_set1_pd(1.0); @@ -1266,7 +1266,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blendv_ps() { let a = _mm_set1_ps(0.0); let b = _mm_set1_ps(1.0); @@ -1276,7 +1276,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blend_pd() { let a = _mm_set1_pd(0.0); let b = _mm_set1_pd(1.0); @@ -1285,7 +1285,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blend_ps() { let a = _mm_set1_ps(0.0); let b = _mm_set1_ps(1.0); @@ -1294,7 +1294,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_blend_epi16() { let a = _mm_set1_epi16(0); let b = _mm_set1_epi16(1); @@ -1303,7 +1303,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_extract_ps() { let a = _mm_setr_ps(0.0, 1.0, 2.0, 3.0); let r: f32 = mem::transmute(_mm_extract_ps(a, 1)); @@ -1312,7 +1312,7 @@ mod tests { assert_eq!(r, 1.0); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_extract_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1325,7 +1325,7 @@ mod tests { assert_eq!(r2, 3); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_extract_epi32() { let a = _mm_setr_epi32(0, 1, 2, 3); let r = _mm_extract_epi32(a, 1); @@ -1334,7 +1334,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_insert_ps() { let a = _mm_set1_ps(1.0); let b = _mm_setr_ps(1.0, 2.0, 3.0, 4.0); @@ -1343,7 +1343,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_insert_epi8() { let a = _mm_set1_epi8(0); let e = _mm_setr_epi8(0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -1353,7 +1353,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_insert_epi32() { let a = _mm_set1_epi32(0); let e = _mm_setr_epi32(0, 32, 0, 0); @@ -1363,7 +1363,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_max_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1384,7 +1384,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_max_epu16() { let a = _mm_setr_epi16(1, 4, 5, 8, 9, 12, 13, 16); let b = _mm_setr_epi16(2, 3, 6, 7, 10, 11, 14, 15); @@ -1393,7 +1393,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_max_epi32() { let a = _mm_setr_epi32(1, 4, 5, 8); let b = _mm_setr_epi32(2, 3, 6, 7); @@ -1402,7 +1402,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_max_epu32() { let a = _mm_setr_epi32(1, 4, 5, 8); let b = _mm_setr_epi32(2, 3, 6, 7); @@ -1411,7 +1411,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epi8_1() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1432,7 +1432,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epi8_2() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1453,7 +1453,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epu16() { let a = _mm_setr_epi16(1, 4, 5, 8, 9, 12, 13, 16); let b = _mm_setr_epi16(2, 3, 6, 7, 10, 11, 14, 15); @@ -1462,7 +1462,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epi32_1() { let a = _mm_setr_epi32(1, 4, 5, 8); let b = _mm_setr_epi32(2, 3, 6, 7); @@ -1471,7 +1471,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epi32_2() { let a = _mm_setr_epi32(-1, 4, 5, -7); let b = _mm_setr_epi32(-2, 3, -6, 8); @@ -1480,7 +1480,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_min_epu32() { let a = _mm_setr_epi32(1, 4, 5, 8); let b = _mm_setr_epi32(2, 3, 6, 7); @@ -1489,7 +1489,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_packus_epi32() { let a = _mm_setr_epi32(1, 2, 3, 4); let b = _mm_setr_epi32(-1, -2, -3, -4); @@ -1498,7 +1498,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cmpeq_epi64() { let a = _mm_setr_epi64x(0, 1); let b = _mm_setr_epi64x(0, 0); @@ -1507,7 +1507,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi8_epi16() { let a = _mm_set1_epi8(10); let r = _mm_cvtepi8_epi16(a); @@ -1519,7 +1519,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi8_epi32() { let a = _mm_set1_epi8(10); let r = _mm_cvtepi8_epi32(a); @@ -1531,7 +1531,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi8_epi64() { let a = _mm_set1_epi8(10); let r = _mm_cvtepi8_epi64(a); @@ -1543,7 +1543,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi16_epi32() { let a = _mm_set1_epi16(10); let r = _mm_cvtepi16_epi32(a); @@ -1555,7 +1555,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi16_epi64() { let a = _mm_set1_epi16(10); let r = _mm_cvtepi16_epi64(a); @@ -1567,7 +1567,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepi32_epi64() { let a = _mm_set1_epi32(10); let r = _mm_cvtepi32_epi64(a); @@ -1579,7 +1579,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu8_epi16() { let a = _mm_set1_epi8(10); let r = _mm_cvtepu8_epi16(a); @@ -1587,7 +1587,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu8_epi32() { let a = _mm_set1_epi8(10); let r = _mm_cvtepu8_epi32(a); @@ -1595,7 +1595,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu8_epi64() { let a = _mm_set1_epi8(10); let r = _mm_cvtepu8_epi64(a); @@ -1603,7 +1603,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu16_epi32() { let a = _mm_set1_epi16(10); let r = _mm_cvtepu16_epi32(a); @@ -1611,7 +1611,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu16_epi64() { let a = _mm_set1_epi16(10); let r = _mm_cvtepu16_epi64(a); @@ -1619,7 +1619,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_cvtepu32_epi64() { let a = _mm_set1_epi32(10); let r = _mm_cvtepu32_epi64(a); @@ -1627,7 +1627,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_dp_pd() { let a = _mm_setr_pd(2.0, 3.0); let b = _mm_setr_pd(1.0, 4.0); @@ -1635,7 +1635,7 @@ mod tests { assert_eq_m128d(_mm_dp_pd(a, b, 0b00110001), e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_dp_ps() { let a = _mm_setr_ps(2.0, 3.0, 1.0, 10.0); let b = _mm_setr_ps(1.0, 4.0, 0.5, 10.0); @@ -1643,7 +1643,7 @@ mod tests { assert_eq_m128(_mm_dp_ps(a, b, 0b01110101), e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_floor_pd() { let a = _mm_setr_pd(2.5, 4.5); let r = _mm_floor_pd(a); @@ -1651,7 +1651,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_floor_ps() { let a = _mm_setr_ps(2.5, 4.5, 8.5, 16.5); let r = _mm_floor_ps(a); @@ -1659,7 +1659,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_floor_sd() { let a = _mm_setr_pd(2.5, 4.5); let b = _mm_setr_pd(-1.5, -3.5); @@ -1668,7 +1668,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_floor_ss() { let a = _mm_setr_ps(2.5, 4.5, 8.5, 16.5); let b = _mm_setr_ps(-1.5, -3.5, -7.5, -15.5); @@ -1677,7 +1677,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_ceil_pd() { let a = _mm_setr_pd(1.5, 3.5); let r = _mm_ceil_pd(a); @@ -1685,7 +1685,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_ceil_ps() { let a = _mm_setr_ps(1.5, 3.5, 7.5, 15.5); let r = _mm_ceil_ps(a); @@ -1693,7 +1693,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_ceil_sd() { let a = _mm_setr_pd(1.5, 3.5); let b = _mm_setr_pd(-2.5, -4.5); @@ -1702,7 +1702,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_ceil_ss() { let a = _mm_setr_ps(1.5, 3.5, 7.5, 15.5); let b = _mm_setr_ps(-2.5, -4.5, -8.5, -16.5); @@ -1711,7 +1711,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_round_pd() { let a = _mm_setr_pd(1.25, 3.75); let r = _mm_round_pd(a, _MM_FROUND_TO_NEAREST_INT); @@ -1719,7 +1719,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_round_ps() { let a = _mm_setr_ps(2.25, 4.75, -1.75, -4.25); let r = _mm_round_ps(a, _MM_FROUND_TO_ZERO); @@ -1727,7 +1727,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_round_sd() { let a = _mm_setr_pd(1.5, 3.5); let b = _mm_setr_pd(-2.5, -4.5); @@ -1739,7 +1739,7 @@ mod tests { assert_eq_m128d(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_round_ss() { let a = _mm_setr_ps(1.5, 3.5, 7.5, 15.5); let b = _mm_setr_ps(-1.75, -4.5, -8.5, -16.5); @@ -1751,7 +1751,7 @@ mod tests { assert_eq_m128(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_minpos_epu16_1() { let a = _mm_setr_epi16(23, 18, 44, 97, 50, 13, 67, 66); let r = _mm_minpos_epu16(a); @@ -1759,7 +1759,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_minpos_epu16_2() { let a = _mm_setr_epi16(0, 18, 44, 97, 50, 13, 67, 66); let r = _mm_minpos_epu16(a); @@ -1767,7 +1767,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_mul_epi32() { { let a = _mm_setr_epi32(1, 1, 1, 1); @@ -1795,7 +1795,7 @@ mod tests { } } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_mullo_epi32() { { let a = _mm_setr_epi32(1, 1, 1, 1); @@ -1816,7 +1816,7 @@ mod tests { } } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_minpos_epu16() { let a = _mm_setr_epi16(8, 7, 6, 5, 4, 1, 2, 3); let r = _mm_minpos_epu16(a); @@ -1824,7 +1824,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_mpsadbw_epu8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -1853,7 +1853,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_testz_si128() { let a = _mm_set1_epi8(1); let mask = _mm_set1_epi8(0); @@ -1869,7 +1869,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_testc_si128() { let a = _mm_set1_epi8(-1); let mask = _mm_set1_epi8(0); @@ -1885,7 +1885,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_testnzc_si128() { let a = _mm_set1_epi8(0); let mask = _mm_set1_epi8(1); @@ -1905,7 +1905,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_test_all_zeros() { let a = _mm_set1_epi8(1); let mask = _mm_set1_epi8(0); @@ -1921,7 +1921,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_test_all_ones() { let a = _mm_set1_epi8(-1); let r = _mm_test_all_ones(a); @@ -1931,7 +1931,7 @@ mod tests { assert_eq!(r, 0); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_test_mix_ones_zeros() { let a = _mm_set1_epi8(0); let mask = _mm_set1_epi8(1); diff --git a/coresimd/x86/sse42.rs b/coresimd/x86/sse42.rs index efbfe79d3ecda..0ba76b57b9fd2 100644 --- a/coresimd/x86/sse42.rs +++ b/coresimd/x86/sse42.rs @@ -118,8 +118,6 @@ pub unsafe fn _mm_cmpistrm(a: __m128i, b: __m128i, imm8: i32) -> __m128i { /// Find a substring using [`_SIDD_CMP_EQUAL_ORDERED`] /// /// ``` -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature)] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -167,8 +165,6 @@ pub unsafe fn _mm_cmpistrm(a: __m128i, b: __m128i, imm8: i32) -> __m128i { /// one or more of a given set of characters in the haystack. /// /// ``` -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature)] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -213,8 +209,6 @@ pub unsafe fn _mm_cmpistrm(a: __m128i, b: __m128i, imm8: i32) -> __m128i { /// range of characters. /// /// ``` -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature)] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -259,8 +253,6 @@ pub unsafe fn _mm_cmpistrm(a: __m128i, b: __m128i, imm8: i32) -> __m128i { /// Working with 16-bit characters. /// /// ``` -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature)] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -492,8 +484,6 @@ pub unsafe fn _mm_cmpestrm( /// # Examples /// /// ``` -/// # #![feature(cfg_target_feature)] -/// # #![feature(target_feature)] /// # #![feature(stdsimd)] /// # #![cfg_attr(not(dox), no_std)] /// # #[cfg(not(dox))] @@ -794,7 +784,7 @@ mod tests { _mm_loadu_si128(slice.as_ptr() as *const _) } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistrm() { let a = str_to_m128i(b"Hello! Good-Bye!"); let b = str_to_m128i(b"hello! good-bye!"); @@ -807,7 +797,7 @@ mod tests { assert_eq_m128i(i, res); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistri() { let a = str_to_m128i(b"Hello"); let b = str_to_m128i(b" Hello "); @@ -815,7 +805,7 @@ mod tests { assert_eq!(3, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistrz() { let a = str_to_m128i(b""); let b = str_to_m128i(b"Hello"); @@ -823,7 +813,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistrc() { let a = str_to_m128i(b" "); let b = str_to_m128i(b" ! "); @@ -831,7 +821,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistrs() { let a = str_to_m128i(b"Hello"); let b = str_to_m128i(b""); @@ -839,7 +829,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistro() { #[cfg_attr(rustfmt, rustfmt_skip)] let a_bytes = _mm_setr_epi8( @@ -857,7 +847,7 @@ mod tests { assert_eq!(0, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpistra() { let a = str_to_m128i(b""); let b = str_to_m128i(b"Hello!!!!!!!!!!!"); @@ -865,7 +855,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestrm() { let a = str_to_m128i(b"Hello!"); let b = str_to_m128i(b"Hello."); @@ -878,7 +868,7 @@ mod tests { assert_eq_m128i(i, r); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestri() { let a = str_to_m128i(b"bar - garbage"); let b = str_to_m128i(b"foobar"); @@ -886,7 +876,7 @@ mod tests { assert_eq!(3, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestrz() { let a = str_to_m128i(b""); let b = str_to_m128i(b"Hello"); @@ -894,7 +884,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestrc() { let va = str_to_m128i(b"!!!!!!!!"); let vb = str_to_m128i(b" "); @@ -902,7 +892,7 @@ mod tests { assert_eq!(0, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestrs() { #[cfg_attr(rustfmt, rustfmt_skip)] let a_bytes = _mm_setr_epi8( @@ -915,7 +905,7 @@ mod tests { assert_eq!(0, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestro() { let a = str_to_m128i(b"Hello"); let b = str_to_m128i(b"World"); @@ -923,7 +913,7 @@ mod tests { assert_eq!(0, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpestra() { let a = str_to_m128i(b"Cannot match a"); let b = str_to_m128i(b"Null after 14"); @@ -937,7 +927,7 @@ mod tests { assert_eq!(1, i); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_crc32_u8() { let crc = 0x2aa1e72b; let v = 0x2a; @@ -945,7 +935,7 @@ mod tests { assert_eq!(i, 0xf24122e4); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_crc32_u16() { let crc = 0x8ecec3b5; let v = 0x22b; @@ -953,7 +943,7 @@ mod tests { assert_eq!(i, 0x13bb2fb); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_crc32_u32() { let crc = 0xae2912c8; let v = 0x845fed; @@ -961,7 +951,7 @@ mod tests { assert_eq!(i, 0xffae2ed1); } - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_cmpgt_epi64() { let a = _mm_setr_epi64x(0, 0x2a); let b = _mm_set1_epi64x(0x00); diff --git a/coresimd/x86/sse4a.rs b/coresimd/x86/sse4a.rs index d13cc57732a06..7c45ca1d11f75 100644 --- a/coresimd/x86/sse4a.rs +++ b/coresimd/x86/sse4a.rs @@ -81,7 +81,7 @@ mod tests { use coresimd::x86::*; use stdsimd_test::simd_test; - #[simd_test = "sse4a"] + #[simd_test(enable = "sse4a")] unsafe fn test_mm_extract_si64() { let b = 0b0110_0000_0000_i64; // ^^^^ bit range extracted @@ -94,7 +94,7 @@ mod tests { assert_eq_m128i(r, e); } - #[simd_test = "sse4a"] + #[simd_test(enable = "sse4a")] unsafe fn test_mm_insert_si64() { let i = 0b0110_i64; // ^^^^ bit range inserted @@ -116,7 +116,7 @@ mod tests { data: [f64; 2], } - #[simd_test = "sse4a"] + #[simd_test(enable = "sse4a")] unsafe fn test_mm_stream_sd() { let mut mem = MemoryF64 { data: [1.0_f64, 2.0], @@ -138,7 +138,7 @@ mod tests { data: [f32; 4], } - #[simd_test = "sse4a"] + #[simd_test(enable = "sse4a")] unsafe fn test_mm_stream_ss() { let mut mem = MemoryF32 { data: [1.0_f32, 2.0, 3.0, 4.0], diff --git a/coresimd/x86/ssse3.rs b/coresimd/x86/ssse3.rs index 375731b32a7c3..2b6684709175e 100644 --- a/coresimd/x86/ssse3.rs +++ b/coresimd/x86/ssse3.rs @@ -564,25 +564,25 @@ mod tests { use coresimd::x86::*; - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_abs_epi8() { let r = _mm_abs_epi8(_mm_set1_epi8(-5)); assert_eq_m128i(r, _mm_set1_epi8(5)); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_abs_epi16() { let r = _mm_abs_epi16(_mm_set1_epi16(-5)); assert_eq_m128i(r, _mm_set1_epi16(5)); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_abs_epi32() { let r = _mm_abs_epi32(_mm_set1_epi32(-5)); assert_eq_m128i(r, _mm_set1_epi32(5)); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_shuffle_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -618,7 +618,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_alignr_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -658,7 +658,7 @@ mod tests { assert_eq_m128i(r, b); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hadd_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(4, 128, 4, 3, 24, 12, 6, 19); @@ -667,7 +667,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hadds_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(4, 128, 4, 3, 32767, 1, -32768, -1); @@ -676,7 +676,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hadd_epi32() { let a = _mm_setr_epi32(1, 2, 3, 4); let b = _mm_setr_epi32(4, 128, 4, 3); @@ -685,7 +685,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hsub_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(4, 128, 4, 3, 24, 12, 6, 19); @@ -694,7 +694,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hsubs_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(4, 128, 4, 3, 32767, -1, -32768, 1); @@ -703,7 +703,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_hsub_epi32() { let a = _mm_setr_epi32(1, 2, 3, 4); let b = _mm_setr_epi32(4, 128, 4, 3); @@ -712,7 +712,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_maddubs_epi16() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -731,7 +731,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_mulhrs_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_epi16(4, 128, 4, 3, 32767, -1, -32768, 1); @@ -740,7 +740,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_sign_epi8() { #[cfg_attr(rustfmt, rustfmt_skip)] let a = _mm_setr_epi8( @@ -761,7 +761,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_sign_epi16() { let a = _mm_setr_epi16(1, 2, 3, 4, -5, -6, 7, 8); let b = _mm_setr_epi16(4, 128, 0, 3, 1, -1, -2, 1); @@ -770,7 +770,7 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3"] + #[simd_test(enable = "ssse3")] unsafe fn test_mm_sign_epi32() { let a = _mm_setr_epi32(-1, 2, 3, 4); let b = _mm_setr_epi32(1, -1, 1, 0); @@ -779,25 +779,25 @@ mod tests { assert_eq_m128i(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_abs_pi8() { let r = _mm_abs_pi8(_mm_set1_pi8(-5)); assert_eq_m64(r, _mm_set1_pi8(5)); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_abs_pi16() { let r = _mm_abs_pi16(_mm_set1_pi16(-5)); assert_eq_m64(r, _mm_set1_pi16(5)); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_abs_pi32() { let r = _mm_abs_pi32(_mm_set1_pi32(-5)); assert_eq_m64(r, _mm_set1_pi32(5)); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_shuffle_pi8() { let a = _mm_setr_pi8(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_pi8(4, 128u8 as i8, 4, 3, 24, 12, 6, 19); @@ -806,7 +806,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_alignr_pi8() { let a = _mm_setr_pi32(0x89ABCDEF_u32 as i32, 0x01234567_u32 as i32); let b = _mm_setr_pi32(0xBBAA9988_u32 as i32, 0xFFDDEECC_u32 as i32); @@ -814,7 +814,7 @@ mod tests { assert_eq_m64(r, ::std::mem::transmute(0x89abcdefffddeecc_u64)); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hadd_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let b = _mm_setr_pi16(4, 128, 4, 3); @@ -823,7 +823,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hadd_pi32() { let a = _mm_setr_pi32(1, 2); let b = _mm_setr_pi32(4, 128); @@ -832,7 +832,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hadds_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let b = _mm_setr_pi16(32767, 1, -32768, -1); @@ -841,7 +841,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hsub_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let b = _mm_setr_pi16(4, 128, 4, 3); @@ -850,7 +850,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hsub_pi32() { let a = _mm_setr_pi32(1, 2); let b = _mm_setr_pi32(4, 128); @@ -859,7 +859,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_hsubs_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let b = _mm_setr_pi16(4, 128, 4, 3); @@ -868,7 +868,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_maddubs_pi16() { let a = _mm_setr_pi8(1, 2, 3, 4, 5, 6, 7, 8); let b = _mm_setr_pi8(4, 63, 4, 3, 24, 12, 6, 19); @@ -877,7 +877,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_mulhrs_pi16() { let a = _mm_setr_pi16(1, 2, 3, 4); let b = _mm_setr_pi16(4, 32767, -1, -32768); @@ -886,7 +886,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_sign_pi8() { let a = _mm_setr_pi8(1, 2, 3, 4, -5, -6, 7, 8); let b = _mm_setr_pi8(4, 64, 0, 3, 1, -1, -2, 1); @@ -895,7 +895,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_sign_pi16() { let a = _mm_setr_pi16(-1, 2, 3, 4); let b = _mm_setr_pi16(1, -1, 1, 0); @@ -904,7 +904,7 @@ mod tests { assert_eq_m64(r, expected); } - #[simd_test = "ssse3,mmx"] + #[simd_test(enable = "ssse3,mmx")] unsafe fn test_mm_sign_pi32() { let a = _mm_setr_pi32(-1, 2); let b = _mm_setr_pi32(1, 0); diff --git a/coresimd/x86/tbm.rs b/coresimd/x86/tbm.rs index 69599c0c922ab..ca55f68f58329 100644 --- a/coresimd/x86/tbm.rs +++ b/coresimd/x86/tbm.rs @@ -284,31 +284,31 @@ mod tests { use coresimd::x86::*; /* - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_bextr_u32() { assert_eq!(_bextr_u32(0b0101_0000u32, 4, 4), 0b0000_0101u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_bextr_u64() { assert_eq!(_bextr_u64(0b0101_0000u64, 4, 4), 0b0000_0101u64); } */ - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blcfill_u32() { assert_eq!(_blcfill_u32(0b0101_0111u32), 0b0101_0000u32); assert_eq!(_blcfill_u32(0b1111_1111u32), 0u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] unsafe fn test_blcfill_u64() { assert_eq!(_blcfill_u64(0b0101_0111u64), 0b0101_0000u64); assert_eq!(_blcfill_u64(0b1111_1111u64), 0u64); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blci_u32() { assert_eq!( _blci_u32(0b0101_0000u32), @@ -320,7 +320,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] #[cfg_attr(rustfmt, rustfmt_skip)] unsafe fn test_blci_u64() { @@ -334,46 +334,46 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blcic_u32() { assert_eq!(_blcic_u32(0b0101_0001u32), 0b0000_0010u32); assert_eq!(_blcic_u32(0b1111_1111u32), 0b1_0000_0000u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] unsafe fn test_blcic_u64() { assert_eq!(_blcic_u64(0b0101_0001u64), 0b0000_0010u64); assert_eq!(_blcic_u64(0b1111_1111u64), 0b1_0000_0000u64); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blcmsk_u32() { assert_eq!(_blcmsk_u32(0b0101_0001u32), 0b0000_0011u32); assert_eq!(_blcmsk_u32(0b1111_1111u32), 0b1_1111_1111u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] unsafe fn test_blcmsk_u64() { assert_eq!(_blcmsk_u64(0b0101_0001u64), 0b0000_0011u64); assert_eq!(_blcmsk_u64(0b1111_1111u64), 0b1_1111_1111u64); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blcs_u32() { assert_eq!(_blcs_u32(0b0101_0001u32), 0b0101_0011u32); assert_eq!(_blcs_u32(0b1111_1111u32), 0b1_1111_1111u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] unsafe fn test_blcs_u64() { assert_eq!(_blcs_u64(0b0101_0001u64), 0b0101_0011u64); assert_eq!(_blcs_u64(0b1111_1111u64), 0b1_1111_1111u64); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blsfill_u32() { assert_eq!(_blsfill_u32(0b0101_0100u32), 0b0101_0111u32); assert_eq!( @@ -382,7 +382,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] #[cfg_attr(rustfmt, rustfmt_skip)] unsafe fn test_blsfill_u64() { @@ -393,7 +393,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_blsic_u32() { assert_eq!( _blsic_u32(0b0101_0100u32), @@ -405,7 +405,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] #[cfg_attr(rustfmt, rustfmt_skip)] unsafe fn test_blsic_u64() { @@ -419,7 +419,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_t1mskc_u32() { assert_eq!( _t1mskc_u32(0b0101_0111u32), @@ -431,7 +431,7 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] #[cfg_attr(rustfmt, rustfmt_skip)] unsafe fn test_t1mksc_u64() { @@ -445,13 +445,13 @@ mod tests { ); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] unsafe fn test_tzmsk_u32() { assert_eq!(_tzmsk_u32(0b0101_1000u32), 0b0000_0111u32); assert_eq!(_tzmsk_u32(0b0101_1001u32), 0b0000_0000u32); } - #[simd_test = "tbm"] + #[simd_test(enable = "tbm")] #[cfg(not(target_arch = "x86"))] unsafe fn test_tzmsk_u64() { assert_eq!(_tzmsk_u64(0b0101_1000u64), 0b0000_0111u64); diff --git a/coresimd/x86/xsave.rs b/coresimd/x86/xsave.rs index 8ae8e179afff6..98df42da42ea9 100644 --- a/coresimd/x86/xsave.rs +++ b/coresimd/x86/xsave.rs @@ -231,7 +231,7 @@ mod tests { // FIXME: https://github.com/rust-lang-nursery/stdsimd/issues/209 /* - #[simd_test = "xsave"] + #[simd_test(enable = "xsave")] unsafe fn xsave() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -244,7 +244,7 @@ mod tests { } */ - #[simd_test = "xsave"] + #[simd_test(enable = "xsave")] unsafe fn xgetbv_xsetbv() { let xcr_n: u32 = _XCR_XFEATURE_ENABLED_MASK; @@ -259,7 +259,7 @@ mod tests { // FIXME: https://github.com/rust-lang-nursery/stdsimd/issues/209 /* - #[simd_test = "xsave,xsaveopt"] + #[simd_test(enable = "xsave,xsaveopt")] unsafe fn xsaveopt() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -273,8 +273,8 @@ mod tests { */ // FIXME: this looks like a bug in Intel's SDE: - #[cfg(not(feature = "intel_sde"))] - #[simd_test = "xsave,xsavec"] + #[cfg(not(stdsimd_intel_sde))] + #[simd_test(enable = "xsave,xsavec")] unsafe fn xsavec() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -288,7 +288,7 @@ mod tests { // FIXME: https://github.com/rust-lang-nursery/stdsimd/issues/209 /* - #[simd_test = "xsave,xsaves"] + #[simd_test(enable = "xsave,xsaves")] unsafe fn xsaves() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); diff --git a/coresimd/x86_64/abm.rs b/coresimd/x86_64/abm.rs index 8175c10f996c0..1f08a362fb547 100644 --- a/coresimd/x86_64/abm.rs +++ b/coresimd/x86_64/abm.rs @@ -50,12 +50,12 @@ mod tests { use coresimd::arch::x86_64::*; - #[simd_test = "lzcnt"] + #[simd_test(enable = "lzcnt")] unsafe fn test_lzcnt_u64() { assert_eq!(_lzcnt_u64(0b0101_1010), 57); } - #[simd_test = "popcnt"] + #[simd_test(enable = "popcnt")] unsafe fn test_popcnt64() { assert_eq!(_popcnt64(0b0101_1010), 4); } diff --git a/coresimd/x86_64/avx.rs b/coresimd/x86_64/avx.rs index 510949ad4a04b..b176483fdd596 100644 --- a/coresimd/x86_64/avx.rs +++ b/coresimd/x86_64/avx.rs @@ -36,7 +36,7 @@ mod tests { use coresimd::x86::*; - #[simd_test = "avx"] + #[simd_test(enable = "avx")] unsafe fn test_mm256_insert_epi64() { let a = _mm256_setr_epi64x(1, 2, 3, 4); let r = _mm256_insert_epi64(a, 0, 3); diff --git a/coresimd/x86_64/avx2.rs b/coresimd/x86_64/avx2.rs index 3e15e2595e5d7..8e85010ac47e9 100644 --- a/coresimd/x86_64/avx2.rs +++ b/coresimd/x86_64/avx2.rs @@ -40,7 +40,7 @@ mod tests { use coresimd::arch::x86_64::*; - #[simd_test = "avx2"] + #[simd_test(enable = "avx2")] unsafe fn test_mm256_extract_epi64() { let a = _mm256_setr_epi64x(0, 1, 2, 3); let r = _mm256_extract_epi64(a, 3); diff --git a/coresimd/x86_64/bmi.rs b/coresimd/x86_64/bmi.rs index 628f1e27e9682..61bee8f0f9cac 100644 --- a/coresimd/x86_64/bmi.rs +++ b/coresimd/x86_64/bmi.rs @@ -128,13 +128,13 @@ mod tests { use coresimd::x86::*; use coresimd::x86_64::*; - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_bextr_u64() { let r = _bextr_u64(0b0101_0000u64, 4, 4); assert_eq!(r, 0b0000_0101u64); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_andn_u64() { assert_eq!(_andn_u64(0, 0), 0); assert_eq!(_andn_u64(0, 1), 1); @@ -157,25 +157,25 @@ mod tests { assert_eq!(r, 0b0001_1101u64); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsi_u64() { assert_eq!(_blsi_u64(0b1101_0000u64), 0b0001_0000u64); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsmsk_u64() { let r = _blsmsk_u64(0b0011_0000u64); assert_eq!(r, 0b0001_1111u64); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_blsr_u64() { // TODO: test the behavior when the input is 0 let r = _blsr_u64(0b0011_0000u64); assert_eq!(r, 0b0010_0000u64); } - #[simd_test = "bmi1"] + #[simd_test(enable = "bmi1")] unsafe fn test_tzcnt_u64() { assert_eq!(_tzcnt_u64(0b0000_0001u64), 0u64); assert_eq!(_tzcnt_u64(0b0000_0000u64), 64u64); diff --git a/coresimd/x86_64/bmi2.rs b/coresimd/x86_64/bmi2.rs index 29c5ee0c777f4..2cf98b826f140 100644 --- a/coresimd/x86_64/bmi2.rs +++ b/coresimd/x86_64/bmi2.rs @@ -83,7 +83,7 @@ mod tests { use coresimd::x86_64::*; - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_pext_u64() { let n = 0b1011_1110_1001_0011u64; @@ -97,7 +97,7 @@ mod tests { assert_eq!(_pext_u64(n, m1), s1); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_pdep_u64() { let n = 0b1011_1110_1001_0011u64; @@ -111,14 +111,14 @@ mod tests { assert_eq!(_pdep_u64(n, m1), s1); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] unsafe fn test_bzhi_u64() { let n = 0b1111_0010u64; let s = 0b0001_0010u64; assert_eq!(_bzhi_u64(n, 5), s); } - #[simd_test = "bmi2"] + #[simd_test(enable = "bmi2")] #[cfg_attr(rustfmt, rustfmt_skip)] unsafe fn test_mulx_u64() { let a: u64 = 9_223_372_036_854_775_800; diff --git a/coresimd/x86_64/fxsr.rs b/coresimd/x86_64/fxsr.rs index ffd722bad6d92..d28a6d8d2eeed 100644 --- a/coresimd/x86_64/fxsr.rs +++ b/coresimd/x86_64/fxsr.rs @@ -99,7 +99,7 @@ mod tests { } } - #[simd_test = "fxsr"] + #[simd_test(enable = "fxsr")] unsafe fn fxsave64() { let mut a = FxsaveArea::new(); let mut b = FxsaveArea::new(); diff --git a/coresimd/x86_64/sse.rs b/coresimd/x86_64/sse.rs index a06a515bc4d39..dbbdb0671f006 100644 --- a/coresimd/x86_64/sse.rs +++ b/coresimd/x86_64/sse.rs @@ -77,7 +77,7 @@ mod tests { use coresimd::arch::x86_64::*; - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cvtss_si64() { let inputs = &[ (42.0f32, 42i64), @@ -102,7 +102,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] unsafe fn test_mm_cvttss_si64() { let inputs = &[ (42.0f32, 42i64), @@ -130,7 +130,7 @@ mod tests { } } - #[simd_test = "sse"] + #[simd_test(enable = "sse")] pub unsafe fn test_mm_cvtsi64_ss() { let inputs = &[ (4555i64, 4555.0f32), diff --git a/coresimd/x86_64/sse2.rs b/coresimd/x86_64/sse2.rs index 30089da6f8e8f..f336f90fafb0d 100644 --- a/coresimd/x86_64/sse2.rs +++ b/coresimd/x86_64/sse2.rs @@ -152,7 +152,7 @@ mod tests { use coresimd::arch::x86_64::*; - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsd_si64() { let r = _mm_cvtsd_si64(_mm_setr_pd(-2.0, 5.0)); assert_eq!(r, -2_i64); @@ -161,27 +161,27 @@ mod tests { assert_eq!(r, i64::MIN); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsd_si64x() { let r = _mm_cvtsd_si64x(_mm_setr_pd(f64::NAN, f64::NAN)); assert_eq!(r, i64::MIN); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvttsd_si64() { let a = _mm_setr_pd(-1.1, 2.2); let r = _mm_cvttsd_si64(a); assert_eq!(r, -1_i64); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvttsd_si64x() { let a = _mm_setr_pd(f64::NEG_INFINITY, f64::NAN); let r = _mm_cvttsd_si64x(a); assert_eq!(r, i64::MIN); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_stream_si64() { let a: i64 = 7; let mut mem = ::std::boxed::Box::::new(-1); @@ -189,19 +189,19 @@ mod tests { assert_eq!(a, *mem); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi64_si128() { let r = _mm_cvtsi64_si128(5); assert_eq_m128i(r, _mm_setr_epi64x(5, 0)); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi128_si64() { let r = _mm_cvtsi128_si64(_mm_setr_epi64x(5, 0)); assert_eq!(r, 5); } - #[simd_test = "sse2"] + #[simd_test(enable = "sse2")] unsafe fn test_mm_cvtsi64_sd() { let a = _mm_set1_pd(3.5); let r = _mm_cvtsi64_sd(a, 5); diff --git a/coresimd/x86_64/sse41.rs b/coresimd/x86_64/sse41.rs index 63b4a6c4ca47f..301b87b15e228 100644 --- a/coresimd/x86_64/sse41.rs +++ b/coresimd/x86_64/sse41.rs @@ -39,7 +39,7 @@ mod tests { use coresimd::arch::x86_64::*; use stdsimd_test::simd_test; - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_extract_epi64() { let a = _mm_setr_epi64x(0, 1); let r = _mm_extract_epi64(a, 1); @@ -48,7 +48,7 @@ mod tests { assert_eq!(r, 1); } - #[simd_test = "sse4.1"] + #[simd_test(enable = "sse4.1")] unsafe fn test_mm_insert_epi64() { let a = _mm_set1_epi64x(0); let e = _mm_setr_epi64x(0, 32); diff --git a/coresimd/x86_64/sse42.rs b/coresimd/x86_64/sse42.rs index bf42fd2c59514..d981c176ea77e 100644 --- a/coresimd/x86_64/sse42.rs +++ b/coresimd/x86_64/sse42.rs @@ -27,7 +27,7 @@ mod tests { use stdsimd_test::simd_test; - #[simd_test = "sse4.2"] + #[simd_test(enable = "sse4.2")] unsafe fn test_mm_crc32_u64() { let crc = 0x7819dccd3e824; let v = 0x2a22b845fed; diff --git a/coresimd/x86_64/xsave.rs b/coresimd/x86_64/xsave.rs index ebcb04d86fced..a5b630232f458 100644 --- a/coresimd/x86_64/xsave.rs +++ b/coresimd/x86_64/xsave.rs @@ -192,7 +192,7 @@ mod tests { } } - #[simd_test = "xsave"] + #[simd_test(enable = "xsave")] unsafe fn xsave64() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -204,7 +204,7 @@ mod tests { assert_eq!(a, b); } - #[simd_test = "xsave,xsaveopt"] + #[simd_test(enable = "xsave,xsaveopt")] unsafe fn xsaveopt64() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -216,7 +216,7 @@ mod tests { assert_eq!(a, b); } - #[simd_test = "xsave,xsavec"] + #[simd_test(enable = "xsave,xsavec")] unsafe fn xsavec64() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); @@ -228,7 +228,7 @@ mod tests { assert_eq!(a, b); } - #[simd_test = "xsave,xsaves"] + #[simd_test(enable = "xsave,xsaves")] unsafe fn xsaves64() { let m = 0xFFFFFFFFFFFFFFFF_u64; //< all registers let mut a = XsaveArea::new(); diff --git a/crates/assert-instr-macro/src/lib.rs b/crates/assert-instr-macro/src/lib.rs index 6abbd1a6376d1..5320bcba37793 100644 --- a/crates/assert-instr-macro/src/lib.rs +++ b/crates/assert-instr-macro/src/lib.rs @@ -137,7 +137,7 @@ struct Invoc { } impl syn::synom::Synom for Invoc { - named!(parse -> Self, map!(parens!(do_parse!( + named!(parse -> Self, do_parse!( instr: syn!(syn::Expr) >> args: many0!(do_parse!( syn!(syn::token::Comma) >> @@ -150,7 +150,7 @@ impl syn::synom::Synom for Invoc { instr, args, }) - )), |p| p.1)); + )); } struct Append(T); diff --git a/crates/coresimd/src/lib.rs b/crates/coresimd/src/lib.rs index f4b3f1ff5db44..be097b977987f 100644 --- a/crates/coresimd/src/lib.rs +++ b/crates/coresimd/src/lib.rs @@ -6,15 +6,17 @@ //! //! [stdsimd]: https://rust-lang-nursery.github.io/stdsimd/x86_64/stdsimd/ -#![cfg_attr(feature = "strict", deny(warnings))] +#![cfg_attr(stdsimd_strict, deny(warnings))] #![allow(dead_code)] #![allow(unused_features)] #![feature(const_fn, link_llvm_intrinsics, platform_intrinsics, repr_simd, - simd_ffi, target_feature, cfg_target_feature, asm, + simd_ffi, asm, integer_atomics, stmt_expr_attributes, core_intrinsics, crate_in_paths, no_core, attr_literals, rustc_attrs, stdsimd, staged_api, fn_must_use, core_float, core_slice_ext, align_offset, - doc_cfg)] + doc_cfg, mmx_target_feature, tbm_target_feature, + sse4a_target_feature, arm_target_feature, aarch64_target_feature, + mips_target_feature)] #![cfg_attr(test, feature(proc_macro, test, attr_literals, abi_vectorcall, untagged_unions))] diff --git a/crates/coresimd/tests/cpu-detection.rs b/crates/coresimd/tests/cpu-detection.rs index 5bd28f8272815..2a788102a4013 100644 --- a/crates/coresimd/tests/cpu-detection.rs +++ b/crates/coresimd/tests/cpu-detection.rs @@ -1,5 +1,5 @@ -#![feature(cfg_target_feature, stdsimd)] -#![cfg_attr(feature = "strict", deny(warnings))] +#![feature(stdsimd)] +#![cfg_attr(stdsimd_strict, deny(warnings))] #![cfg_attr(feature = "cargo-clippy", allow(option_unwrap_used, print_stdout, use_debug))] diff --git a/crates/coresimd/tests/endian_tests.rs b/crates/coresimd/tests/endian_tests.rs index 27618f24e3e51..8bb9c490510ba 100644 --- a/crates/coresimd/tests/endian_tests.rs +++ b/crates/coresimd/tests/endian_tests.rs @@ -1,5 +1,5 @@ -#![feature(cfg_target_feature, stdsimd)] -#![cfg_attr(feature = "strict", deny(warnings))] +#![feature(stdsimd)] +#![cfg_attr(stdsimd_strict, deny(warnings))] extern crate core; extern crate coresimd; diff --git a/crates/coresimd/tests/reductions.rs b/crates/coresimd/tests/reductions.rs index 1ce2df28732cc..fd247156853e2 100644 --- a/crates/coresimd/tests/reductions.rs +++ b/crates/coresimd/tests/reductions.rs @@ -1,4 +1,8 @@ -#![feature(cfg_target_feature, stdsimd, target_feature)] +#![feature(stdsimd, sse4a_target_feature, avx512_target_feature)] +#![feature(arm_target_feature)] +#![feature(aarch64_target_feature)] +#![feature(powerpc_target_feature)] +#![allow(unused_attributes)] #[macro_use] extern crate stdsimd; diff --git a/crates/coresimd/tests/v128.rs b/crates/coresimd/tests/v128.rs index c08154238fef4..3cba8811cbc28 100644 --- a/crates/coresimd/tests/v128.rs +++ b/crates/coresimd/tests/v128.rs @@ -1,8 +1,7 @@ //! coresimd 128-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports, dead_code)] #[cfg(test)] diff --git a/crates/coresimd/tests/v16.rs b/crates/coresimd/tests/v16.rs index efa5245430695..77c78323fe57d 100644 --- a/crates/coresimd/tests/v16.rs +++ b/crates/coresimd/tests/v16.rs @@ -1,8 +1,7 @@ //! coresimd 16-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports, dead_code)] #[cfg(test)] diff --git a/crates/coresimd/tests/v256.rs b/crates/coresimd/tests/v256.rs index 67c6db7cf2f8d..fac31c316f71b 100644 --- a/crates/coresimd/tests/v256.rs +++ b/crates/coresimd/tests/v256.rs @@ -1,8 +1,7 @@ //! coresimd 256-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports)] #[cfg(test)] diff --git a/crates/coresimd/tests/v32.rs b/crates/coresimd/tests/v32.rs index d1fd44a903dea..3f89acc9a052a 100644 --- a/crates/coresimd/tests/v32.rs +++ b/crates/coresimd/tests/v32.rs @@ -1,8 +1,7 @@ //! coresimd 32-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports, dead_code)] #[cfg(test)] diff --git a/crates/coresimd/tests/v512.rs b/crates/coresimd/tests/v512.rs index 35d40415e24ef..cda0661370137 100644 --- a/crates/coresimd/tests/v512.rs +++ b/crates/coresimd/tests/v512.rs @@ -1,8 +1,7 @@ //! coresimd 512-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports)] #[cfg(test)] diff --git a/crates/coresimd/tests/v64.rs b/crates/coresimd/tests/v64.rs index e66cf6ca7e412..65b91219ca906 100644 --- a/crates/coresimd/tests/v64.rs +++ b/crates/coresimd/tests/v64.rs @@ -1,8 +1,7 @@ //! coresimd 64-bit wide vector tests -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float, - cfg_target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd, link_llvm_intrinsics, simd_ffi, core_float)] #![allow(unused_imports, dead_code)] #[cfg(test)] diff --git a/crates/simd-test-macro/src/lib.rs b/crates/simd-test-macro/src/lib.rs index 24e78e0996f37..5e37c63b6c0ce 100644 --- a/crates/simd-test-macro/src/lib.rs +++ b/crates/simd-test-macro/src/lib.rs @@ -25,31 +25,30 @@ pub fn simd_test( let tokens = TokenStream::from(attr) .into_iter() .collect::>(); - if tokens.len() != 2 { - panic!("expected #[simd_test = \"feature\"]"); + if tokens.len() != 3 { + panic!("expected #[simd_test(enable = \"feature\")]"); } match &tokens[0] { + TokenTree::Term(tt) if tt.to_string() == "enable" => {} + _ => panic!("expected #[simd_test(enable = \"feature\")]"), + } + match &tokens[1] { TokenTree::Op(tt) if tt.op() == '=' => {} - _ => panic!("expected #[simd_test = \"feature\"]"), + _ => panic!("expected #[simd_test(enable = \"feature\")]"), } - let target_features = match &tokens[1] { + let enable_feature = match &tokens[2] { TokenTree::Literal(tt) => tt.to_string(), - _ => panic!("expected #[simd_test = \"feature\"]"), + _ => panic!("expected #[simd_test(enable = \"feature\")]"), }; - let target_features: Vec = target_features - .replace('"', "") + let enable_feature = enable_feature + .trim_left_matches('"') + .trim_right_matches('"'); + let target_features: Vec = enable_feature .replace('+', "") .split(',') .map(|v| String::from(v)) .collect(); - let enable_feature = match &tokens[1] { - TokenTree::Literal(tt) => tt.to_string(), - _ => panic!("expected #[simd_test = \"feature\"]"), - }; - let enable_feature = enable_feature - .trim_left_matches('"') - .trim_right_matches('"'); let enable_feature = string(enable_feature); let item = TokenStream::from(item); let name = find_name(item.clone()); diff --git a/crates/stdsimd/Cargo.toml b/crates/stdsimd/Cargo.toml index edb62b9637d0a..328229ba8a4c8 100644 --- a/crates/stdsimd/Cargo.toml +++ b/crates/stdsimd/Cargo.toml @@ -29,13 +29,6 @@ quickcheck = "0.6" rand = "0.4" cupid = "0.5.0" -[features] -# Internal-usage only: denies all warnings. -strict = [ "coresimd/strict" ] -# Internal-usage only: enables only those intrinsics supported by Intel's -# Software Development Environment (SDE). -intel_sde = [ "coresimd/intel_sde" ] - [[example]] name = "hex" path = "../../examples/hex.rs" diff --git a/crates/stdsimd/src/lib.rs b/crates/stdsimd/src/lib.rs index 86866c54a6a6e..aa2e51ce10341 100644 --- a/crates/stdsimd/src/lib.rs +++ b/crates/stdsimd/src/lib.rs @@ -8,7 +8,7 @@ //! [stdsimd]: https://rust-lang-nursery.github.io/stdsimd/x86_64/stdsimd/ #![feature(const_fn, integer_atomics, staged_api, stdsimd)] -#![feature(cfg_target_feature, doc_cfg, allow_internal_unstable)] +#![feature(doc_cfg, allow_internal_unstable)] #![cfg_attr(feature = "cargo-clippy", allow(shadow_reuse))] #![cfg_attr(target_os = "linux", feature(linkage))] #![no_std] diff --git a/crates/stdsimd/tests/cpu-detection.rs b/crates/stdsimd/tests/cpu-detection.rs index 0653ba3af2d23..62c04656d15a9 100644 --- a/crates/stdsimd/tests/cpu-detection.rs +++ b/crates/stdsimd/tests/cpu-detection.rs @@ -1,5 +1,5 @@ -#![feature(cfg_target_feature, stdsimd)] -#![cfg_attr(feature = "strict", deny(warnings))] +#![feature(stdsimd)] +#![cfg_attr(stdsimd_strict, deny(warnings))] #![cfg_attr(feature = "cargo-clippy", allow(option_unwrap_used, use_debug, print_stdout))] diff --git a/examples/hex.rs b/examples/hex.rs index 5aec17d08c960..5b045c61269a1 100644 --- a/examples/hex.rs +++ b/examples/hex.rs @@ -12,7 +12,7 @@ //! //! and you should see `746573740a` get printed out. -#![feature(cfg_target_feature, target_feature, stdsimd)] +#![feature(stdsimd)] #![cfg_attr(test, feature(test))] #![cfg_attr(feature = "cargo-clippy", allow(result_unwrap_used, print_stdout, option_unwrap_used, diff --git a/examples/nbody.rs b/examples/nbody.rs index 86cc8ef38f637..c67fbdc5613a6 100644 --- a/examples/nbody.rs +++ b/examples/nbody.rs @@ -3,9 +3,8 @@ //! [bg]: https://benchmarksgame.alioth.debian.org/u64q/nbody-description. //! html#nbody -#![cfg_attr(feature = "strict", deny(warnings))] -#![feature(cfg_target_feature, stdsimd)] -#![feature(target_feature)] +#![cfg_attr(stdsimd_strict, deny(warnings))] +#![feature(stdsimd)] #![cfg_attr(feature = "cargo-clippy", allow(similar_names, missing_docs_in_private_items, shadow_reuse, print_stdout))] diff --git a/stdsimd/arch/detect/cache.rs b/stdsimd/arch/detect/cache.rs index 611de2aea7d84..3d6b11d786ff8 100644 --- a/stdsimd/arch/detect/cache.rs +++ b/stdsimd/arch/detect/cache.rs @@ -135,7 +135,7 @@ impl Cache { /// initializes it with the result of `f()`. /// /// On its first invocation, it detects the CPU features and caches them in the -/// `FEATURES` global variable as an `AtomicU64`. +/// `CACHE` global variable as an `AtomicU64`. /// /// It uses the `Feature` variant to index into this variable as a bitset. If /// the bit is set, the feature is enabled, and otherwise it is disabled.