测试两个 __m128i 变量之间的相等性

2023-11-25

如果我想在两个之间进行按位相等测试__m128i变量,我是否需要使用 SSE 指令或者我可以使用==?如果不是,我应该使用哪条SSE指令?


虽然使用_mm_movemask_epi8是一种解决方案,如果您有一个带有 SSE4.1 的处理器,我认为更好的解决方案是使用在 FLAGS 寄存器中设置零或进位标志的指令。这节省了test or cmp操作说明.

为此,您可以这样做:

if(_mm_test_all_ones(_mm_cmpeq_epi8(v1,v2))) {
    //v0 == v1
}

编辑:正如 Paul R 指出的_mm_test_all_ones生成两条指令:pcmpeqd and ptest. With _mm_cmpeq_epi8总共三个指令。这是一个更好的解决方案,总共只使用两条指令:

__m128i neq = _mm_xor_si128(v1,v2);
if(_mm_test_all_zeros(neq,neq)) {
    //v0 == v1
}

这会生成

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

测试两个 __m128i 变量之间的相等性 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • NGINX:如何在一台服务器或域名中设置多个端口?

    我是 Nginx 新手 我的设置遇到问题 我希望我的服务器在公共上使用多个端口运行 例如 server listen 443 ssl server name
  • D 中异常处理的开销

    在 D2 编程语言中 使用异常处理对性能有何影响 尤其 如果我不写异常处理代码怎么办 如果我这样做了 但没有抛出任何异常怎么办 如果我这样做并且抛出异常怎么办 异常处理是否会导致错过任何优化机会 是否可以像许多 大多数 C 实现中那样禁用异
  • 无法在“ApplicationUser”上配置密钥,因为它是派生类型,但 ApplicationUser 上没有密钥配置

    我正在尝试使用 ApplicationUser 自定义 IdentityUser 我按照微软文章中的步骤操作 但是当我运行应用程序时 我在方法上收到此错误base OnModelCreating modelBuilder System In
  • ES6 对象中的方法:使用箭头函数

    在 ES6 中 这两个都是合法的 var chopper owner Zed getOwner function return this owner 并且 作为简写 var chopper owner Zed getOwner return
  • 如何使用 mongo Java 驱动程序 3.0+ 检查文档是否存在于集合中

    使用新的3 0 java驱动程序来自 mongo 检查文档是否存在于集合中的最佳方法是什么 我看过here并尝试做类似的事情 我只做到了这一点 FindIterable
  • 如何仅删除字符串中的 html 标签?

    我已经编写了删除 HTML 标签的代码 但它也删除了a
  • 除了日志记录和事务管理之外,AOP 还有哪些实际应用?

    我理解这些原理 但我很难看出实际应用在哪些地方 请赐教 询问任何支持人员 日志记录是notAOP的一个很好的应用 他们不关心应用程序内部调用什么方法 他们关心应用程序正在执行的重要操作 并需要以他们理解的方式呈现该信息 要创建像样的日志 您
  • 3DSv2 Sagepay 直接集成基础知识

    协议 4 00 的文档可能会更有帮助 对于每个努力让 3DSV2 工作的人来说 我希望任何已经设法让 3DSV2 工作的人能够详细阐述基础知识 我将根据我的理解总结流程 请大家帮忙纠正必要的地方并添加任何问题 例如从 VPSTx Id 中删
  • 如何在 pyspark pandas_udf 中记录/打印消息?

    我已经测试过logger and print无法打印消息pandas udf 无论是在集群模式还是客户端模式 测试代码 import sys import numpy as np import pandas as pd from pyspa
  • 具有任意类型值的 C++ 关联数组

    在 C 中为每个键创建具有任意值类型的关联数组的最佳方法是什么 目前我的计划是创建一个 值 类 其中包含我期望类型的成员变量 例如 class Value int iValue Value int v iValue v std string
  • 如何禁用底部的反应本机警告消息

    我正在开发一个react native IOS应用程序 这个应用程序有时会引发一条警告消息 setState 只能更新已安装或正在安装的组件 我明白该消息的含义 这是由于长时间的AJAX调用造成的 考虑到这个警告不会对APP造成任何严重的问
  • HTTP 错误 500.19 - 内部服务器错误?

    我正在将一个非常基本的站点从 Win 2003 迁移到 Win 2008 R2 该网站出现下面列出的错误 我该如何诊断这个问题 我在这两台服务器之间移动了许多其他站点 这是唯一收到此错误的站点 我看过有关此问题的其他帖子 但没有一个列出适合
  • 使用 Nhibernate 过滤通过聚合根返回的子集合

    我正在尝试在使用 Nhibernate 加载聚合根时过滤它的子集合 向客户加载所有已发货的订单 这可能吗 那么 您可以公开在地图中过滤的属性 如下所示
  • 如何在 processStartInfo 中传递多个参数?

    我想运行一些cmd命令来自c 代码 我关注了一些博客和教程并得到了答案 但我有点困惑 即我应该如何传递多个参数 我使用以下代码 System Diagnostics Process process new System Diagnostic
  • Python美汤表单输入解析

    我的目标是获取所有输入名称和值的列表 将它们配对并提交表格 名称和值是随机的 from bs4 import BeautifulSoup parsing html
  • 可以设置Python对象的任何属性[重复]

    这个问题在这里已经有答案了 例如 这段代码是Python a object a b 3 throws AttributeError object object has no attribute b 但是 这段代码 class c objec
  • 将 sonar.test.exclusions 与 Sonarqube 6.3 一起使用

    我目前正在评估 Sonarqube 6 3 对我当前的 5 5 实例进行了重大升级 并且在尝试找出该功能的过程中我感到很困惑声纳 测试 排除环境 有这样一个问题 Sonar Maven 插件 如何排除测试源目录 这似乎表明它用于从分析中排除
  • Python 中的重复数据删除

    在浏览 Python 中用于重复数据删除的 Dedupe 库的示例时 我发现它创建了一个集群 ID输出文件中的列 根据文档 该列指示哪些记录相互引用 虽然我无法找出两者之间的任何关系集群 ID这对查找重复记录有什么帮助 如果有人对此有见解
  • Java线程阻塞

    我的java环境有问题 我运行 Solr 1 3 搜索引擎 已有一年多了 突然间我遇到了很多麻烦 我所有的线程池 250 每天都会被随机阻塞一两次 我没有对 solr 应用程序或 tomcat 服务器进行任何更改 我正在运行 tomcat
  • 测试两个 __m128i 变量之间的相等性

    如果我想在两个之间进行按位相等测试 m128i变量 我是否需要使用 SSE 指令或者我可以使用 如果不是 我应该使用哪条SSE指令 虽然使用 mm movemask epi8是一种解决方案 如果您有一个带有 SSE4 1 的处理器 我认为更