mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-10 14:02:57 +00:00
Add most AVX2 intrinsics.
This commit is contained in:
parent
29b79aabd8
commit
2a408ef6ee
@ -129,6 +129,57 @@ pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
|
|||||||
"testnzc_ps" => p!("avx.vtestnzc.ps.256", (f32x8, f32x8) -> i32),
|
"testnzc_ps" => p!("avx.vtestnzc.ps.256", (f32x8, f32x8) -> i32),
|
||||||
"testz_pd" => p!("avx.vtestz.pd.256", (f64x4, f64x4) -> i32),
|
"testz_pd" => p!("avx.vtestz.pd.256", (f64x4, f64x4) -> i32),
|
||||||
"testz_ps" => p!("avx.vtestz.ps.256", (f32x8, f32x8) -> i32),
|
"testz_ps" => p!("avx.vtestz.ps.256", (f32x8, f32x8) -> i32),
|
||||||
|
|
||||||
|
"abs_epi16" => p!("avx2.pabs.w", (i16x16) -> i16x16),
|
||||||
|
"abs_epi32" => p!("avx2.pabs.d", (i32x8) -> i32x8),
|
||||||
|
"abs_epi8" => p!("avx2.pabs.b", (i8x32) -> i8x32),
|
||||||
|
"adds_epi16" => p!("avx2.padds.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"adds_epi8" => p!("avx2.padds.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"adds_epu16" => p!("avx2.paddus.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"adds_epu8" => p!("avx2.paddus.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"avg_epu16" => p!("avx2.pavg.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"avg_epu8" => p!("avx2.pavg.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"hadd_epi16" => p!("avx2.phadd.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"hadd_epi32" => p!("avx2.phadd.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"hadds_epi16" => p!("avx2.phadd.sw", (i16x16, i16x16) -> i16x16),
|
||||||
|
"hsub_epi16" => p!("avx2.phsub.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"hsub_epi32" => p!("avx2.phsub.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"hsubs_epi16" => p!("avx2.phsub.sw", (i16x16, i16x16) -> i16x16),
|
||||||
|
"madd_epi16" => p!("avx2.pmadd.wd", (i16x16, i16x16) -> i32x8),
|
||||||
|
"maddubs_epi16" => p!("avx2.pmadd.ub.sw", (i8x32, i8x32) -> i16x16),
|
||||||
|
"max_epi16" => p!("avx2.pmaxs.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"max_epi32" => p!("avx2.pmaxs.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"max_epi8" => p!("avx2.pmaxs.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"max_epu16" => p!("avx2.pmaxu.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"max_epu32" => p!("avx2.pmaxu.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"max_epu8" => p!("avx2.pmaxu.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"min_epi16" => p!("avx2.pmins.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"min_epi32" => p!("avx2.pmins.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"min_epi8" => p!("avx2.pmins.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"min_epu16" => p!("avx2.pminu.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"min_epu32" => p!("avx2.pminu.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"min_epu8" => p!("avx2.pminu.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"mul_epi32" => p!("avx2.mul.dq", (i32x8, i32x8) -> i64x4),
|
||||||
|
"mul_epu32" => p!("avx2.mulu.dq", (i32x8, i32x8) -> i64x4),
|
||||||
|
"mulhi_epi16" => p!("avx2.pmulh.w", (i8x32, i8x32) -> i8x32),
|
||||||
|
"mulhi_epu16" => p!("avx2.pmulhu.w", (i8x32, i8x32) -> i8x32),
|
||||||
|
"mulhrs_epi16" => p!("avx2.pmul.hr.sw", (i16x16, i16x16) -> i16x16),
|
||||||
|
"packs_epi16" => p!("avx2.packsswb", (i16x16, i16x16) -> i8x32),
|
||||||
|
"packs_epi32" => p!("avx2.packssdw", (i32x8, i32x8) -> i16x16),
|
||||||
|
"packus_epi16" => p!("avx2.packuswb", (i16x16, i16x16) -> i8x32),
|
||||||
|
"packus_epi32" => p!("avx2.packusdw", (i32x8, i32x8) -> i16x16),
|
||||||
|
"permutevar8x32_epi32" => p!("avx2.permd", (i32x8, i32x8) -> i32x8),
|
||||||
|
"permutevar8x32_ps" => p!("avx2.permps", (f32x8, i32x8) -> i32x8),
|
||||||
|
"sad_epu8" => p!("avx2.psad.bw", (i8x32, i8x32) -> i64x4),
|
||||||
|
"shuffle_epi8" => p!("avx2.pshuf.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"sign_epi16" => p!("avx2.psign.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"sign_epi32" => p!("avx2.psign.d", (i32x8, i32x8) -> i32x8),
|
||||||
|
"sign_epi8" => p!("avx2.psign.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"subs_epi16" => p!("avx2.psubs.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"subs_epi8" => p!("avx2.psubs.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
"subs_epu16" => p!("avx2.psubus.w", (i16x16, i16x16) -> i16x16),
|
||||||
|
"subs_epu8" => p!("avx2.psubus.b", (i8x32, i8x32) -> i8x32),
|
||||||
|
|
||||||
_ => return None,
|
_ => return None,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user