簡體   English   中英

Visual Studio VC2013啟用沒有AVX的SSE4.1

[英]Visual Studio VC2013 enabling SSE4.1 without AVX

我有一個相當簡單的問題,但經過一段時間的搜索,我發現還沒有真正的答案。 微軟建議啟用AVX增強指令集,以便也使用SSE4優化代碼。 不幸的是,盡管有一些讀數,但這也強制使用了支持AVX的CPU。 有沒有一種方法可以在VC2013中強制執行A​​VX而無需啟用SSE4? 這個問題的背景很明顯我認為,SSE4支持更長,只需要較舊的CPU(我認為是2006年),而AVX需要2011年的CPU。所討論的dll只使用SSE4的優化,但是現在我必須堅持SSE2犧牲性能以保持其正常運行。

似乎/arch:SSE2標志增加了對SSE2和后來的內在函數的支持。 我沒有安裝Visual Studio,但此示例有效( _mm_floor_ps特定_mm_floor_ps SSE4):

#include <smmintrin.h>
#include <iostream>
using namespace std;

int main()
{
    __declspec(align(16)) float values[4] = {1.3f, 2.1f, 4.3f, 5.1f};
    for(int i = 0; i < 4; i++)
        cout << values[i] << ' ';
    cout << endl;

    __m128 x = _mm_load_ps(values);
    x = _mm_floor_ps(x);
    _mm_store_ps(values, x);

   for(int i = 0; i < 4; i++)
        cout << values[i] << ' ';
    cout << endl;
}

你可以在這里嘗試一下 編譯結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM