Skip to content

Commit 627784b

Browse files
committed
Add most SSE4.1 intrinsics.
1 parent f6275b7 commit 627784b

File tree

1 file changed

+15
-0
lines changed
  • src/librustc_platform_intrinsics

1 file changed

+15
-0
lines changed

src/librustc_platform_intrinsics/x86.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,21 @@ pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
7979
"sign_epi16" => p!("ssse3.psign.w.128", (i16x8, i16x8) -> i16x8),
8080
"sign_epi32" => p!("ssse3.psign.d.128", (i32x4, i32x4) -> i32x4),
8181
"sign_epi8" => p!("ssse3.psign.b.128", (i8x16, i8x16) -> i8x16),
82+
83+
"max_epi32" => p!("sse41.pmaxsd", (i32x4, i32x4) -> i32x4),
84+
"max_epi8" => p!("sse41.pmaxsb", (i8x16, i8x16) -> i8x16),
85+
"max_epu16" => p!("sse41.pmaxuw", (i16x8, i16x8) -> i16x8),
86+
"max_epu32" => p!("sse41.pmaxud", (i32x4, i32x4) -> i32x4),
87+
"min_epi32" => p!("sse41.pminsd", (i32x4, i32x4) -> i32x4),
88+
"min_epi8" => p!("sse41.pminsb", (i8x16, i8x16) -> i8x16),
89+
"min_epu16" => p!("sse41.pminuw", (i16x8, i16x8) -> i16x8),
90+
"min_epu32" => p!("sse41.pminud", (i32x4, i32x4) -> i32x4),
91+
"minpos_epu16" => p!("sse41.phminposuw", (i16x8) -> i16x8),
92+
"mul_epi32" => p!("sse41.muldq", (i32x4, i32x4) -> i64x2),
93+
"packus_epi32" => p!("sse41.packusdw", (i32x4, i32x4) -> i16x8),
94+
"testc_si128" => p!("sse41.ptestc", (i64x2, i64x2) -> i32),
95+
"testnzc_si128" => p!("sse41.ptestnzc", (i64x2, i64x2) -> i32),
96+
"testz_si128" => p!("sse41.ptestz", (i64x2, i64x2) -> i32),
8297
_ => return None
8398
})
8499
}

0 commit comments

Comments
 (0)