arm64 汇编:LDP 与 LD4 执行时间

2024-04-02

假设我想用连续内存位置的值加载四个连续的 aarch64 向量寄存器。一种方法是

ldp   q0, q1, [x0]
ldp   q2, q3, [x0, 32]

根据ARM优化指南 https://static.docs.arm.com/uan0016/a/cortex_a72_software_optimization_guide_external.pdf对于 Cortex A72(我的目标处理器),这两条指令中的每一条都在 L 管道上占用 6 个周期的执行时间,总共 12 个周期。

但我也可以使用带交错的加载,这允许我一次加载所有 4 个寄存器:

ld4   {v0.2d, v1.2d, v2.2d, v3.2d}, [x0]

这也节省了代码大小,并且根据上述指南,总共只需要 8 个周期的执行时间。

我知道交错意味着数据以不同的方式存储在我的寄存器中,但应该假设我以后的使用可以处理交错和非交错数据。(例如,对数组求和。)

正如我从理论执行时序中读到的那样,LD4 真的比 LDP 快两倍吗? 当然,对于 STP 和 ST4 也可以提出同样的问题。 也许这里有人已经对这个主题进行了基准测试。

(我是否正确地解释了时间?)


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arm64 汇编:LDP 与 LD4 执行时间 的相关文章

  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • SQL 与 LINQ 性能 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • NASM 轮班操作员

    您将如何在寄存器上进行 NASM 中的位移位 我读了手册 它似乎只提到了这些操作员 gt gt lt lt 当我尝试使用它们时 NASM 抱怨移位运算符处理标量值 您能解释什么是标量值并举例说明如何使用 gt gt and lt lt 另外
  • PHP include():文件大小和性能

    一个没有经验的PHP问题 我有一个 PHP 脚本文件 我需要在不同页面的很多地方多次包含该文件 我可以选择将包含的文件分解为几个较小的文件 并根据需要包含这些文件 或者 我可以将它们全部保存在一个 PHP 文件中 我想知道在这种情况下使用较
  • 数百个空闲线程的影响

    我正在考虑使用可能数百个线程来实现通过网络管理设备的任务 这是一个在带有 Linux 内核的 powerpc 处理器上运行的 C 应用程序 在每个任务进行同步以将数据从设备复制到任务的初始阶段之后 任务变得空闲 并且仅在收到警报或需要更改一
  • Maven 依赖项更新报告需要数小时才能完成

    我有任务运行 Jenkins 工作女巫会报告新版本的库 我认为这些可以满足我的需要 org codehaus mojo versions maven plugin 2 5 plugin updates report org codehaus
  • 近调用/跳转表并不总是在引导加载程序中工作

    一般问题 我一直在开发一个简单的引导加载程序 并在某些环境中偶然发现了一个问题 在这些环境中 此类指令不起作用 mov si call tbl SI Call table pointer call call tbl Call print c
  • 为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?

    我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
  • 从汇编程序获取命令行参数

    通读 专业汇编语言书籍 似乎它提供了用于读取命令行参数的错误代码 我纠正了一点 现在它从段错误变成了读取参数计数 然后是段错误 这是完整的代码 data output1 asciz There are d params n output2
  • jQuery UI .buttonset() 太慢

    我的 HTML 页面上有几千个按钮 运行需要10多秒 buttonset buttonset 文件准备好 有没有更快的方法来做到这一点 或者是我以某种方式限制按钮数量的唯一解决方案 创建buttonset在第一次显示之前按需进行 我刚刚测试
  • 使用 AVX 内在函数代替 SSE 并不能提高速度 - 为什么?

    我已经使用 Intel 的 SSE 内在函数相当长一段时间了 并取得了良好的性能提升 因此 我希望 AVX 内在函数能够进一步加速我的程序 不幸的是 直到现在情况并非如此 可能我犯了一个愚蠢的错误 所以如果有人能帮助我 我将非常感激 我使用
  • MSMQ 慢速队列读取

    我正在使用一个开源 Net 库 它在底层使用 MSMQ 大约一两周后 服务速度变慢 时间不准确 但一般猜测 看来发生的情况是来自 MSMQ 的消息每 10 秒才被读取一次 通常 它们会立即被读取 因此 它们将在 T 10 秒 T 20 秒
  • 避免 VBCSCompiler 对 Roslyn 支持的 ASP.NET Razor MVC 视图造成性能影响?

    为了在 MVC5 上的 Razor 视图中支持 C 6 我们通过 web config 打开了 Roslyn 编译器平台
  • 如何编写更高效的代码

    世纪问题 我基本上想知道如果我将此代码编写为几个不同的变量或使用小数组 哪个会更有效 int x 34 int y 28 int z 293 vs double coordinate 3 34 28 293 我有一个坐标结构 我将按以下方式
  • Android 在 ROOM 数据库中插入大量数据

    我有大约 10 个模型 每个模型都有超过 120K 行和 90 列的记录 其中包含双数组值 在 Room 中插入任何模型都需要超过 125 130 秒 任何人都可以建议我需要做什么才能使用一些批量插入技术来保存所有这些 120K 该技术大约
  • 为什么 Chrome 审核建议我最小化 Cookie 大小?

    如何最小化请求的 cookie 大小 Chrome 似乎 警告我 我的 cookie 大小为 41B 这根本不是很多 但是它警告我有什么原因吗 这是一个 PHPSESSID cookie 我真的不知道如何最小化它 有任何想法吗 我的请求响应
  • 在 Intel 机器上构建 Apple Silicon 二进制文件

    如何在 macOS 11 Intel 上编译 C 项目以在 Silicon 上运行 我当前的构建脚本很简单 configure make sudo make install 我尝试过使用 host and target标志与aarch64
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec

随机推荐

  • C#:获取 XML 文档的所有节点

    有没有一种简单的方法 从 xml 文档中获取所有节点 我需要每个节点 子节点等来检查它们是否具有某些属性 或者我是否必须爬行文档 询问子节点 在 LINQ to XML 中 这非常简单 XDocument doc XDocument Loa
  • (选择)H2 中的Where()

    我有两种软件 都是Java 一种是MySQL 另一种是H2数据库 我的问题是在 MySQL 中我有这个查询 Select from X where 1 2 3 in select 4 5 6 from Y 但在 H2 中给我这个错误 子查询
  • 教科书上的长除法如何是 O(n^2) 算法?

    Premise This 维基百科页面 http en wikipedia org wiki Computational complexity of mathematical operations建议 的计算复杂度 教科书 长除法 http
  • sprintf 用于无符号 _int64

    我有以下代码 sprintf 中第二个 d 的输出始终显示为零 我认为我指定了错误的说明符 任何人都可以帮助我编写具有正确值的字符串 这必须在 posix 标准中实现 感谢您的投入 void main unsigned int64 dbFi
  • PercentRelativeLayout 性能更高?

    我总是使用 LinearLayout 和relativelayout 并且我正在阅读有关 新 的内容百分比相对布局 http developer android com intl es reference android support p
  • 标签云网络服务?

    是否有可以生成标签云的公共免费网络服务 我正在寻找类似 Google Chart 的东西 URL 输入 图像输出 我非常怀疑 为此提供网络服务没有任何意义 不过 有大量的图书馆 代码点火器 http codeigniter com foru
  • 无法将类型“NHibernate.Hql.Ast.HqlCast”的对象转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”

    我正在使用以下 C 代码 public IList
  • 如何嵌入LLVM?

    LLVM 核心项目包括 编译器 将源代码转换为 LLVM IR VM 执行编译后的IR代码 如何将 VM 嵌入到 C 应用程序中 LLVM 实际上是一个可以链接到的库的集合 因此嵌入起来非常容易 更多时候 LLVM 会获取您生成的 IR 并
  • 如何在 Eclipse 中下载或链接 OpenCV Javadoc

    我使用 Eclipse IDE 在 Java 中使用 OpenCV 3 0 但我想将 Javadoc 附加到 OpenCV jar 以便轻松阅读有关方法和参数用法的信息 在我使用 OpenCV 2 4 10 之前 它有很好的源代码文档 可以
  • 如何在 IOS 8 Iphone 4S 上使用移动 Safari Web 应用程序获得全屏模式

    我对移动开发非常陌生 所以请不要因为新手问题而困扰我 我认为我有正确的元标记 从苹果网站来看 它说使用下面的标签来允许在全屏模式下运行 但它似乎不起作用 宽度和高度是为 IOS 8 上的 Iphone 4S 设置的 width 320px
  • 添加剪辑路径后子元素消失

    对于我正在做的一个设计项目 我想在我的辅助内容上放置一个剪辑路径 然而 在放置剪辑路径代码后 一些子元素或元素在我的 about内容 我尝试过使用position absolute or z index但我的内容没有任何反应 about内容
  • Python 海龟滚动条

    有谁知道如何防止滚动条出现在 Python 中的小窗口尺寸的 Turtle Graphics 窗口上 以下代码生成下图 对于 600 像素 x 600 像素的屏幕 不会出现滚动条 import turtle TURTLE SIZE 20 T
  • Angular JS 和 Phonegap 后退按钮事件

    我有一个 MainCtrl 其中包含历史记录的后退堆栈 如下所示 scope urlHistory scope on routeChangeSuccess function if location absUrl split 1 scope
  • 从 Python (ctypes) 到 C 的指针以保存函数输出

    我是 Python 中 C 集成的新手 我目前正在将 dll 库包装到我的 Python 代码中 使用ctypes我在传递指针来保存特定函数的输出时遇到问题 我的 C 函数具有以下结构 function int w int h 无符号短 d
  • 在父窗口上方弹出 div

    我怎样才能填充div除非弹出 Div html 页面关闭 否则必须禁用父窗口上的父窗口和父窗口 父窗口禁用意味着无法继续工作 一旦子 div 填充到父 div 上 那么您就只能继续在此填充的 div html 页面上 1 有一个div来接管
  • EF4 - 自定义ObjectContext和继承问题

    进一步旋转上一个问题 https stackoverflow com questions 917718我有过 假设我从 Post 继承了 BlogEntry 和 Comment 我现在想对它们进行一些定制 对博客文章的评论不需要标题 但评论
  • 相当于InputStream或Reader的Files.readAllLines()?

    我有一个文件 我通过以下方法将其读入列表 List
  • 使用 Notepad++ 删除 : 之后少于或等于 5 个字符的行

    问题是这样的 使用 Notepad 删除 之前少于 5 个字符的行 https stackoverflow com questions 50463273 remove lines that is shorter than 5 charact
  • Angular 包的水平滚动(带箭头)

    i m looking for an angular 2 6 package that has a horizontal scroll of images with arrows exactly like the airbnb one 任何
  • arm64 汇编:LDP 与 LD4 执行时间

    假设我想用连续内存位置的值加载四个连续的 aarch64 向量寄存器 一种方法是 ldp q0 q1 x0 ldp q2 q3 x0 32 根据ARM优化指南 https static docs arm com uan0016 a cort