Neon arm neon指令集指令解析

2021-08-21 12:24:34 字數 1252 閱讀 4013

在arm neon的指令集中,大多數都是單詞的縮寫加一些特殊的前字尾修飾符。

正常指令q

可以對任一向量型別執行運算,並生成大小相同且型別與運算元向量相同的結果向量。

長指令l

長指令對雙字向量運算元執行運算,並生成四字向量結果。所生成的元素通常是運算元元素寬度的兩倍,並屬於同一型別。

寬指令w

寬指令對乙個雙字向量運算元和乙個四字向量運算元執行運算。所生成的元素和第乙個運算元的元素是第二個運算元元素寬度的兩倍。

窄指令n

窄指令對四字向量運算元執行運算,並生成雙字向量結果。 所生成的元素通常是運算元元素寬度的一半。

飽和指令q

在v與指令助記符之間的使用q字首可以指定飽和指令。飽和指令限定了各種型別的資料範圍。

neon暫存器

有16個128位的四字暫存器q0-q15,32個64位的雙字暫存器d0-d31,兩個暫存器是重疊的。(每32位乙個字)

對於指令最前面的v表示是向量操作。

neon支援的主要操作

助記符含義add

加法sub

減法mul

乘法mla

乘加mls

乘減ceq

比較 ==

cge比較 >=

cle比較 <=

cgt比較 >

clt比較 <

max最大值

min最小值

shl左移位

shr右移位

abs求絕對值

neg取反

mvn按位取反

and與運算

orr或運算

eor異或運算

get取值

set賦值

dup構造乙個向量,並進行初始化

combine

合併操作,將兩個向量進行合併

mov改變資料型別和資料範圍

zip壓縮操作

uzp解壓操作

ld1載入資料,從給定的buffer指標中拷貝資料

st1拷貝資料,將資料拷貝到指定的buffer中

tst進行與運算之後,判斷是否等於0

abd兩個向量相減之後的絕對值

學習資源

參考文獻:

mysql bin指令集 mysql指令集

一 連線mysql。1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.如果剛安裝好mysql,超級使用者root是沒有密...

gbip指令集 GB CPU 指令與指令集

gb cpu 指令與指令集 到目前為止,雖然 cpu 已經擁有了算術邏輯單元 alu 進行算術邏輯運算和使用暫存器儲存資料,但它仍然缺少一些正常工作時需要的資訊.就像建築工人無法僅僅依靠材料和工具憑空造出一棟高樓大廈,除非建築師能為其提供詳細的建築圖紙.cpu 也是一樣的,開發者需要通過某種方式告訴...

RISC V指令集介紹 整數基本指令集

前段時間在修改 picorv32 核心 乙個riscv 32的cpu核心 閱讀了一下riscv指令集的手冊。在此,做一下簡單記錄。rv32i 32位risc v整數指令集 1.暫存器 32個x暫存器,rv32下x reg是32位寬 x0 硬連線 常數0 x1 x31 31個通用reg pc 額外的使...