Auto merge of #141964 - sayantn:update-stdarch, r=Amanieu · rust-lang/rust@5e0bdaa (original) (raw)
9 files changed
lines changed
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -233,7 +233,7 @@ unsafe fn test_vaddvq_f32() { | ||
| 233 | 233 | |
| 234 | 234 | #[cfg(target_arch = "aarch64")] |
| 235 | 235 | unsafe fn test_vrndnq_f32() { |
| 236 | -// AArch64 llvm intrinsic: llvm.aarch64.neon.frintn.v4f32 | |
| 236 | +// llvm intrinsic: llvm.roundeven.v4f32 | |
| 237 | 237 | let a = f32x4::from([0.1, -1.9, 4.5, 5.5]); |
| 238 | 238 | let e = f32x4::from([0., -2., 4., 6.]); |
| 239 | 239 | let r: f32x4 = transmute(vrndnq_f32(transmute(a))); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -62,6 +62,14 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>( | ||
| 62 | 62 | }); |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | + _ if intrinsic.starts_with("llvm.roundeven.v") => { | |
| 66 | +intrinsic_args!(fx, args => (v); intrinsic); | |
| 67 | + | |
| 68 | +simd_for_each_lane(fx, v, ret, &|fx, _lane_ty, _res_lane_ty, lane | |
| 69 | + fx.bcx.ins().nearest(lane) | |
| 70 | +}); | |
| 71 | +} | |
| 72 | + | |
| 65 | 73 | _ => { |
| 66 | 74 | fx.tcx |
| 67 | 75 | .dcx() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -264,14 +264,6 @@ pub(super) fn codegen_aarch64_llvm_intrinsic_call<'tcx>( | ||
| 264 | 264 | simd_reduce(fx, v, None, ret, &|fx, _ty, a, b |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | - _ if intrinsic.starts_with("llvm.aarch64.neon.frintn.v") => { | |
| 268 | -intrinsic_args!(fx, args => (v); intrinsic); | |
| 269 | - | |
| 270 | -simd_for_each_lane(fx, v, ret, &|fx, _lane_ty, _res_lane_ty, lane | |
| 271 | - fx.bcx.ins().nearest(lane) | |
| 272 | -}); | |
| 273 | -} | |
| 274 | - | |
| 275 | 267 | _ if intrinsic.starts_with("llvm.aarch64.neon.smaxv.i") => { |
| 276 | 268 | intrinsic_args!(fx, args => (v); intrinsic); |
| 277 | 269 |
- crates/core_arch/src/aarch64/neon/generated.rs
- crates/core_arch/src/aarch64/neon/mod.rs
- crates/core_arch/src/arm_shared/neon/generated.rs
- crates/core_arch/src/arm_shared/neon/mod.rs
- crates/core_arch/src/loongarch64/mod.rs
- crates/core_arch/src/powerpc/altivec.rs
- crates/core_arch/src/s390x/vector.rs
- crates/core_arch/src/wasm32/simd128.rs
- crates/core_arch/src/x86/avx.rs
- crates/core_arch/src/x86/avx2.rs
- crates/core_arch/src/x86/avx512bf16.rs
- crates/core_arch/src/x86/avx512bitalg.rs
- crates/core_arch/src/x86/avx512bw.rs
- crates/core_arch/src/x86/avx512cd.rs
- crates/core_arch/src/x86/avx512dq.rs
- crates/core_arch/src/x86/avx512f.rs
- crates/core_arch/src/x86/avx512fp16.rs
- crates/core_arch/src/x86/avx512ifma.rs
- crates/core_arch/src/x86/avx512vbmi.rs
- crates/core_arch/src/x86/avx512vbmi2.rs
- crates/core_arch/src/x86/avx512vnni.rs
- crates/core_arch/src/x86/avx512vpopcntdq.rs
- crates/core_arch/src/x86/avxneconvert.rs
- crates/core_arch/src/x86/gfni.rs
- crates/core_arch/src/x86/kl.rs
- crates/core_arch/src/x86/mod.rs
- crates/core_arch/src/x86/rdtsc.rs
- crates/core_arch/src/x86/sha.rs
- crates/core_arch/src/x86/vaes.rs
- crates/core_arch/src/x86/vpclmulqdq.rs
- crates/core_arch/src/x86_64/avx512bw.rs
- crates/core_arch/src/x86_64/avx512f.rs
- crates/core_arch/src/x86_64/cmpxchg16b.rs
- crates/core_arch/src/x86_64/mod.rs
- crates/intrinsic-test/src/argument.rs
- crates/intrinsic-test/src/arm/compile.rs
- crates/intrinsic-test/src/arm/config.rs
- crates/intrinsic-test/src/arm/intrinsic.rs
- crates/intrinsic-test/src/arm/json_parser.rs
- crates/intrinsic-test/src/arm/mod.rs
- crates/intrinsic-test/src/arm/types.rs
- crates/intrinsic-test/src/common/argument.rs
- crates/intrinsic-test/src/common/cli.rs
- crates/intrinsic-test/src/common/compare.rs
- crates/intrinsic-test/src/common/compile_c.rs
- crates/intrinsic-test/src/common/constraint.rs
- crates/intrinsic-test/src/common/gen_c.rs
- crates/intrinsic-test/src/common/gen_rust.rs
- crates/intrinsic-test/src/common/indentation.rs
- crates/intrinsic-test/src/common/intrinsic.rs
- crates/intrinsic-test/src/common/intrinsic_helpers.rs
- crates/intrinsic-test/src/common/mod.rs
- crates/intrinsic-test/src/common/values.rs
- crates/intrinsic-test/src/common/write_file.rs
- crates/intrinsic-test/src/intrinsic.rs
- crates/intrinsic-test/src/json_parser.rs
- crates/intrinsic-test/src/main.rs
- crates/intrinsic-test/src/types.rs
- crates/std_detect/Cargo.toml
- crates/std_detect/src/detect/arch/riscv.rs
- crates/std_detect/src/detect/arch/x86.rs
- crates/std_detect/src/detect/cache.rs
- crates/std_detect/src/detect/macros.rs
- crates/std_detect/src/detect/os/linux/riscv.rs
- crates/std_detect/src/detect/os/riscv.rs
- crates/std_detect/tests/cpu-detection.rs
- crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml
- crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml
- crates/stdarch-gen-arm/src/big_endian.rs
- crates/stdarch-gen-arm/src/context.rs
- crates/stdarch-gen-arm/src/expression.rs
- crates/stdarch-gen-arm/src/fn_suffix.rs
- crates/stdarch-gen-arm/src/intrinsic.rs
- crates/stdarch-gen-arm/src/load_store_tests.rs
- crates/stdarch-gen-arm/src/main.rs
- crates/stdarch-gen-arm/src/typekinds.rs
- crates/stdarch-gen-arm/src/wildstring.rs
- crates/stdarch-gen-loongarch/src/main.rs
- crates/stdarch-test/src/lib.rs
- crates/stdarch-verify/src/lib.rs
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -2,8 +2,6 @@ | ||
| 2 | 2 | //@only-target: x86_64 i686 |
| 3 | 3 | //@compile-flags: -C target-feature=+aes,+vaes,+avx512f |
| 4 | 4 | |
| 5 | -#![feature(stdarch_x86_avx512)] | |
| 6 | - | |
| 7 | 5 | use core::mem::transmute; |
| 8 | 6 | #[cfg(target_arch = "x86")] |
| 9 | 7 | use std::arch::x86::*; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -2,8 +2,6 @@ | ||
| 2 | 2 | //@only-target: x86_64 i686 |
| 3 | 3 | //@compile-flags: -C target-feature=+avx512f,+avx512vl,+avx512bitalg,+avx512vpopcntdq |
| 4 | 4 | |
| 5 | -#![feature(stdarch_x86_avx512)] | |
| 6 | - | |
| 7 | 5 | #[cfg(target_arch = "x86")] |
| 8 | 6 | use std::arch::x86::*; |
| 9 | 7 | #[cfg(target_arch = "x86_64")] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -6,7 +6,6 @@ | ||
| 6 | 6 | // be interpreted as integers; signedness does not make sense for them, but |
| 7 | 7 | // __mXXXi happens to be defined in terms of signed integers. |
| 8 | 8 | #![allow(overflowing_literals)] |
| 9 | -#![feature(stdarch_x86_avx512)] | |
| 10 | 9 | |
| 11 | 10 | #[cfg(target_arch = "x86")] |
| 12 | 11 | use std::arch::x86::*; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -8,7 +8,6 @@ | ||
| 8 | 8 | // be interpreted as integers; signedness does not make sense for them, but |
| 9 | 9 | // __mXXXi happens to be defined in terms of signed integers. |
| 10 | 10 | #![allow(overflowing_literals)] |
| 11 | -#![feature(stdarch_x86_avx512)] | |
| 12 | 11 | |
| 13 | 12 | #[cfg(target_arch = "x86")] |
| 14 | 13 | use std::arch::x86::*; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -2,8 +2,6 @@ | ||
| 2 | 2 | //@ only-x86_64 |
| 3 | 3 | //@ compile-flags: --crate-type=lib -C target-cpu=skylake |
| 4 | 4 | |
| 5 | -#![feature(stdarch_x86_avx512)] | |
| 6 | - | |
| 7 | 5 | use std::arch::x86_64::*; |
| 8 | 6 | |
| 9 | 7 | #[target_feature(enable = "avx512f")] |