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