Skip to content

Commit 53fe1a3

Browse files
Merge pull request #410 from heiher/loongarch64
Add loongarch64 vendor conversions
2 parents 5fa5358 + bfacd14 commit 53fe1a3

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

crates/core_simd/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
all(target_arch = "arm", target_feature = "v7"),
3131
feature(stdarch_arm_neon_intrinsics)
3232
)]
33+
#![cfg_attr(target_arch = "loongarch64", feature(stdarch_loongarch))]
3334
#![cfg_attr(
3435
any(target_arch = "powerpc", target_arch = "powerpc64"),
3536
feature(stdarch_powerpc)

crates/core_simd/src/vendor.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,6 @@ mod arm;
2929

3030
#[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
3131
mod powerpc;
32+
33+
#[cfg(target_arch = "loongarch64")]
34+
mod loongarch64;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
use crate::simd::*;
2+
use core::arch::loongarch64::*;
3+
4+
from_transmute! { unsafe u8x16 => v16u8 }
5+
from_transmute! { unsafe u8x32 => v32u8 }
6+
from_transmute! { unsafe i8x16 => v16i8 }
7+
from_transmute! { unsafe i8x32 => v32i8 }
8+
9+
from_transmute! { unsafe u16x8 => v8u16 }
10+
from_transmute! { unsafe u16x16 => v16u16 }
11+
from_transmute! { unsafe i16x8 => v8i16 }
12+
from_transmute! { unsafe i16x16 => v16i16 }
13+
14+
from_transmute! { unsafe u32x4 => v4u32 }
15+
from_transmute! { unsafe u32x8 => v8u32 }
16+
from_transmute! { unsafe i32x4 => v4i32 }
17+
from_transmute! { unsafe i32x8 => v8i32 }
18+
from_transmute! { unsafe f32x4 => v4f32 }
19+
from_transmute! { unsafe f32x8 => v8f32 }
20+
21+
from_transmute! { unsafe u64x2 => v2u64 }
22+
from_transmute! { unsafe u64x4 => v4u64 }
23+
from_transmute! { unsafe i64x2 => v2i64 }
24+
from_transmute! { unsafe i64x4 => v4i64 }
25+
from_transmute! { unsafe f64x2 => v2f64 }
26+
from_transmute! { unsafe f64x4 => v4f64 }
27+
28+
from_transmute! { unsafe usizex2 => v2u64 }
29+
from_transmute! { unsafe usizex4 => v4u64 }
30+
from_transmute! { unsafe isizex2 => v2i64 }
31+
from_transmute! { unsafe isizex4 => v4i64 }

0 commit comments

Comments
 (0)