使用 NEON 对 ARM 汇编中的四字向量中的所有元素求和

2024-03-13

我对组装相当陌生,尽管手臂信息中心通常很有帮助,但有时这些说明可能会让新手感到有点困惑。基本上我需要做的就是对四字寄存器中的 4 个浮点值求和,并将结果存储在单个精度寄存器中。我认为 VPADD 指令可以满足我的需要,但我不太确定。


你可以尝试这个(它不在 ASM 中,但你应该能够轻松转换它):

float32x2_t r = vadd_f32(vget_high_f32(m_type), vget_low_f32(m_type));
return vget_lane_f32(vpadd_f32(r, r), 0);

在 ASM 中可能只有 VADD 和 VPADD。

我不确定这是否只是执行此操作的一种方法(也是最佳方法),但我还没有想到/找到更好的方法......

附言。我也是 NEON 新手

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

使用 NEON 对 ARM 汇编中的四字向量中的所有元素求和 的相关文章

  • 如何让c代码执行hex机器代码?

    我想要一个简单的 C 方法能够在 Linux 64 位机器上运行十六进制字节码 这是我的 C 程序 char code x48 x31 xc0 include
  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • 如何在汇编语言中换行打印多个字符串

    我试图在汇编中的不同行上打印多个字符串 但使用我的代码 它只打印最后一个字符串 我对汇编语言非常陌生 所以请耐心等待 section text global start start mov edx len mov edx len1 mov
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • C/C++ 中的最小二乘回归

    如何在 C C 中实现因子分析的最小二乘回归 the黄金标准是LAPACK http www netlib org lapack lug node27 html 你特别想要xGELS
  • LibGDX - 正确使用 Polygon 类

    我创造了Polygon包裹我的飞机的物体 飞机的大小TextureRegion是 256x74 但在游戏中这个尺寸是 70x20 所以 TextureRegion texRegsAirplane TextureRegion split te
  • 尝试使用 x86 程序集 GNU GAS 在数组索引处赋值时出现错误

    我在用x86GNU 与 GCC 的程序集 并尝试实现相当于以下内容的程序集c c int x 10 x 0 5 但是 当我尝试运行 使用命令 a out 我的汇编代码如下 第一次编译后gcc filename s 错误Segmentatio
  • 减法进位标志

    我正在使用 MASM32 有了这个代码 mov eax 5 sub eax 10 CF 状态标志将被设置 但使用我的铅笔和纸 我实际上看到 MSB 没有任何进位 是的 我知道从较少的数字中减去大的数字集CF 但我想知道为什么 因为使用这段代
  • 从汇编程序获取命令行参数

    通读 专业汇编语言书籍 似乎它提供了用于读取命令行参数的错误代码 我纠正了一点 现在它从段错误变成了读取参数计数 然后是段错误 这是完整的代码 data output1 asciz There are d params n output2
  • 优雅的折线“左移”测试

    Given X Y 坐标 即车辆的位置 X Y 数组 它们是折线中的顶点 请注意 折线仅由直线段组成 没有圆弧 我想要的是 计算车辆是在折线的左侧还是右侧 当然还是在顶部 我的做法 迭代所有线段 并计算到每个线段的距离 然后 对于最近的段
  • 为什么 GCC 不将 a*a*a*a*a*a 优化为 (a*a*a)*(a*a*a)?

    我正在对科学应用程序进行一些数值优化 我注意到的一件事是 GCC 会优化调用pow a 2 通过将其编译成a a 但是调用pow a 6 没有优化 实际会调用库函数pow 这大大降低了性能 相比之下 英特尔 C 编译器 http en wi
  • 在 x86 ASM 中测试零通常哪个更快:“TEST EAX, EAX”与“TEST AL, AL”?

    测试 AL 中的字节是否为零 非零通常哪个更快 TEST EAX EAX TEST AL AL 假设之前有一个 MOVZX EAX BYTE PTR ESP 4 指令加载了一个带有零扩展的字节参数到 EAX 的其余部分 防止了我已经知道的组
  • 给定与总和匹配的长度的唯一 3 位数字 (-1,0,1) 序列的数量

    假设您有一个长度为 n 即空格数 的垂直游戏板 你有一个三面骰子 有以下选项 前进一 停留和后退 如果您低于或高于棋盘游戏空间的数量 则该游戏无效 一旦到达棋盘末端 唯一有效的动作就是 停留 给定确切的骰子投掷次数 t 是否可以通过算法计算
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 寄存器寻址模式与直接寻址模式

    我在试卷中遇到过这个问题 它指出 哪种给定的寻址模式更快 为什么 寄存器寻址方式 直接寻址方式 现在根据我的说法 寄存器寻址模式应该更快 因为寄存器是计算机中最快的存储位置 这是正确答案吗 请帮忙 谢谢 两种寻址模式之间的区别是 地址的来源
  • Beaglebone Black 的 U-boot 无法构建 - 目标 CPU 不支持 THUMB 指令

    我正在尝试按照 Chris Simmonds 的 掌握嵌入式 Linux 编程 中的说明为 Beagle Bone Black 构建 u boot 我已经构建了交叉工具链 现在正在尝试使用该工具链构建 Das U boot 但由于不支持 T
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 为什么我的空循环在 Intel Skylake CPU 上作为函数调用时运行速度是原来的两倍?

    我正在运行一些测试来比较 C 和 Java 并遇到了一些有趣的事情 在 main 调用的函数中 而不是在 main 本身中 运行具有优化级别 1 O1 的完全相同的基准代码 导致性能大约翻倍 我正在打印 test t 的大小 以毫无疑问地验
  • 计算序言中列表的排列

    在 序言艺术 第二版中有一个问题 您应该定义一个谓词 Even permutation Xs Ys 和类似的奇数排列 当您查询时 例如 Even permutation 1 2 3 2 3 1 和 odd permutation 1 2 3
  • ARMv8 A64 汇编中立即值的范围

    我的理解是 ARMv8 A64 汇编中的立即参数可以是 12 位长 如果是这样的话 为什么这行汇编代码是 AND X12 X10 0xFEF 产生此错误 使用 gcc 编译时 Error immediate out of range at

随机推荐

  • 缺少 mcrypt 扩展名。请检查您的 PHP 配置

    我刚刚按照位于的教程进行操作https www digitalocean com community articles how to install linux apache mysql php lamp stack on ubuntu h
  • 完全隐藏 Chart.js 中的空条

    In my Chart js 条形图 每个标签大约有 6 个数据集 其中一些数据集的值为 0 这会导致 x 轴上出现空白 请参阅 我想删除这些空白 我该怎么做 从数据库呈现我的代码后 它看起来像这样 请注意 为了简单起见 我大大减少了代码
  • 如何将系统分解为模块?

    模块化 的有效性取决于将系统划分为模块所使用的标准 我想要的是 提出一些可用于将系统分解为模块的标准 Cohesion http en wikipedia org wiki Cohesion computer science 模块中的功能是
  • 如何在 Dragover/dragenter HTML 5 拖放过程中更改图标

    如何在 Dragover 或 Dragenter 过程中更改 DnD 拖放 图标 有可能吗 如果拖放源位于 html 页面内部 例如将一个 div 拖到另一个 div 中 我可以在拖拽启动期间更改图标 这是我的代码 我正在使用角度 我已经设
  • 在 if 语句中展开多个选项

    我想在一个 if 语句中解开两个选项 但编译器抱怨密码常量运算符后的预期表达式 可能是什么原因 if let email self emailField text let password self passwordField text d
  • 如何强制 Google Charts vAxes 渲染?

    目前 我在页面上渲染两个图表 我正在使用谷歌的可视化图表库 由于页面大小问题 vAxes 在某些 大部分时间拒绝渲染 如果我给它足够的空间 它就会很好地渲染轴 但如果它稍微偏离 即使有足够的空间容纳这些该死的轴 它们也会拒绝渲染 我不能这样
  • Windows Phone IE 移动 bug 具有透明背景图像和底部绝对定位

    我在使用 WP IE 时遇到两个问题 透明背景图像的透明边框上有伪影 绝对定位的 div 到页面底部在浏览器导航栏和页面底部之间留下约 5px 的白色间隙 请注意 我使用 div 而不是 img 来处理CSS 视网膜图像替换 http co
  • 透明状态栏不适用于 windowTranslucentNavigation="false"

    我正在开发一个Activity我需要在运行 5 0 API 21 的设备上使导航栏不透明 并使状态栏透明 下面是我使用的样式 以及对我的问题的解释 AppTheme延伸Theme AppCompat Light NoActionBar
  • 从非托管 C 调用托管代码

    因此 经过大约一天半的时间 我的进展为零 我需要用 C 语言编写一个 DLL 用作现有应用程序的插件 DLL 必须由 Visual Studio 2008 编译器使用以下选项进行编译 cl DNT40 DPOMDLL DCRTAPI1 cd
  • MySQL 多 ID 查找

    我正在尝试向系统添加全文搜索 我想要编写的查询需要涉及多次查找 然后进行搜索 如果可能的话 我有一张教师表和一张科目表 teacherProfile teacherId int primary key subjectOneId int su
  • 读取时出现 Ruby CSV UTF8 编码错误

    这就是我正在做的 csv CSV open file name r 我用它来测试 line csv shift while not line nil puts line line csv shift end 我遇到了这个 ArgumentE
  • html中有vr(垂直规则)吗?

    我知道html中有hr 水平规则 但我不相信有vr 垂直规则 我错了吗 如果没有 为什么没有垂直规则 不 没有垂直规则 编辑 现在是 2021 年 我回答这个问题十二年后 我不再认为我原来的解释是正确的 原文解释 拥有一个没有逻辑意义 HT
  • 具有相同名称/路径的多个 cookie 的浏览器行为

    我对当存在多个具有相同名称和路径且对当前域有效的 cookie 时各种浏览器的行为感兴趣 例如 浏览器存储了这两个cookie key value path domain foo bar baz key value path domain
  • 为什么 svn import 选项无法检测文件重复

    如果我想签入 SVN 中已存在的同名文件 在这种情况下我将无法提交 例如 Name doc and name doc 但是 在这种情况下我将能够导入 这种情况甚至适用于文件夹名称 这可以防止将来进行结账操作 有没有办法防止文件或文件夹重复
  • 运行桌面版 libgdx 示例 gdx-invaders 时出现 java.lang.NoClassDefFoundError

    我正在构建 libgdx 的 gdx invaders 示例 有两个项目 gdx入侵者 基础项目 作为桌面 Java 应用程序运行gdx 入侵者 android项目 依赖于 gdx invaders 并作为 Android 应用程序运行 我
  • Golang反射:无法设置包装结构的接口字段

    我正在尝试实现一种方法 该方法可以更改可以具有任意结构的对象中的字段值 当我有指向结构的指针时 字段的遍历没有问题 但是 当我有一个接口不包装指向结构的指针而是包装结构本身时 我无法设法更改字段 简而言之 The following doe
  • 我什么时候必须声明 session_start(); ?

    所以我是 PHP 的初学者 所以我需要一些帮助 我正在尝试确定何时开始会议 我应该在用户首次注册时执行此操作还是在用户登录时执行此操作 另外 会话是否 通用 意味着当我检查会话时它会起作用还是我必须在所有页面中包含一个文件来检查某人是否有会
  • .NET 中的 DDD / 聚合

    我一直在阅读 Evans 关于 DDD 的书 并且正在思考应该如何在 NET 中实现聚合 目前 我只能想出一种方法 将聚合隔离在单独的类库中 然而 这似乎有点矫枉过正 我更愿意将所有域对象保留在一个库中 我想知道是否有不同的方法 1 lib
  • 使用 Criteria API 从 NHibernate 获取不同的结果集?

    我试图使用 NHibernate 中的 Criteria API 获得不同的结果 我知道使用 HQL 可以做到这一点 但我更喜欢使用 Criteria API 来执行此操作 因为我的应用程序的其余部分仅使用此方法编写 我找到这个论坛帖子 h
  • 使用 NEON 对 ARM 汇编中的四字向量中的所有元素求和

    我对组装相当陌生 尽管手臂信息中心通常很有帮助 但有时这些说明可能会让新手感到有点困惑 基本上我需要做的就是对四字寄存器中的 4 个浮点值求和 并将结果存储在单个精度寄存器中 我认为 VPADD 指令可以满足我的需要 但我不太确定 你可以尝