core::arch::x86_64

Function _mm_insert_ps

1.27.0 · source
pub unsafe fn _mm_insert_ps(a: __m128, b: __m128, const IMM8: i32) -> __m128
Available on (x86 or x86-64) and target feature sse4.1 and x86-64 only.
Expand description

Select a single value in b to store at some position in a, Then zero elements according to IMM8.

IMM8 specifies which bits from operand b will be copied, which bits in the result they will be copied to, and which bits in the result will be cleared. The following assignments are made:

  • Bits [7:6] specify the bits to copy from operand b:

    • 00: Selects bits [31:0] from operand b.
    • 01: Selects bits [63:32] from operand b.
    • 10: Selects bits [95:64] from operand b.
    • 11: Selects bits [127:96] from operand b.
  • Bits [5:4] specify the bits in the result to which the selected bits from operand b are copied:

    • 00: Copies the selected bits from b to result bits [31:0].
    • 01: Copies the selected bits from b to result bits [63:32].
    • 10: Copies the selected bits from b to result bits [95:64].
    • 11: Copies the selected bits from b to result bits [127:96].
  • Bits [3:0]: If any of these bits are set, the corresponding result element is cleared.

Intel’s documentation