|
1 | 1 | use crate::core_arch::arm_shared::neon::*;
|
2 |
| -use crate::core_arch::simd::{f32x4, i32x4, u32x4}; |
3 |
| -use crate::core_arch::simd_llvm::*; |
4 | 2 | use crate::mem::{align_of, transmute};
|
5 | 3 |
|
6 | 4 | #[cfg(test)]
|
7 | 5 | use stdarch_test::assert_instr;
|
8 | 6 |
|
9 |
| -#[allow(non_camel_case_types)] |
10 |
| -pub(crate) type p8 = u8; |
11 |
| -#[allow(non_camel_case_types)] |
12 |
| -pub(crate) type p16 = u16; |
13 |
| - |
14 | 7 | #[allow(improper_ctypes)]
|
15 | 8 | extern "unadjusted" {
|
16 | 9 | #[link_name = "llvm.arm.neon.vbsl.v8i8"]
|
@@ -794,27 +787,6 @@ pub unsafe fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t
|
794 | 787 | ))
|
795 | 788 | }
|
796 | 789 |
|
797 |
| -// These float-to-int implementations have undefined behaviour when `a` overflows |
798 |
| -// the destination type. Clang has the same problem: https://llvm.org/PR47510 |
799 |
| - |
800 |
| -/// Floating-point Convert to Signed fixed-point, rounding toward Zero (vector) |
801 |
| -#[inline] |
802 |
| -#[target_feature(enable = "neon")] |
803 |
| -#[target_feature(enable = "v7")] |
804 |
| -#[cfg_attr(test, assert_instr("vcvt.s32.f32"))] |
805 |
| -pub unsafe fn vcvtq_s32_f32(a: float32x4_t) -> int32x4_t { |
806 |
| - transmute(simd_cast::<_, i32x4>(transmute::<_, f32x4>(a))) |
807 |
| -} |
808 |
| - |
809 |
| -/// Floating-point Convert to Unsigned fixed-point, rounding toward Zero (vector) |
810 |
| -#[inline] |
811 |
| -#[target_feature(enable = "neon")] |
812 |
| -#[target_feature(enable = "v7")] |
813 |
| -#[cfg_attr(test, assert_instr("vcvt.u32.f32"))] |
814 |
| -pub unsafe fn vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t { |
815 |
| - transmute(simd_cast::<_, u32x4>(transmute::<_, f32x4>(a))) |
816 |
| -} |
817 |
| - |
818 | 790 | /// Shift Left and Insert (immediate)
|
819 | 791 | #[inline]
|
820 | 792 | #[target_feature(enable = "neon,v7")]
|
|
0 commit comments