126 lines
84 KiB
HTML
126 lines
84 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A crate that safely exposes arch intrinsics via `#[cfg()]`."><title>safe_arch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="safe_arch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.0 (9fc6b4312 2025-01-07)" data-channel="1.84.0" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../static.files/storage-59e33391.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../safe_arch/index.html">safe_<wbr>arch</a><span class="version">0.7.2</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#naming-conventions" title="Naming Conventions">Naming Conventions</a></li><li><a href="#current-support" title="Current Support">Current Support</a></li><li><a href="#compile-time-cpu-target-features" title="Compile Time CPU Target Features">Compile Time CPU Target Features</a><ul><li><a href="#a-note-on-working-with-cfg" title="A Note On Working With Cfg">A Note On Working With Cfg</a></li></ul></li></ul><h3><a href="#modules">Crate Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#macros" title="Macros">Macros</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>safe_arch</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/safe_arch/lib.rs.html#1-333">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A crate that safely exposes arch intrinsics via <code>#[cfg()]</code>.</p>
|
||
<p><code>safe_arch</code> lets you safely use CPU intrinsics. Those things in the
|
||
<a href="https://doc.rust-lang.org/1.84.0/core/arch/index.html" title="mod core::arch"><code>core::arch</code></a> modules. It works purely via <code>#[cfg()]</code> and
|
||
compile time CPU feature declaration. If you want to check for a feature at
|
||
runtime and then call an intrinsic or use a fallback path based on that then
|
||
this crate is sadly not for you.</p>
|
||
<p>SIMD register types are “newtype’d” so that better trait impls can be given
|
||
to them, but the inner value is a <code>pub</code> field so feel free to just grab it
|
||
out if you need to. Trait impls of the newtypes include: <code>Default</code> (zeroed),
|
||
<code>From</code>/<code>Into</code> of appropriate data types, and appropriate operator
|
||
overloading.</p>
|
||
<ul>
|
||
<li>Most intrinsics (like addition and multiplication) are totally safe to use
|
||
as long as the CPU feature is available. In this case, what you get is 1:1
|
||
with the actual intrinsic.</li>
|
||
<li>Some intrinsics take a pointer of an assumed minimum alignment and
|
||
validity span. For these, the <code>safe_arch</code> function takes a reference of an
|
||
appropriate type to uphold safety.
|
||
<ul>
|
||
<li>Try the <a href="https://docs.rs/bytemuck">bytemuck</a> crate (and turn on the
|
||
<code>bytemuck</code> feature of this crate) if you want help safely casting
|
||
between reference types.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Some intrinsics are not safe unless you’re <em>very</em> careful about how you
|
||
use them, such as the streaming operations requiring you to use them in
|
||
combination with an appropriate memory fence. Those operations aren’t
|
||
exposed here.</li>
|
||
<li>Some intrinsics mess with the processor state, such as changing the
|
||
floating point flags, saving and loading special register state, and so
|
||
on. LLVM doesn’t really support you messing with that within a high level
|
||
language, so those operations aren’t exposed here. Use assembly or
|
||
something if you want to do that.</li>
|
||
</ul>
|
||
<h3 id="naming-conventions"><a class="doc-anchor" href="#naming-conventions">§</a>Naming Conventions</h3>
|
||
<p>The <code>safe_arch</code> crate does not simply use the “official” names for each
|
||
intrinsic, because the official names are generally poor. Instead, the
|
||
operations have been given better names that makes things hopefully easier
|
||
to understand then you’re reading the code.</p>
|
||
<p>For a full explanation of the naming used, see the <a href="naming_conventions/index.html" title="mod safe_arch::naming_conventions">Naming
|
||
Conventions</a> page.</p>
|
||
<h3 id="current-support"><a class="doc-anchor" href="#current-support">§</a>Current Support</h3>
|
||
<ul>
|
||
<li><code>x86</code> / <code>x86_64</code> (Intel, AMD, etc)
|
||
<ul>
|
||
<li>128-bit: <code>sse</code>, <code>sse2</code>, <code>sse3</code>, <code>ssse3</code>, <code>sse4.1</code>, <code>sse4.2</code></li>
|
||
<li>256-bit: <code>avx</code>, <code>avx2</code></li>
|
||
<li>Other: <code>adx</code>, <code>aes</code>, <code>bmi1</code>, <code>bmi2</code>, <code>fma</code>, <code>lzcnt</code>, <code>pclmulqdq</code>,
|
||
<code>popcnt</code>, <code>rdrand</code>, <code>rdseed</code></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<h3 id="compile-time-cpu-target-features"><a class="doc-anchor" href="#compile-time-cpu-target-features">§</a>Compile Time CPU Target Features</h3>
|
||
<p>At the time of me writing this, Rust enables the <code>sse</code> and <code>sse2</code> CPU
|
||
features by default for all <code>i686</code> (x86) and <code>x86_64</code> builds. Those CPU
|
||
features are built into the design of <code>x86_64</code>, and you’d need a <em>super</em> old
|
||
<code>x86</code> CPU for it to not support at least <code>sse</code> and <code>sse2</code>, so they’re a safe
|
||
bet for the language to enable all the time. In fact, because the standard
|
||
library is compiled with them enabled, simply trying to <em>disable</em> those
|
||
features would actually cause ABI issues and fill your program with UB
|
||
(<a href="https://doc.rust-lang.org/rustc/targets/known-issues.html">link</a>).</p>
|
||
<p>If you want additional CPU features available at compile time you’ll have to
|
||
enable them with an additional arg to <code>rustc</code>. For a feature named <code>name</code>
|
||
you pass <code>-C target-feature=+name</code>, such as <code>-C target-feature=+sse3</code> for
|
||
<code>sse3</code>.</p>
|
||
<p>You can alternately enable <em>all</em> target features of the current CPU with <code>-C target-cpu=native</code>. This is primarily of use if you’re building a program
|
||
you’ll only run on your own system.</p>
|
||
<p>It’s sometimes hard to know if your target platform will support a given
|
||
feature set, but the <a href="https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam">Steam Hardware Survey</a> is generally
|
||
taken as a guide to what you can expect people to have available. If you
|
||
click “Other Settings” it’ll expand into a list of CPU target features and
|
||
how common they are. These days, it seems that <code>sse3</code> can be safely assumed,
|
||
and <code>ssse3</code>, <code>sse4.1</code>, and <code>sse4.2</code> are pretty safe bets as well. The stuff
|
||
above 128-bit isn’t as common yet, give it another few years.</p>
|
||
<p><strong>Please note that executing a program on a CPU that doesn’t support the
|
||
target features it was compiles for is Undefined Behavior.</strong></p>
|
||
<p>Currently, Rust doesn’t actually support an easy way for you to check that a
|
||
feature enabled at compile time is <em>actually</em> available at runtime. There is
|
||
the “<a href="https://doc.rust-lang.org/std/index.html?search=feature_detected">feature_detected</a>” family of macros, but if you
|
||
enable a feature they will evaluate to a constant <code>true</code> instead of actually
|
||
deferring the check for the feature to runtime. This means that, if you
|
||
<em>did</em> want a check at the start of your program, to confirm that all the
|
||
assumed features are present and error out when the assumptions don’t hold,
|
||
you can’t use that macro. You gotta use CPUID and check manually. rip.
|
||
Hopefully we can make that process easier in a future version of this crate.</p>
|
||
<h4 id="a-note-on-working-with-cfg"><a class="doc-anchor" href="#a-note-on-working-with-cfg">§</a>A Note On Working With Cfg</h4>
|
||
<p>There’s two main ways to use <code>cfg</code>:</p>
|
||
<ul>
|
||
<li>Via an attribute placed on an item, block, or expression:
|
||
<ul>
|
||
<li><code>#[cfg(debug_assertions)] println!("hello");</code></li>
|
||
</ul>
|
||
</li>
|
||
<li>Via a macro used within an expression position:
|
||
<ul>
|
||
<li><code>if cfg!(debug_assertions) { println!("hello"); }</code></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>The difference might seem small but it’s actually very important:</p>
|
||
<ul>
|
||
<li>The attribute form will include code or not <em>before</em> deciding if all the
|
||
items named and so forth really exist or not. This means that code that is
|
||
configured via attribute can safely name things that don’t always exist as
|
||
long as the things they name do exist whenever that code is configured
|
||
into the build.</li>
|
||
<li>The macro form will include the configured code <em>no matter what</em>, and then
|
||
the macro resolves to a constant <code>true</code> or <code>false</code> and the compiler uses
|
||
dead code elimination to cut out the path not taken.</li>
|
||
</ul>
|
||
<p>This crate uses <code>cfg</code> via the attribute, so the functions it exposes don’t
|
||
exist at all when the appropriate CPU target features aren’t enabled.
|
||
Accordingly, if you plan to call this crate or not depending on what
|
||
features are enabled in the build you’ll also need to control your use of
|
||
this crate via cfg attribute, not cfg macro.</p>
|
||
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="naming_conventions/index.html" title="mod safe_arch::naming_conventions">naming_<wbr>conventions</a></div><div class="desc docblock-short">An explanation of the crate’s naming conventions.</div></li></ul><h2 id="macros" class="section-header">Macros<a href="#macros" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="macro" href="macro.round_op.html" title="macro safe_arch::round_op">round_<wbr>op</a></div><div class="desc docblock-short">Turns a round operator token to the correct constant value.</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.m128.html" title="struct safe_arch::m128">m128</a></div><div class="desc docblock-short">The data for a 128-bit SSE register of four <code>f32</code> lanes.</div></li><li><div class="item-name"><a class="struct" href="struct.m256.html" title="struct safe_arch::m256">m256</a></div><div class="desc docblock-short">The data for a 256-bit AVX register of eight <code>f32</code> lanes.</div></li><li><div class="item-name"><a class="struct" href="struct.m128d.html" title="struct safe_arch::m128d">m128d</a></div><div class="desc docblock-short">The data for a 128-bit SSE register of two <code>f64</code> values.</div></li><li><div class="item-name"><a class="struct" href="struct.m128i.html" title="struct safe_arch::m128i">m128i</a></div><div class="desc docblock-short">The data for a 128-bit SSE register of integer data.</div></li><li><div class="item-name"><a class="struct" href="struct.m256d.html" title="struct safe_arch::m256d">m256d</a></div><div class="desc docblock-short">The data for a 256-bit AVX register of four <code>f64</code> values.</div></li><li><div class="item-name"><a class="struct" href="struct.m256i.html" title="struct safe_arch::m256i">m256i</a></div><div class="desc docblock-short">The data for a 256-bit AVX register of integer data.</div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.add_i8_m128i.html" title="fn safe_arch::add_i8_m128i">add_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a + b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_i16_m128i.html" title="fn safe_arch::add_i16_m128i">add_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a + b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_i32_m128i.html" title="fn safe_arch::add_i32_m128i">add_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a + b</code> with lanes as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_i64_m128i.html" title="fn safe_arch::add_i64_m128i">add_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a + b</code> with lanes as <code>i64</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_m128.html" title="fn safe_arch::add_m128">add_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a + b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_m128_s.html" title="fn safe_arch::add_m128_s">add_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a + b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.add_m128d.html" title="fn safe_arch::add_m128d">add_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a + b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_m128d_s.html" title="fn safe_arch::add_m128d_s">add_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Lowest lane <code>a + b</code>, high lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.add_saturating_i8_m128i.html" title="fn safe_arch::add_saturating_i8_m128i">add_<wbr>saturating_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a + b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_saturating_i16_m128i.html" title="fn safe_arch::add_saturating_i16_m128i">add_<wbr>saturating_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a + b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_saturating_u8_m128i.html" title="fn safe_arch::add_saturating_u8_m128i">add_<wbr>saturating_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a + b</code> with lanes as <code>u8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.add_saturating_u16_m128i.html" title="fn safe_arch::add_saturating_u16_m128i">add_<wbr>saturating_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a + b</code> with lanes as <code>u16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.average_u8_m128i.html" title="fn safe_arch::average_u8_m128i">average_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise average of the <code>u8</code> values.</div></li><li><div class="item-name"><a class="fn" href="fn.average_u16_m128i.html" title="fn safe_arch::average_u16_m128i">average_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise average of the <code>u16</code> values.</div></li><li><div class="item-name"><a class="fn" href="fn.bitand_m128.html" title="fn safe_arch::bitand_m128">bitand_<wbr>m128</a></div><div class="desc docblock-short">Bitwise <code>a & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitand_m128d.html" title="fn safe_arch::bitand_m128d">bitand_<wbr>m128d</a></div><div class="desc docblock-short">Bitwise <code>a & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitand_m128i.html" title="fn safe_arch::bitand_m128i">bitand_<wbr>m128i</a></div><div class="desc docblock-short">Bitwise <code>a & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitandnot_m128.html" title="fn safe_arch::bitandnot_m128">bitandnot_<wbr>m128</a></div><div class="desc docblock-short">Bitwise <code>(!a) & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitandnot_m128d.html" title="fn safe_arch::bitandnot_m128d">bitandnot_<wbr>m128d</a></div><div class="desc docblock-short">Bitwise <code>(!a) & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitandnot_m128i.html" title="fn safe_arch::bitandnot_m128i">bitandnot_<wbr>m128i</a></div><div class="desc docblock-short">Bitwise <code>(!a) & b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitor_m128.html" title="fn safe_arch::bitor_m128">bitor_<wbr>m128</a></div><div class="desc docblock-short">Bitwise <code>a | b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitor_m128d.html" title="fn safe_arch::bitor_m128d">bitor_<wbr>m128d</a></div><div class="desc docblock-short">Bitwise <code>a | b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitor_m128i.html" title="fn safe_arch::bitor_m128i">bitor_<wbr>m128i</a></div><div class="desc docblock-short">Bitwise <code>a | b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitxor_m128.html" title="fn safe_arch::bitxor_m128">bitxor_<wbr>m128</a></div><div class="desc docblock-short">Bitwise <code>a ^ b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitxor_m128d.html" title="fn safe_arch::bitxor_m128d">bitxor_<wbr>m128d</a></div><div class="desc docblock-short">Bitwise <code>a ^ b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.bitxor_m128i.html" title="fn safe_arch::bitxor_m128i">bitxor_<wbr>m128i</a></div><div class="desc docblock-short">Bitwise <code>a ^ b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.byte_shl_imm_u128_m128i.html" title="fn safe_arch::byte_shl_imm_u128_m128i">byte_<wbr>shl_<wbr>imm_<wbr>u128_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all bits in the entire register left by a number of <strong>bytes</strong>.</div></li><li><div class="item-name"><a class="fn" href="fn.byte_shr_imm_u128_m128i.html" title="fn safe_arch::byte_shr_imm_u128_m128i">byte_<wbr>shr_<wbr>imm_<wbr>u128_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all bits in the entire register right by a number of <strong>bytes</strong>.</div></li><li><div class="item-name"><a class="fn" href="fn.byte_swap_i32.html" title="fn safe_arch::byte_swap_i32">byte_<wbr>swap_<wbr>i32</a></div><div class="desc docblock-short">Swap the bytes of the given 32-bit value.</div></li><li><div class="item-name"><a class="fn" href="fn.byte_swap_i64.html" title="fn safe_arch::byte_swap_i64">byte_<wbr>swap_<wbr>i64</a></div><div class="desc docblock-short">Swap the bytes of the given 64-bit value.</div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128_from_m128d.html" title="fn safe_arch::cast_to_m128_from_m128d">cast_<wbr>to_<wbr>m128_<wbr>from_<wbr>m128d</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128</code> from <code>m128d</code></div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128_from_m128i.html" title="fn safe_arch::cast_to_m128_from_m128i">cast_<wbr>to_<wbr>m128_<wbr>from_<wbr>m128i</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128</code> from <code>m128i</code></div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128d_from_m128.html" title="fn safe_arch::cast_to_m128d_from_m128">cast_<wbr>to_<wbr>m128d_<wbr>from_<wbr>m128</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128d</code> from <code>m128</code></div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128d_from_m128i.html" title="fn safe_arch::cast_to_m128d_from_m128i">cast_<wbr>to_<wbr>m128d_<wbr>from_<wbr>m128i</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128d</code> from <code>m128i</code></div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128i_from_m128.html" title="fn safe_arch::cast_to_m128i_from_m128">cast_<wbr>to_<wbr>m128i_<wbr>from_<wbr>m128</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128i</code> from <code>m128</code></div></li><li><div class="item-name"><a class="fn" href="fn.cast_to_m128i_from_m128d.html" title="fn safe_arch::cast_to_m128i_from_m128d">cast_<wbr>to_<wbr>m128i_<wbr>from_<wbr>m128d</a></div><div class="desc docblock-short">Bit-preserving cast to <code>m128i</code> from <code>m128d</code></div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_i32_m128_s.html" title="fn safe_arch::cmp_eq_i32_m128_s">cmp_<wbr>eq_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane equality.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_i32_m128d_s.html" title="fn safe_arch::cmp_eq_i32_m128d_s">cmp_<wbr>eq_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_i8_m128i.html" title="fn safe_arch::cmp_eq_mask_i8_m128i">cmp_<wbr>eq_<wbr>mask_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a == b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_i16_m128i.html" title="fn safe_arch::cmp_eq_mask_i16_m128i">cmp_<wbr>eq_<wbr>mask_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a == b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_i32_m128i.html" title="fn safe_arch::cmp_eq_mask_i32_m128i">cmp_<wbr>eq_<wbr>mask_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a == b</code> with lanes as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_m128.html" title="fn safe_arch::cmp_eq_mask_m128">cmp_<wbr>eq_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a == b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_m128_s.html" title="fn safe_arch::cmp_eq_mask_m128_s">cmp_<wbr>eq_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a == b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_m128d.html" title="fn safe_arch::cmp_eq_mask_m128d">cmp_<wbr>eq_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a == b</code>, mask output.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_eq_mask_m128d_s.html" title="fn safe_arch::cmp_eq_mask_m128d_s">cmp_<wbr>eq_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a == b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_i32_m128_s.html" title="fn safe_arch::cmp_ge_i32_m128_s">cmp_<wbr>ge_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane greater than or equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_i32_m128d_s.html" title="fn safe_arch::cmp_ge_i32_m128d_s">cmp_<wbr>ge_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> greater than or equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_mask_m128.html" title="fn safe_arch::cmp_ge_mask_m128">cmp_<wbr>ge_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a >= b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_mask_m128_s.html" title="fn safe_arch::cmp_ge_mask_m128_s">cmp_<wbr>ge_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a >= b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_mask_m128d.html" title="fn safe_arch::cmp_ge_mask_m128d">cmp_<wbr>ge_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a >= b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ge_mask_m128d_s.html" title="fn safe_arch::cmp_ge_mask_m128d_s">cmp_<wbr>ge_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a >= b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_i32_m128_s.html" title="fn safe_arch::cmp_gt_i32_m128_s">cmp_<wbr>gt_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane greater than.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_i32_m128d_s.html" title="fn safe_arch::cmp_gt_i32_m128d_s">cmp_<wbr>gt_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> greater than.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_i8_m128i.html" title="fn safe_arch::cmp_gt_mask_i8_m128i">cmp_<wbr>gt_<wbr>mask_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a > b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_i16_m128i.html" title="fn safe_arch::cmp_gt_mask_i16_m128i">cmp_<wbr>gt_<wbr>mask_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a > b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_i32_m128i.html" title="fn safe_arch::cmp_gt_mask_i32_m128i">cmp_<wbr>gt_<wbr>mask_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a > b</code> with lanes as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_m128.html" title="fn safe_arch::cmp_gt_mask_m128">cmp_<wbr>gt_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a > b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_m128_s.html" title="fn safe_arch::cmp_gt_mask_m128_s">cmp_<wbr>gt_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a > b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_m128d.html" title="fn safe_arch::cmp_gt_mask_m128d">cmp_<wbr>gt_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a > b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_gt_mask_m128d_s.html" title="fn safe_arch::cmp_gt_mask_m128d_s">cmp_<wbr>gt_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a > b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_i32_m128_s.html" title="fn safe_arch::cmp_le_i32_m128_s">cmp_<wbr>le_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane less than or equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_i32_m128d_s.html" title="fn safe_arch::cmp_le_i32_m128d_s">cmp_<wbr>le_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> less than or equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_mask_m128.html" title="fn safe_arch::cmp_le_mask_m128">cmp_<wbr>le_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a <= b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_mask_m128_s.html" title="fn safe_arch::cmp_le_mask_m128_s">cmp_<wbr>le_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a <= b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_mask_m128d.html" title="fn safe_arch::cmp_le_mask_m128d">cmp_<wbr>le_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a <= b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_le_mask_m128d_s.html" title="fn safe_arch::cmp_le_mask_m128d_s">cmp_<wbr>le_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a <= b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_i32_m128_s.html" title="fn safe_arch::cmp_lt_i32_m128_s">cmp_<wbr>lt_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane less than.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_i32_m128d_s.html" title="fn safe_arch::cmp_lt_i32_m128d_s">cmp_<wbr>lt_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> less than.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_i8_m128i.html" title="fn safe_arch::cmp_lt_mask_i8_m128i">cmp_<wbr>lt_<wbr>mask_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a < b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_i16_m128i.html" title="fn safe_arch::cmp_lt_mask_i16_m128i">cmp_<wbr>lt_<wbr>mask_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a < b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_i32_m128i.html" title="fn safe_arch::cmp_lt_mask_i32_m128i">cmp_<wbr>lt_<wbr>mask_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a < b</code> with lanes as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_m128.html" title="fn safe_arch::cmp_lt_mask_m128">cmp_<wbr>lt_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a < b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_m128_s.html" title="fn safe_arch::cmp_lt_mask_m128_s">cmp_<wbr>lt_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a < b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_m128d.html" title="fn safe_arch::cmp_lt_mask_m128d">cmp_<wbr>lt_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a < b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_lt_mask_m128d_s.html" title="fn safe_arch::cmp_lt_mask_m128d_s">cmp_<wbr>lt_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a < b</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_i32_m128_s.html" title="fn safe_arch::cmp_neq_i32_m128_s">cmp_<wbr>neq_<wbr>i32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane not equal to.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_i32_m128d_s.html" title="fn safe_arch::cmp_neq_i32_m128d_s">cmp_<wbr>neq_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>f64</code> less than.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_mask_m128.html" title="fn safe_arch::cmp_neq_mask_m128">cmp_<wbr>neq_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a != b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_mask_m128_s.html" title="fn safe_arch::cmp_neq_mask_m128_s">cmp_<wbr>neq_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a != b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_mask_m128d.html" title="fn safe_arch::cmp_neq_mask_m128d">cmp_<wbr>neq_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a != b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_neq_mask_m128d_s.html" title="fn safe_arch::cmp_neq_mask_m128d_s">cmp_<wbr>neq_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a != b</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nge_mask_m128.html" title="fn safe_arch::cmp_nge_mask_m128">cmp_<wbr>nge_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>!(a >= b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nge_mask_m128_s.html" title="fn safe_arch::cmp_nge_mask_m128_s">cmp_<wbr>nge_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a >= b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nge_mask_m128d.html" title="fn safe_arch::cmp_nge_mask_m128d">cmp_<wbr>nge_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>!(a >= b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nge_mask_m128d_s.html" title="fn safe_arch::cmp_nge_mask_m128d_s">cmp_<wbr>nge_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a >= b)</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ngt_mask_m128.html" title="fn safe_arch::cmp_ngt_mask_m128">cmp_<wbr>ngt_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>!(a > b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ngt_mask_m128_s.html" title="fn safe_arch::cmp_ngt_mask_m128_s">cmp_<wbr>ngt_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a > b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ngt_mask_m128d.html" title="fn safe_arch::cmp_ngt_mask_m128d">cmp_<wbr>ngt_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>!(a > b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ngt_mask_m128d_s.html" title="fn safe_arch::cmp_ngt_mask_m128d_s">cmp_<wbr>ngt_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a > b)</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nle_mask_m128.html" title="fn safe_arch::cmp_nle_mask_m128">cmp_<wbr>nle_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>!(a <= b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nle_mask_m128_s.html" title="fn safe_arch::cmp_nle_mask_m128_s">cmp_<wbr>nle_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a <= b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nle_mask_m128d.html" title="fn safe_arch::cmp_nle_mask_m128d">cmp_<wbr>nle_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>!(a <= b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nle_mask_m128d_s.html" title="fn safe_arch::cmp_nle_mask_m128d_s">cmp_<wbr>nle_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a <= b)</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nlt_mask_m128.html" title="fn safe_arch::cmp_nlt_mask_m128">cmp_<wbr>nlt_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>!(a < b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nlt_mask_m128_s.html" title="fn safe_arch::cmp_nlt_mask_m128_s">cmp_<wbr>nlt_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a < b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nlt_mask_m128d.html" title="fn safe_arch::cmp_nlt_mask_m128d">cmp_<wbr>nlt_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>!(a < b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_nlt_mask_m128d_s.html" title="fn safe_arch::cmp_nlt_mask_m128d_s">cmp_<wbr>nlt_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>!(a < b)</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ordered_mask_m128.html" title="fn safe_arch::cmp_ordered_mask_m128">cmp_<wbr>ordered_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>(!a.is_nan()) & (!b.is_nan())</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ordered_mask_m128_s.html" title="fn safe_arch::cmp_ordered_mask_m128_s">cmp_<wbr>ordered_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>(!a.is_nan()) & (!b.is_nan())</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ordered_mask_m128d.html" title="fn safe_arch::cmp_ordered_mask_m128d">cmp_<wbr>ordered_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>(!a.is_nan()) & (!b.is_nan())</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_ordered_mask_m128d_s.html" title="fn safe_arch::cmp_ordered_mask_m128d_s">cmp_<wbr>ordered_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>(!a.is_nan()) & (!b.is_nan())</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_unord_mask_m128.html" title="fn safe_arch::cmp_unord_mask_m128">cmp_<wbr>unord_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a.is_nan() | b.is_nan()</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_unord_mask_m128_s.html" title="fn safe_arch::cmp_unord_mask_m128_s">cmp_<wbr>unord_<wbr>mask_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a.is_nan() | b.is_nan()</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_unord_mask_m128d.html" title="fn safe_arch::cmp_unord_mask_m128d">cmp_<wbr>unord_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a.is_nan() | b.is_nan()</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.cmp_unord_mask_m128d_s.html" title="fn safe_arch::cmp_unord_mask_m128d_s">cmp_<wbr>unord_<wbr>mask_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a.is_nan() | b.is_nan()</code>, other lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_i32_replace_m128_s.html" title="fn safe_arch::convert_i32_replace_m128_s">convert_<wbr>i32_<wbr>replace_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Convert <code>i32</code> to <code>f32</code> and replace the low lane of the input.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_i32_replace_m128d_s.html" title="fn safe_arch::convert_i32_replace_m128d_s">convert_<wbr>i32_<wbr>replace_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Convert <code>i32</code> to <code>f64</code> and replace the low lane of the input.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_i64_replace_m128d_s.html" title="fn safe_arch::convert_i64_replace_m128d_s">convert_<wbr>i64_<wbr>replace_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Convert <code>i64</code> to <code>f64</code> and replace the low lane of the input.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_m128_s_replace_m128d_s.html" title="fn safe_arch::convert_m128_s_replace_m128d_s">convert_<wbr>m128_<wbr>s_<wbr>replace_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Converts the lower <code>f32</code> to <code>f64</code> and replace the low lane of the input</div></li><li><div class="item-name"><a class="fn" href="fn.convert_m128d_s_replace_m128_s.html" title="fn safe_arch::convert_m128d_s_replace_m128_s">convert_<wbr>m128d_<wbr>s_<wbr>replace_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Converts the low <code>f64</code> to <code>f32</code> and replaces the low lane of the input.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_i32_m128i_from_m128.html" title="fn safe_arch::convert_to_i32_m128i_from_m128">convert_<wbr>to_<wbr>i32_<wbr>m128i_<wbr>from_<wbr>m128</a></div><div class="desc docblock-short">Rounds the <code>f32</code> lanes to <code>i32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_i32_m128i_from_m128d.html" title="fn safe_arch::convert_to_i32_m128i_from_m128d">convert_<wbr>to_<wbr>i32_<wbr>m128i_<wbr>from_<wbr>m128d</a></div><div class="desc docblock-short">Rounds the two <code>f64</code> lanes to the low two <code>i32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_m128_from_i32_m128i.html" title="fn safe_arch::convert_to_m128_from_i32_m128i">convert_<wbr>to_<wbr>m128_<wbr>from_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Rounds the four <code>i32</code> lanes to four <code>f32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_m128_from_m128d.html" title="fn safe_arch::convert_to_m128_from_m128d">convert_<wbr>to_<wbr>m128_<wbr>from_<wbr>m128d</a></div><div class="desc docblock-short">Rounds the two <code>f64</code> lanes to the low two <code>f32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_m128d_from_lower2_i32_m128i.html" title="fn safe_arch::convert_to_m128d_from_lower2_i32_m128i">convert_<wbr>to_<wbr>m128d_<wbr>from_<wbr>lower2_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Rounds the lower two <code>i32</code> lanes to two <code>f64</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.convert_to_m128d_from_lower2_m128.html" title="fn safe_arch::convert_to_m128d_from_lower2_m128">convert_<wbr>to_<wbr>m128d_<wbr>from_<wbr>lower2_<wbr>m128</a></div><div class="desc docblock-short">Rounds the two <code>f64</code> lanes to the low two <code>f32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.copy_i64_m128i_s.html" title="fn safe_arch::copy_i64_m128i_s">copy_<wbr>i64_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Copy the low <code>i64</code> lane to a new register, upper bits 0.</div></li><li><div class="item-name"><a class="fn" href="fn.copy_replace_low_f64_m128d.html" title="fn safe_arch::copy_replace_low_f64_m128d">copy_<wbr>replace_<wbr>low_<wbr>f64_<wbr>m128d</a></div><div class="desc docblock-short">Copies the <code>a</code> value and replaces the low lane with the low <code>b</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.div_m128.html" title="fn safe_arch::div_m128">div_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a / b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.div_m128_s.html" title="fn safe_arch::div_m128_s">div_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a / b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.div_m128d.html" title="fn safe_arch::div_m128d">div_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a / b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.div_m128d_s.html" title="fn safe_arch::div_m128d_s">div_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Lowest lane <code>a / b</code>, high lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.extract_i16_as_i32_m128i.html" title="fn safe_arch::extract_i16_as_i32_m128i">extract_<wbr>i16_<wbr>as_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Gets an <code>i16</code> value out of an <code>m128i</code>, returns as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.get_f32_from_m128_s.html" title="fn safe_arch::get_f32_from_m128_s">get_<wbr>f32_<wbr>from_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Gets the low lane as an individual <code>f32</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_f64_from_m128d_s.html" title="fn safe_arch::get_f64_from_m128d_s">get_<wbr>f64_<wbr>from_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Gets the lower lane as an <code>f64</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_i32_from_m128_s.html" title="fn safe_arch::get_i32_from_m128_s">get_<wbr>i32_<wbr>from_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Converts the low lane to <code>i32</code> and extracts as an individual value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_i32_from_m128d_s.html" title="fn safe_arch::get_i32_from_m128d_s">get_<wbr>i32_<wbr>from_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Converts the lower lane to an <code>i32</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_i32_from_m128i_s.html" title="fn safe_arch::get_i32_from_m128i_s">get_<wbr>i32_<wbr>from_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Converts the lower lane to an <code>i32</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_i64_from_m128d_s.html" title="fn safe_arch::get_i64_from_m128d_s">get_<wbr>i64_<wbr>from_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Converts the lower lane to an <code>i64</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.get_i64_from_m128i_s.html" title="fn safe_arch::get_i64_from_m128i_s">get_<wbr>i64_<wbr>from_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Converts the lower lane to an <code>i64</code> value.</div></li><li><div class="item-name"><a class="fn" href="fn.insert_i16_from_i32_m128i.html" title="fn safe_arch::insert_i16_from_i32_m128i">insert_<wbr>i16_<wbr>from_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Inserts the low 16 bits of an <code>i32</code> value into an <code>m128i</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.load_f32_m128_s.html" title="fn safe_arch::load_f32_m128_s">load_<wbr>f32_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Loads the <code>f32</code> reference into the low lane of the register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_f32_splat_m128.html" title="fn safe_arch::load_f32_splat_m128">load_<wbr>f32_<wbr>splat_<wbr>m128</a></div><div class="desc docblock-short">Loads the <code>f32</code> reference into all lanes of a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_f64_m128d_s.html" title="fn safe_arch::load_f64_m128d_s">load_<wbr>f64_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Loads the reference into the low lane of the register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_f64_splat_m128d.html" title="fn safe_arch::load_f64_splat_m128d">load_<wbr>f64_<wbr>splat_<wbr>m128d</a></div><div class="desc docblock-short">Loads the <code>f64</code> reference into all lanes of a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_i64_m128i_s.html" title="fn safe_arch::load_i64_m128i_s">load_<wbr>i64_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Loads the low <code>i64</code> into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_m128.html" title="fn safe_arch::load_m128">load_<wbr>m128</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_m128d.html" title="fn safe_arch::load_m128d">load_<wbr>m128d</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_m128i.html" title="fn safe_arch::load_m128i">load_<wbr>m128i</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_replace_high_m128d.html" title="fn safe_arch::load_replace_high_m128d">load_<wbr>replace_<wbr>high_<wbr>m128d</a></div><div class="desc docblock-short">Loads the reference into a register, replacing the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.load_replace_low_m128d.html" title="fn safe_arch::load_replace_low_m128d">load_<wbr>replace_<wbr>low_<wbr>m128d</a></div><div class="desc docblock-short">Loads the reference into a register, replacing the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.load_reverse_m128.html" title="fn safe_arch::load_reverse_m128">load_<wbr>reverse_<wbr>m128</a></div><div class="desc docblock-short">Loads the reference into a register with reversed order.</div></li><li><div class="item-name"><a class="fn" href="fn.load_reverse_m128d.html" title="fn safe_arch::load_reverse_m128d">load_<wbr>reverse_<wbr>m128d</a></div><div class="desc docblock-short">Loads the reference into a register with reversed order.</div></li><li><div class="item-name"><a class="fn" href="fn.load_unaligned_m128.html" title="fn safe_arch::load_unaligned_m128">load_<wbr>unaligned_<wbr>m128</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_unaligned_m128d.html" title="fn safe_arch::load_unaligned_m128d">load_<wbr>unaligned_<wbr>m128d</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.load_unaligned_m128i.html" title="fn safe_arch::load_unaligned_m128i">load_<wbr>unaligned_<wbr>m128i</a></div><div class="desc docblock-short">Loads the reference into a register.</div></li><li><div class="item-name"><a class="fn" href="fn.max_i16_m128i.html" title="fn safe_arch::max_i16_m128i">max_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>max(a, b)</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.max_m128.html" title="fn safe_arch::max_m128">max_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>max(a, b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.max_m128_s.html" title="fn safe_arch::max_m128_s">max_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>max(a, b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.max_m128d.html" title="fn safe_arch::max_m128d">max_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>max(a, b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.max_m128d_s.html" title="fn safe_arch::max_m128d_s">max_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>max(a, b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.max_u8_m128i.html" title="fn safe_arch::max_u8_m128i">max_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>max(a, b)</code> with lanes as <code>u8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.min_i16_m128i.html" title="fn safe_arch::min_i16_m128i">min_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>min(a, b)</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.min_m128.html" title="fn safe_arch::min_m128">min_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>min(a, b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.min_m128_s.html" title="fn safe_arch::min_m128_s">min_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>min(a, b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.min_m128d.html" title="fn safe_arch::min_m128d">min_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>min(a, b)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.min_m128d_s.html" title="fn safe_arch::min_m128d_s">min_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>min(a, b)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.min_u8_m128i.html" title="fn safe_arch::min_u8_m128i">min_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>min(a, b)</code> with lanes as <code>u8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.move_high_low_m128.html" title="fn safe_arch::move_high_low_m128">move_<wbr>high_<wbr>low_<wbr>m128</a></div><div class="desc docblock-short">Move the high lanes of <code>b</code> to the low lanes of <code>a</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.move_low_high_m128.html" title="fn safe_arch::move_low_high_m128">move_<wbr>low_<wbr>high_<wbr>m128</a></div><div class="desc docblock-short">Move the low lanes of <code>b</code> to the high lanes of <code>a</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.move_m128_s.html" title="fn safe_arch::move_m128_s">move_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Move the low lane of <code>b</code> to <code>a</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.move_mask_i8_m128i.html" title="fn safe_arch::move_mask_i8_m128i">move_<wbr>mask_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Gathers the <code>i8</code> sign bit of each lane.</div></li><li><div class="item-name"><a class="fn" href="fn.move_mask_m128.html" title="fn safe_arch::move_mask_m128">move_<wbr>mask_<wbr>m128</a></div><div class="desc docblock-short">Gathers the sign bit of each lane.</div></li><li><div class="item-name"><a class="fn" href="fn.move_mask_m128d.html" title="fn safe_arch::move_mask_m128d">move_<wbr>mask_<wbr>m128d</a></div><div class="desc docblock-short">Gathers the sign bit of each lane.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_i16_horizontal_add_m128i.html" title="fn safe_arch::mul_i16_horizontal_add_m128i">mul_<wbr>i16_<wbr>horizontal_<wbr>add_<wbr>m128i</a></div><div class="desc docblock-short">Multiply <code>i16</code> lanes producing <code>i32</code> values, horizontal add pairs of <code>i32</code>
|
||
values to produce the final output.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_i16_keep_high_m128i.html" title="fn safe_arch::mul_i16_keep_high_m128i">mul_<wbr>i16_<wbr>keep_<wbr>high_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a * b</code> with lanes as <code>i16</code>, keep the high bits of the <code>i32</code>
|
||
intermediates.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_i16_keep_low_m128i.html" title="fn safe_arch::mul_i16_keep_low_m128i">mul_<wbr>i16_<wbr>keep_<wbr>low_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a * b</code> with lanes as <code>i16</code>, keep the low bits of the <code>i32</code>
|
||
intermediates.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_m128.html" title="fn safe_arch::mul_m128">mul_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a * b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_m128_s.html" title="fn safe_arch::mul_m128_s">mul_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a * b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_m128d.html" title="fn safe_arch::mul_m128d">mul_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a * b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_m128d_s.html" title="fn safe_arch::mul_m128d_s">mul_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Lowest lane <code>a * b</code>, high lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_u16_keep_high_m128i.html" title="fn safe_arch::mul_u16_keep_high_m128i">mul_<wbr>u16_<wbr>keep_<wbr>high_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a * b</code> with lanes as <code>u16</code>, keep the high bits of the <code>u32</code>
|
||
intermediates.</div></li><li><div class="item-name"><a class="fn" href="fn.mul_widen_u32_odd_m128i.html" title="fn safe_arch::mul_widen_u32_odd_m128i">mul_<wbr>widen_<wbr>u32_<wbr>odd_<wbr>m128i</a></div><div class="desc docblock-short">Multiplies the odd <code>u32</code> lanes and gives the widened (<code>u64</code>) results.</div></li><li><div class="item-name"><a class="fn" href="fn.pack_i16_to_i8_m128i.html" title="fn safe_arch::pack_i16_to_i8_m128i">pack_<wbr>i16_<wbr>to_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Saturating convert <code>i16</code> to <code>i8</code>, and pack the values.</div></li><li><div class="item-name"><a class="fn" href="fn.pack_i16_to_u8_m128i.html" title="fn safe_arch::pack_i16_to_u8_m128i">pack_<wbr>i16_<wbr>to_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Saturating convert <code>i16</code> to <code>u8</code>, and pack the values.</div></li><li><div class="item-name"><a class="fn" href="fn.pack_i32_to_i16_m128i.html" title="fn safe_arch::pack_i32_to_i16_m128i">pack_<wbr>i32_<wbr>to_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Saturating convert <code>i32</code> to <code>i16</code>, and pack the values.</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_et0.html" title="fn safe_arch::prefetch_et0">prefetch_<wbr>et0</a></div><div class="desc docblock-short">Fetches the cache line containing <code>addr</code> into all levels of the cache hierarchy, anticipating write</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_et1.html" title="fn safe_arch::prefetch_et1">prefetch_<wbr>et1</a></div><div class="desc docblock-short">Fetches into L2 and higher, anticipating write</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_nta.html" title="fn safe_arch::prefetch_nta">prefetch_<wbr>nta</a></div><div class="desc docblock-short">Fetch data using the
|
||
non-temporal access (NTA) hint. It may be a place closer than main memory
|
||
but outside of the cache hierarchy. This is used to reduce access latency
|
||
without polluting the cache.</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_t0.html" title="fn safe_arch::prefetch_t0">prefetch_<wbr>t0</a></div><div class="desc docblock-short">Fetches the cache line containing <code>addr</code> into all levels of the cache hierarchy.</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_t1.html" title="fn safe_arch::prefetch_t1">prefetch_<wbr>t1</a></div><div class="desc docblock-short">Fetches into L2 and higher.</div></li><li><div class="item-name"><a class="fn" href="fn.prefetch_t2.html" title="fn safe_arch::prefetch_t2">prefetch_<wbr>t2</a></div><div class="desc docblock-short">Fetches into L3 and higher or an implementation-specific choice (e.g., L2 if there is no L3).</div></li><li><div class="item-name"><a class="fn" href="fn.read_timestamp_counter.html" title="fn safe_arch::read_timestamp_counter">read_<wbr>timestamp_<wbr>counter</a></div><div class="desc docblock-short">Reads the CPU’s timestamp counter value.</div></li><li><div class="item-name"><a class="fn" href="fn.read_timestamp_counter_p.html" title="fn safe_arch::read_timestamp_counter_p">read_<wbr>timestamp_<wbr>counter_<wbr>p</a></div><div class="desc docblock-short">Reads the CPU’s timestamp counter value and store the processor signature.</div></li><li><div class="item-name"><a class="fn" href="fn.reciprocal_m128.html" title="fn safe_arch::reciprocal_m128">reciprocal_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>1.0 / a</code> approximation.</div></li><li><div class="item-name"><a class="fn" href="fn.reciprocal_m128_s.html" title="fn safe_arch::reciprocal_m128_s">reciprocal_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>1.0 / a</code> approximation, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.reciprocal_sqrt_m128.html" title="fn safe_arch::reciprocal_sqrt_m128">reciprocal_<wbr>sqrt_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>1.0 / sqrt(a)</code> approximation.</div></li><li><div class="item-name"><a class="fn" href="fn.reciprocal_sqrt_m128_s.html" title="fn safe_arch::reciprocal_sqrt_m128_s">reciprocal_<wbr>sqrt_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>1.0 / sqrt(a)</code> approximation, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i8_m128i.html" title="fn safe_arch::set_i8_m128i">set_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i16_m128i.html" title="fn safe_arch::set_i16_m128i">set_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i32_m128i.html" title="fn safe_arch::set_i32_m128i">set_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i32_m128i_s.html" title="fn safe_arch::set_i32_m128i_s">set_<wbr>i32_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Set an <code>i32</code> as the low 32-bit lane of an <code>m128i</code>, other lanes blank.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i64_m128i.html" title="fn safe_arch::set_i64_m128i">set_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_i64_m128i_s.html" title="fn safe_arch::set_i64_m128i_s">set_<wbr>i64_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Set an <code>i64</code> as the low 64-bit lane of an <code>m128i</code>, other lanes blank.</div></li><li><div class="item-name"><a class="fn" href="fn.set_m128.html" title="fn safe_arch::set_m128">set_<wbr>m128</a></div><div class="desc docblock-short">Sets the args into an <code>m128</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_m128_s.html" title="fn safe_arch::set_m128_s">set_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Sets the args into an <code>m128</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_m128d.html" title="fn safe_arch::set_m128d">set_<wbr>m128d</a></div><div class="desc docblock-short">Sets the args into an <code>m128d</code>, first arg is the high lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_m128d_s.html" title="fn safe_arch::set_m128d_s">set_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Sets the args into the low lane of a <code>m128d</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.set_reversed_i8_m128i.html" title="fn safe_arch::set_reversed_i8_m128i">set_<wbr>reversed_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_reversed_i16_m128i.html" title="fn safe_arch::set_reversed_i16_m128i">set_<wbr>reversed_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_reversed_i32_m128i.html" title="fn safe_arch::set_reversed_i32_m128i">set_<wbr>reversed_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Sets the args into an <code>m128i</code>, first arg is the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_reversed_m128.html" title="fn safe_arch::set_reversed_m128">set_<wbr>reversed_<wbr>m128</a></div><div class="desc docblock-short">Sets the args into an <code>m128</code>, first arg is the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_reversed_m128d.html" title="fn safe_arch::set_reversed_m128d">set_<wbr>reversed_<wbr>m128d</a></div><div class="desc docblock-short">Sets the args into an <code>m128d</code>, first arg is the low lane.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_i8_m128i.html" title="fn safe_arch::set_splat_i8_m128i">set_<wbr>splat_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Splats the <code>i8</code> to all lanes of the <code>m128i</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_i16_m128i.html" title="fn safe_arch::set_splat_i16_m128i">set_<wbr>splat_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Splats the <code>i16</code> to all lanes of the <code>m128i</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_i32_m128i.html" title="fn safe_arch::set_splat_i32_m128i">set_<wbr>splat_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Splats the <code>i32</code> to all lanes of the <code>m128i</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_i64_m128i.html" title="fn safe_arch::set_splat_i64_m128i">set_<wbr>splat_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Splats the <code>i64</code> to both lanes of the <code>m128i</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_m128.html" title="fn safe_arch::set_splat_m128">set_<wbr>splat_<wbr>m128</a></div><div class="desc docblock-short">Splats the value to all lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.set_splat_m128d.html" title="fn safe_arch::set_splat_m128d">set_<wbr>splat_<wbr>m128d</a></div><div class="desc docblock-short">Splats the args into both lanes of the <code>m128d</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_all_u16_m128i.html" title="fn safe_arch::shl_all_u16_m128i">shl_<wbr>all_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Shift all <code>u16</code> lanes to the left by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_all_u32_m128i.html" title="fn safe_arch::shl_all_u32_m128i">shl_<wbr>all_<wbr>u32_<wbr>m128i</a></div><div class="desc docblock-short">Shift all <code>u32</code> lanes to the left by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_all_u64_m128i.html" title="fn safe_arch::shl_all_u64_m128i">shl_<wbr>all_<wbr>u64_<wbr>m128i</a></div><div class="desc docblock-short">Shift all <code>u64</code> lanes to the left by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_imm_u16_m128i.html" title="fn safe_arch::shl_imm_u16_m128i">shl_<wbr>imm_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>u16</code> lanes left by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_imm_u32_m128i.html" title="fn safe_arch::shl_imm_u32_m128i">shl_<wbr>imm_<wbr>u32_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>u32</code> lanes left by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shl_imm_u64_m128i.html" title="fn safe_arch::shl_imm_u64_m128i">shl_<wbr>imm_<wbr>u64_<wbr>m128i</a></div><div class="desc docblock-short">Shifts both <code>u64</code> lanes left by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_all_i16_m128i.html" title="fn safe_arch::shr_all_i16_m128i">shr_<wbr>all_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Shift each <code>i16</code> lane to the right by the <code>count</code> in the lower <code>i64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_all_i32_m128i.html" title="fn safe_arch::shr_all_i32_m128i">shr_<wbr>all_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Shift each <code>i32</code> lane to the right by the <code>count</code> in the lower <code>i64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_all_u16_m128i.html" title="fn safe_arch::shr_all_u16_m128i">shr_<wbr>all_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Shift each <code>u16</code> lane to the right by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_all_u32_m128i.html" title="fn safe_arch::shr_all_u32_m128i">shr_<wbr>all_<wbr>u32_<wbr>m128i</a></div><div class="desc docblock-short">Shift each <code>u32</code> lane to the right by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_all_u64_m128i.html" title="fn safe_arch::shr_all_u64_m128i">shr_<wbr>all_<wbr>u64_<wbr>m128i</a></div><div class="desc docblock-short">Shift each <code>u64</code> lane to the right by the <code>count</code> in the lower <code>u64</code> lane.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_imm_i16_m128i.html" title="fn safe_arch::shr_imm_i16_m128i">shr_<wbr>imm_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>i16</code> lanes right by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_imm_i32_m128i.html" title="fn safe_arch::shr_imm_i32_m128i">shr_<wbr>imm_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>i32</code> lanes right by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_imm_u16_m128i.html" title="fn safe_arch::shr_imm_u16_m128i">shr_<wbr>imm_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>u16</code> lanes right by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_imm_u32_m128i.html" title="fn safe_arch::shr_imm_u32_m128i">shr_<wbr>imm_<wbr>u32_<wbr>m128i</a></div><div class="desc docblock-short">Shifts all <code>u32</code> lanes right by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shr_imm_u64_m128i.html" title="fn safe_arch::shr_imm_u64_m128i">shr_<wbr>imm_<wbr>u64_<wbr>m128i</a></div><div class="desc docblock-short">Shifts both <code>u64</code> lanes right by an immediate.</div></li><li><div class="item-name"><a class="fn" href="fn.shuffle_abi_f32_all_m128.html" title="fn safe_arch::shuffle_abi_f32_all_m128">shuffle_<wbr>abi_<wbr>f32_<wbr>all_<wbr>m128</a></div><div class="desc docblock-short">Shuffle the <code>f32</code> lanes from <code>$a</code> and <code>$b</code> together using an immediate
|
||
control value.</div></li><li><div class="item-name"><a class="fn" href="fn.shuffle_abi_f64_all_m128d.html" title="fn safe_arch::shuffle_abi_f64_all_m128d">shuffle_<wbr>abi_<wbr>f64_<wbr>all_<wbr>m128d</a></div><div class="desc docblock-short">Shuffle the <code>f64</code> lanes from <code>$a</code> and <code>$b</code> together using an immediate
|
||
control value.</div></li><li><div class="item-name"><a class="fn" href="fn.shuffle_ai_f32_all_m128i.html" title="fn safe_arch::shuffle_ai_f32_all_m128i">shuffle_<wbr>ai_<wbr>f32_<wbr>all_<wbr>m128i</a></div><div class="desc docblock-short">Shuffle the <code>i32</code> lanes in <code>$a</code> using an immediate
|
||
control value.</div></li><li><div class="item-name"><a class="fn" href="fn.shuffle_ai_i16_h64all_m128i.html" title="fn safe_arch::shuffle_ai_i16_h64all_m128i">shuffle_<wbr>ai_<wbr>i16_<wbr>h64all_<wbr>m128i</a></div><div class="desc docblock-short">Shuffle the high <code>i16</code> lanes in <code>$a</code> using an immediate control value.</div></li><li><div class="item-name"><a class="fn" href="fn.shuffle_ai_i16_l64all_m128i.html" title="fn safe_arch::shuffle_ai_i16_l64all_m128i">shuffle_<wbr>ai_<wbr>i16_<wbr>l64all_<wbr>m128i</a></div><div class="desc docblock-short">Shuffle the low <code>i16</code> lanes in <code>$a</code> using an immediate control value.</div></li><li><div class="item-name"><a class="fn" href="fn.sqrt_m128.html" title="fn safe_arch::sqrt_m128">sqrt_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>sqrt(a)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sqrt_m128_s.html" title="fn safe_arch::sqrt_m128_s">sqrt_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>sqrt(a)</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.sqrt_m128d.html" title="fn safe_arch::sqrt_m128d">sqrt_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>sqrt(a)</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sqrt_m128d_s.html" title="fn safe_arch::sqrt_m128d_s">sqrt_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>sqrt(b)</code>, upper lane is unchanged from <code>a</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.store_high_m128d_s.html" title="fn safe_arch::store_high_m128d_s">store_<wbr>high_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Stores the high lane value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_i64_m128i_s.html" title="fn safe_arch::store_i64_m128i_s">store_<wbr>i64_<wbr>m128i_<wbr>s</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_m128.html" title="fn safe_arch::store_m128">store_<wbr>m128</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_m128_s.html" title="fn safe_arch::store_m128_s">store_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Stores the low lane value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_m128d.html" title="fn safe_arch::store_m128d">store_<wbr>m128d</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_m128d_s.html" title="fn safe_arch::store_m128d_s">store_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Stores the low lane value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_m128i.html" title="fn safe_arch::store_m128i">store_<wbr>m128i</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_reverse_m128.html" title="fn safe_arch::store_reverse_m128">store_<wbr>reverse_<wbr>m128</a></div><div class="desc docblock-short">Stores the value to the reference given in reverse order.</div></li><li><div class="item-name"><a class="fn" href="fn.store_reversed_m128d.html" title="fn safe_arch::store_reversed_m128d">store_<wbr>reversed_<wbr>m128d</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_splat_m128.html" title="fn safe_arch::store_splat_m128">store_<wbr>splat_<wbr>m128</a></div><div class="desc docblock-short">Stores the low lane value to all lanes of the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_splat_m128d.html" title="fn safe_arch::store_splat_m128d">store_<wbr>splat_<wbr>m128d</a></div><div class="desc docblock-short">Stores the low lane value to all lanes of the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_unaligned_m128.html" title="fn safe_arch::store_unaligned_m128">store_<wbr>unaligned_<wbr>m128</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_unaligned_m128d.html" title="fn safe_arch::store_unaligned_m128d">store_<wbr>unaligned_<wbr>m128d</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.store_unaligned_m128i.html" title="fn safe_arch::store_unaligned_m128i">store_<wbr>unaligned_<wbr>m128i</a></div><div class="desc docblock-short">Stores the value to the reference given.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_i8_m128i.html" title="fn safe_arch::sub_i8_m128i">sub_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a - b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_i16_m128i.html" title="fn safe_arch::sub_i16_m128i">sub_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a - b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_i32_m128i.html" title="fn safe_arch::sub_i32_m128i">sub_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a - b</code> with lanes as <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_i64_m128i.html" title="fn safe_arch::sub_i64_m128i">sub_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise <code>a - b</code> with lanes as <code>i64</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_m128.html" title="fn safe_arch::sub_m128">sub_<wbr>m128</a></div><div class="desc docblock-short">Lanewise <code>a - b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_m128_s.html" title="fn safe_arch::sub_m128_s">sub_<wbr>m128_<wbr>s</a></div><div class="desc docblock-short">Low lane <code>a - b</code>, other lanes unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_m128d.html" title="fn safe_arch::sub_m128d">sub_<wbr>m128d</a></div><div class="desc docblock-short">Lanewise <code>a - b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_m128d_s.html" title="fn safe_arch::sub_m128d_s">sub_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Lowest lane <code>a - b</code>, high lane unchanged.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_saturating_i8_m128i.html" title="fn safe_arch::sub_saturating_i8_m128i">sub_<wbr>saturating_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a - b</code> with lanes as <code>i8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_saturating_i16_m128i.html" title="fn safe_arch::sub_saturating_i16_m128i">sub_<wbr>saturating_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a - b</code> with lanes as <code>i16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_saturating_u8_m128i.html" title="fn safe_arch::sub_saturating_u8_m128i">sub_<wbr>saturating_<wbr>u8_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a - b</code> with lanes as <code>u8</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sub_saturating_u16_m128i.html" title="fn safe_arch::sub_saturating_u16_m128i">sub_<wbr>saturating_<wbr>u16_<wbr>m128i</a></div><div class="desc docblock-short">Lanewise saturating <code>a - b</code> with lanes as <code>u16</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.sum_of_u8_abs_diff_m128i.html" title="fn safe_arch::sum_of_u8_abs_diff_m128i">sum_<wbr>of_<wbr>u8_<wbr>abs_<wbr>diff_<wbr>m128i</a></div><div class="desc docblock-short">Compute “sum of <code>u8</code> absolute differences”.</div></li><li><div class="item-name"><a class="fn" href="fn.transpose_four_m128.html" title="fn safe_arch::transpose_four_m128">transpose_<wbr>four_<wbr>m128</a></div><div class="desc docblock-short">Transpose four <code>m128</code> as if they were a 4x4 matrix.</div></li><li><div class="item-name"><a class="fn" href="fn.truncate_m128_to_m128i.html" title="fn safe_arch::truncate_m128_to_m128i">truncate_<wbr>m128_<wbr>to_<wbr>m128i</a></div><div class="desc docblock-short">Truncate the <code>f32</code> lanes to <code>i32</code> lanes.</div></li><li><div class="item-name"><a class="fn" href="fn.truncate_m128d_to_m128i.html" title="fn safe_arch::truncate_m128d_to_m128i">truncate_<wbr>m128d_<wbr>to_<wbr>m128i</a></div><div class="desc docblock-short">Truncate the <code>f64</code> lanes to the lower <code>i32</code> lanes (upper <code>i32</code> lanes 0).</div></li><li><div class="item-name"><a class="fn" href="fn.truncate_to_i32_m128d_s.html" title="fn safe_arch::truncate_to_i32_m128d_s">truncate_<wbr>to_<wbr>i32_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Truncate the lower lane into an <code>i32</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.truncate_to_i64_m128d_s.html" title="fn safe_arch::truncate_to_i64_m128d_s">truncate_<wbr>to_<wbr>i64_<wbr>m128d_<wbr>s</a></div><div class="desc docblock-short">Truncate the lower lane into an <code>i64</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_i8_m128i.html" title="fn safe_arch::unpack_high_i8_m128i">unpack_<wbr>high_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave high <code>i8</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_i16_m128i.html" title="fn safe_arch::unpack_high_i16_m128i">unpack_<wbr>high_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave high <code>i16</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_i32_m128i.html" title="fn safe_arch::unpack_high_i32_m128i">unpack_<wbr>high_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave high <code>i32</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_i64_m128i.html" title="fn safe_arch::unpack_high_i64_m128i">unpack_<wbr>high_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave high <code>i64</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_m128.html" title="fn safe_arch::unpack_high_m128">unpack_<wbr>high_<wbr>m128</a></div><div class="desc docblock-short">Unpack and interleave high lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_high_m128d.html" title="fn safe_arch::unpack_high_m128d">unpack_<wbr>high_<wbr>m128d</a></div><div class="desc docblock-short">Unpack and interleave high lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_i8_m128i.html" title="fn safe_arch::unpack_low_i8_m128i">unpack_<wbr>low_<wbr>i8_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave low <code>i8</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_i16_m128i.html" title="fn safe_arch::unpack_low_i16_m128i">unpack_<wbr>low_<wbr>i16_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave low <code>i16</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_i32_m128i.html" title="fn safe_arch::unpack_low_i32_m128i">unpack_<wbr>low_<wbr>i32_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave low <code>i32</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_i64_m128i.html" title="fn safe_arch::unpack_low_i64_m128i">unpack_<wbr>low_<wbr>i64_<wbr>m128i</a></div><div class="desc docblock-short">Unpack and interleave low <code>i64</code> lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_m128.html" title="fn safe_arch::unpack_low_m128">unpack_<wbr>low_<wbr>m128</a></div><div class="desc docblock-short">Unpack and interleave low lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.unpack_low_m128d.html" title="fn safe_arch::unpack_low_m128d">unpack_<wbr>low_<wbr>m128d</a></div><div class="desc docblock-short">Unpack and interleave low lanes of <code>a</code> and <code>b</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.zeroed_m128.html" title="fn safe_arch::zeroed_m128">zeroed_<wbr>m128</a></div><div class="desc docblock-short">All lanes zero.</div></li><li><div class="item-name"><a class="fn" href="fn.zeroed_m128d.html" title="fn safe_arch::zeroed_m128d">zeroed_<wbr>m128d</a></div><div class="desc docblock-short">Both lanes zero.</div></li><li><div class="item-name"><a class="fn" href="fn.zeroed_m128i.html" title="fn safe_arch::zeroed_m128i">zeroed_<wbr>m128i</a></div><div class="desc docblock-short">All lanes zero.</div></li></ul></section></div></main></body></html> |