18.2 ベクタのデータ型

ベクタのデータ型は、さまざまなタイプとサイズのベクタを表します。

NEON ベクタのデータ型は、次のパターンに従って命名されます。
<type><size>x<number of lanes>_t
例えば、int16x4_t は 4 つのレーンで構成されるベクタであり、各ベクタに符号付きの 16 ビット整数が 1 つ含まれています。
以下の表に、ベクタのデータ型を一覧で示します。

表 18-1 ベクタのデータ型

int8x8_t int8x16_t
int16x4_t int16x8_t
int32x2_t int32x4_t
int64x1_t int64x2_t
uint8x8_t uint8x16_t
uint16x4_t uint16x8_t
uint32x2_t uint32x4_t
uint64x1_t uint64x2_t
float16x4_t float16x8_t
float32x2_t float32x4_t
poly8x8_t poly8x16_t
poly16x4_t poly16x8_t
コンパイラ組み込み関数の中には、次のようなベクタ型の配列を使用するものがあります。
<type><size>x<number of lanes>x<length of array>_t
これらの型は、val という 1 つの要素を持つ通常の C 構造体として処理されます。
サンプル構造体の定義は次のようになります。
struct int16x4x2_t
{
    int16x4_t val[2];
};
以下の表のいずれのベクタ型に関しても、配列長が 2 ~ 4 の配列型が定義されています。

ベクタデータ型およびベクタデータ型の配列を、直接のリテラルな代入で初期化することはできません。ロードコンパイラ組み込み関数のいずれかを使用して初期化する必要があります。
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.