intrinsics

    6热度

    3回答

    由于似乎没有ADC的内在因素,我不能使用Visual C++的x64体系结构的内联汇编程序,如果我想使用add with携带但将其包含在C++名称空间中? (与运营商相比,仿效是不是一种选择,这256兆位补充的是性能的关键。)

    4热度

    2回答

    假设我有两个向量由两个数组double两个数组表示,每个数组的大小为2.我想添加相应的位置。所以假设矢量i0和i1,我想添加i0[0] + i1[0]和i0[1] + i1[1]在一起。 由于类型是double,我需要两个寄存器。诀窍是将i0[0]和i1[0],i0[1]和i1[1]放在另一个中,并将其与自身相加。 我的问题是,如果我打电话_mm_load_ps(i0[0]),然后_mm_load

    -3热度

    2回答

    通过调用_mm_stream_si64x()来实现性能增益的示例程序是什么? 上_mm_stream_si64x MSDN文章:http://msdn.microsoft.com/en-us/library/35b8kssy.aspx

    7热度

    2回答

    我需要一个具有周期2^128的__m128i变量的函数。它不需要单调增加(就像一个计数器),而是每访问一次值。 我能想到的最简单的例子实际上是一个128位的计数器,但我发现很难在SSE中实现。有没有更简单/更快的解决方案?

    0热度

    1回答

    我知道Fortran 2003包含内部子程序get_environment_variable,但我无法获得它返回我想要的变量。这是一个测试程序: program main implicit none character(len=10) :: time call get_environment_variable("t", time) write(6,*) t

    8热度

    3回答

    我有以下代码,并期望使用exp()函数的内在版本。不幸的是,它不是在x64的构建,使得它比类似的Win32(即32位版本)慢: #include "stdafx.h" #include <cmath> #include <intrin.h> #include <iostream> int main() { const int NUM_ITERATIONS=10000000;

    0热度

    1回答

    我想使用SSE2指令进行一些优化的代码。目前,我有它写成内联汇编,就像这样: ... __m128 zero = {0}; __asm { ... LINE_LOOP_1: MOVQ xmm0, QWORD PTR [eax] ; no problem PUNPCKLBW xmm0, zero ; PROBLEM IS HERE ...

    0热度

    2回答

    是否有任何优雅的方式来加载16个8位数据并将它们连接到4个unsigned int? 喜欢如下: 负载以下阵列(16 epi8)由_mm_load_si128()到__m128i 0x00时,0×11,为0x22,0x33,0x44进行,0x55​​的,0x66,0x77,均为0x88,0x99,和0xAA,为0xBB,的0xCC,0xdd,0xee,0xff的 ,然后做一些操作,使得寄存器(__

    10热度

    2回答

    是否有方法检查__m128i变量中的所有位/字节/字等是否为0? 在我的应用程序中,我必须检查包含在__m128i变量中的所有整数是否为零。我需要提取它们并分别进行比较吗? 编辑: 我现在正在做的是: int next = 0; do{ //some code next = idata.m128i_i32[0] + idata.m128i_i32[1] + idata.m1

    0热度

    1回答

    如何获得两个字符串字符比较表与SSE 4.2内部函数在C? _mm_cmpistrm重要位的返回掩码,即通过比较表处理结果对char by char进行聚合函数。 __m128i _mm_cmpistrm ( __m128i a, __m128i b, const int mode ); 如何通过字符比较表提取字符而没有任何聚合func调用? (也许_SIDD_U