ArmのFPU
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Arm]]
#contents
*gccで渡せるArmのFPUオプション [#i72fb2e3]
-crypto-neon-fp-armv8
-fp-armv8
-fpv4-sp-d16
-neon
-neon-fp-armv8
-neon-fp16
-neon-vfpv4
-vfp
-vfp3
-vfpv3
-vfpv3-d16
-vfpv3-d16-fp16
-vfpv3-fp16
-vfpv3xd
-vfpv3xd-fp16
-vfpv4
-vfpv4-d16
*各FPU指定時の違い [#o6fada76]
-predefined macroに見る、挙動の違い
|fpu option |__ARM_FEA...
|crypto-neon-fp-armv8 | ...
|neon | ...
|neon-fp16 | ...
|neon-vfpv4,neon-fp-armv8 | ...
|vfpv4, vfpv4-d16, fp-armv8 | ...
|fpv4-sp-d16 | ...
|vfpv3xd,vfpv3xd-fp16 | ...
|vfpv3-d16-fp16, vfpv3-fp16 | ...
|vfp, vfp3, vfpv3, vfpv3-d16,"no fpu"(指定無し)| ...
-__ARM_FPと__ARM_NEON_FPのvalueはdecimal
*gcc version [#bb6acd13]
$ gcc --version
gcc-4.8.real (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying condit...
warranty; not even for MERCHANTABILITY or FITNESS FOR A ...
*各predefined macro と arm_neon.h を比較して分かる違い [#...
**__ARM_FP [#p33bc0ae]
-0x2 の bit が立っていれば、以下のFP 16bitを扱う命令が使...
--vcvt_f16_f32
--vcvt_f32_f16
**__ARM_FEATURE_FMA [#u0dddca9]
-define されていれば、以下の4命令が使える
--vfma_f32
--vfmaq_f32
--vfms_f32
--vfmsq_f32
-VFMAはvector fused multiply accumulate、VFMSはvector fus...
-ただの乗算と加減算の場合、乗算の後でレジスタに保存するタ...
-Fusedの場合は、丸め込まれる前に加算され、そののちに、丸...
-なので、通常の乗算と加算より、精度が保持される
**__ARM_FEATURE_CRYPTO [#j76a12a3]
-defineされていれば、以下の104命令が使える
-poly64関連の命令を使うためには必須
--vsri_n_p64
--vsriq_n_p64
--vsli_n_p64
--vsliq_n_p64
--vcreate_p64
--vdup_n_p64
--vdupq_n_p64
--vdup_lane_p64
--vdupq_lane_p64
--vcombine_p64
--vget_high_p64
--vget_low_p64
--vext_p64
--vextq_p64
--vbsl_p64
--vbslq_p64
--vld1_p64
--vld1q_p64
--vld1_lane_p64
--vld1q_lane_p64
--vld1_dup_p64
--vld1q_dup_p64
--vst1_p64
--vst1q_p64
--vst1_lane_p64
--vst1q_lane_p64
--vld2_p64
--vld2_dup_p64
--vst2_p64
--vld3_p64
--vld3_dup_p64
--vst3_p64
--vld4_p64
--vld4_dup_p64
--vst4_p64
--vreinterpret_p8_p64
--vreinterpret_p16_p64
--vreinterpret_f32_p64
--vreinterpret_p64_p8
--vreinterpret_p64_p16
--vreinterpret_p64_f32
--vreinterpret_p64_s64
--vreinterpret_p64_u64
--vreinterpret_p64_s8
--vreinterpret_p64_s16
--vreinterpret_p64_s32
--vreinterpret_p64_u8
--vreinterpret_p64_u16
--vreinterpret_p64_u32
--vreinterpret_s64_p64
--vreinterpret_u64_p64
--vreinterpret_s8_p64
--vreinterpret_s16_p64
--vreinterpret_s32_p64
--vreinterpret_u8_p64
--vreinterpret_u16_p64
--vreinterpret_u32_p64
--vreinterpretq_p8_p64
--vreinterpretq_p8_p128
--vreinterpretq_p16_p64
--vreinterpretq_p16_p128
--vreinterpretq_f32_p64
--vreinterpretq_f32_p128
--vreinterpretq_p64_p8
--vreinterpretq_p64_p16
--vreinterpretq_p64_f32
--vreinterpretq_p64_p128
--vreinterpretq_p64_s64
--vreinterpretq_p64_u64
--vreinterpretq_p64_s8
--vreinterpretq_p64_s16
--vreinterpretq_p64_s32
--vreinterpretq_p64_u8
--vreinterpretq_p64_u16
--vreinterpretq_p64_u32
--vreinterpretq_p128_p8
--vreinterpretq_p128_p16
--vreinterpretq_p128_f32
--vreinterpretq_p128_p64
--vreinterpretq_p128_s64
--vreinterpretq_p128_u64
--vreinterpretq_p128_s8
--vreinterpretq_p128_s16
--vreinterpretq_p128_s32
--vreinterpretq_p128_u8
--vreinterpretq_p128_u16
--vreinterpretq_p128_u32
--vreinterpretq_s64_p64
--vreinterpretq_s64_p128
--vreinterpretq_u64_p64
--vreinterpretq_u64_p128
--vreinterpretq_s8_p64
--vreinterpretq_s8_p128
--vreinterpretq_s16_p64
--vreinterpretq_s16_p128
--vreinterpretq_s32_p64
--vreinterpretq_s32_p128
--vreinterpretq_u8_p64
--vreinterpretq_u8_p128
--vreinterpretq_u16_p64
--vreinterpretq_u16_p128
--vreinterpretq_u32_p64
--vreinterpretq_u32_p128
--vldrq_p128
**__ARM_NEON__ [#n73bb313]
-defineされていれば、arm_neon.hに記述されてるSIMD命令が使...
**__ARM_NEON_FP,__ARM_NEON,__FP_FAST_FMAF,__FP_FAST_FMA,_...
-__ARM_NEON_FPの0x2、0x4のbitは__ARM_FPの対応するbitと共...
-__ARM_NEONは__ARM_NEON__と共通(alias)。
-__FP_FAST_FMAFは__ARM_FEATURE_FMAのalias。C99の仕様とし...
-__FP_FAST_FMALと__FP_FAST_FMAは共通。
*命令と必要なFPU [#y90d3a3f]
**FP 16bit 関連のSIMD [#n70fdde9]
-crypto-neon-fp-armv8,neon-fp16,neon-vfpv4,neon-fp-armv8v...
**Fused Mulitply関連のSIMD命令 [#hb36f495]
-crypto-neon-fp-armv8,neon-vfpv4,neon-fp-armv8,vfpv4,vfpv...
**その他のSIMD命令 [#xb7df6b1]
-crypto-neon-fp-armv8,neon,neon-fp16,neon-vfpv4,neon-fp-a...
終了行:
[[Arm]]
#contents
*gccで渡せるArmのFPUオプション [#i72fb2e3]
-crypto-neon-fp-armv8
-fp-armv8
-fpv4-sp-d16
-neon
-neon-fp-armv8
-neon-fp16
-neon-vfpv4
-vfp
-vfp3
-vfpv3
-vfpv3-d16
-vfpv3-d16-fp16
-vfpv3-fp16
-vfpv3xd
-vfpv3xd-fp16
-vfpv4
-vfpv4-d16
*各FPU指定時の違い [#o6fada76]
-predefined macroに見る、挙動の違い
|fpu option |__ARM_FEA...
|crypto-neon-fp-armv8 | ...
|neon | ...
|neon-fp16 | ...
|neon-vfpv4,neon-fp-armv8 | ...
|vfpv4, vfpv4-d16, fp-armv8 | ...
|fpv4-sp-d16 | ...
|vfpv3xd,vfpv3xd-fp16 | ...
|vfpv3-d16-fp16, vfpv3-fp16 | ...
|vfp, vfp3, vfpv3, vfpv3-d16,"no fpu"(指定無し)| ...
-__ARM_FPと__ARM_NEON_FPのvalueはdecimal
*gcc version [#bb6acd13]
$ gcc --version
gcc-4.8.real (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying condit...
warranty; not even for MERCHANTABILITY or FITNESS FOR A ...
*各predefined macro と arm_neon.h を比較して分かる違い [#...
**__ARM_FP [#p33bc0ae]
-0x2 の bit が立っていれば、以下のFP 16bitを扱う命令が使...
--vcvt_f16_f32
--vcvt_f32_f16
**__ARM_FEATURE_FMA [#u0dddca9]
-define されていれば、以下の4命令が使える
--vfma_f32
--vfmaq_f32
--vfms_f32
--vfmsq_f32
-VFMAはvector fused multiply accumulate、VFMSはvector fus...
-ただの乗算と加減算の場合、乗算の後でレジスタに保存するタ...
-Fusedの場合は、丸め込まれる前に加算され、そののちに、丸...
-なので、通常の乗算と加算より、精度が保持される
**__ARM_FEATURE_CRYPTO [#j76a12a3]
-defineされていれば、以下の104命令が使える
-poly64関連の命令を使うためには必須
--vsri_n_p64
--vsriq_n_p64
--vsli_n_p64
--vsliq_n_p64
--vcreate_p64
--vdup_n_p64
--vdupq_n_p64
--vdup_lane_p64
--vdupq_lane_p64
--vcombine_p64
--vget_high_p64
--vget_low_p64
--vext_p64
--vextq_p64
--vbsl_p64
--vbslq_p64
--vld1_p64
--vld1q_p64
--vld1_lane_p64
--vld1q_lane_p64
--vld1_dup_p64
--vld1q_dup_p64
--vst1_p64
--vst1q_p64
--vst1_lane_p64
--vst1q_lane_p64
--vld2_p64
--vld2_dup_p64
--vst2_p64
--vld3_p64
--vld3_dup_p64
--vst3_p64
--vld4_p64
--vld4_dup_p64
--vst4_p64
--vreinterpret_p8_p64
--vreinterpret_p16_p64
--vreinterpret_f32_p64
--vreinterpret_p64_p8
--vreinterpret_p64_p16
--vreinterpret_p64_f32
--vreinterpret_p64_s64
--vreinterpret_p64_u64
--vreinterpret_p64_s8
--vreinterpret_p64_s16
--vreinterpret_p64_s32
--vreinterpret_p64_u8
--vreinterpret_p64_u16
--vreinterpret_p64_u32
--vreinterpret_s64_p64
--vreinterpret_u64_p64
--vreinterpret_s8_p64
--vreinterpret_s16_p64
--vreinterpret_s32_p64
--vreinterpret_u8_p64
--vreinterpret_u16_p64
--vreinterpret_u32_p64
--vreinterpretq_p8_p64
--vreinterpretq_p8_p128
--vreinterpretq_p16_p64
--vreinterpretq_p16_p128
--vreinterpretq_f32_p64
--vreinterpretq_f32_p128
--vreinterpretq_p64_p8
--vreinterpretq_p64_p16
--vreinterpretq_p64_f32
--vreinterpretq_p64_p128
--vreinterpretq_p64_s64
--vreinterpretq_p64_u64
--vreinterpretq_p64_s8
--vreinterpretq_p64_s16
--vreinterpretq_p64_s32
--vreinterpretq_p64_u8
--vreinterpretq_p64_u16
--vreinterpretq_p64_u32
--vreinterpretq_p128_p8
--vreinterpretq_p128_p16
--vreinterpretq_p128_f32
--vreinterpretq_p128_p64
--vreinterpretq_p128_s64
--vreinterpretq_p128_u64
--vreinterpretq_p128_s8
--vreinterpretq_p128_s16
--vreinterpretq_p128_s32
--vreinterpretq_p128_u8
--vreinterpretq_p128_u16
--vreinterpretq_p128_u32
--vreinterpretq_s64_p64
--vreinterpretq_s64_p128
--vreinterpretq_u64_p64
--vreinterpretq_u64_p128
--vreinterpretq_s8_p64
--vreinterpretq_s8_p128
--vreinterpretq_s16_p64
--vreinterpretq_s16_p128
--vreinterpretq_s32_p64
--vreinterpretq_s32_p128
--vreinterpretq_u8_p64
--vreinterpretq_u8_p128
--vreinterpretq_u16_p64
--vreinterpretq_u16_p128
--vreinterpretq_u32_p64
--vreinterpretq_u32_p128
--vldrq_p128
**__ARM_NEON__ [#n73bb313]
-defineされていれば、arm_neon.hに記述されてるSIMD命令が使...
**__ARM_NEON_FP,__ARM_NEON,__FP_FAST_FMAF,__FP_FAST_FMA,_...
-__ARM_NEON_FPの0x2、0x4のbitは__ARM_FPの対応するbitと共...
-__ARM_NEONは__ARM_NEON__と共通(alias)。
-__FP_FAST_FMAFは__ARM_FEATURE_FMAのalias。C99の仕様とし...
-__FP_FAST_FMALと__FP_FAST_FMAは共通。
*命令と必要なFPU [#y90d3a3f]
**FP 16bit 関連のSIMD [#n70fdde9]
-crypto-neon-fp-armv8,neon-fp16,neon-vfpv4,neon-fp-armv8v...
**Fused Mulitply関連のSIMD命令 [#hb36f495]
-crypto-neon-fp-armv8,neon-vfpv4,neon-fp-armv8,vfpv4,vfpv...
**その他のSIMD命令 [#xb7df6b1]
-crypto-neon-fp-armv8,neon,neon-fp16,neon-vfpv4,neon-fp-a...
ページ名: