如何对 __m128 类型变量中的浮点元素取反(更改符号)?

2023-11-22

是否有任何单个指令或函数可以反转符号__m128 内的每个浮点数? IE。a = r0:r1:r2:r3 ===> a = -r0:-r1:-r2:-r3?

我知道这可以通过_mm_sub_ps(_mm_set1_ps(0.0),a),但它不是可能很慢吗?_mm_set1_ps(0.0)是多指令函数吗?


实际上,您的编译器应该能够很好地生成 0.0.0 的常量向量。它可能只会使用_mm_xor_ps,如果您的代码处于循环中,则无论如何它都应该将常量生成提升到循环之外。所以,最重要的是,使用你最初的想法:

v = _mm_sub_ps(_mm_set1_ps(0.0), v);

或者另一个常见的技巧,那就是:

v = _mm_xor_ps(v, _mm_set1_ps(-0.0));

它只是翻转符号位而不是进行减法(不像第一种方法那么安全,因为它不能对 NaN 做正确的事情,但在某些情况下可能更有效)。

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

如何对 __m128 类型变量中的浮点元素取反(更改符号)? 的相关文章

  • 使用 TCP 套接字在本地代理视频

    我一直对向媒体浏览器添加对视频播客的支持非常感兴趣 我希望用户能够浏览可用的视频播客并从互联网上流式传输它们 这真的很容易 因为媒体播放器等将愉快地播放存在于云中的文件 问题是我想在本地缓存这些文件 因此同一集的后续观看将不涉及流式传输 而
  • 如何在 Caliburn.Micro 中使用 Conductor 的依赖注入

    我有时用Caliburn Micro http caliburnmicro com创建应用程序 使用最简单的 BootStrapper 我可以像这样使用 IoC 容器 SimpleContainer private SimpleContai
  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • C 中的 '\0' 和 printf()

    在 C 入门课程中 我了解到在存储字符串时存储空字符 0在它的最后 但是如果我想打印一个字符串怎么办 printf hello 虽然我发现它并没有结束 0通过以下声明 printf d printf hello Output 5 但这似乎不
  • 析构函数与成员函数竞赛

    当我在析构函数内时 其他线程是否可能开始执行对象的成员函数 遇到这种情况该如何处理呢 C 没有内在的保护来防止在删除对象后使用它 忘记竞争条件 另一个线程可以在完全删除你的对象后使用你的对象 Either 确保只有一个位置 代码拥有该对象
  • C 链表销毁函数

    我正在尝试学习 C 和很多人一样 我对指针有点困惑 无论如何 我创建了一个递归函数来销毁我的链表 但是正如我调试的那样 当我从函数返回时 列表的头部不应该为空 所以我猜这是对指针的一些基本误解 这是函数 void destroy struc
  • UI 线程正在阻塞调用 COM 对象的后台线程

    我正在开发一个通过第三方 COM 库与外部设备通信的应用程序 我试图让与设备的所有通信都通过后台线程 以防止通信问题搞砸我的应用程序 并消除在 UI 线程中进行通信所引入的一些其他复杂性 问题是 每当发生导致主 UI 线程阻塞的情况 即调用
  • 有没有办法找到dll公开的所有函数

    我一直在寻找一种方法来获取映射到 dll 中函数名称的所有字符串 我的意思是您可以调用 GetProcAddress 的所有字符串 如果你对 dll 进行十六进制转储 符号 字符串 就在那里 但我认为必须有一个系统调用来获取这些名称 如果您
  • 为什么我收到编译错误“使用已删除的函数 'std::unique_ptr ...”

    我收到一条巨大的编译错误消息 c mingw include c 6 1 0 bits predefined ops h 123 18 error use of deleted function std unique ptr lt Tp D
  • _MM_TRANSPOSE4_PS 在 GCC 中导致编译器错误?

    我第一次在 GCC 而不是 MSVC 中编译我的数学库 并经历了所有的小错误 我遇到了一个根本没有意义的错误 Line 284 error lvalue required as left operand of assignment 284号
  • 使用 FromBase64Transform 解码 base64 文件流

    The example https msdn microsoft com en us library system security cryptography frombase64transform 28v vs 110 29 aspx从M
  • 使用信号和槽更新指针

    我对 Qt 很陌生 请帮我解决这个问题 我正在使用线程在后台执行密集操作 同时我想更新 UI 所以我使用 SIGNALS 和 SLOTS 为了更新 UI 我发出一个信号并更新 UI 让我们考虑下面的示例代码 struct sample QS
  • 如何将输出重定向到 boost 日志?

    我有一个使用boost log的C 程序 我加载了用户提供的动态链接库 我想将 stderr 重定向到 boost 日志 以便用户的库随时执行以下操作 std cerr lt lt Some stuff 它产生相同的结果 BOOST LOG
  • 如何在 C 语言中获取输入中的空格

    我想从控制台获取字符数组 它还包含空格 我在 C 中知道的唯一方法是 scanf 但是一旦遇到空格 它就会停止接受输入 我该做什么 这就是我正在做的事情 char address 100 scanf s address 尝试使用 fgets
  • 使用“const cv::Mat &”、“cv::Mat &”、“cv::Mat”或“const cv::Mat”作为函数参数的区别?

    我已经彻底搜索过 但没有找到一个简单的答案 传递 opencv 矩阵 cv Mat 作为函数的参数 我们传递一个智能指针 我们对函数内部的输入矩阵所做的任何更改也会改变函数范围之外的矩阵 我读到 通过将矩阵作为 const 引用传递 它不会
  • 如何解决 boost::multi precision::cpp_dec_float 除法错误

    除以boost multiprecision cpp dec float有某种舍入误差 如下 include
  • 在链表程序中使用模板时重载 C++ 中的 << 运算符

    我正在尝试实现一个链接列表 但是当我尝试重载 include
  • C++ 在预处理器 #if 中对 sizeof() 比较抛出编译错误

    我有这个 它不会从 Visual Studio 编译错误 致命错误 C1017 无效的整数常量表达式 我该怎么做 template
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720

随机推荐

  • singletonList有什么用?

    我正在寻找一些优雅的解决方案来从列表中删除空值 我遇到了以下帖子 这表示我可以使用list removeAll Collections singletonList null 然而 这引发了UnsupportedOperationExcept
  • File.Copy() 是否通过网络将文件从网络共享复制到同一台计算机上的另一个共享?

    如果我的 NET 客户端使用系统 IO 文件 复制从中复制文件 server1 share1 file1 txt to sever1 share2 file2 txt 文件的数据是否被读取到客户端 然后写回服务器 如果是 是否有任何方法 N
  • nginx过滤http洪水的配置

    A 我的服务器上有 http 洪水 没有太多查询 但无论如何 日志中的查询 95 55 237 3 06 Sep 2012 14 38 23 0400 GET HTTP 1 0 200 35551 Mozilla 5 0 Windows U
  • GlassFish、CDI 和构造函数注入

    GlassFish 3 1 的托管 bean 的 CDI 实现是否支持构造函数注入 我有一个 Singleton我想使用构造函数注入向其中注入另一个托管 bean 包含在同一 EJB 模块中 的 EJB 现场注入确实有效 但是通过构造函数注
  • 在 Docker 容器内挂载 SMB/CIFS 共享

    我有一个在 Docker 容器中运行的 Web 应用程序 此应用程序需要访问我们公司文件服务器 具有 Active Directory 域控制器的 Windows Server 上的一些文件 我尝试访问的文件是为我们的客户创建的图像文件 网
  • Connect:非socket上的socket操作

    我是unix网络编程的新手 我尝试编写一个程序来连接到Google的服务器 但是 我在使用 connect 函数时遇到错误 操作系统 OS X 连接错误 在非套接字上进行套接字操作 我已经研究了4个小时 但我无法找出问题所在 这是我的代码
  • 3D刚体平移和旋转的python实现

    我一直在尝试找出如何使用 python 解决以下问题 我们有点 a b c d 形成刚体 一些不为人知的3D平移和旋转应用于刚体 我们现在知道 a b c 的坐标 我们想要计算 d 的坐标 到目前为止我所知道的 由于万向节锁等原因 尝试通过
  • 如何重写 Spring Data CrudRepository 上的删除方法?

    我有一些无法删除的对象 并且必须更新名为 已删除 的公共字段来代替它 我读there我可以使用编写通用查询 entityName 因此我试图覆盖CrudRepository delete 像这样的方法 public interface De
  • Make +y UP,移动原点 C# System.Drawing.Graphics

    我希望原点位于窗口的中心 o gt NET 希望它位于左上角 gt V 点网和我正在努力相处 有谁知道如何在 C 中仅使用 Graphics 对象来做到这一点 Graphics TranslateTransform 不会执行此操作 因为它会
  • 使用 Axis2 附加客户端证书?

    是否可以轻松地将客户端证书附加到使用 wsdl2java 生成的 Axis2 存根 我需要根据每个请求动态更改客户端证书 因此简单地将其存储在密钥库中不适用于我们的情况 我找到了针对非 SOAP 调用执行此操作的示例 但找不到与使用 Axi
  • 来自 AJAX 调用的 res.redirect

    我正在尝试在 ajax 之后进行重定向put要求 我计划使用纯 JS 客户端进行验证 Client document ready function login gt var username name username val var pa
  • 在Eclipse中,是否可以找到项目中采用某种参数类型的所有方法?

    这基本上就是我的问题 我正在参数化方法中将所有方法 ArrayList 转换为 HashMap 但我不想将所有 ArrayList 转换为 HashMap 因为有一些方法是在本地使用的 这更多的是出于好奇 但它会很有用 那么 在 Eclip
  • 带有图像

    我将 JSF 与 Primefaces 一起使用 我想使用仅包含图像的单选按钮按钮集 但我无法使其工作 这是代码
  • 我应该将 Maven 项目的应用程序配置文件放在哪里?

    我正在使用Maven 应用程序组装器用于从我的 Java 项目生成独立可执行文件的插件 应用程序读取配置文件 包括 Spring 文件 应用程序汇编器插件有一个选项 默认激活 可以将 etc 目录添加到应用程序的类路径中 但是我应该怎么做才
  • 来自类的 Java 资源与线程

    有什么区别 getClass getResource some resource file txt vs Thread currentThread getContextClassLoader getResource some resourc
  • 如何在 OpenCV 中找到二值骨架图像的端点?

    我有一个二进制像素的骨架 如下所示 我想找到该骨架端点的坐标 在本例中有四个 如果适用 请使用 Open CV 效率很重要 因为我正在从视频源中实时分析其中的许多内容 并且需要同时做许多其他事情 请注意 抱歉 上面的屏幕截图已调整了人工制品
  • ggplot2:将各个facet_wrap面保存为单独的绘图对象

    我是以下的忠实粉丝facet wrap 尽管在 R 中分割大数据框 绘制多个图并进行探索的速度很快 但它并不总是在纸张或幻灯片中呈现的最佳工具 我发现自己在比例 binwidths 和字体大小上浪费了很多时间 并最终在 inkscape 上
  • C# 创建没有 的 XML 输出文件

    我是 C 开发新手 所以这里可能是一个非常简单的问题 我试图获得这样的输出
  • 自定义 pip install 命令未运行

    我正在尝试为我正在编写的 pip 库运行一些预安装命令 我的安装文件如下所示 from setuptools import setup from setuptools command install import install class
  • 如何对 __m128 类型变量中的浮点元素取反(更改符号)?

    是否有任何单个指令或函数可以反转符号 m128 内的每个浮点数 IE a r0 r1 r2 r3 gt a r0 r1 r2 r3 我知道这可以通过 mm sub ps mm set1 ps 0 0 a 但它不是可能很慢吗 mm set1