0
点赞
收藏
分享

微信扫一扫

AVX编程学习笔记

Ad大成 2022-06-29 阅读 83

一、数据类型

      __m128      包含4个float类型数字的向量

      __m128d    包含2个double类型数字的向量

      __m128i     包含若干个整型数字的向量

       __m256      包含8个float类型数字的向量

      __m256d   包含4个double类型数字的向量

       __m256i      包含若干个整型数字的向量

       float     4byte(32B)

       double  8byte(64B)

      char     1byte(8B)

      short    2byte(16B)

      int        4byte(32B)

      long     8byte(64B)

二、函数

        基本格式:_mm<bit_width>_<name>_<data_type>

        <bit_width>    向量的位长度,128时为空,

        <name>          算术操作

        <data_type>    数据类型

            ps: float

            pd:double

            epi8/epi16/epi32/epi64:  整型  8bit/16bit/32bit/64bit

            epu8/epu16/epu32/epi64: 无符号整型  8bit/16bit/32bit/64bit

            m128/m128i/m128d/m256/m256i/m256d:输入值与返回类型不同时会出现

            si128/si256:128bit/256bit  整型

      (一)初始化

             1)用0初始化 setzero

               2)一个标量初始化 set1

               3)  多个标量初始化  set

       (二)数据读取

               1)对齐   load

               2)未对齐 loadu

       (三)数据写回

               1)对齐 store

               2)未对齐  storeu

        (四)算术运算

               1)加法  add

               2)减法  sub

               3)水平加法 hadd

              4)水平减法 hsub

              5)乘法 mul

              6)乘法(取运算结果高位)mulhi

              7)乘法(取运算结果低位)mullo

              8)除法  div

         (5)类型转换

               __m256 _mm256_castpd_ps (__m256d a)

               __m256i _mm256_castpd_si256 (__m256d a)

               __m256d _mm256_castpd128_pd256 (__m128d a)

               __m128d _mm256_castpd256_pd128 (__m256d a)

               __m256d _mm256_castps_pd (__m256 a)

               __m256i _mm256_castps_si256 (__m256 a)

               __m256 _mm256_castps128_ps256 (__m128 a)

               __m128 _mm256_castps256_ps128 (__m256 a)

               __m256i _mm256_castsi128_si256 (__m128i a)

               __m256d _mm256_castsi256_pd (__m256i a)

               __m256 _mm256_castsi256_ps (__m256i a)

               __m128i _mm256_castsi256_si128 (__m256i a)

        (6)其他运算

               乘加 madd

               绝对值 abs

               取整  floor/ceil/round

               间隔读取 unpack

               插入元素 insert


举报

相关推荐

0 条评论