Module core::core_arch::riscv_shared::p

source ·
🔬This is a nightly-only experimental API. (stdsimd #48556)
Expand description

RISC-V Packed SIMD intrinsics; shared part.

RV64 only part is placed in riscv64 folder.

Functions

  • add8Experimental
    Adds packed 8-bit signed numbers, discarding overflow bits
  • add16Experimental
    Adds packed 16-bit signed numbers, discarding overflow bits
  • clrs8Experimental
    Count the number of redundant sign bits of the packed 8-bit elements
  • clrs16Experimental
    Count the number of redundant sign bits of the packed 16-bit elements
  • clrs32Experimental
    Count the number of redundant sign bits of the packed 32-bit elements
  • clz8Experimental
    Count the number of leading zero bits of the packed 8-bit elements
  • clz16Experimental
    Count the number of leading zero bits of the packed 16-bit elements
  • clz32Experimental
    Count the number of leading zero bits of the packed 32-bit elements
  • cmpeq8Experimental
    Compare equality for packed 8-bit elements
  • cmpeq16Experimental
    Compare equality for packed 16-bit elements
  • cras16Experimental
    Cross adds and subtracts packed 16-bit signed numbers, discarding overflow bits
  • crsa16Experimental
    Cross subtracts and adds packed 16-bit signed numbers, discarding overflow bits
  • kabs8Experimental
    Compute the absolute value of packed 8-bit signed integers
  • kabs16Experimental
    Compute the absolute value of packed 16-bit signed integers
  • kadd8Experimental
    Adds packed 8-bit signed numbers, saturating at the numeric bounds
  • kadd16Experimental
    Adds packed 16-bit signed numbers, saturating at the numeric bounds
  • kaddhExperimental
    Adds signed lower 16-bit content of two registers with Q15 saturation
  • kcras16Experimental
    Cross adds and subtracts packed 16-bit signed numbers, saturating at the numeric bounds
  • kcrsa16Experimental
    Cross subtracts and adds packed 16-bit signed numbers, saturating at the numeric bounds
  • ksll8Experimental
    Logical left shift packed 8-bit elements, saturating at the numeric bounds
  • ksll16Experimental
    Logical left shift packed 16-bit elements, saturating at the numeric bounds
  • kslra8Experimental
    Logical saturating left then arithmetic right shift packed 8-bit elements
  • kslra8uExperimental
    Logical saturating left then arithmetic right shift packed 8-bit elements
  • kslra16Experimental
    Logical saturating left then arithmetic right shift packed 16-bit elements
  • kslra16uExperimental
    Logical saturating left then arithmetic right shift packed 16-bit elements
  • kstas16Experimental
    Straight adds and subtracts packed 16-bit signed numbers, saturating at the numeric bounds
  • kstsa16Experimental
    Straight subtracts and adds packed 16-bit signed numbers, saturating at the numeric bounds
  • ksub8Experimental
    Subtracts packed 8-bit signed numbers, saturating at the numeric bounds
  • ksub16Experimental
    Subtracts packed 16-bit signed numbers, saturating at the numeric bounds
  • ksubhExperimental
    Subtracts signed lower 16-bit content of two registers with Q15 saturation
  • pbsadExperimental
    Calculate the sum of absolute difference of unsigned 8-bit data elements
  • pbsadaExperimental
    Calculate and accumulate the sum of absolute difference of unsigned 8-bit data elements
  • pkbt16Experimental
    Pack two 16-bit data from bottom and top half from 32-bit chunks
  • pktb16Experimental
    Pack two 16-bit data from top and bottom half from 32-bit chunks
  • radd8Experimental
    Halves the sum of packed 8-bit signed numbers, dropping least bits
  • radd16Experimental
    Halves the sum of packed 16-bit signed numbers, dropping least bits
  • rcras16Experimental
    Cross halves of adds and subtracts packed 16-bit signed numbers, dropping least bits
  • rcrsa16Experimental
    Cross halves of subtracts and adds packed 16-bit signed numbers, dropping least bits
  • rstas16Experimental
    Straight halves of adds and subtracts packed 16-bit signed numbers, dropping least bits
  • rstsa16Experimental
    Straight halves of subtracts and adds packed 16-bit signed numbers, dropping least bits
  • rsub8Experimental
    Halves the subtraction result of packed 8-bit signed numbers, dropping least bits
  • rsub16Experimental
    Halves the subtraction result of packed 16-bit signed numbers, dropping least bits
  • scmple8Experimental
    Compare whether 8-bit packed signed integers are less than or equal to the others
  • scmple16Experimental
    Compare whether 16-bit packed signed integers are less than or equal to the others
  • scmplt8Experimental
    Compare whether 8-bit packed signed integers are less than the others
  • scmplt16Experimental
    Compare whether 16-bit packed signed integers are less than the others
  • sll8Experimental
    Logical left shift packed 8-bit elements, discarding overflow bits
  • sll16Experimental
    Logical left shift packed 16-bit elements, discarding overflow bits
  • smaqaExperimental
    Multiply signed 8-bit elements and add 16-bit elements on results for packed 32-bit chunks
  • smaqasuExperimental
    Multiply signed to unsigned 8-bit and add 16-bit elements on results for packed 32-bit chunks
  • smax8Experimental
    Get maximum values from 8-bit packed signed integers
  • smax16Experimental
    Get maximum values from 16-bit packed signed integers
  • smin8Experimental
    Get minimum values from 8-bit packed signed integers
  • smin16Experimental
    Get minimum values from 16-bit packed signed integers
  • sra8Experimental
    Arithmetic right shift packed 8-bit elements without rounding up
  • sra8uExperimental
    Arithmetic right shift packed 8-bit elements with rounding up
  • sra16Experimental
    Arithmetic right shift packed 16-bit elements without rounding up
  • sra16uExperimental
    Arithmetic right shift packed 16-bit elements with rounding up
  • srl8Experimental
    Logical right shift packed 8-bit elements without rounding up
  • srl8uExperimental
    Logical right shift packed 8-bit elements with rounding up
  • srl16Experimental
    Logical right shift packed 16-bit elements without rounding up
  • srl16uExperimental
    Logical right shift packed 16-bit elements with rounding up
  • stas16Experimental
    Straight adds and subtracts packed 16-bit signed numbers, discarding overflow bits
  • stsa16Experimental
    Straight subtracts and adds packed 16-bit signed numbers, discarding overflow bits
  • sub8Experimental
    Subtracts packed 8-bit signed numbers, discarding overflow bits
  • sub16Experimental
    Subtracts packed 16-bit signed numbers, discarding overflow bits
  • sunpkd810Experimental
    Unpack first and zeroth into two 16-bit signed halfwords in each 32-bit chunk
  • sunpkd820Experimental
    Unpack second and zeroth into two 16-bit signed halfwords in each 32-bit chunk
  • sunpkd830Experimental
    Unpack third and zeroth into two 16-bit signed halfwords in each 32-bit chunk
  • sunpkd831Experimental
    Unpack third and first into two 16-bit signed halfwords in each 32-bit chunk
  • sunpkd832Experimental
    Unpack third and second into two 16-bit signed halfwords in each 32-bit chunk
  • swap8Experimental
    Swap the 8-bit bytes within each 16-bit halfword of a register.
  • swap16Experimental
    Swap the 16-bit halfwords within each 32-bit word of a register
  • ucmple8Experimental
    Compare whether 8-bit packed unsigned integers are less than or equal to the others
  • ucmple16Experimental
    Compare whether 16-bit packed unsigned integers are less than or equal to the others
  • ucmplt8Experimental
    Compare whether 8-bit packed unsigned integers are less than the others
  • ucmplt16Experimental
    Compare whether 16-bit packed unsigned integers are less than the others
  • ukadd8Experimental
    Adds packed 8-bit unsigned numbers, saturating at the numeric bounds
  • ukadd16Experimental
    Adds packed 16-bit unsigned numbers, saturating at the numeric bounds
  • ukaddhExperimental
    Adds signed lower 16-bit content of two registers with U16 saturation
  • ukcras16Experimental
    Cross adds and subtracts packed 16-bit unsigned numbers, saturating at the numeric bounds
  • ukcrsa16Experimental
    Cross subtracts and adds packed 16-bit unsigned numbers, saturating at the numeric bounds
  • ukstas16Experimental
    Straight adds and subtracts packed 16-bit unsigned numbers, saturating at the numeric bounds
  • ukstsa16Experimental
    Straight subtracts and adds packed 16-bit unsigned numbers, saturating at the numeric bounds
  • uksub8Experimental
    Subtracts packed 8-bit unsigned numbers, saturating at the numeric bounds
  • uksub16Experimental
    Subtracts packed 16-bit unsigned numbers, saturating at the numeric bounds
  • uksubhExperimental
    Subtracts signed lower 16-bit content of two registers with U16 saturation
  • umaqaExperimental
    Multiply unsigned 8-bit elements and add 16-bit elements on results for packed 32-bit chunks
  • umax8Experimental
    Get maximum values from 8-bit packed unsigned integers
  • umax16Experimental
    Get maximum values from 16-bit packed unsigned integers
  • umin8Experimental
    Get minimum values from 8-bit packed unsigned integers
  • umin16Experimental
    Get minimum values from 16-bit packed unsigned integers
  • uradd8Experimental
    Halves the sum of packed 8-bit unsigned numbers, dropping least bits
  • uradd16Experimental
    Halves the sum of packed 16-bit unsigned numbers, dropping least bits
  • urcras16Experimental
    Cross halves of adds and subtracts packed 16-bit unsigned numbers, dropping least bits
  • urcrsa16Experimental
    Cross halves of subtracts and adds packed 16-bit unsigned numbers, dropping least bits
  • urstas16Experimental
    Straight halves of adds and subtracts packed 16-bit unsigned numbers, dropping least bits
  • urstsa16Experimental
    Straight halves of subtracts and adds packed 16-bit unsigned numbers, dropping least bits
  • ursub8Experimental
    Halves the subtraction result of packed 8-bit unsigned numbers, dropping least bits
  • ursub16Experimental
    Halves the subtraction result of packed 16-bit unsigned numbers, dropping least bits
  • zunpkd810Experimental
    Unpack first and zeroth into two 16-bit unsigned halfwords in each 32-bit chunk
  • zunpkd820Experimental
    Unpack second and zeroth into two 16-bit unsigned halfwords in each 32-bit chunk
  • zunpkd830Experimental
    Unpack third and zeroth into two 16-bit unsigned halfwords in each 32-bit chunk
  • zunpkd831Experimental
    Unpack third and first into two 16-bit unsigned halfwords in each 32-bit chunk
  • zunpkd832Experimental
    Unpack third and second into two 16-bit unsigned halfwords in each 32-bit chunk