Type::Aggregate(flatten, types)
}
-macro_rules! ty {
- (f32x8) => (v(f(32), 8));
- (f64x4) => (v(f(64), 4));
-
- (i8x32) => (v(i(8), 32));
- (i16x16) => (v(i(16), 16));
- (i32x8) => (v(i(32), 8));
- (i64x4) => (v(i(64), 4));
-
- (f32x4) => (v(f(32), 4));
- (f64x2) => (v(f(64), 2));
-
- (i8x16) => (v(i(8), 16));
- (i16x8) => (v(i(16), 8));
- (i32x4) => (v(i(32), 4));
- (i64x2) => (v(i(64), 2));
-
- (f32x2) => (v(f(32), 2));
- (i8x8) => (v(i(8), 8));
- (i16x4) => (v(i(16), 4));
- (i32x2) => (v(i(32), 2));
- (i64x1)=> (v(i(64), 1));
-
- (i64) => (i(64));
- (i32) => (i(32));
- (i16) => (i(16));
- (i8) => (i(8));
- (f32) => (f(32));
- (f64) => (f(64));
-}
-macro_rules! plain {
- ($name: expr, ($($inputs: tt),*) -> $output: tt) => {
- Intrinsic {
- inputs: vec![$(ty!($inputs)),*],
- output: ty!($output),
- definition: ::IntrinsicDef::Named($name)
- }
- }
-}
-
mod x86;
mod arm;
mod aarch64;