1

いくつかの計算の後に NaN を含む可能性のある 32 ビット浮動小数点レジスタのセットがあります。理想的にはSIMD命令のみを使用して、クワッドレジスタでNaNをゼロに変換したいと思います。データは、クアッド レジスタq0内の 4 つの float で構成されます。これどうやってするの?

4

1 に答える 1

4

NaN とそれ自体を比較すると false が返されるという NaN のプロパティを使用できます。これを使用してマスクを生成し、このマスクと元のフロート ベクトルを AND します。

uint32x4_t vmask = vceqq_f32(va, va);
va = (float32x4_t)vandq_u32((uint32x4_t)va, vmask);
于 2012-11-19T17:23:17.773 に答える