require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GCC_ARM_ACLE_H)) {
    eval 'sub _GCC_ARM_ACLE_H () {1;}' unless defined(&_GCC_ARM_ACLE_H);
    require 'stdint.ph';
    if(defined(&__cplusplus)) {
    }
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__jcvt (\'double\'  &__a) {  &__builtin_aarch64_jcvtzs ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint32zf (\'float\'  &__a) {  &__builtin_aarch64_frint32zsf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint32z (\'double\'  &__a) {  &__builtin_aarch64_frint32zdf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint64zf (\'float\'  &__a) {  &__builtin_aarch64_frint64zsf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint64z (\'double\'  &__a) {  &__builtin_aarch64_frint64zdf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint32xf (\'float\'  &__a) {  &__builtin_aarch64_frint32xsf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint32x (\'double\'  &__a) {  &__builtin_aarch64_frint32xdf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint64xf (\'float\'  &__a) {  &__builtin_aarch64_frint64xsf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rint64x (\'double\'  &__a) {  &__builtin_aarch64_frint64xdf ( &__a); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32b ( &uint32_t  &__a,  &uint8_t  &__b) {  &__builtin_aarch64_crc32b ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32cb ( &uint32_t  &__a,  &uint8_t  &__b) {  &__builtin_aarch64_crc32cb ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32ch ( &uint32_t  &__a,  &uint16_t  &__b) {  &__builtin_aarch64_crc32ch ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32cw ( &uint32_t  &__a,  &uint32_t  &__b) {  &__builtin_aarch64_crc32cw ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32cd ( &uint32_t  &__a,  &uint64_t  &__b) {  &__builtin_aarch64_crc32cx ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32h ( &uint32_t  &__a,  &uint16_t  &__b) {  &__builtin_aarch64_crc32h ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32w ( &uint32_t  &__a,  &uint32_t  &__b) {  &__builtin_aarch64_crc32w ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__crc32d ( &uint32_t  &__a,  &uint64_t  &__b) {  &__builtin_aarch64_crc32x ( &__a,  &__b); });
    }' unless defined(&__attribute__);
    if(defined(&__ARM_FEATURE_TME)) {
	eval 'sub _TMFAILURE_REASON () {0x7fff;}' unless defined(&_TMFAILURE_REASON);
	eval 'sub _TMFAILURE_RTRY () {0x8000;}' unless defined(&_TMFAILURE_RTRY);
	eval 'sub _TMFAILURE_CNCL () {0x10000;}' unless defined(&_TMFAILURE_CNCL);
	eval 'sub _TMFAILURE_MEM () {0x20000;}' unless defined(&_TMFAILURE_MEM);
	eval 'sub _TMFAILURE_IMP () {0x40000;}' unless defined(&_TMFAILURE_IMP);
	eval 'sub _TMFAILURE_ERR () {0x80000;}' unless defined(&_TMFAILURE_ERR);
	eval 'sub _TMFAILURE_SIZE () {0x100000;}' unless defined(&_TMFAILURE_SIZE);
	eval 'sub _TMFAILURE_NEST () {0x200000;}' unless defined(&_TMFAILURE_NEST);
	eval 'sub _TMFAILURE_DBG () {0x400000;}' unless defined(&_TMFAILURE_DBG);
	eval 'sub _TMFAILURE_INT () {0x800000;}' unless defined(&_TMFAILURE_INT);
	eval 'sub _TMFAILURE_TRIVIAL () {0x1000000;}' unless defined(&_TMFAILURE_TRIVIAL);
	eval 'sub __attribute__ () {
	    eval q((( &__always_inline__))  &__tstart ( &void) {  &__builtin_aarch64_tstart (); });
	}' unless defined(&__attribute__);
	eval 'sub __attribute__ () {
	    eval q((( &__always_inline__))  &__tcommit ( &void) {  &__builtin_aarch64_tcommit (); });
	}' unless defined(&__attribute__);
	eval 'sub __attribute__ () {
	    eval q((( &__always_inline__))  &__tcancel ( &const  &uint64_t  &__reason) {  &__builtin_aarch64_tcancel ( &__reason); });
	}' unless defined(&__attribute__);
	eval 'sub __attribute__ () {
	    eval q((( &__always_inline__))  &__ttest ( &void) {  &__builtin_aarch64_ttest (); });
	}' unless defined(&__attribute__);
    }
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rndr ( &uint64_t * &__res) {  &__builtin_aarch64_rndr ( &__res); });
    }' unless defined(&__attribute__);
    eval 'sub __attribute__ () {
        eval q((( &__always_inline__))  &__rndrrs ( &uint64_t * &__res) {  &__builtin_aarch64_rndrrs ( &__res); });
    }' unless defined(&__attribute__);
    eval 'sub __arm_mte_create_random_tag {
        my($__ptr, $__u64_mask) = @_;
	    eval q( &__builtin_aarch64_memtag_irg($__ptr, $__u64_mask));
    }' unless defined(&__arm_mte_create_random_tag);
    eval 'sub __arm_mte_exclude_tag {
        my($__ptr, $__u64_excluded) = @_;
	    eval q( &__builtin_aarch64_memtag_gmi($__ptr, $__u64_excluded));
    }' unless defined(&__arm_mte_exclude_tag);
    eval 'sub __arm_mte_ptrdiff {
        my($__ptr_a, $__ptr_b) = @_;
	    eval q( &__builtin_aarch64_memtag_subp($__ptr_a, $__ptr_b));
    }' unless defined(&__arm_mte_ptrdiff);
    eval 'sub __arm_mte_increment_tag {
        my($__ptr, $__u_offset) = @_;
	    eval q( &__builtin_aarch64_memtag_inc_tag($__ptr, $__u_offset));
    }' unless defined(&__arm_mte_increment_tag);
    eval 'sub __arm_mte_set_tag {
        my($__tagged_address) = @_;
	    eval q( &__builtin_aarch64_memtag_set_tag($__tagged_address));
    }' unless defined(&__arm_mte_set_tag);
    eval 'sub __arm_mte_get_tag {
        my($__address) = @_;
	    eval q( &__builtin_aarch64_memtag_get_tag($__address));
    }' unless defined(&__arm_mte_get_tag);
    if(defined(&__cplusplus)) {
    }
}
1;
