Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
いくつかの計算の後に NaN を含む可能性のある 32 ビット浮動小数点レジスタのセットがあります。理想的にはSIMD命令のみを使用して、クワッドレジスタでNaNをゼロに変換したいと思います。データは、クアッド レジスタq0内の 4 つの float で構成されます。これどうやってするの?
NaN とそれ自体を比較すると false が返されるという NaN のプロパティを使用できます。これを使用してマスクを生成し、このマスクと元のフロート ベクトルを AND します。
uint32x4_t vmask = vceqq_f32(va, va); va = (float32x4_t)vandq_u32((uint32x4_t)va, vmask);