From c5a7be624a85e876ac8dacf0e53d64f0916112d1 Mon Sep 17 00:00:00 2001 From: Seo Sanghyeon Date: Thu, 2 May 2013 21:33:41 +0900 Subject: [PATCH] Add core::simd and define SIMD vector types --- src/libcore/core.rc | 1 + src/libcore/simd.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/libcore/simd.rs diff --git a/src/libcore/core.rc b/src/libcore/core.rc index 127d6dbc7743..5c05c83e35aa 100644 --- a/src/libcore/core.rc +++ b/src/libcore/core.rc @@ -164,6 +164,7 @@ pub mod nil; pub mod bool; pub mod char; pub mod tuple; +pub mod simd; pub mod vec; pub mod at_vec; diff --git a/src/libcore/simd.rs b/src/libcore/simd.rs new file mode 100644 index 000000000000..a05f6e8af5a6 --- /dev/null +++ b/src/libcore/simd.rs @@ -0,0 +1,43 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! SIMD vectors + +#[allow(non_camel_case_types)]; + +#[simd] +pub struct i8x16(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8); + +#[simd] +pub struct i16x8(i16, i16, i16, i16, i16, i16, i16, i16); + +#[simd] +pub struct i32x4(i32, i32, i32, i32); + +#[simd] +pub struct i64x2(i64, i64); + +#[simd] +pub struct u8x16(u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8); + +#[simd] +pub struct u16x8(u16, u16, u16, u16, u16, u16, u16, u16); + +#[simd] +pub struct u32x4(u32, u32, u32, u32); + +#[simd] +pub struct u64x2(u64, u64); + +#[simd] +pub struct f32x4(f32, f32, f32, f32); + +#[simd] +pub struct f64x2(f64, f64);