Module core::arch::riscv32

source ·
🔬This is a nightly-only experimental API. (stdsimd #27731)
Available on RISC-V RV32 only.
Expand description

特定于平台的用于 riscv32 平台的内部函数。

有关更多详细信息,请参见 模块级文档

Functions

  • add8Experimental
    添加包装的 8 位有符号数,丢弃溢出位
  • add16Experimental
    添加包装的 16 位有符号数,丢弃溢出位
  • clrs8Experimental
    计算包装的 8 位元素的冗余符号位数
  • clrs16Experimental
    计算包装的 16 位元素的冗余符号位数
  • clrs32Experimental
    计算包装的 32 位元素的冗余符号位数
  • clz8Experimental
    计算包装的 8 位元素的前导零位的数量
  • clz16Experimental
    计算包装的 16 位元素的前导零位的数量
  • clz32Experimental
    计算包装的 32 位元素的前导零位的数量
  • cmpeq8Experimental
    比较包装的 8 位元素的相等性
  • cmpeq16Experimental
    比较包装的 16 位元素的相等性
  • cras16Experimental
    交叉加减包装的 16 位有符号数,丢弃溢出位
  • crsa16Experimental
    交叉减法和加法包装的 16 位有符号数,丢弃溢出位
  • fence_iExperimental
    生成 FENCE.I 指令
  • frcsrExperimental
    读取浮点控制和状态寄存器 fcsr
  • frflagsExperimental
    读取浮点应计异常标志寄存器 fflags
  • frrmExperimental
    读取浮点舍入模式的寄存器 frm
  • fscsrExperimental
    交换浮点控制和状态寄存器 fcsr
  • fsflagsExperimental
    交换浮点累积异常标志寄存器 fflags
  • fsrmExperimental
    交换浮点舍入模式的寄存器 frm
  • hfence_gvmaExperimental
    来宾物理地址和虚拟机的管理程序内存管理栅栏
  • hfence_gvma_allExperimental
    适用于所有虚拟机和来宾物理地址的管理程序内存管理栅栏
  • hfence_gvma_gaddrExperimental
    来宾物理地址的虚拟机管理程序内存管理栅栏
  • hfence_gvma_vmidExperimental
    给定虚拟机的管理程序内存管理栅栏
  • hfence_vvmaExperimental
    给定来宾虚拟地址和来宾地址空间的管理程序内存管理栅栏
  • hfence_vvma_allExperimental
    所有来宾地址空间和来宾虚拟地址的管理程序内存管理栅栏
  • hfence_vvma_asidExperimental
    给定来宾地址空间的管理程序内存管理栅栏
  • hfence_vvma_vaddrExperimental
    给定来宾虚拟地址的管理程序内存管理栅栏
  • hinval_gvmaExperimental
    使来宾物理地址和虚拟机的管理程序转换缓存无效
  • hinval_gvma_allExperimental
    使所有虚拟机和来宾物理地址的管理程序转换缓存无效
  • hinval_gvma_gaddrExperimental
    使来宾物理地址的管理程序转换缓存无效
  • hinval_gvma_vmidExperimental
    使给定虚拟机的管理程序转换缓存无效
  • hinval_vvmaExperimental
    使给定来宾虚拟地址和来宾地址空间的管理程序转换缓存无效
  • hinval_vvma_allExperimental
    使所有来宾地址空间和来宾虚拟地址的管理程序转换缓存无效
  • hinval_vvma_asidExperimental
    使给定来宾地址空间的管理程序转换缓存无效
  • hinval_vvma_vaddrExperimental
    使给定来宾虚拟地址的管理程序转换缓存无效
  • hlv_bExperimental
    按有符号字节整数加载虚拟机内存
  • hlv_buExperimental
    按无符号字节整数加载虚拟机内存
  • hlv_hExperimental
    通过有符号的半整数加载虚拟机内存
  • hlv_huExperimental
    按无符号半整数加载虚拟机内存
  • hlv_wExperimental
    按有符号字整数加载虚拟机内存
  • hlvx_huExperimental
    通过无符号半整数访问虚拟机指令
  • hlvx_wuExperimental
    通过无符号字整数访问虚拟机指令
  • hsv_bExperimental
    按字节整数存储虚拟机内存
  • hsv_hExperimental
    按半整数存储虚拟机内存
  • hsv_wExperimental
    按字整数存储虚拟机内存
  • kabs8Experimental
    计算包装的 8 位有符号整数的绝对值
  • kabs16Experimental
    计算包装的 16 位有符号整数的绝对值
  • kadd8Experimental
    添加包装的 8 位有符号数字,在数字边界处饱和
  • kadd16Experimental
    添加包装的 16 位有符号数字,在数字边界处饱和
  • kaddhExperimental
    添加具有 Q15 饱和度的两个寄存器的有符号低 16 位内容
  • kcras16Experimental
    交叉加减包装的 16 位有符号数字,在数字边界处饱和
  • kcrsa16Experimental
    交叉减法和加法包装的 16 位有符号数,在数字边界处饱和
  • ksll8Experimental
    逻辑左移包装的 8 位元素,在数字边界处饱和
  • ksll16Experimental
    逻辑左移包装的 16 位元素,在数字边界处饱和
  • kslra8Experimental
    逻辑饱和左移然后算术右移封装的 8 位元素
  • kslra8uExperimental
    逻辑饱和左移然后算术右移封装的 8 位元素
  • kslra16Experimental
    逻辑饱和左移然后算术右移包装的 16 位元素
  • kslra16uExperimental
    逻辑饱和左移然后算术右移包装的 16 位元素
  • kstas16Experimental
    直接加减包装的 16 位有符号数字,在数字边界处饱和
  • kstsa16Experimental
    直接减去和添加包装的 16 位有符号数字,在数字边界处饱和
  • ksub8Experimental
    减去包装的 8 位有符号数,在数字边界处饱和
  • ksub16Experimental
    减去包装的 16 位有符号数,在数字边界处饱和
  • ksubhExperimental
    用 Q15 饱和减去两个寄存器的有符号低 16 位内容
  • nopExperimental
    生成 NOP 指令
  • pauseExperimental
    生成 PAUSE 指令
  • pbsadExperimental
    计算无符号 8 位数据元素的绝对差之和
  • pbsadaExperimental
    计算并累加无符号 8 位数据元素的绝对差之和
  • pkbt16Experimental
    从 32 位块的底部和顶部打包两个 16 位数据
  • pktb16Experimental
    从 32 位块的上半部分和下半部分打包两个 16 位数据
  • radd8Experimental
    将包装的 8 位有符号数的总和减半,丢弃最少位
  • radd16Experimental
    将包装的 16 位有符号数的总和减半,丢弃最少位
  • rcras16Experimental
    交叉一半的加法和减法包装的 16 位有符号数,丢弃最少位
  • rcrsa16Experimental
    交叉减半和加包装的 16 位有符号数,丢弃最少位
  • rstas16Experimental
    16 位有符号数的加减法,丢弃最少位
  • rstsa16Experimental
    减法和加法的直接一半包装的 16 位有符号数,丢弃最少位
  • rsub8Experimental
    将包装的 8 位有符号数的减法结果减半,丢弃最少位
  • rsub16Experimental
    将包装的 16 位有符号数的减法结果减半,丢弃最少位
  • scmple8Experimental
    比较 8 位封装的有符号整数是否小于或等于其他整数
  • scmple16Experimental
    比较 16 位封装的有符号整数是否小于或等于其他整数
  • scmplt8Experimental
    比较 8 位封装的有符号整数是否小于其他
  • scmplt16Experimental
    比较 16 位封装的有符号整数是否小于其他
  • sfence_inval_irExperimental
    生成 SFENCE.INVAL.IR 指令
  • sfence_vmaExperimental
    给定虚拟地址和地址空间的内存管理栅栏
  • sfence_vma_allExperimental
    所有地址空间和虚拟地址的主管内存管理栅栏
  • sfence_vma_asidExperimental
    给定地址空间的主管内存管理栅栏
  • sfence_vma_vaddrExperimental
    给定虚拟地址的主管内存管理栅栏
  • sfence_w_invalExperimental
    生成 SFENCE.W.INVAL 指令
  • sinval_vmaExperimental
    使给定虚拟地址和地址空间的主管转换缓存无效
  • sinval_vma_allExperimental
    使所有地址空间和虚拟地址的主管转换缓存无效
  • sinval_vma_asidExperimental
    使给定地址空间的主管转换缓存无效
  • sinval_vma_vaddrExperimental
    使给定虚拟地址的主管转换缓存无效
  • sll8Experimental
    逻辑左移封装的 8 位元素,丢弃溢出位
  • sll16Experimental
    逻辑左移封装的 16 位元素,丢弃溢出位
  • sm3p0Experimentalzksh
    SM3 哈希算法中使用的 P0 转换函数
  • sm3p1Experimentalzksh
    SM3 哈希算法中使用的 P1 转换函数
  • sm4edExperimentalzksed
    加速 SM4 分组密码算法中的舍入函数 F
  • sm4ksExperimentalzksed
    加速 SM4 分组密码算法中的密钥调度操作
  • smaqaExperimental
    将带符号的 8 位元素相乘并在结果中添加 16 位元素以用于包装的 32 位块
  • smaqasuExperimental
    将有符号乘以无符号 8 位并在包装的 32 位块的结果上添加 16 位元素
  • smax8Experimental
    从 8 位封装的有符号整数中获取最大值
  • smax16Experimental
    从 16 位封装的有符号整数中获取最大值
  • smin8Experimental
    从 8 位封装的有符号整数中获取最小值
  • smin16Experimental
    从 16 位封装的有符号整数中获取最小值
  • sra8Experimental
    算术右移封装的 8 位元素,不四舍五入
  • sra8uExperimental
    算术右移包装的 8 位元素与四舍五入
  • sra16Experimental
    算术右移封装的 16 位元素,不四舍五入
  • sra16uExperimental
    算术右移包装的 16 位元素与四舍五入
  • srl8Experimental
    不四舍五入的逻辑右移包装的 8 位元素
  • srl8uExperimental
    带舍入的逻辑右移包装的 8 位元素
  • srl16Experimental
    逻辑右移包装的 16 位元素,不进行四舍五入
  • srl16uExperimental
    带舍入的逻辑右移包装的 16 位元素
  • stas16Experimental
    直接加减包装的 16 位有符号数,丢弃溢出位
  • stsa16Experimental
    直接减去和添加包装的 16 位有符号数,丢弃溢出位
  • sub8Experimental
    减去包装的 8 位有符号数,丢弃溢出位
  • sub16Experimental
    减去包装的 16 位有符号数,丢弃溢出位
  • sunpkd810Experimental
    将第一个和第零个解包成每个 32 位块中的两个 16 位有符号半字
  • sunpkd820Experimental
    将第二个和第零个解包成每个 32 位块中的两个 16 位有符号半字
  • sunpkd830Experimental
    将第三个和第零个解包成每个 32 位块中的两个 16 位有符号半字
  • sunpkd831Experimental
    将第三个和第一个解包成每个 32 位块中的两个 16 位有符号半字
  • sunpkd832Experimental
    将第三个和第二个解包成每个 32 位块中的两个 16 位有符号半字
  • swap8Experimental
    在寄存器的每个 16 位半字内交换 8 位字节。
  • swap16Experimental
    在寄存器的每个 32 位字中交换 16 位半字
  • ucmple8Experimental
    比较 8 位封装的无符号整数是否小于或等于其他整数
  • ucmple16Experimental
    比较 16 位封装的无符号整数是否小于或等于其他整数
  • ucmplt8Experimental
    比较 8 位封装的无符号整数是否小于其他整数
  • ucmplt16Experimental
    比较 16 位封装的无符号整数是否小于其他整数
  • ukadd8Experimental
    添加包装的 8 位无符号数字,在数字边界处饱和
  • ukadd16Experimental
    添加包装的 16 位无符号数字,在数字边界处饱和
  • ukaddhExperimental
    添加具有 U16 饱和度的两个寄存器的有符号低 16 位内容
  • ukcras16Experimental
    交叉加减包装的 16 位无符号数,在数字边界处饱和
  • ukcrsa16Experimental
    交叉减法和加法包装的 16 位无符号数,在数值边界处饱和
  • ukstas16Experimental
    直接加减包装的 16 位无符号数字,在数字边界处饱和
  • ukstsa16Experimental
    直接减去和添加包装的 16 位无符号数,在数字边界处饱和
  • uksub8Experimental
    减去包装的 8 位无符号数字,在数字边界处饱和
  • uksub16Experimental
    减去包装的 16 位无符号数,在数字边界处饱和
  • uksubhExperimental
    用 U16 饱和减去两个寄存器的有符号低 16 位内容
  • umaqaExperimental
    将无符号 8 位元素相乘并在结果中添加 16 位元素以用于包装的 32 位块
  • umax8Experimental
    从 8 位封装的无符号整数中获取最大值
  • umax16Experimental
    从 16 位封装的无符号整数中获取最大值
  • umin8Experimental
    从 8 位封装的无符号整数中获取最小值
  • umin16Experimental
    从 16 位封装的无符号整数中获取最小值
  • uradd8Experimental
    将包装的 8 位无符号数的总和减半,丢弃最少位
  • uradd16Experimental
    将包装的 16 位无符号数的总和减半,丢弃最少位
  • urcras16Experimental
    交叉一半的加法和减法包装的 16 位无符号数,丢弃最少位
  • urcrsa16Experimental
    交叉减半和加包装的 16 位无符号数,丢弃最少位
  • urstas16Experimental
    直接加减包装的 16 位无符号数的一半,丢弃最少位
  • urstsa16Experimental
    直接减半和加包装的 16 位无符号数,丢弃最少位
  • ursub8Experimental
    将包装的 8 位无符号数的减法结果减半,丢弃最少位
  • ursub16Experimental
    将包装的 16 位无符号数的减法结果减半,丢弃最少位
  • wfiExperimental
    生成 WFI 指令
  • zunpkd810Experimental
    解包 first 和 zeroth 成每个 32 位块中的两个 16 位无符号半字
  • zunpkd820Experimental
    解包第二个和第零个在每个 32 位块中分成两个 16 位无符号半字
  • zunpkd830Experimental
    将第三个和第零个解包成两个 16 位无符号半字在每个 32 位块中
  • zunpkd831Experimental
    解包第三个和第一个成每个 32 位块中的两个 16 位无符号半字
  • zunpkd832Experimental
    将第三个和第二个解包成每个 32 位块中的两个 16 位无符号半字