Skip to content

Commit

Permalink
Auto merge of #3622 - TDecking:sse4_2, r=RalfJung
Browse files Browse the repository at this point in the history
Implement LLVM x86 SSE4.2 intrinsics

SSE4.2 is arguably the least important SIMD extension for the x86 ISA, but it should still be supported for the sake of completeness.
  • Loading branch information
bors committed Jun 13, 2024
2 parents d3aa763 + 562b724 commit 54d7471
Show file tree
Hide file tree
Showing 3 changed files with 949 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/shims/x86/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ mod sse;
mod sse2;
mod sse3;
mod sse41;
mod sse42;
mod ssse3;

impl<'tcx> EvalContextExt<'tcx> for crate::MiriInterpCx<'tcx> {}
Expand Down Expand Up @@ -137,6 +138,11 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
this, link_name, abi, args, dest,
);
}
name if name.starts_with("sse42.") => {
return sse42::EvalContextExt::emulate_x86_sse42_intrinsic(
this, link_name, abi, args, dest,
);
}
name if name.starts_with("aesni.") => {
return aesni::EvalContextExt::emulate_x86_aesni_intrinsic(
this, link_name, abi, args, dest,
Expand Down
Loading

0 comments on commit 54d7471

Please sign in to comment.