Skip to content

On arm64 are float32x2_t is not supported #1263

@mlomonaco

Description

@mlomonaco

On an apple silicon + clang this doesnt compile (latest git clone on master):

 typedef xsimd::batch<float, xsimd::make_sized_batch<float, 2>> t_Vector2;
 t_Vector2 a = 2.0f;

Error is:

/opt/compiler-explorer/libs/xsimd/trunk/include/xsimd/types/xsimd_batch.hpp:532:58: error: no matching function for call to 'broadcast<xsimd::make_sized_batch<float, 2> >(float&, xsimd::make_sized_batch<float, 2>)'
  532 |         : types::simd_register<T, A>(kernel::broadcast<A>(val, A {}))
      |                                      ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
  • there are 11 candidates
...omissis...

A quick search in xsimd_neon.hpp in the library doesnt show any intrinsic float32x2_t vdup_n_f32(float32_t value) function
I believe assignment operator = also fails for the 2 lanes simd.

Am I missing something?

Thanks

M.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions