【ARMv8 SIMD和浮点指令编程】浮点数据转换指令——数据类型互转必备

这篇具有很好参考价值的文章主要介绍了【ARMv8 SIMD和浮点指令编程】浮点数据转换指令——数据类型互转必备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

浮点数据转换指令包括不同的浮点精度数之间的转换,还包括整型和浮点数之间的转化。

在了解数据转换指令前,必须学习 IEEE 754 定义的五种舍入规则。前两条规则舍入到最接近的值,其他的称为定向舍入:

舍入到最接近的值

  1. Round to nearest, ties to even – rounds to the nearest value; if the number falls midway, it is rounded to the nearest value with an even least significant digit.(四舍五入到最接近的值;如果数字落在中间,则会四舍五入到最接近的具有偶数最低有效数字的值)

  2. Round to nearest, ties away from zero (or ties to away) – rounds to the nearest value; if the number falls midway, it is rounded to the nearest value above (for positive numbers) or below (for negative numbers).(舍入到最接近的值;如果数字落在中间,则四舍五入到上方(对于正数)或下方(对于负数)最接近的值)

定向舍入

  1. Round toward 0 – directed rounding towards zero (also known as truncation).(向零定向舍入(也称为截断))文章来源地址https://www.toymoban.com/news/detail-782496.html

到了这里,关于【ARMv8 SIMD和浮点指令编程】浮点数据转换指令——数据类型互转必备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARMv8 SIMD和浮点指令编程】NEON 乘法指令——乘法知多少?

    NEON 乘法指令包括向量乘法、向量乘加和向量乘减,还有和饱和相关的指令。总之,乘法指令是必修课,在我们的实际开发中会经常遇到。 1 MUL (by element) 乘(向量,按元素)。该指令将第一个源 SIMDFP 寄存器中的向量元素乘以第二个源 SIMDFP 寄存器中的指定值,将结果放入向

    2024年02月08日
    浏览(41)
  • x86平台SIMD编程入门(3):浮点指令

    算术类型 函数示例 备注 加 _mm_add_sd 、 _mm256_add_ps 减 _mm_sub_sd 、 _mm256_sub_ps 乘 _mm_mul_sd 、 _mm256_mul_ps 除 _mm_div_sd 、 _mm256_div_ps 平方根 _mm_sqrt_sd 、 _mm256_sqrt_ps 倒数 _mm_rcp_ss 、 _mm_rcp_ps 、 _mm256_rcp_ps 快速计算32位浮点数的近似倒数(1/x),最大相对误差小于 (1.5times 2^{-12}) 。 倒数

    2024年02月06日
    浏览(40)
  • 【ARMv8 编程】A64 内存访问指令——内存加载指令

    与所有先前的 ARM 处理器一样,ARMv8 架构是一种加载/存储架构。这意味着没有数据处理指令直接对内存中的数据进行操作。数据必须首先被加载到寄存器中,修改,然后存储到内存中。该程序必须指定地址、要传输的数据大小以及源或目标寄存器。有额外的加载和存储指令提

    2024年02月02日
    浏览(40)
  • ARMv8 汇编指令

    MOV Xd|SP, Xn|SP MOV Xd|SP, #imm16 常用于寄存器之间的搬移和立即数搬移,   仅仅支持imm16, 0-4096大小范围的立即数操作 MRS: 状态寄存器 -- 通用寄存器的传送指令。 MSR: 通用寄存器 -- 状态寄存器的传送指令。 注意:在ARMv7里通过CP15协处理器方位系统寄存器 还可以访问PSTATE寄存器一

    2024年04月27日
    浏览(42)
  • ARMv8-A 与异常相关的指令

    最近一直在学习 ARMv8-A 的东西,记录一下与异常相关的指令。下面的内容基于AArch64讨论,暂不考虑 AArch32。 与异常生成相关的指令如下所示。下面主要学习 SVC 和 HVC 。 1. SVC SVC (Supervisor Call) 产生一个路由到 EL1 的异常,可以调用系统服务这些。此时, ESR_ELx.EC = 0x15 。 2. HVC

    2024年02月21日
    浏览(49)
  • C# 使用SIMD向量类型加速浮点数组求和运算(5):如何查看Release程序运行时汇编代码

    作者: zyl910 目录 一、引言 二、办法说明 2.1 基本办法 2.2 Release程序如何设置断点 2.3 如何避免“分层编译”的误导 2.4 实际演练(汇编调试) 2.4.1 进入断点 2.4.2 单步调试 2.4.3 观察主循环的汇编代码 三、结语 参考文献 前面的几篇文章里,介绍了 C# 编写向量算法的各种办法

    2024年02月12日
    浏览(37)
  • 【ARM Cortex-M 系列 3 番外篇 -- ARMv6, ARMv7, ARMv8, ARMv9 架构差异及精简指令集 与 复杂指令集 介绍】

    上篇文章:ARM Cortex-M 系列 2.1 – RT-Thread Cortex-M7 异常处理及 hardfault 处理分析 ARM架构是一种处理器架构,全称为高级精简指令集计算机(Advanced RISC Machine)。它是英国ARM公司设计的一种精简指令集( RISC )处理器架构,和复杂指令集( CISC )处理器架构相对。 CISC 与 RISC 差异

    2024年02月08日
    浏览(47)
  • C# 使用SIMD向量类型加速浮点数组求和运算(4):用引用代替指针, 摆脱unsafe关键字,兼谈Unsafe类的使用

    作者: zyl910 目录 一、引言 二、办法说明 2.1 历史 2.2 局部引用变量与引用所指的值(类似指针的 地址运算符 、间接运算符 * ) 2.3 重新分配局部引用变量(类似指针直接赋值) 2.4 引用地址调整(类似指针加减法) 2.5 引用地址比较(类似指针比较) 2.6 重新解释(类似C++的

    2024年02月15日
    浏览(43)
  • ARMv8内存属性与类型(Memory types and attributes)简介

    ARMv8中将内存分为两种类型:Normal memory和Device memory,Normal memory适用于系统中的大部分内存,而Device memory则适用于外设所使用的内存。 目录 1,Normal Memory 1.1 Shareable Normal Memory 1.1.1 Inner Shareable, and Outer Shareable属性 1.2 Non-shareable Normal memory 1.3 Cacheability attributes for Normal memory 2,

    2024年02月08日
    浏览(45)
  • ARMv8-AArch64 的异常处理模型详解之异常类型 Exception types

    异常(Exception)通俗点来讲,就是系统在正常运行的时候出现的非正常事件,这个非正常事件会导致系统状态更改或者其他错误,为了确保系统功能能正常运行,需要一些带有特权的软件代码(exception handler)来采取一些补救措施或者更新系统状态,这个过程被称为异常处理

    2024年01月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包