AVX指令类

AVX指令即英特尔内部指令,只可运用在x86架构上,AVX2KI库实现的指令类名称和功能与AVX指令保持一致。

示例

  1. 创建testavx.cpp文件,文件内容如下。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdint.h>
    #include "avx2ki.h"
    
    void AvxExample()
    {
        int32_t a[4] = {-5, 13, 4, -20};
        int32_t b[4] = {12, 3, 0, 7};
        int32_t c[4] = {0};
        __m128i t1 = _mm_load_epi32(a);
        __m128i t2 = _mm_load_epi32(b);
        __m128i dst = _mm_add_epi32(t1, t2);
        _mm_store_epi32(c, dst);
        printf("dst: %d %d %d %d\n", c[0], c[1], c[2], c[3]);
    }
    
    int main(void) {
        AvxExample();
        return 0;
    }
    

  2. 编译。

    g++ testavx.cpp -o testavx -I/usr/local/ksl/include -L/usr/local/ksl/lib -lavx2ki
    运行结果:
    dst: 7 16 4 -13