【问题标题】:Non-Homogenous Comparison using SIMD使用 SIMD 的非同质比较
【发布时间】:2013-05-06 09:44:46
【问题描述】:

是否可以使用 SIMD 指令(内在)进行非同源(两种不同的数据类型)比较,特别是在 SSE2 uptil SSE4.x 指令集中? .即浮动和双倍?还是 32 位和 64 位整数?甚至是带有整数等的浮点数?

【问题讨论】:

    标签: c++ comparison simd


    【解决方案1】:

    你的意思是你有一个整数数组,你想将它与一个双精度数组中的值进行比较?不幸的是,您必须执行某种转换才能实现这一目标。有一组 cvtXX2YY 指令可以做到这一点,它们应该在内部函数中可用。您只需要选择一个进行正确转换的,例如_mm_cvtpi32_ps - 如本例所示,您不能将四个整数转换为四个浮点数......一次只能转换两个。不要问我为什么……

    如果您询问“您能否将一个整数和一个浮点数转换为另一个整数和浮点数”,那么不,那不可用。

    【讨论】:

    • _mm_cvtepi32_ps 是 CVTDQ2PS 固有的,它可以转换四个整数。
    猜你喜欢
    • 2012-03-09
    • 2015-06-26
    • 2015-08-02
    • 2017-08-15
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    相关资源
    最近更新 更多