Add impl for llvm.roundeven in cg_clif
- remove unused `llvm.aarch64.neon.frintn` from cg_clif
This commit is contained in:
@@ -233,7 +233,7 @@ unsafe fn test_vaddvq_f32() {
|
|||||||
|
|
||||||
#[cfg(target_arch = "aarch64")]
|
#[cfg(target_arch = "aarch64")]
|
||||||
unsafe fn test_vrndnq_f32() {
|
unsafe fn test_vrndnq_f32() {
|
||||||
// AArch64 llvm intrinsic: llvm.aarch64.neon.frintn.v4f32
|
// llvm intrinsic: llvm.roundeven.v4f32
|
||||||
let a = f32x4::from([0.1, -1.9, 4.5, 5.5]);
|
let a = f32x4::from([0.1, -1.9, 4.5, 5.5]);
|
||||||
let e = f32x4::from([0., -2., 4., 6.]);
|
let e = f32x4::from([0., -2., 4., 6.]);
|
||||||
let r: f32x4 = transmute(vrndnq_f32(transmute(a)));
|
let r: f32x4 = transmute(vrndnq_f32(transmute(a)));
|
||||||
|
|||||||
@@ -62,6 +62,14 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_ if intrinsic.starts_with("llvm.roundeven.v") => {
|
||||||
|
intrinsic_args!(fx, args => (v); intrinsic);
|
||||||
|
|
||||||
|
simd_for_each_lane(fx, v, ret, &|fx, _lane_ty, _res_lane_ty, lane| {
|
||||||
|
fx.bcx.ins().nearest(lane)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
fx.tcx
|
fx.tcx
|
||||||
.dcx()
|
.dcx()
|
||||||
|
|||||||
@@ -264,14 +264,6 @@ pub(super) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
|
|||||||
simd_reduce(fx, v, None, ret, &|fx, _ty, a, b| fx.bcx.ins().fadd(a, b));
|
simd_reduce(fx, v, None, ret, &|fx, _ty, a, b| fx.bcx.ins().fadd(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
_ if intrinsic.starts_with("llvm.aarch64.neon.frintn.v") => {
|
|
||||||
intrinsic_args!(fx, args => (v); intrinsic);
|
|
||||||
|
|
||||||
simd_for_each_lane(fx, v, ret, &|fx, _lane_ty, _res_lane_ty, lane| {
|
|
||||||
fx.bcx.ins().nearest(lane)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
_ if intrinsic.starts_with("llvm.aarch64.neon.smaxv.i") => {
|
_ if intrinsic.starts_with("llvm.aarch64.neon.smaxv.i") => {
|
||||||
intrinsic_args!(fx, args => (v); intrinsic);
|
intrinsic_args!(fx, args => (v); intrinsic);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user