require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_ALTIVEC_H)) {
    eval 'sub _ALTIVEC_H () {1;}' unless defined(&_ALTIVEC_H);
    eval 'sub __VEC__ () {10206;}' unless defined(&__VEC__);
    unless(defined(&__ALTIVEC__)) {
	eval 'sub __ALTIVEC__ () {1;}' unless defined(&__ALTIVEC__);
    }
    eval 'sub __vector () { &__attribute__(( &vector_size(16)));}' unless defined(&__vector);
    eval 'sub vector () { &__vector;}' unless defined(&vector);
    eval 'sub bool () {\'signed\';}' unless defined(&bool);
    eval 'sub pixel () {\'unsigned short\';}' unless defined(&pixel);
    eval 'sub __pixel () {\'unsigned short\';}' unless defined(&__pixel);
    eval 'sub __CR6_EQ () {0;}' unless defined(&__CR6_EQ);
    eval 'sub __CR6_EQ_REV () {1;}' unless defined(&__CR6_EQ_REV);
    eval 'sub __CR6_LT () {2;}' unless defined(&__CR6_LT);
    eval 'sub __CR6_LT_REV () {3;}' unless defined(&__CR6_LT_REV);
    eval 'sub __bin_args_eq {
        my($xtype, $x, $ytype, $y) = @_;
	    eval q(( &__builtin_types_compatible_p ($xtype,  &typeof ($x))  &&  &__builtin_types_compatible_p ($ytype,  &typeof ($y))));
    }' unless defined(&__bin_args_eq);
    eval 'sub __un_args_eq {
        my($xtype, $x) = @_;
	    eval q( &__builtin_types_compatible_p ($xtype,  &typeof ($x)));
    }' unless defined(&__un_args_eq);
    eval 'sub __tern_args_eq {
        my($xtype, $x, $ytype, $y, $ztype, $z) = @_;
	    eval q(( &__builtin_types_compatible_p ($xtype,  &typeof ($x))  &&  &__builtin_types_compatible_p ($ytype,  &typeof ($y))  &&  &__builtin_types_compatible_p ($ztype,  &typeof ($z))));
    }' unless defined(&__tern_args_eq);
    eval 'sub __ch {
        my($x, $y, $z) = @_;
	    eval q( &__builtin_choose_expr ($x, $y, $z));
    }' unless defined(&__ch);
    eval 'sub vec_vaddcuw () { &vec_addc;}' unless defined(&vec_vaddcuw);
    eval 'sub vec_vand () { &vec_and;}' unless defined(&vec_vand);
    eval 'sub vec_vandc () { &vec_andc;}' unless defined(&vec_vandc);
    eval 'sub vec_vrfip () { &vec_ceil;}' unless defined(&vec_vrfip);
    eval 'sub vec_vcmpbfp () { &vec_cmpb;}' unless defined(&vec_vcmpbfp);
    eval 'sub vec_vcmpgefp () { &vec_cmpge;}' unless defined(&vec_vcmpgefp);
    eval 'sub vec_vctsxs () { &vec_cts;}' unless defined(&vec_vctsxs);
    eval 'sub vec_vctuxs () { &vec_ctu;}' unless defined(&vec_vctuxs);
    eval 'sub vec_vexptefp () { &vec_expte;}' unless defined(&vec_vexptefp);
    eval 'sub vec_vrfim () { &vec_floor;}' unless defined(&vec_vrfim);
    eval 'sub vec_lvx () { &vec_ld;}' unless defined(&vec_lvx);
    eval 'sub vec_lvxl () { &vec_ldl;}' unless defined(&vec_lvxl);
    eval 'sub vec_vlogefp () { &vec_loge;}' unless defined(&vec_vlogefp);
    eval 'sub vec_vmaddfp () { &vec_madd;}' unless defined(&vec_vmaddfp);
    eval 'sub vec_vmhaddshs () { &vec_madds;}' unless defined(&vec_vmhaddshs);
    eval 'sub vec_vmladduhm () { &vec_mladd;}' unless defined(&vec_vmladduhm);
    eval 'sub vec_vmhraddshs () { &vec_mradds;}' unless defined(&vec_vmhraddshs);
    eval 'sub vec_vnmsubfp () { &vec_nmsub;}' unless defined(&vec_vnmsubfp);
    eval 'sub vec_vnor () { &vec_nor;}' unless defined(&vec_vnor);
    eval 'sub vec_vor () { &vec_or;}' unless defined(&vec_vor);
    eval 'sub vec_vpkpx () { &vec_packpx;}' unless defined(&vec_vpkpx);
    eval 'sub vec_vperm () { &vec_perm;}' unless defined(&vec_vperm);
    eval 'sub vec_vrefp () { &vec_re;}' unless defined(&vec_vrefp);
    eval 'sub vec_vrfin () { &vec_round;}' unless defined(&vec_vrfin);
    eval 'sub vec_vrsqrtefp () { &vec_rsqrte;}' unless defined(&vec_vrsqrtefp);
    eval 'sub vec_vsel () { &vec_sel;}' unless defined(&vec_vsel);
    eval 'sub vec_vsldoi () { &vec_sld;}' unless defined(&vec_vsldoi);
    eval 'sub vec_vsl () { &vec_sll;}' unless defined(&vec_vsl);
    eval 'sub vec_vslo () { &vec_slo;}' unless defined(&vec_vslo);
    eval 'sub vec_vspltisb () { &vec_splat_s8;}' unless defined(&vec_vspltisb);
    eval 'sub vec_vspltish () { &vec_splat_s16;}' unless defined(&vec_vspltish);
    eval 'sub vec_vspltisw () { &vec_splat_s32;}' unless defined(&vec_vspltisw);
    eval 'sub vec_vsr () { &vec_srl;}' unless defined(&vec_vsr);
    eval 'sub vec_vsro () { &vec_sro;}' unless defined(&vec_vsro);
    eval 'sub vec_stvx () { &vec_st;}' unless defined(&vec_stvx);
    eval 'sub vec_stvxl () { &vec_stl;}' unless defined(&vec_stvxl);
    eval 'sub vec_vsubcuw () { &vec_subc;}' unless defined(&vec_vsubcuw);
    eval 'sub vec_vsum2sws () { &vec_sum2s;}' unless defined(&vec_vsum2sws);
    eval 'sub vec_vsumsws () { &vec_sums;}' unless defined(&vec_vsumsws);
    eval 'sub vec_vrfiz () { &vec_trunc;}' unless defined(&vec_vrfiz);
    eval 'sub vec_vxor () { &vec_xor;}' unless defined(&vec_vxor);
    if(defined(&__cplusplus)) {
	eval 'sub vec_step {
	    my($t) = @_;
    	    eval q( &__vec_step_help< &typeof($t)>:: &_S_elem);
	}' unless defined(&vec_step);
    } else {
	eval 'sub vec_abs {
	    my($a) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a)), (( &vector \'signed char\')  &__builtin_altivec_abs_v16qi (( &vector \'signed char\') ($a))),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a)), (( &vector \'signed short\')  &__builtin_altivec_abs_v8hi (( &vector \'signed short\') ($a))),  &__ch ( &__un_args_eq ( &vector \'signed int\', ($a)), (( &vector \'signed int\')  &__builtin_altivec_abs_v4si (( &vector \'signed int\') ($a))),  &__ch ( &__un_args_eq ( &vector \'float\', ($a)), (( &vector \'float\')  &__builtin_altivec_abs_v4sf (( &vector \'float\') ($a))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_abs);
	eval 'sub vec_abss {
	    my($a) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a)), (( &vector \'signed char\')  &__builtin_altivec_abss_v16qi (( &vector \'signed char\') ($a))),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a)), (( &vector \'signed short\')  &__builtin_altivec_abss_v8hi (( &vector \'signed short\') ($a))),  &__ch ( &__un_args_eq ( &vector \'signed int\', ($a)), (( &vector \'signed int\')  &__builtin_altivec_abss_v4si (( &vector \'signed int\') ($a))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_abss);
	eval 'sub vec_step {
	    my($t) = @_;
    	    eval q( &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'signed int\'), 4,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'unsigned int\'), 4,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'signed short\'), 8,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'unsigned short\'), 8,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'signed char\'), 16,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'unsigned char\'), 16,  &__ch ( &__builtin_types_compatible_p ( &typeof ($t),  &vector \'float\'), 4,  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_step);
	eval 'sub vec_vaddubm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vaddubm);
	eval 'sub vec_vadduhm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vadduhm);
	eval 'sub vec_vadduwm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vadduwm);
	eval 'sub vec_vaddfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vaddfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vaddfp);
	eval 'sub vec_add {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vaddfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_add);
	eval 'sub vec_addc {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vaddcuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_addc);
	eval 'sub vec_adds {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vaddsbs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vaddshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vaddsws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))));
	}' unless defined(&vec_adds);
	eval 'sub vec_vaddsws {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vaddsws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vaddsws);
	eval 'sub vec_vadduws {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vadduws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vadduws);
	eval 'sub vec_vaddshs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vaddshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vaddshs);
	eval 'sub vec_vadduhs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vadduhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vadduhs);
	eval 'sub vec_vaddsbs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vaddsbs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vaddsbs);
	eval 'sub vec_vaddubs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vaddubs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vaddubs);
	eval 'sub vec_and {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vand (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))))));
	}' unless defined(&vec_and);
	eval 'sub vec_andc {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vandc (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))))))))))))));
	}' unless defined(&vec_andc);
	eval 'sub vec_avg {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vavgub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vavgsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vavguh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vavgsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vavguw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vavgsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_avg);
	eval 'sub vec_vavgsw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vavgsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavgsw);
	eval 'sub vec_vavguw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vavguw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavguw);
	eval 'sub vec_vavgsh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vavgsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavgsh);
	eval 'sub vec_vavguh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vavguh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavguh);
	eval 'sub vec_vavgsb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vavgsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavgsb);
	eval 'sub vec_vavgub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vavgub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vavgub);
	eval 'sub vec_ceil {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrfip (($a1)));
	}' unless defined(&vec_ceil);
	eval 'sub vec_cmpb {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpbfp (($a1), ($a2)));
	}' unless defined(&vec_cmpb);
	eval 'sub vec_cmpeq {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpequb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpequb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpequh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpequh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpequw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpequw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpeqfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_cmpeq);
	eval 'sub vec_vcmpeqfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpeqfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpeqfp);
	eval 'sub vec_vcmpequw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpequw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpequw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vcmpequw);
	eval 'sub vec_vcmpequh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpequh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpequh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vcmpequh);
	eval 'sub vec_vcmpequb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpequb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpequb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vcmpequb);
	eval 'sub vec_cmpge {
	    my($a1, $a2) = @_;
    	    eval q(( &vector \'signed int\')  &__builtin_altivec_vcmpgefp (($a1), ($a2)));
	}' unless defined(&vec_cmpge);
	eval 'sub vec_cmpgt {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_cmpgt);
	eval 'sub vec_vcmpgtfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtfp);
	eval 'sub vec_vcmpgtsw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtsw);
	eval 'sub vec_vcmpgtuw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtuw);
	eval 'sub vec_vcmpgtsh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtsh);
	eval 'sub vec_vcmpgtuh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtuh);
	eval 'sub vec_vcmpgtsb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtsb);
	eval 'sub vec_vcmpgtub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vcmpgtub);
	eval 'sub vec_cmple {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgefp (($a2), ($a1)));
	}' unless defined(&vec_cmple);
	eval 'sub vec_cmplt {
	    my($a2, $a1) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vcmpgtsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vcmpgtsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vcmpgtfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_cmplt);
	eval 'sub vec_ctf {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1), \'int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfux (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1), \'int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfsx (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1), \'unsigned int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfux (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1), \'unsigned int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfsx (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_ctf);
	eval 'sub vec_vcfsx {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1), \'int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfsx (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1), \'unsigned int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfsx (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vcfsx);
	eval 'sub vec_vcfux {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1), \'int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfux (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1), \'unsigned int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vcfux (( &vector \'signed int\') ($a1), ( &const \'char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vcfux);
	eval 'sub vec_cts {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vctsxs (($a1), ($a2)));
	}' unless defined(&vec_cts);
	eval 'sub vec_ctu {
	    my($a1, $a2) = @_;
    	    eval q(( &vector \'unsigned int\')  &__builtin_altivec_vctuxs (($a1), ($a2)));
	}' unless defined(&vec_ctu);
	eval 'sub vec_dss {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_dss (($a1)));
	}' unless defined(&vec_dss);
	eval 'sub vec_dssall () {
	    eval q( &__builtin_altivec_dssall ());
	}' unless defined(&vec_dssall);
	eval 'sub vec_dst {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'float\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned char\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed char\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned short\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed short\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned int\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed int\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned long\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed long\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'float\', *($a1)),  &__builtin_altivec_dst (( &void *) ($a1), ($a2), ($a3)),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_dst);
	eval 'sub vec_dstst {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'float\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned char\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed char\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned short\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed short\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned int\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed int\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned long\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed long\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'float\', *($a1)),  &__builtin_altivec_dstst (( &void *) ($a1), ($a2), ($a3)),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_dstst);
	eval 'sub vec_dststt {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'float\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned char\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed char\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned short\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed short\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned int\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed int\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned long\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed long\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'float\', *($a1)),  &__builtin_altivec_dststt (( &void *) ($a1), ($a2), ($a3)),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_dststt);
	eval 'sub vec_dstt {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq ( &vector \'float\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned char\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed char\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned short\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed short\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned int\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed int\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'unsigned long\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'signed long\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__ch ( &__un_args_eq (\'float\', *($a1)),  &__builtin_altivec_dstt (( &void *) ($a1), ($a2), ($a3)),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_dstt);
	eval 'sub vec_expte {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vexptefp (($a1)));
	}' unless defined(&vec_expte);
	eval 'sub vec_floor {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrfim ($a1));
	}' unless defined(&vec_floor);
	eval 'sub vec_ld {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned long\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed long\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvx (($a), ($b))),  &__ch ( &__un_args_eq (\'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvx (($a), ($b))),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_ld);
	eval 'sub vec_lde {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvebx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvebx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvehx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvehx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned long\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed long\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvewx (($a), ($b))),  &__altivec_link_error_invalid_argument ()))))))))));
	}' unless defined(&vec_lde);
	eval 'sub vec_lvewx {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned long\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed long\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvewx (($a), ($b))),  &__ch ( &__un_args_eq (\'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvewx (($a), ($b))),  &__altivec_link_error_invalid_argument ()))))));
	}' unless defined(&vec_lvewx);
	eval 'sub vec_lvehx {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvehx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvehx (($a), ($b))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_lvehx);
	eval 'sub vec_lvebx {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvebx (($a), ($b))),  &__ch ( &__un_args_eq (\'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvebx (($a), ($b))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_lvebx);
	eval 'sub vec_ldl {
	    my($a, $b) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned char\', *($b)), (( &vector \'unsigned char\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'signed char\', *($b)), (( &vector \'signed char\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned short\', *($b)), (( &vector \'unsigned short\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'signed short\', *($b)), (( &vector \'signed short\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned int\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'unsigned long\', *($b)), (( &vector \'unsigned int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'signed int\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'signed long\', *($b)), (( &vector \'signed int\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq ( &vector \'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvxl (($a), ($b))),  &__ch ( &__un_args_eq (\'float\', *($b)), (( &vector \'float\')  &__builtin_altivec_lvxl (($a), ($b))),  &__altivec_link_error_invalid_argument ())))))))))))))))));
	}' unless defined(&vec_ldl);
	eval 'sub vec_loge {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vlogefp (($a1)));
	}' unless defined(&vec_loge);
	eval 'sub vec_lvsl {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned char\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed char\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned short\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed short\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned int\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed int\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned long\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed long\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'float\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsl (($a1), ( &void *) ($a2))),  &__altivec_link_error_invalid_argument ()))))))))));
	}' unless defined(&vec_lvsl);
	eval 'sub vec_lvsr {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__un_args_eq (\'unsigned char\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed char\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned short\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed short\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned int\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed int\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'unsigned long\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'signed long\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__ch ( &__un_args_eq (\'float\', *($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_lvsr (($a1), ( &void *) ($a2))),  &__altivec_link_error_invalid_argument ()))))))))));
	}' unless defined(&vec_lvsr);
	eval 'sub vec_madd {
	    my($a1, $a2, $a3) = @_;
    	    eval q(( &__builtin_altivec_vmaddfp (($a1), ($a2), ($a3))));
	}' unless defined(&vec_madd);
	eval 'sub vec_madds {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__builtin_altivec_vmhaddshs (($a1), ($a2), ($a3)));
	}' unless defined(&vec_madds);
	eval 'sub vec_max {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmaxsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmaxsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmaxsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmaxfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_max);
	eval 'sub vec_vmaxfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmaxfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmaxfp);
	eval 'sub vec_vmaxsw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmaxsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmaxsw);
	eval 'sub vec_vmaxuw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmaxuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vmaxuw);
	eval 'sub vec_vmaxsh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmaxsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmaxsh);
	eval 'sub vec_vmaxuh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmaxuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vmaxuh);
	eval 'sub vec_vmaxsb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmaxsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmaxsb);
	eval 'sub vec_vmaxub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmaxub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vmaxub);
	eval 'sub vec_mergeh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmrghb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmrghb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmrghh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmrghh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_mergeh);
	eval 'sub vec_vmrghw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmrghw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vmrghw);
	eval 'sub vec_vmrghh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmrghh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmrghh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vmrghh);
	eval 'sub vec_vmrghb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmrghb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmrghb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vmrghb);
	eval 'sub vec_mergel {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmrglb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmrglb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmrglh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmrglh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_mergel);
	eval 'sub vec_vmrglw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmrglw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vmrglw);
	eval 'sub vec_vmrglh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmrglh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmrglh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vmrglh);
	eval 'sub vec_vmrglb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vmrglb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vmrglb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vmrglb);
	eval 'sub vec_mfvscr () {
	    eval q(((( &vector \'unsigned short\')  &__builtin_altivec_mfvscr ())));
	}' unless defined(&vec_mfvscr);
	eval 'sub vec_min {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vminsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vminsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vminsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vminfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_min);
	eval 'sub vec_vminfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vminfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vminfp);
	eval 'sub vec_vminsw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vminsw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vminsw);
	eval 'sub vec_vminuw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vminuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vminuw);
	eval 'sub vec_vminsh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vminsh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vminsh);
	eval 'sub vec_vminuh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vminuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vminuh);
	eval 'sub vec_vminsb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vminsb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vminsb);
	eval 'sub vec_vminub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vminub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vminub);
	eval 'sub vec_mladd {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed short\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vmladduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned short\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vmladduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed short\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vmladduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned short\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vmladduhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a3))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_mladd);
	eval 'sub vec_mradds {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__builtin_altivec_vmhraddshs (($a1), ($a2), ($a3)));
	}' unless defined(&vec_mradds);
	eval 'sub vec_msum {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsummbm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsumshm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_msum);
	eval 'sub vec_vmsumshm {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsumshm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsumshm);
	eval 'sub vec_vmsumuhm {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsumuhm);
	eval 'sub vec_vmsummbm {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsummbm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsummbm);
	eval 'sub vec_vmsumubm {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumubm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsumubm);
	eval 'sub vec_msums {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsumshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_msums);
	eval 'sub vec_vmsumshs {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vmsumshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsumshs);
	eval 'sub vec_vmsumuhs {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vmsumuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmsumuhs);
	eval 'sub vec_mtvscr {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed int\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__ch ( &__un_args_eq ( &vector \'signed char\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__ch ( &__un_args_eq ( &vector \'unsigned char\', ($a1)),  &__builtin_altivec_mtvscr (( &vector \'signed int\') ($a1)),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_mtvscr);
	eval 'sub vec_mule {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmuleub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmulesb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmuleuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmulesh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_mule);
	eval 'sub vec_vmulesh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmulesh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmulesh);
	eval 'sub vec_vmuleuh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmuleuh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmuleuh);
	eval 'sub vec_vmulesb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmulesb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmulesb);
	eval 'sub vec_vmuleub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmuleub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmuleub);
	eval 'sub vec_mulo {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmuloub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmulosb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmulouh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmulosh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_mulo);
	eval 'sub vec_vmulosh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vmulosh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmulosh);
	eval 'sub vec_vmulouh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vmulouh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmulouh);
	eval 'sub vec_vmulosb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vmulosb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmulosb);
	eval 'sub vec_vmuloub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vmuloub (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vmuloub);
	eval 'sub vec_nmsub {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'float\', (($a1)),  &vector \'float\', (($a2)) ,  &vector \'float\', (($a3))), (( &vector \'float\')  &__builtin_altivec_vnmsubfp (( &vector \'float\') (($a1)), ( &vector \'float\') (($a2)), ( &vector \'float\')(($a3)))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_nmsub);
	eval 'sub vec_nor {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vnor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_nor);
	eval 'sub vec_or {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vor (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))))));
	}' unless defined(&vec_or);
	eval 'sub vec_pack {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vpkuhum (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkuhum (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vpkuwum (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkuwum (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_pack);
	eval 'sub vec_vpkuwum {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vpkuwum (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkuwum (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vpkuwum);
	eval 'sub vec_vpkuhum {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vpkuhum (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkuhum (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vpkuhum);
	eval 'sub vec_packpx {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), ( &vector \'unsigned short\')  &__builtin_altivec_vpkpx (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_packpx);
	eval 'sub vec_packs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkuhus (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vpkshss (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkuwus (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vpkswss (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_packs);
	eval 'sub vec_vpkswss {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vpkswss (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkswss);
	eval 'sub vec_vpkuwus {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkuwus (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkuwus);
	eval 'sub vec_vpkshss {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vpkshss (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkshss);
	eval 'sub vec_vpkuhus {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkuhus (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkuhus);
	eval 'sub vec_packsu {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkuhus (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkshus (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkuwus (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkswus (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_packsu);
	eval 'sub vec_vpkswus {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vpkswus (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkswus);
	eval 'sub vec_vpkshus {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vpkshus (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vpkshus);
	eval 'sub vec_perm {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'float\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'signed char\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'unsigned char\')  &__builtin_altivec_vperm_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed char\') ($a3))),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_perm);
	eval 'sub vec_re {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrefp (($a1)));
	}' unless defined(&vec_re);
	eval 'sub vec_rl {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vrlb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vrlb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vrlh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vrlh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vrlw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vrlw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_rl);
	eval 'sub vec_vrlw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vrlw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vrlw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vrlw);
	eval 'sub vec_vrlh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vrlh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vrlh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vrlh);
	eval 'sub vec_vrlb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vrlb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vrlb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vrlb);
	eval 'sub vec_round {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrfin (($a1)));
	}' unless defined(&vec_round);
	eval 'sub vec_rsqrte {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrsqrtefp (($a1)));
	}' unless defined(&vec_rsqrte);
	eval 'sub vec_sel {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'float\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'float\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2),  &vector \'signed int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2),  &vector \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'signed short\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2),  &vector \'unsigned short\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'signed short\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2),  &vector \'unsigned short\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2),  &vector \'signed char\', ($a3)), (( &vector \'signed char\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'signed char\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'signed char\', ($a3)), (( &vector \'unsigned char\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2),  &vector \'unsigned char\', ($a3)), (( &vector \'unsigned char\')  &__builtin_altivec_vsel_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a3))),  &__altivec_link_error_invalid_argument ())))))))))))))));
	}' unless defined(&vec_sel);
	eval 'sub vec_sl {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vslb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vslb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vslh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vslh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vslw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vslw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_sl);
	eval 'sub vec_vslw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vslw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vslw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vslw);
	eval 'sub vec_vslh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vslh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vslh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vslh);
	eval 'sub vec_vslb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vslb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vslb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vslb);
	eval 'sub vec_sld {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__ch ( &__tern_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2), \'int\', ($a3)), (( &vector \'float\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2), \'unsigned int\', ($a3)), (( &vector \'float\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2), \'int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2), \'unsigned int\', ($a3)), (( &vector \'signed int\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2), \'int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2), \'unsigned int\', ($a3)), (( &vector \'unsigned int\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2), \'int\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2), \'unsigned int\', ($a3)), (( &vector \'signed short\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2), \'int\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2), \'unsigned int\', ($a3)), (( &vector \'unsigned short\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2), \'int\', ($a3)), (( &vector \'signed char\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2), \'unsigned int\', ($a3)), (( &vector \'signed char\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2), \'int\', ($a3)), (( &vector \'unsigned char\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__ch ( &__tern_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2), \'unsigned int\', ($a3)), (( &vector \'unsigned char\')  &__builtin_altivec_vsldoi_4si (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2), ( &const \'char\') ($a3))),  &__altivec_link_error_invalid_argument ())))))))))))))));
	}' unless defined(&vec_sld);
	eval 'sub vec_sll {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsl (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))))))))));
	}' unless defined(&vec_sll);
	eval 'sub vec_slo {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vslo (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))))));
	}' unless defined(&vec_slo);
	eval 'sub vec_splat {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)), \'int\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)), \'int\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)), \'int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)), \'int\', (($a2))), (( &vector \'signed int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') ($a1), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') ($a1), ( &const \'char\') (($a2)))),  &__altivec_link_error_invalid_argument ())))))))))))))));
	}' unless defined(&vec_splat);
	eval 'sub vec_vspltw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)), \'int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)), \'int\', (($a2))), (( &vector \'signed int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') ($a1), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vspltw (( &vector \'signed int\') ($a1), ( &const \'char\') (($a2)))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_vspltw);
	eval 'sub vec_vsplth {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)), \'int\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vsplth (( &vector \'signed short\') (($a1)), ( &const \'char\') (($a2)))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vsplth);
	eval 'sub vec_vspltb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)), \'int\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)), \'int\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)), \'unsigned int\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vspltb (( &vector \'signed char\') (($a1)), ( &const \'char\') (($a2)))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vspltb);
	eval 'sub vec_splat_s8 {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vspltisb (($a1)));
	}' unless defined(&vec_splat_s8);
	eval 'sub vec_splat_s16 {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vspltish (($a1)));
	}' unless defined(&vec_splat_s16);
	eval 'sub vec_splat_s32 {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vspltisw (($a1)));
	}' unless defined(&vec_splat_s32);
	eval 'sub vec_splat_u8 {
	    my($a1) = @_;
    	    eval q((( &vector \'unsigned char\')  &__builtin_altivec_vspltisb (($a1))));
	}' unless defined(&vec_splat_u8);
	eval 'sub vec_splat_u16 {
	    my($a1) = @_;
    	    eval q((( &vector \'unsigned short\')  &__builtin_altivec_vspltish (($a1))));
	}' unless defined(&vec_splat_u16);
	eval 'sub vec_splat_u32 {
	    my($a1) = @_;
    	    eval q((( &vector \'unsigned int\')  &__builtin_altivec_vspltisw (($a1))));
	}' unless defined(&vec_splat_u32);
	eval 'sub vec_sr {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsrb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsrb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsrh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsrh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsrw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsrw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_sr);
	eval 'sub vec_vsrw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsrw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsrw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsrw);
	eval 'sub vec_vsrh {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsrh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsrh (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsrh);
	eval 'sub vec_vsrb {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsrb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsrb (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsrb);
	eval 'sub vec_sra {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsrab (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsrab (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsrah (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsrah (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsraw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsraw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))));
	}' unless defined(&vec_sra);
	eval 'sub vec_vsraw {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsraw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsraw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsraw);
	eval 'sub vec_vsrah {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsrah (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsrah (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsrah);
	eval 'sub vec_vsrab {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsrab (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsrab (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_vsrab);
	eval 'sub vec_srl {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsr (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))))))))));
	}' unless defined(&vec_srl);
	eval 'sub vec_sro {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsro (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))))));
	}' unless defined(&vec_sro);
	eval 'sub vec_st {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__builtin_altivec_stvx (( &vector \'signed int\') ($a1), ($a2), ($a3)));
	}' unless defined(&vec_st);
	eval 'sub vec_stl {
	    my($a1, $a2, $a3) = @_;
    	    eval q( &__builtin_altivec_stvxl (( &vector \'signed int\') ($a1), ($a2), ($a3)));
	}' unless defined(&vec_stl);
	eval 'sub vec_ste {
	    my($a, $b, $c) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', ($a)),  &__builtin_altivec_stvebx (( &vector \'signed char\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed char\', ($a)),  &__builtin_altivec_stvebx (( &vector \'signed char\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a)),  &__builtin_altivec_stvehx (( &vector \'signed short\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a)),  &__builtin_altivec_stvehx (( &vector \'signed short\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'unsigned int\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed int\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'float\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__altivec_link_error_invalid_argument ()))))))));
	}' unless defined(&vec_ste);
	eval 'sub vec_stvewx {
	    my($a, $b, $c) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned int\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed int\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'float\', ($a)),  &__builtin_altivec_stvewx (( &vector \'signed int\') ($a), ($b), ($c)),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_stvewx);
	eval 'sub vec_stvehx {
	    my($a, $b, $c) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a)),  &__builtin_altivec_stvehx (( &vector \'signed short\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a)),  &__builtin_altivec_stvehx (( &vector \'signed short\') ($a), ($b), ($c)),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_stvehx);
	eval 'sub vec_stvebx {
	    my($a, $b, $c) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned char\', ($a)),  &__builtin_altivec_stvebx (( &vector \'signed char\') ($a), ($b), ($c)),  &__ch ( &__un_args_eq ( &vector \'signed char\', ($a)),  &__builtin_altivec_stvebx (( &vector \'signed char\') ($a), ($b), ($c)),  &__altivec_link_error_invalid_argument ())));
	}' unless defined(&vec_stvebx);
	eval 'sub vec_sub {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vsubfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_sub);
	eval 'sub vec_vsubfp {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)), (( &vector \'float\')  &__builtin_altivec_vsubfp (( &vector \'float\') ($a1), ( &vector \'float\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsubfp);
	eval 'sub vec_vsubuwm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuwm (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vsubuwm);
	eval 'sub vec_vsubuhm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhm (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vsubuhm);
	eval 'sub vec_vsububm {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububm (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ())))));
	}' unless defined(&vec_vsububm);
	eval 'sub vec_subc {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubcuw (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_subc);
	eval 'sub vec_subs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsubsbs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsubshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsubsws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ())))))))))))));
	}' unless defined(&vec_subs);
	eval 'sub vec_vsubsws {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsubsws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsubsws);
	eval 'sub vec_vsubuws {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsubuws (( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vsubuws);
	eval 'sub vec_vsubshs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'signed short\')  &__builtin_altivec_vsubshs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsubshs);
	eval 'sub vec_vsubuhs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)), (( &vector \'unsigned short\')  &__builtin_altivec_vsubuhs (( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vsubuhs);
	eval 'sub vec_vsubsbs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'signed char\')  &__builtin_altivec_vsubsbs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsubsbs);
	eval 'sub vec_vsububs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)), (( &vector \'unsigned char\')  &__builtin_altivec_vsububs (( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_vsububs);
	eval 'sub vec_sum4s {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsum4ubs (( &vector \'signed char\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsum4sbs (( &vector \'signed char\') ($a1), ( &vector \'signed int\') ($a2))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsum4shs (( &vector \'signed short\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_sum4s);
	eval 'sub vec_vsum4shs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsum4shs (( &vector \'signed short\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsum4shs);
	eval 'sub vec_vsum4sbs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed int\', ($a2)), (( &vector \'signed int\')  &__builtin_altivec_vsum4sbs (( &vector \'signed char\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsum4sbs);
	eval 'sub vec_vsum4ubs {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned int\', ($a2)), (( &vector \'unsigned int\')  &__builtin_altivec_vsum4ubs (( &vector \'signed char\') ($a1), ( &vector \'signed int\') ($a2))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vsum4ubs);
	eval 'sub vec_sum2s {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vsum2sws (($a1), ($a2)));
	}' unless defined(&vec_sum2s);
	eval 'sub vec_sums {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vsumsws (($a1), ($a2)));
	}' unless defined(&vec_sums);
	eval 'sub vec_trunc {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vrfiz (($a1)));
	}' unless defined(&vec_trunc);
	eval 'sub vec_unpackh {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a1)), (( &vector \'signed short\')  &__builtin_altivec_vupkhsb (( &vector \'signed char\') ($a1))),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a1)), (( &vector \'unsigned int\')  &__builtin_altivec_vupkhpx (( &vector \'signed short\') ($a1))),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a1)), (( &vector \'signed int\')  &__builtin_altivec_vupkhsh (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_unpackh);
	eval 'sub vec_vupkhsh {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed short\', ($a1)), (( &vector \'signed int\')  &__builtin_altivec_vupkhsh (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupkhsh);
	eval 'sub vec_vupkhpx {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a1)), (( &vector \'unsigned int\')  &__builtin_altivec_vupkhpx (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupkhpx);
	eval 'sub vec_vupkhsb {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a1)), (( &vector \'signed short\')  &__builtin_altivec_vupkhsb (( &vector \'signed char\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupkhsb);
	eval 'sub vec_unpackl {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a1)), (( &vector \'signed short\')  &__builtin_altivec_vupklsb (( &vector \'signed char\') ($a1))),  &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a1)), (( &vector \'unsigned int\')  &__builtin_altivec_vupklpx (( &vector \'signed short\') ($a1))),  &__ch ( &__un_args_eq ( &vector \'signed short\', ($a1)), (( &vector \'signed int\')  &__builtin_altivec_vupklsh (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()))));
	}' unless defined(&vec_unpackl);
	eval 'sub vec_vupklsh {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed short\', ($a1)), (( &vector \'signed int\')  &__builtin_altivec_vupklsh (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupklsh);
	eval 'sub vec_vupklpx {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'unsigned short\', ($a1)), (( &vector \'unsigned int\')  &__builtin_altivec_vupklpx (( &vector \'signed short\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupklpx);
	eval 'sub vec_vupklsb {
	    my($a1) = @_;
    	    eval q( &__ch ( &__un_args_eq ( &vector \'signed char\', ($a1)), (( &vector \'signed short\')  &__builtin_altivec_vupklsb (( &vector \'signed char\') ($a1))),  &__altivec_link_error_invalid_argument ()));
	}' unless defined(&vec_vupklsb);
	eval 'sub vec_xor {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)),  &vector \'float\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)),  &vector \'unsigned int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)),  &vector \'float\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)),  &vector \'float\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'float\', (($a1)),  &vector \'signed int\', (($a2))), (( &vector \'float\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)),  &vector \'signed int\', (($a2))), (( &vector \'signed int\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed int\', (($a1)),  &vector \'unsigned int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)),  &vector \'signed int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', (($a1)),  &vector \'unsigned int\', (($a2))), (( &vector \'unsigned int\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)),  &vector \'unsigned short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)),  &vector \'unsigned short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)),  &vector \'signed short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)),  &vector \'unsigned short\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)),  &vector \'signed short\', (($a2))), (( &vector \'signed short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed short\', (($a1)),  &vector \'unsigned short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)),  &vector \'signed short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', (($a1)),  &vector \'unsigned short\', (($a2))), (( &vector \'unsigned short\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)),  &vector \'unsigned char\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)),  &vector \'unsigned char\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)),  &vector \'signed char\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)),  &vector \'unsigned char\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'signed char\', (($a1)),  &vector \'unsigned char\', (($a2))), (( &vector \'signed char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', (($a1)),  &vector \'signed char\', (($a2))), (( &vector \'unsigned char\')  &__builtin_altivec_vxor (( &vector \'signed int\') (($a1)), ( &vector \'signed int\') (($a2)))),  &__altivec_link_error_invalid_argument ()))))))))))))))))))))))));
	}' unless defined(&vec_xor);
	eval 'sub vec_all_eq {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpeqfp_p ( &__CR6_LT, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_eq);
	eval 'sub vec_all_ge {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgefp_p ( &__CR6_LT, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_ge);
	eval 'sub vec_all_gt {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_LT, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_LT, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_LT, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgtfp_p ( &__CR6_LT, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_gt);
	eval 'sub vec_all_in {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpbfp_p ( &__CR6_EQ, ($a1), ($a2)));
	}' unless defined(&vec_all_in);
	eval 'sub vec_all_le {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgefp_p ( &__CR6_LT, ( &vector \'float\') ($a2), ( &vector \'float\') ($a1)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_le);
	eval 'sub vec_all_lt {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_LT, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_LT, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_LT, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgtfp_p ( &__CR6_LT, ( &vector \'float\') ($a2), ( &vector \'float\') ($a1)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_lt);
	eval 'sub vec_all_nan {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vcmpeqfp_p ( &__CR6_EQ, ($a1), ($a1)));
	}' unless defined(&vec_all_nan);
	eval 'sub vec_all_ne {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpeqfp_p ( &__CR6_EQ, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_all_ne);
	eval 'sub vec_all_nge {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgefp_p ( &__CR6_EQ, ($a1), ($a2)));
	}' unless defined(&vec_all_nge);
	eval 'sub vec_all_ngt {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgtfp_p ( &__CR6_EQ, ($a1), ($a2)));
	}' unless defined(&vec_all_ngt);
	eval 'sub vec_all_nle {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgefp_p ( &__CR6_EQ, ($a2), ($a1)));
	}' unless defined(&vec_all_nle);
	eval 'sub vec_all_nlt {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgtfp_p ( &__CR6_EQ, ($a2), ($a1)));
	}' unless defined(&vec_all_nlt);
	eval 'sub vec_all_numeric {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vcmpeqfp_p ( &__CR6_LT, ($a1), ($a1)));
	}' unless defined(&vec_all_numeric);
	eval 'sub vec_any_eq {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpeqfp_p ( &__CR6_EQ_REV, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_eq);
	eval 'sub vec_any_ge {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgefp_p ( &__CR6_EQ_REV, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_ge);
	eval 'sub vec_any_gt {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgtfp_p ( &__CR6_EQ_REV, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_gt);
	eval 'sub vec_any_le {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgefp_p ( &__CR6_EQ_REV, ( &vector \'float\') ($a2), ( &vector \'float\') ($a1)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_le);
	eval 'sub vec_any_lt {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpgtub_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpgtsb_p ( &__CR6_EQ_REV, ( &vector \'signed char\') ($a2), ( &vector \'signed char\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpgtuh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpgtsh_p ( &__CR6_EQ_REV, ( &vector \'signed short\') ($a2), ( &vector \'signed short\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpgtuw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpgtsw_p ( &__CR6_EQ_REV, ( &vector \'signed int\') ($a2), ( &vector \'signed int\') ($a1)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpgtfp_p ( &__CR6_EQ_REV, ( &vector \'float\') ($a2), ( &vector \'float\') ($a1)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_lt);
	eval 'sub vec_any_nan {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vcmpeqfp_p ( &__CR6_LT_REV, $a1, $a1));
	}' unless defined(&vec_any_nan);
	eval 'sub vec_any_ne {
	    my($a1, $a2) = @_;
    	    eval q( &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'signed char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned char\', ($a1),  &vector \'unsigned char\', ($a2)),  &__builtin_altivec_vcmpequb_p ( &__CR6_LT_REV, ( &vector \'signed char\') ($a1), ( &vector \'signed char\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'signed short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned short\', ($a1),  &vector \'unsigned short\', ($a2)),  &__builtin_altivec_vcmpequh_p ( &__CR6_LT_REV, ( &vector \'signed short\') ($a1), ( &vector \'signed short\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'signed int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'signed int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'unsigned int\', ($a1),  &vector \'unsigned int\', ($a2)),  &__builtin_altivec_vcmpequw_p ( &__CR6_LT_REV, ( &vector \'signed int\') ($a1), ( &vector \'signed int\') ($a2)),  &__ch ( &__bin_args_eq ( &vector \'float\', ($a1),  &vector \'float\', ($a2)),  &__builtin_altivec_vcmpeqfp_p ( &__CR6_LT_REV, ( &vector \'float\') ($a1), ( &vector \'float\') ($a2)),  &__altivec_link_error_invalid_argument ()))))))))))))));
	}' unless defined(&vec_any_ne);
	eval 'sub vec_any_nge {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgefp_p ( &__CR6_LT_REV, ($a1), ($a2)));
	}' unless defined(&vec_any_nge);
	eval 'sub vec_any_ngt {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgtfp_p ( &__CR6_LT_REV, ($a1), ($a2)));
	}' unless defined(&vec_any_ngt);
	eval 'sub vec_any_nle {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgefp_p ( &__CR6_LT_REV, ($a2), ($a1)));
	}' unless defined(&vec_any_nle);
	eval 'sub vec_any_nlt {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpgtfp_p ( &__CR6_LT_REV, ($a2), ($a1)));
	}' unless defined(&vec_any_nlt);
	eval 'sub vec_any_numeric {
	    my($a1) = @_;
    	    eval q( &__builtin_altivec_vcmpeqfp_p ( &__CR6_EQ_REV, ($a1), ($a1)));
	}' unless defined(&vec_any_numeric);
	eval 'sub vec_any_out {
	    my($a1, $a2) = @_;
    	    eval q( &__builtin_altivec_vcmpbfp_p ( &__CR6_EQ_REV, ($a1), ($a2)));
	}' unless defined(&vec_any_out);
    }
}
1;
