Skip to content

ARM64 support #2

@MattF42

Description

@MattF42

Won't compile on Ubuntu 22.04 ARM64:

gcc -DHAVE_CONFIG_H -I.  -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -O3 -march=native -Wall  -Iyes/include -MT algo/flex/cryptonote/crypto/cpuminer-oaes_lib.o -
MD -MP -MF algo/flex/cryptonote/crypto/.deps/cpuminer-oaes_lib.Tpo -c -o algo/flex/cryptonote/crypto/cpuminer-oaes_lib.o `test -f 'algo/flex/cryptonote/crypto/oaes_lib.c' || echo './'`algo/flex/cryptonote/crypto/oaes
_lib.c
In file included from ./simd-utils.h:174,
                 from algo/sha/sha1-hash.h:5,
                 from api.c:34:
./simd-utils/intrlv.h: In function ‘intrlv_4x32’:
./simd-utils/intrlv.h:122:4: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  122 |    ILEAVE_4x32( D0, D1, D2, D3, S0, S1, S2, S3 );
      |    ^~~~~~~~~~~
In file included from ./simd-utils.h:174,
                 from algo/sha/sha1-hash.h:5,
                 from api.c:34:
./simd-utils/intrlv.h: In function ‘intrlv_4x32’:
./simd-utils/intrlv.h:122:4: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  122 |    ILEAVE_4x32( D0, D1, D2, D3, S0, S1, S2, S3 );
      |    ^~~~~~~~~~~
In file included from ./simd-utils.h:172,
                 from algo/sha/sha1-hash.h:5,
                 from api.c:34:
./simd-utils/intrlv.h:98:25: error: incompatible type for argument 1 of ‘vzip1q_u64’
   98 |   D0 = v128_unpacklo64( T,  S1 ); \
      |                         ^
      |                         |
      |                         uint32x4_t
./simd-utils/simd-neon.h:167:51: note: in definition of macro ‘v128_unpacklo64’
  167 | #define v128_unpacklo64( v1, v0 )     vzip1q_u64( v1, v0 )
      |                                                   ^~
./simd-utils/intrlv.h:122:4: note: in expansion of macro ‘ILEAVE_4x32’
  122 |    ILEAVE_4x32( D0, D1, D2, D3, S0, S1, S2, S3 );
      |    ^~~~~~~~~~~
In file included from ./simd-utils.h:149,
                 from algo/sha/sha1-hash.h:5,
                 from api.c:34:
/usr/lib/gcc/aarch64-linux-gnu/11/include/arm_neon.h:30637:24: note: expected ‘uint64x2_t’ but argument is of type ‘uint32x4_t’
30637 | vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
      |             ~~~~~~~~~~~^~~
In file included from ./simd-utils.h:172,
                 from algo/sha/sha1-hash.h:5,
                 from api.c:34:
./simd-utils/intrlv.h:122:37: error: incompatible type for argument 2 of ‘vzip1q_u64’
  122 |    ILEAVE_4x32( D0, D1, D2, D3, S0, S1, S2, S3 );
      |                                     ^~
      |                                     |
      |                                     uint32x4_t
./simd-utils/simd-neon.h:167:55: note: in definition of macro ‘v128_unpacklo64’
  167 | #define v128_unpacklo64( v1, v0 )     vzip1q_u64( v1, v0 )
      |                                                       ^~
./simd-utils/intrlv.h:122:4: note: in expansion of macro ‘ILEAVE_4x32’
  122 |    ILEAVE_4x32( D0, D1, D2, D3, S0, S1, S2, S3 );
      |    ^~~~~~~~~~~

etc etc etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions