🔬This is a nightly-only experimental API. (
stdsimd
#27731)Available on RISC-V RV64 only.
Expand description
特定于平台的用于 riscv64
平台的内部函数。
有关更多详细信息,请参见 模块级文档。
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_i⚠Experimental生成
FENCE.I
指令 - frcsrExperimental读取浮点控制和状态寄存器
fcsr
- frflagsExperimental读取浮点应计异常标志寄存器
fflags
- frrmExperimental读取浮点舍入模式的寄存器
frm
- fscsrExperimental交换浮点控制和状态寄存器
fcsr
- fsflagsExperimental交换浮点累积异常标志寄存器
fflags
- fsrmExperimental交换浮点舍入模式的寄存器
frm
- hfence_gvma⚠Experimental来宾物理地址和虚拟机的管理程序内存管理栅栏
- hfence_gvma_all⚠Experimental适用于所有虚拟机和来宾物理地址的管理程序内存管理栅栏
- hfence_gvma_gaddr⚠Experimental来宾物理地址的虚拟机管理程序内存管理栅栏
- hfence_gvma_vmid⚠Experimental给定虚拟机的管理程序内存管理栅栏
- hfence_vvma⚠Experimental给定来宾虚拟地址和来宾地址空间的管理程序内存管理栅栏
- hfence_vvma_all⚠Experimental所有来宾地址空间和来宾虚拟地址的管理程序内存管理栅栏
- hfence_vvma_asid⚠Experimental给定来宾地址空间的管理程序内存管理栅栏
- hfence_vvma_vaddr⚠Experimental给定来宾虚拟地址的管理程序内存管理栅栏
- hinval_gvma⚠Experimental使来宾物理地址和虚拟机的管理程序转换缓存无效
- hinval_gvma_all⚠Experimental使所有虚拟机和来宾物理地址的管理程序转换缓存无效
- hinval_gvma_gaddr⚠Experimental使来宾物理地址的管理程序转换缓存无效
- hinval_gvma_vmid⚠Experimental使给定虚拟机的管理程序转换缓存无效
- hinval_vvma⚠Experimental使给定来宾虚拟地址和来宾地址空间的管理程序转换缓存无效
- hinval_vvma_all⚠Experimental使所有来宾地址空间和来宾虚拟地址的管理程序转换缓存无效
- hinval_vvma_asid⚠Experimental使给定来宾地址空间的管理程序转换缓存无效
- hinval_vvma_vaddr⚠Experimental使给定来宾虚拟地址的管理程序转换缓存无效
- hlv_b⚠Experimental按有符号字节整数加载虚拟机内存
- hlv_bu⚠Experimental按无符号字节整数加载虚拟机内存
- hlv_d⚠Experimental按双整数加载虚拟机内存
- hlv_h⚠Experimental通过有符号的半整数加载虚拟机内存
- hlv_hu⚠Experimental按无符号半整数加载虚拟机内存
- hlv_w⚠Experimental按有符号字整数加载虚拟机内存
- hlv_wu⚠Experimental通过无符号字整数加载虚拟机内存
- hlvx_hu⚠Experimental通过无符号半整数访问虚拟机指令
- hlvx_wu⚠Experimental通过无符号字整数访问虚拟机指令
- hsv_b⚠Experimental按字节整数存储虚拟机内存
- hsv_d⚠Experimental按双整数存储虚拟机内存
- hsv_h⚠Experimental按半整数存储虚拟机内存
- hsv_w⚠Experimental按字整数存储虚拟机内存
- 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 位有符号数,丢弃最少位
- rstas16Experimental16 位有符号数的加减法,丢弃最少位
- rstsa16Experimental减法和加法的直接一半包装的 16 位有符号数,丢弃最少位
- rsub8Experimental将包装的 8 位有符号数的减法结果减半,丢弃最少位
- rsub16Experimental将包装的 16 位有符号数的减法结果减半,丢弃最少位
- scmple8Experimental比较 8 位封装的有符号整数是否小于或等于其他整数
- scmple16Experimental比较 16 位封装的有符号整数是否小于或等于其他整数
- scmplt8Experimental比较 8 位封装的有符号整数是否小于其他
- scmplt16Experimental比较 16 位封装的有符号整数是否小于其他
- sfence_inval_ir⚠Experimental生成
SFENCE.INVAL.IR
指令 - sfence_vma⚠Experimental给定虚拟地址和地址空间的内存管理栅栏
- sfence_vma_all⚠Experimental所有地址空间和虚拟地址的主管内存管理栅栏
- sfence_vma_asid⚠Experimental给定地址空间的主管内存管理栅栏
- sfence_vma_vaddr⚠Experimental给定虚拟地址的主管内存管理栅栏
- sfence_w_inval⚠Experimental生成
SFENCE.W.INVAL
指令 - sinval_vma⚠Experimental使给定虚拟地址和地址空间的主管转换缓存无效
- sinval_vma_all⚠Experimental使所有地址空间和虚拟地址的主管转换缓存无效
- sinval_vma_asid⚠Experimental使给定地址空间的主管转换缓存无效
- sinval_vma_vaddr⚠Experimental使给定虚拟地址的主管转换缓存无效
- sll8Experimental逻辑左移封装的 8 位元素,丢弃溢出位
- sll16Experimental逻辑左移封装的 16 位元素,丢弃溢出位
- SM3 哈希算法中使用的
P0
转换函数 - SM3 哈希算法中使用的
P1
转换函数 - 加速 SM4 分组密码算法中的舍入函数
F
- 加速 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 位无符号数的减法结果减半,丢弃最少位
- wfi⚠Experimental生成
WFI
指令 - zunpkd810Experimental解包 first 和 zeroth 成每个 32 位块中的两个 16 位无符号半字
- zunpkd820Experimental解包第二个和第零个在每个 32 位块中分成两个 16 位无符号半字
- zunpkd830Experimental将第三个和第零个解包成两个 16 位无符号半字在每个 32 位块中
- zunpkd831Experimental解包第三个和第一个成每个 32 位块中的两个 16 位无符号半字
- zunpkd832Experimental将第三个和第二个解包成每个 32 位块中的两个 16 位无符号半字