require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_MMINTRIN_H_INCLUDED)) {
    eval 'sub _MMINTRIN_H_INCLUDED () {1;}' unless defined(&_MMINTRIN_H_INCLUDED);
    unless(defined(&__MMX__)) {
	die("MMX instruction set not enabled");
    } else {
	eval 'sub _m_empty {
	    local($void) = @_;
    	    eval q({  &_mm_empty (); });
	}' unless defined(&_m_empty);
	eval 'sub _m_from_int {
	    local($__i) = @_;
    	    eval q({  &_mm_cvtsi32_si64 ($__i); });
	}' unless defined(&_m_from_int);
	if(defined(&__x86_64__)) {
	}
	eval 'sub _m_to_int {
	    local($__i) = @_;
    	    eval q({  &_mm_cvtsi64_si32 ($__i); });
	}' unless defined(&_m_to_int);
	if(defined(&__x86_64__)) {
	}
	eval 'sub _m_packsswb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_packs_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_packsswb);
	eval 'sub _m_packssdw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_packs_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_packssdw);
	eval 'sub _m_packuswb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_packs_pu16 ($__m1, $__m2); });
	}' unless defined(&_m_packuswb);
	eval 'sub _m_punpckhbw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpackhi_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_punpckhbw);
	eval 'sub _m_punpckhwd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpackhi_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_punpckhwd);
	eval 'sub _m_punpckhdq {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpackhi_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_punpckhdq);
	eval 'sub _m_punpcklbw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpacklo_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_punpcklbw);
	eval 'sub _m_punpcklwd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpacklo_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_punpcklwd);
	eval 'sub _m_punpckldq {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_unpacklo_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_punpckldq);
	eval 'sub _m_paddb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_add_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_paddb);
	eval 'sub _m_paddw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_add_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_paddw);
	eval 'sub _m_paddd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_add_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_paddd);
	eval 'sub _m_paddsb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_adds_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_paddsb);
	eval 'sub _m_paddsw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_adds_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_paddsw);
	eval 'sub _m_paddusb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_adds_pu8 ($__m1, $__m2); });
	}' unless defined(&_m_paddusb);
	eval 'sub _m_paddusw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_adds_pu16 ($__m1, $__m2); });
	}' unless defined(&_m_paddusw);
	eval 'sub _m_psubb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_sub_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_psubb);
	eval 'sub _m_psubw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_sub_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_psubw);
	eval 'sub _m_psubd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_sub_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_psubd);
	eval 'sub _m_psubsb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_subs_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_psubsb);
	eval 'sub _m_psubsw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_subs_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_psubsw);
	eval 'sub _m_psubusb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_subs_pu8 ($__m1, $__m2); });
	}' unless defined(&_m_psubusb);
	eval 'sub _m_psubusw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_subs_pu16 ($__m1, $__m2); });
	}' unless defined(&_m_psubusw);
	eval 'sub _m_pmaddwd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_madd_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_pmaddwd);
	eval 'sub _m_pmulhw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_mulhi_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_pmulhw);
	eval 'sub _m_pmullw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_mullo_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_pmullw);
	eval 'sub _m_psllw {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_sll_pi16 ($__m, $__count); });
	}' unless defined(&_m_psllw);
	eval 'sub _mm_slli_pi16 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psllw (( &__v4hi)$__m, $__count); });
	}' unless defined(&_mm_slli_pi16);
	eval 'sub _m_psllwi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_slli_pi16 ($__m, $__count); });
	}' unless defined(&_m_psllwi);
	eval 'sub _m_pslld {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_sll_pi32 ($__m, $__count); });
	}' unless defined(&_m_pslld);
	eval 'sub _mm_slli_pi32 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_pslld (( &__v2si)$__m, $__count); });
	}' unless defined(&_mm_slli_pi32);
	eval 'sub _m_pslldi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_slli_pi32 ($__m, $__count); });
	}' unless defined(&_m_pslldi);
	eval 'sub _m_psllq {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_sll_si64 ($__m, $__count); });
	}' unless defined(&_m_psllq);
	eval 'sub _mm_slli_si64 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psllq ($__m, $__count); });
	}' unless defined(&_mm_slli_si64);
	eval 'sub _m_psllqi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_slli_si64 ($__m, $__count); });
	}' unless defined(&_m_psllqi);
	eval 'sub _m_psraw {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_sra_pi16 ($__m, $__count); });
	}' unless defined(&_m_psraw);
	eval 'sub _mm_srai_pi16 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psraw (( &__v4hi)$__m, $__count); });
	}' unless defined(&_mm_srai_pi16);
	eval 'sub _m_psrawi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srai_pi16 ($__m, $__count); });
	}' unless defined(&_m_psrawi);
	eval 'sub _m_psrad {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_sra_pi32 ($__m, $__count); });
	}' unless defined(&_m_psrad);
	eval 'sub _mm_srai_pi32 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psrad (( &__v2si)$__m, $__count); });
	}' unless defined(&_mm_srai_pi32);
	eval 'sub _m_psradi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srai_pi32 ($__m, $__count); });
	}' unless defined(&_m_psradi);
	eval 'sub _m_psrlw {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srl_pi16 ($__m, $__count); });
	}' unless defined(&_m_psrlw);
	eval 'sub _mm_srli_pi16 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psrlw (( &__v4hi)$__m, $__count); });
	}' unless defined(&_mm_srli_pi16);
	eval 'sub _m_psrlwi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srli_pi16 ($__m, $__count); });
	}' unless defined(&_m_psrlwi);
	eval 'sub _m_psrld {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srl_pi32 ($__m, $__count); });
	}' unless defined(&_m_psrld);
	eval 'sub _mm_srli_pi32 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psrld (( &__v2si)$__m, $__count); });
	}' unless defined(&_mm_srli_pi32);
	eval 'sub _m_psrldi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srli_pi32 ($__m, $__count); });
	}' unless defined(&_m_psrldi);
	eval 'sub _m_psrlq {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srl_si64 ($__m, $__count); });
	}' unless defined(&_m_psrlq);
	eval 'sub _mm_srli_si64 {
	    local($__m,$__count) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_psrlq ($__m, $__count); });
	}' unless defined(&_mm_srli_si64);
	eval 'sub _m_psrlqi {
	    local($__m,$__count) = @_;
    	    eval q({  &_mm_srli_si64 ($__m, $__count); });
	}' unless defined(&_m_psrlqi);
	eval 'sub _m_pand {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_and_si64 ($__m1, $__m2); });
	}' unless defined(&_m_pand);
	eval 'sub _m_pandn {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_andnot_si64 ($__m1, $__m2); });
	}' unless defined(&_m_pandn);
	eval 'sub _m_por {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_or_si64 ($__m1, $__m2); });
	}' unless defined(&_m_por);
	eval 'sub _m_pxor {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_xor_si64 ($__m1, $__m2); });
	}' unless defined(&_m_pxor);
	eval 'sub _m_pcmpeqb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpeq_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpeqb);
	eval 'sub _mm_cmpgt_pi8 {
	    local($__m1,$__m2) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_pcmpgtb (( &__v8qi)$__m1, ( &__v8qi)$__m2); });
	}' unless defined(&_mm_cmpgt_pi8);
	eval 'sub _m_pcmpgtb {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpgt_pi8 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpgtb);
	eval 'sub _m_pcmpeqw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpeq_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpeqw);
	eval 'sub _mm_cmpgt_pi16 {
	    local($__m1,$__m2) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_pcmpgtw (( &__v4hi)$__m1, ( &__v4hi)$__m2); });
	}' unless defined(&_mm_cmpgt_pi16);
	eval 'sub _m_pcmpgtw {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpgt_pi16 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpgtw);
	eval 'sub _m_pcmpeqd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpeq_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpeqd);
	eval 'sub _mm_cmpgt_pi32 {
	    local($__m1,$__m2) = @_;
    	    eval q({ ( &__m64)  &__builtin_ia32_pcmpgtd (( &__v2si)$__m1, ( &__v2si)$__m2); });
	}' unless defined(&_mm_cmpgt_pi32);
	eval 'sub _m_pcmpgtd {
	    local($__m1,$__m2) = @_;
    	    eval q({  &_mm_cmpgt_pi32 ($__m1, $__m2); });
	}' unless defined(&_m_pcmpgtd);
	eval 'sub _mm_setr_pi16 {
	    local($__w0,$__w1,$__w2,$__w3) = @_;
    	    eval q({  &_mm_set_pi16 ($__w3, $__w2, $__w1, $__w0); });
	}' unless defined(&_mm_setr_pi16);
	eval 'sub _mm_setr_pi8 {
	    local($__b0,$__b1,$__b2,$__b3,$__b4,$__b5,$__b6,$__b7) = @_;
    	    eval q({  &_mm_set_pi8 ($__b7, $__b6, $__b5, $__b4, $__b3, $__b2, $__b1, $__b0); });
	}' unless defined(&_mm_setr_pi8);
    }
}
1;
