Hi Everyone,

I'm working on a early LeMaker HiKey with GCC 4.9.2. I believe
everything is fully patched.

I'm using the builtin's because the intrinsics are missing. I lifted
it from https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01976.html.

Any ideas on this issue?

hikey$ g++ -march=armv8-a test.cxx -c
test.cxx: In function ‘poly128_t VMULL_P64(poly64_t, poly64_t)’:
test.cxx:10:1: error: unrecognizable insn:
 }
 ^
(insn 9 8 12 2 (set (reg:TI 73 [ D.17869 ])
        (unspec:TI [
                (reg:DI 75)
                (reg:DI 76)
            ] UNSPEC_PMULL)) test.cxx:9 -1
     (nil))
test.cxx:10:1: internal compiler error: in extract_insn, at recog.c:2202
Please submit a full bug report,

Thanks in advance.

Jeff

**********

hikey:cryptopp-fork$ cat test.cxx
#include <arm_neon.h>
#include <arm_acle.h>

#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 +
__GNUC_PATCHLEVEL__)

#if (GCC_VERSION >= 40800) && (GCC_VERSION < 50000)
inline poly128_t VMULL_P64(poly64_t a, poly64_t b)
{
    return __builtin_aarch64_crypto_pmulldi_ppp (a, b);
}

inline poly128_t VMULL_HIGH_P64(poly64x2_t a, poly64x2_t b)
{
    return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
}
#else
# define VMULL_P64(a, b) vmull_p64(a, b)
# define VMULL_HIGH_P64(a, b) vmull_high_p64(a, b)
#endif

int main(int argc, char* argv[])
{
    const poly64_t   a1={0x9090909090909090}, b1={0xb0b0b0b0b0b0b0b0};
    const poly8x16_t
a2={0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0},

b2={0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0};

    const poly128_t r1 = VMULL_P64(a1, b1);
    const poly128_t r2 = VMULL_HIGH_P64((poly64x2_t)(a2), (poly64x2_t)(b2));

    return 0;
}

**********

$ cat /proc/cpuinfo
Processor       : AArch64 Processor rev 3 (aarch64)
processor       : 0
processor       : 1
processor       : 2
processor       : 3
processor       : 4
processor       : 5
processor       : 6
processor       : 7
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: AArch64
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 3

Hardware        : HiKey Development Board

**********

$ gcc --version
gcc (Debian/Linaro 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.9 (jessie)
Release:        8.9
Codename:       jessie
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to