/* Generated automatically by the program `genopinit' from the machine description file `md'. */ #include "config.h" #include "system.h" #include "coretypes.h" #include "backend.h" #include "predict.h" #include "tree.h" #include "rtl.h" #include "alias.h" #include "varasm.h" #include "stor-layout.h" #include "calls.h" #include "memmodel.h" #include "tm_p.h" #include "flags.h" #include "insn-config.h" #include "expmed.h" #include "dojump.h" #include "explow.h" #include "emit-rtl.h" #include "stmt.h" #include "expr.h" #include "insn-codes.h" #include "optabs.h" struct optab_pat { unsigned scode; enum insn_code icode; }; static const struct optab_pat pats[NUM_OPTAB_PATTERNS] = { { 0x010809, CODE_FOR_extendqihi2 }, { 0x01080a, CODE_FOR_extendqisi2 }, { 0x01080b, CODE_FOR_extendqidi2 }, { 0x01090a, CODE_FOR_extendhisi2 }, { 0x01090b, CODE_FOR_extendhidi2 }, { 0x010a0b, CODE_FOR_extendsidi2 }, { 0x011f20, CODE_FOR_extendsfdf2 }, { 0x020b08, CODE_FOR_truncdiqi2 }, { 0x020b09, CODE_FOR_truncdihi2 }, { 0x020b0a, CODE_FOR_truncdisi2 }, { 0x02201f, CODE_FOR_truncdfsf2 }, { 0x030809, CODE_FOR_zero_extendqihi2 }, { 0x03080a, CODE_FOR_zero_extendqisi2 }, { 0x03080b, CODE_FOR_zero_extendqidi2 }, { 0x03090a, CODE_FOR_zero_extendhisi2 }, { 0x03090b, CODE_FOR_zero_extendhidi2 }, { 0x030a0b, CODE_FOR_zero_extendsidi2 }, { 0x060a1f, CODE_FOR_floatsisf2 }, { 0x060a20, CODE_FOR_floatsidf2 }, { 0x060b1f, CODE_FOR_floatdisf2 }, { 0x060b20, CODE_FOR_floatdidf2 }, { 0x063441, CODE_FOR_floatv4siv4sf2 }, { 0x063542, CODE_FOR_floatv2div2df2 }, { 0x073441, CODE_FOR_floatunsv4siv4sf2 }, { 0x073542, CODE_FOR_floatunsv2div2df2 }, { 0x101f0a, CODE_FOR_fix_truncsfsi2 }, { 0x101f0b, CODE_FOR_fix_truncsfdi2 }, { 0x10200a, CODE_FOR_fix_truncdfsi2 }, { 0x10200b, CODE_FOR_fix_truncdfdi2 }, { 0x104134, CODE_FOR_fix_truncv4sfv4si2 }, { 0x104235, CODE_FOR_fix_truncv2dfv2di2 }, { 0x111f0a, CODE_FOR_fixuns_truncsfsi2 }, { 0x111f0b, CODE_FOR_fixuns_truncsfdi2 }, { 0x11200a, CODE_FOR_fixuns_truncdfsi2 }, { 0x11200b, CODE_FOR_fixuns_truncdfdi2 }, { 0x114134, CODE_FOR_fixuns_truncv4sfv4si2 }, { 0x114235, CODE_FOR_fixuns_truncv2dfv2di2 }, { 0x120a0b, CODE_FOR_mulsidi3 }, { 0x120b0c, CODE_FOR_mulditi3 }, { 0x130a0b, CODE_FOR_umulsidi3 }, { 0x130b0c, CODE_FOR_umulditi3 }, { 0x150a0b, CODE_FOR_maddsidi4 }, { 0x160a0b, CODE_FOR_umaddsidi4 }, { 0x170f10, CODE_FOR_ssmaddsqdq4 }, { 0x190a0b, CODE_FOR_msubsidi4 }, { 0x1a0a0b, CODE_FOR_umsubsidi4 }, { 0x1b0f10, CODE_FOR_ssmsubsqdq4 }, { 0x1f3232, CODE_FOR_vcondv16qiv16qi }, { 0x1f3233, CODE_FOR_vcondv8hiv16qi }, { 0x1f3234, CODE_FOR_vcondv4siv16qi }, { 0x1f3235, CODE_FOR_vcondv2div16qi }, { 0x1f3241, CODE_FOR_vcondv4sfv16qi }, { 0x1f3242, CODE_FOR_vcondv2dfv16qi }, { 0x1f3332, CODE_FOR_vcondv16qiv8hi }, { 0x1f3333, CODE_FOR_vcondv8hiv8hi }, { 0x1f3334, CODE_FOR_vcondv4siv8hi }, { 0x1f3335, CODE_FOR_vcondv2div8hi }, { 0x1f3341, CODE_FOR_vcondv4sfv8hi }, { 0x1f3342, CODE_FOR_vcondv2dfv8hi }, { 0x1f3432, CODE_FOR_vcondv16qiv4si }, { 0x1f3433, CODE_FOR_vcondv8hiv4si }, { 0x1f3434, CODE_FOR_vcondv4siv4si }, { 0x1f3435, CODE_FOR_vcondv2div4si }, { 0x1f3441, CODE_FOR_vcondv4sfv4si }, { 0x1f3442, CODE_FOR_vcondv2dfv4si }, { 0x1f3532, CODE_FOR_vcondv16qiv2di }, { 0x1f3533, CODE_FOR_vcondv8hiv2di }, { 0x1f3534, CODE_FOR_vcondv4siv2di }, { 0x1f3535, CODE_FOR_vcondv2div2di }, { 0x1f3541, CODE_FOR_vcondv4sfv2di }, { 0x1f3542, CODE_FOR_vcondv2dfv2di }, { 0x1f4040, CODE_FOR_vcondv2sfv2sf }, { 0x1f4132, CODE_FOR_vcondv16qiv4sf }, { 0x1f4133, CODE_FOR_vcondv8hiv4sf }, { 0x1f4134, CODE_FOR_vcondv4siv4sf }, { 0x1f4135, CODE_FOR_vcondv2div4sf }, { 0x1f4141, CODE_FOR_vcondv4sfv4sf }, { 0x1f4142, CODE_FOR_vcondv2dfv4sf }, { 0x1f4232, CODE_FOR_vcondv16qiv2df }, { 0x1f4233, CODE_FOR_vcondv8hiv2df }, { 0x1f4234, CODE_FOR_vcondv4siv2df }, { 0x1f4235, CODE_FOR_vcondv2div2df }, { 0x1f4241, CODE_FOR_vcondv4sfv2df }, { 0x1f4242, CODE_FOR_vcondv2dfv2df }, { 0x203232, CODE_FOR_vconduv16qiv16qi }, { 0x203233, CODE_FOR_vconduv8hiv16qi }, { 0x203234, CODE_FOR_vconduv4siv16qi }, { 0x203235, CODE_FOR_vconduv2div16qi }, { 0x203241, CODE_FOR_vconduv4sfv16qi }, { 0x203242, CODE_FOR_vconduv2dfv16qi }, { 0x203332, CODE_FOR_vconduv16qiv8hi }, { 0x203333, CODE_FOR_vconduv8hiv8hi }, { 0x203334, CODE_FOR_vconduv4siv8hi }, { 0x203335, CODE_FOR_vconduv2div8hi }, { 0x203341, CODE_FOR_vconduv4sfv8hi }, { 0x203342, CODE_FOR_vconduv2dfv8hi }, { 0x203432, CODE_FOR_vconduv16qiv4si }, { 0x203433, CODE_FOR_vconduv8hiv4si }, { 0x203434, CODE_FOR_vconduv4siv4si }, { 0x203435, CODE_FOR_vconduv2div4si }, { 0x203441, CODE_FOR_vconduv4sfv4si }, { 0x203442, CODE_FOR_vconduv2dfv4si }, { 0x203532, CODE_FOR_vconduv16qiv2di }, { 0x203533, CODE_FOR_vconduv8hiv2di }, { 0x203534, CODE_FOR_vconduv4siv2di }, { 0x203535, CODE_FOR_vconduv2div2di }, { 0x203541, CODE_FOR_vconduv4sfv2di }, { 0x203542, CODE_FOR_vconduv2dfv2di }, { 0x28000a, CODE_FOR_addsi3 }, { 0x28000b, CODE_FOR_adddi3 }, { 0x28000d, CODE_FOR_addqq3 }, { 0x28000e, CODE_FOR_addhq3 }, { 0x28000f, CODE_FOR_addsq3 }, { 0x280010, CODE_FOR_adddq3 }, { 0x280012, CODE_FOR_adduqq3 }, { 0x280013, CODE_FOR_adduhq3 }, { 0x280014, CODE_FOR_addusq3 }, { 0x280015, CODE_FOR_addudq3 }, { 0x280017, CODE_FOR_addha3 }, { 0x280018, CODE_FOR_addsa3 }, { 0x280019, CODE_FOR_addda3 }, { 0x28001b, CODE_FOR_adduha3 }, { 0x28001c, CODE_FOR_addusa3 }, { 0x28001d, CODE_FOR_adduda3 }, { 0x28001f, CODE_FOR_addsf3 }, { 0x280020, CODE_FOR_adddf3 }, { 0x28002d, CODE_FOR_addv4qi3 }, { 0x28002e, CODE_FOR_addv2hi3 }, { 0x28002f, CODE_FOR_addv8qi3 }, { 0x280030, CODE_FOR_addv4hi3 }, { 0x280031, CODE_FOR_addv2si3 }, { 0x280032, CODE_FOR_addv16qi3 }, { 0x280033, CODE_FOR_addv8hi3 }, { 0x280034, CODE_FOR_addv4si3 }, { 0x280035, CODE_FOR_addv2di3 }, { 0x280040, CODE_FOR_addv2sf3 }, { 0x280041, CODE_FOR_addv4sf3 }, { 0x280042, CODE_FOR_addv2df3 }, { 0x2a000e, CODE_FOR_ssaddhq3 }, { 0x2a000f, CODE_FOR_ssaddsq3 }, { 0x2a0017, CODE_FOR_ssaddha3 }, { 0x2a0018, CODE_FOR_ssaddsa3 }, { 0x2a003b, CODE_FOR_ssaddv2hq3 }, { 0x2a003e, CODE_FOR_ssaddv2ha3 }, { 0x2b0012, CODE_FOR_usadduqq3 }, { 0x2b0013, CODE_FOR_usadduhq3 }, { 0x2b001b, CODE_FOR_usadduha3 }, { 0x2b003c, CODE_FOR_usaddv4uqq3 }, { 0x2b003d, CODE_FOR_usaddv2uhq3 }, { 0x2b003f, CODE_FOR_usaddv2uha3 }, { 0x2c000a, CODE_FOR_subsi3 }, { 0x2c000b, CODE_FOR_subdi3 }, { 0x2c000d, CODE_FOR_subqq3 }, { 0x2c000e, CODE_FOR_subhq3 }, { 0x2c000f, CODE_FOR_subsq3 }, { 0x2c0010, CODE_FOR_subdq3 }, { 0x2c0012, CODE_FOR_subuqq3 }, { 0x2c0013, CODE_FOR_subuhq3 }, { 0x2c0014, CODE_FOR_subusq3 }, { 0x2c0015, CODE_FOR_subudq3 }, { 0x2c0017, CODE_FOR_subha3 }, { 0x2c0018, CODE_FOR_subsa3 }, { 0x2c0019, CODE_FOR_subda3 }, { 0x2c001b, CODE_FOR_subuha3 }, { 0x2c001c, CODE_FOR_subusa3 }, { 0x2c001d, CODE_FOR_subuda3 }, { 0x2c001f, CODE_FOR_subsf3 }, { 0x2c0020, CODE_FOR_subdf3 }, { 0x2c002d, CODE_FOR_subv4qi3 }, { 0x2c002e, CODE_FOR_subv2hi3 }, { 0x2c002f, CODE_FOR_subv8qi3 }, { 0x2c0030, CODE_FOR_subv4hi3 }, { 0x2c0031, CODE_FOR_subv2si3 }, { 0x2c0032, CODE_FOR_subv16qi3 }, { 0x2c0033, CODE_FOR_subv8hi3 }, { 0x2c0034, CODE_FOR_subv4si3 }, { 0x2c0035, CODE_FOR_subv2di3 }, { 0x2c0040, CODE_FOR_subv2sf3 }, { 0x2c0041, CODE_FOR_subv4sf3 }, { 0x2c0042, CODE_FOR_subv2df3 }, { 0x2e000e, CODE_FOR_sssubhq3 }, { 0x2e000f, CODE_FOR_sssubsq3 }, { 0x2e0017, CODE_FOR_sssubha3 }, { 0x2e0018, CODE_FOR_sssubsa3 }, { 0x2e003b, CODE_FOR_sssubv2hq3 }, { 0x2e003e, CODE_FOR_sssubv2ha3 }, { 0x2f0012, CODE_FOR_ussubuqq3 }, { 0x2f0013, CODE_FOR_ussubuhq3 }, { 0x2f001b, CODE_FOR_ussubuha3 }, { 0x2f003c, CODE_FOR_ussubv4uqq3 }, { 0x2f003d, CODE_FOR_ussubv2uhq3 }, { 0x2f003f, CODE_FOR_ussubv2uha3 }, { 0x30000a, CODE_FOR_mulsi3 }, { 0x30000b, CODE_FOR_muldi3 }, { 0x30001f, CODE_FOR_mulsf3 }, { 0x300020, CODE_FOR_muldf3 }, { 0x30002e, CODE_FOR_mulv2hi3 }, { 0x300030, CODE_FOR_mulv4hi3 }, { 0x300032, CODE_FOR_mulv16qi3 }, { 0x300033, CODE_FOR_mulv8hi3 }, { 0x300034, CODE_FOR_mulv4si3 }, { 0x300035, CODE_FOR_mulv2di3 }, { 0x300040, CODE_FOR_mulv2sf3 }, { 0x300041, CODE_FOR_mulv4sf3 }, { 0x300042, CODE_FOR_mulv2df3 }, { 0x32000e, CODE_FOR_ssmulhq3 }, { 0x32000f, CODE_FOR_ssmulsq3 }, { 0x32003b, CODE_FOR_ssmulv2hq3 }, { 0x34000a, CODE_FOR_divsi3 }, { 0x34000b, CODE_FOR_divdi3 }, { 0x34001f, CODE_FOR_divsf3 }, { 0x340020, CODE_FOR_divdf3 }, { 0x340032, CODE_FOR_divv16qi3 }, { 0x340033, CODE_FOR_divv8hi3 }, { 0x340034, CODE_FOR_divv4si3 }, { 0x340035, CODE_FOR_divv2di3 }, { 0x340040, CODE_FOR_divv2sf3 }, { 0x340041, CODE_FOR_divv4sf3 }, { 0x340042, CODE_FOR_divv2df3 }, { 0x37000a, CODE_FOR_udivsi3 }, { 0x37000b, CODE_FOR_udivdi3 }, { 0x370032, CODE_FOR_udivv16qi3 }, { 0x370033, CODE_FOR_udivv8hi3 }, { 0x370034, CODE_FOR_udivv4si3 }, { 0x370035, CODE_FOR_udivv2di3 }, { 0x39000a, CODE_FOR_divmodsi4 }, { 0x39000b, CODE_FOR_divmoddi4 }, { 0x3a000a, CODE_FOR_udivmodsi4 }, { 0x3a000b, CODE_FOR_udivmoddi4 }, { 0x3b000a, CODE_FOR_modsi3 }, { 0x3b000b, CODE_FOR_moddi3 }, { 0x3b0032, CODE_FOR_modv16qi3 }, { 0x3b0033, CODE_FOR_modv8hi3 }, { 0x3b0034, CODE_FOR_modv4si3 }, { 0x3b0035, CODE_FOR_modv2di3 }, { 0x3c000a, CODE_FOR_umodsi3 }, { 0x3c000b, CODE_FOR_umoddi3 }, { 0x3c0032, CODE_FOR_umodv16qi3 }, { 0x3c0033, CODE_FOR_umodv8hi3 }, { 0x3c0034, CODE_FOR_umodv4si3 }, { 0x3c0035, CODE_FOR_umodv2di3 }, { 0x3e000a, CODE_FOR_andsi3 }, { 0x3e000b, CODE_FOR_anddi3 }, { 0x3e002f, CODE_FOR_andv8qi3 }, { 0x3e0030, CODE_FOR_andv4hi3 }, { 0x3e0031, CODE_FOR_andv2si3 }, { 0x3e0032, CODE_FOR_andv16qi3 }, { 0x3e0033, CODE_FOR_andv8hi3 }, { 0x3e0034, CODE_FOR_andv4si3 }, { 0x3e0035, CODE_FOR_andv2di3 }, { 0x3f000a, CODE_FOR_iorsi3 }, { 0x3f000b, CODE_FOR_iordi3 }, { 0x3f002f, CODE_FOR_iorv8qi3 }, { 0x3f0030, CODE_FOR_iorv4hi3 }, { 0x3f0031, CODE_FOR_iorv2si3 }, { 0x3f0032, CODE_FOR_iorv16qi3 }, { 0x3f0033, CODE_FOR_iorv8hi3 }, { 0x3f0034, CODE_FOR_iorv4si3 }, { 0x3f0035, CODE_FOR_iorv2di3 }, { 0x40000a, CODE_FOR_xorsi3 }, { 0x40000b, CODE_FOR_xordi3 }, { 0x40002f, CODE_FOR_xorv8qi3 }, { 0x400030, CODE_FOR_xorv4hi3 }, { 0x400031, CODE_FOR_xorv2si3 }, { 0x400032, CODE_FOR_xorv16qi3 }, { 0x400033, CODE_FOR_xorv8hi3 }, { 0x400034, CODE_FOR_xorv4si3 }, { 0x400035, CODE_FOR_xorv2di3 }, { 0x41000a, CODE_FOR_ashlsi3 }, { 0x41000b, CODE_FOR_ashldi3 }, { 0x410030, CODE_FOR_ashlv4hi3 }, { 0x410031, CODE_FOR_ashlv2si3 }, { 0x44000a, CODE_FOR_ashrsi3 }, { 0x44000b, CODE_FOR_ashrdi3 }, { 0x440030, CODE_FOR_ashrv4hi3 }, { 0x440031, CODE_FOR_ashrv2si3 }, { 0x45000a, CODE_FOR_lshrsi3 }, { 0x45000b, CODE_FOR_lshrdi3 }, { 0x450030, CODE_FOR_lshrv4hi3 }, { 0x450031, CODE_FOR_lshrv2si3 }, { 0x47000a, CODE_FOR_rotrsi3 }, { 0x47000b, CODE_FOR_rotrdi3 }, { 0x480032, CODE_FOR_vashlv16qi3 }, { 0x480033, CODE_FOR_vashlv8hi3 }, { 0x480034, CODE_FOR_vashlv4si3 }, { 0x480035, CODE_FOR_vashlv2di3 }, { 0x490032, CODE_FOR_vashrv16qi3 }, { 0x490033, CODE_FOR_vashrv8hi3 }, { 0x490034, CODE_FOR_vashrv4si3 }, { 0x490035, CODE_FOR_vashrv2di3 }, { 0x4a0032, CODE_FOR_vlshrv16qi3 }, { 0x4a0033, CODE_FOR_vlshrv8hi3 }, { 0x4a0034, CODE_FOR_vlshrv4si3 }, { 0x4a0035, CODE_FOR_vlshrv2di3 }, { 0x4d002f, CODE_FOR_sminv8qi3 }, { 0x4d0030, CODE_FOR_sminv4hi3 }, { 0x4d0031, CODE_FOR_sminv2si3 }, { 0x4d0032, CODE_FOR_sminv16qi3 }, { 0x4d0033, CODE_FOR_sminv8hi3 }, { 0x4d0034, CODE_FOR_sminv4si3 }, { 0x4d0035, CODE_FOR_sminv2di3 }, { 0x4d0040, CODE_FOR_sminv2sf3 }, { 0x4d0041, CODE_FOR_sminv4sf3 }, { 0x4d0042, CODE_FOR_sminv2df3 }, { 0x4e002f, CODE_FOR_smaxv8qi3 }, { 0x4e0030, CODE_FOR_smaxv4hi3 }, { 0x4e0031, CODE_FOR_smaxv2si3 }, { 0x4e0032, CODE_FOR_smaxv16qi3 }, { 0x4e0033, CODE_FOR_smaxv8hi3 }, { 0x4e0034, CODE_FOR_smaxv4si3 }, { 0x4e0035, CODE_FOR_smaxv2di3 }, { 0x4e0040, CODE_FOR_smaxv2sf3 }, { 0x4e0041, CODE_FOR_smaxv4sf3 }, { 0x4e0042, CODE_FOR_smaxv2df3 }, { 0x4f002f, CODE_FOR_uminv8qi3 }, { 0x4f0032, CODE_FOR_uminv16qi3 }, { 0x4f0033, CODE_FOR_uminv8hi3 }, { 0x4f0034, CODE_FOR_uminv4si3 }, { 0x4f0035, CODE_FOR_uminv2di3 }, { 0x50002f, CODE_FOR_umaxv8qi3 }, { 0x500032, CODE_FOR_umaxv16qi3 }, { 0x500033, CODE_FOR_umaxv8hi3 }, { 0x500034, CODE_FOR_umaxv4si3 }, { 0x500035, CODE_FOR_umaxv2di3 }, { 0x51000a, CODE_FOR_negsi2 }, { 0x51000b, CODE_FOR_negdi2 }, { 0x51001f, CODE_FOR_negsf2 }, { 0x510020, CODE_FOR_negdf2 }, { 0x510032, CODE_FOR_negv16qi2 }, { 0x510033, CODE_FOR_negv8hi2 }, { 0x510034, CODE_FOR_negv4si2 }, { 0x510035, CODE_FOR_negv2di2 }, { 0x510040, CODE_FOR_negv2sf2 }, { 0x510041, CODE_FOR_negv4sf2 }, { 0x510042, CODE_FOR_negv2df2 }, { 0x55001f, CODE_FOR_abssf2 }, { 0x550020, CODE_FOR_absdf2 }, { 0x550032, CODE_FOR_absv16qi2 }, { 0x550033, CODE_FOR_absv8hi2 }, { 0x550034, CODE_FOR_absv4si2 }, { 0x550035, CODE_FOR_absv2di2 }, { 0x550040, CODE_FOR_absv2sf2 }, { 0x57000a, CODE_FOR_one_cmplsi2 }, { 0x57000b, CODE_FOR_one_cmpldi2 }, { 0x57002f, CODE_FOR_one_cmplv8qi2 }, { 0x570030, CODE_FOR_one_cmplv4hi2 }, { 0x570031, CODE_FOR_one_cmplv2si2 }, { 0x570032, CODE_FOR_one_cmplv16qi2 }, { 0x570033, CODE_FOR_one_cmplv8hi2 }, { 0x570034, CODE_FOR_one_cmplv4si2 }, { 0x570035, CODE_FOR_one_cmplv2di2 }, { 0x580009, CODE_FOR_bswaphi2 }, { 0x58000a, CODE_FOR_bswapsi2 }, { 0x58000b, CODE_FOR_bswapdi2 }, { 0x5a000a, CODE_FOR_clzsi2 }, { 0x5a000b, CODE_FOR_clzdi2 }, { 0x5a0032, CODE_FOR_clzv16qi2 }, { 0x5a0033, CODE_FOR_clzv8hi2 }, { 0x5a0034, CODE_FOR_clzv4si2 }, { 0x5a0035, CODE_FOR_clzv2di2 }, { 0x5d000a, CODE_FOR_popcountsi2 }, { 0x5d000b, CODE_FOR_popcountdi2 }, { 0x5d0032, CODE_FOR_popcountv16qi2 }, { 0x5d0033, CODE_FOR_popcountv8hi2 }, { 0x5d0034, CODE_FOR_popcountv4si2 }, { 0x5d0035, CODE_FOR_popcountv2di2 }, { 0x69001f, CODE_FOR_sqrtsf2 }, { 0x690020, CODE_FOR_sqrtdf2 }, { 0x690040, CODE_FOR_sqrtv2sf2 }, { 0x690041, CODE_FOR_sqrtv4sf2 }, { 0x690042, CODE_FOR_sqrtv2df2 }, { 0x6a0008, CODE_FOR_sync_old_addqi }, { 0x6a0009, CODE_FOR_sync_old_addhi }, { 0x6a000a, CODE_FOR_sync_old_addsi }, { 0x6a000b, CODE_FOR_sync_old_adddi }, { 0x6b0008, CODE_FOR_sync_old_subqi }, { 0x6b0009, CODE_FOR_sync_old_subhi }, { 0x6b000a, CODE_FOR_sync_old_subsi }, { 0x6b000b, CODE_FOR_sync_old_subdi }, { 0x6c0008, CODE_FOR_sync_old_iorqi }, { 0x6c0009, CODE_FOR_sync_old_iorhi }, { 0x6c000a, CODE_FOR_sync_old_iorsi }, { 0x6c000b, CODE_FOR_sync_old_iordi }, { 0x6d0008, CODE_FOR_sync_old_andqi }, { 0x6d0009, CODE_FOR_sync_old_andhi }, { 0x6d000a, CODE_FOR_sync_old_andsi }, { 0x6d000b, CODE_FOR_sync_old_anddi }, { 0x6e0008, CODE_FOR_sync_old_xorqi }, { 0x6e0009, CODE_FOR_sync_old_xorhi }, { 0x6e000a, CODE_FOR_sync_old_xorsi }, { 0x6e000b, CODE_FOR_sync_old_xordi }, { 0x6f0008, CODE_FOR_sync_old_nandqi }, { 0x6f0009, CODE_FOR_sync_old_nandhi }, { 0x6f000a, CODE_FOR_sync_old_nandsi }, { 0x6f000b, CODE_FOR_sync_old_nanddi }, { 0x700008, CODE_FOR_sync_new_addqi }, { 0x700009, CODE_FOR_sync_new_addhi }, { 0x70000a, CODE_FOR_sync_new_addsi }, { 0x70000b, CODE_FOR_sync_new_adddi }, { 0x710008, CODE_FOR_sync_new_subqi }, { 0x710009, CODE_FOR_sync_new_subhi }, { 0x71000a, CODE_FOR_sync_new_subsi }, { 0x71000b, CODE_FOR_sync_new_subdi }, { 0x720008, CODE_FOR_sync_new_iorqi }, { 0x720009, CODE_FOR_sync_new_iorhi }, { 0x72000a, CODE_FOR_sync_new_iorsi }, { 0x72000b, CODE_FOR_sync_new_iordi }, { 0x730008, CODE_FOR_sync_new_andqi }, { 0x730009, CODE_FOR_sync_new_andhi }, { 0x73000a, CODE_FOR_sync_new_andsi }, { 0x73000b, CODE_FOR_sync_new_anddi }, { 0x740008, CODE_FOR_sync_new_xorqi }, { 0x740009, CODE_FOR_sync_new_xorhi }, { 0x74000a, CODE_FOR_sync_new_xorsi }, { 0x74000b, CODE_FOR_sync_new_xordi }, { 0x750008, CODE_FOR_sync_new_nandqi }, { 0x750009, CODE_FOR_sync_new_nandhi }, { 0x75000a, CODE_FOR_sync_new_nandsi }, { 0x75000b, CODE_FOR_sync_new_nanddi }, { 0x760008, CODE_FOR_sync_compare_and_swapqi }, { 0x760009, CODE_FOR_sync_compare_and_swaphi }, { 0x76000a, CODE_FOR_sync_compare_and_swapsi }, { 0x76000b, CODE_FOR_sync_compare_and_swapdi }, { 0x770008, CODE_FOR_sync_lock_test_and_setqi }, { 0x770009, CODE_FOR_sync_lock_test_and_sethi }, { 0x77000a, CODE_FOR_sync_lock_test_and_setsi }, { 0x77000b, CODE_FOR_sync_lock_test_and_setdi }, { 0x780006, CODE_FOR_movccf }, { 0x780008, CODE_FOR_movqi }, { 0x780009, CODE_FOR_movhi }, { 0x78000a, CODE_FOR_movsi }, { 0x78000b, CODE_FOR_movdi }, { 0x78000c, CODE_FOR_movti }, { 0x78001f, CODE_FOR_movsf }, { 0x780020, CODE_FOR_movdf }, { 0x780021, CODE_FOR_movtf }, { 0x78002d, CODE_FOR_movv4qi }, { 0x78002e, CODE_FOR_movv2hi }, { 0x78002f, CODE_FOR_movv8qi }, { 0x780030, CODE_FOR_movv4hi }, { 0x780031, CODE_FOR_movv2si }, { 0x780032, CODE_FOR_movv16qi }, { 0x780033, CODE_FOR_movv8hi }, { 0x780034, CODE_FOR_movv4si }, { 0x780035, CODE_FOR_movv2di }, { 0x78003a, CODE_FOR_movv4qq }, { 0x78003b, CODE_FOR_movv2hq }, { 0x78003c, CODE_FOR_movv4uqq }, { 0x78003d, CODE_FOR_movv2uhq }, { 0x78003e, CODE_FOR_movv2ha }, { 0x78003f, CODE_FOR_movv2uha }, { 0x780040, CODE_FOR_movv2sf }, { 0x780041, CODE_FOR_movv4sf }, { 0x780042, CODE_FOR_movv2df }, { 0x7a0032, CODE_FOR_movmisalignv16qi }, { 0x7a0033, CODE_FOR_movmisalignv8hi }, { 0x7a0034, CODE_FOR_movmisalignv4si }, { 0x7a0035, CODE_FOR_movmisalignv2di }, { 0x7a0041, CODE_FOR_movmisalignv4sf }, { 0x7a0042, CODE_FOR_movmisalignv2df }, { 0x7c000a, CODE_FOR_insvsi }, { 0x7c000b, CODE_FOR_insvdi }, { 0x7d000a, CODE_FOR_extvsi }, { 0x7d000b, CODE_FOR_extvdi }, { 0x7e000a, CODE_FOR_extzvsi }, { 0x7e000b, CODE_FOR_extzvdi }, { 0x7f000a, CODE_FOR_insvmisalignsi }, { 0x7f000b, CODE_FOR_insvmisaligndi }, { 0x80000a, CODE_FOR_extvmisalignsi }, { 0x80000b, CODE_FOR_extvmisaligndi }, { 0x81000a, CODE_FOR_extzvmisalignsi }, { 0x81000b, CODE_FOR_extzvmisaligndi }, { 0x85000a, CODE_FOR_cbranchsi4 }, { 0x85000b, CODE_FOR_cbranchdi4 }, { 0x85001f, CODE_FOR_cbranchsf4 }, { 0x850020, CODE_FOR_cbranchdf4 }, { 0x89000a, CODE_FOR_movsicc }, { 0x89000b, CODE_FOR_movdicc }, { 0x89001f, CODE_FOR_movsfcc }, { 0x890020, CODE_FOR_movdfcc }, { 0x890040, CODE_FOR_movv2sfcc }, { 0x8b000a, CODE_FOR_cstoresi4 }, { 0x8b000b, CODE_FOR_cstoredi4 }, { 0x8c000a, CODE_FOR_ctrapsi4 }, { 0x8c000b, CODE_FOR_ctrapdi4 }, { 0x95000a, CODE_FOR_smulsi3_highpart }, { 0x95000b, CODE_FOR_smuldi3_highpart }, { 0x950030, CODE_FOR_smulv4hi3_highpart }, { 0x96000a, CODE_FOR_umulsi3_highpart }, { 0x96000b, CODE_FOR_umuldi3_highpart }, { 0x960030, CODE_FOR_umulv4hi3_highpart }, { 0x9a000a, CODE_FOR_movmemsi }, { 0x9d001f, CODE_FOR_fmasf4 }, { 0x9d0020, CODE_FOR_fmadf4 }, { 0x9d0040, CODE_FOR_fmav2sf4 }, { 0x9d0041, CODE_FOR_fmav4sf4 }, { 0x9d0042, CODE_FOR_fmav2df4 }, { 0x9e001f, CODE_FOR_fmssf4 }, { 0x9e0020, CODE_FOR_fmsdf4 }, { 0x9e0040, CODE_FOR_fmsv2sf4 }, { 0x9f001f, CODE_FOR_fnmasf4 }, { 0x9f0020, CODE_FOR_fnmadf4 }, { 0x9f0040, CODE_FOR_fnmav2sf4 }, { 0x9f0041, CODE_FOR_fnmav4sf4 }, { 0x9f0042, CODE_FOR_fnmav2df4 }, { 0xa0001f, CODE_FOR_fnmssf4 }, { 0xa00020, CODE_FOR_fnmsdf4 }, { 0xa00040, CODE_FOR_fnmsv2sf4 }, { 0xc5002f, CODE_FOR_reduc_smax_scal_v8qi }, { 0xc50030, CODE_FOR_reduc_smax_scal_v4hi }, { 0xc50031, CODE_FOR_reduc_smax_scal_v2si }, { 0xc50040, CODE_FOR_reduc_smax_scal_v2sf }, { 0xc6002f, CODE_FOR_reduc_smin_scal_v8qi }, { 0xc60030, CODE_FOR_reduc_smin_scal_v4hi }, { 0xc60031, CODE_FOR_reduc_smin_scal_v2si }, { 0xc60040, CODE_FOR_reduc_smin_scal_v2sf }, { 0xc7002f, CODE_FOR_reduc_plus_scal_v8qi }, { 0xc70030, CODE_FOR_reduc_plus_scal_v4hi }, { 0xc70031, CODE_FOR_reduc_plus_scal_v2si }, { 0xc70040, CODE_FOR_reduc_plus_scal_v2sf }, { 0xc8002f, CODE_FOR_reduc_umax_scal_v8qi }, { 0xc9002f, CODE_FOR_reduc_umin_scal_v8qi }, { 0xca0030, CODE_FOR_sdot_prodv4hi }, { 0xd00032, CODE_FOR_vec_extractv16qi }, { 0xd00033, CODE_FOR_vec_extractv8hi }, { 0xd00034, CODE_FOR_vec_extractv4si }, { 0xd00035, CODE_FOR_vec_extractv2di }, { 0xd00040, CODE_FOR_vec_extractv2sf }, { 0xd00041, CODE_FOR_vec_extractv4sf }, { 0xd00042, CODE_FOR_vec_extractv2df }, { 0xd1002f, CODE_FOR_vec_initv8qi }, { 0xd10030, CODE_FOR_vec_initv4hi }, { 0xd10031, CODE_FOR_vec_initv2si }, { 0xd10032, CODE_FOR_vec_initv16qi }, { 0xd10033, CODE_FOR_vec_initv8hi }, { 0xd10034, CODE_FOR_vec_initv4si }, { 0xd10035, CODE_FOR_vec_initv2di }, { 0xd10040, CODE_FOR_vec_initv2sf }, { 0xd10041, CODE_FOR_vec_initv4sf }, { 0xd10042, CODE_FOR_vec_initv2df }, { 0xd30030, CODE_FOR_vec_pack_ssat_v4hi }, { 0xd30031, CODE_FOR_vec_pack_ssat_v2si }, { 0xd40033, CODE_FOR_vec_pack_trunc_v8hi }, { 0xd40034, CODE_FOR_vec_pack_trunc_v4si }, { 0xd40035, CODE_FOR_vec_pack_trunc_v2di }, { 0xd40042, CODE_FOR_vec_pack_trunc_v2df }, { 0xd60030, CODE_FOR_vec_pack_usat_v4hi }, { 0xd7002f, CODE_FOR_vec_perm_constv8qi }, { 0xd70030, CODE_FOR_vec_perm_constv4hi }, { 0xd70031, CODE_FOR_vec_perm_constv2si }, { 0xd70032, CODE_FOR_vec_perm_constv16qi }, { 0xd70033, CODE_FOR_vec_perm_constv8hi }, { 0xd70034, CODE_FOR_vec_perm_constv4si }, { 0xd70035, CODE_FOR_vec_perm_constv2di }, { 0xd70040, CODE_FOR_vec_perm_constv2sf }, { 0xd70041, CODE_FOR_vec_perm_constv4sf }, { 0xd70042, CODE_FOR_vec_perm_constv2df }, { 0xd80032, CODE_FOR_vec_permv16qi }, { 0xd80033, CODE_FOR_vec_permv8hi }, { 0xd80034, CODE_FOR_vec_permv4si }, { 0xd80035, CODE_FOR_vec_permv2di }, { 0xd80041, CODE_FOR_vec_permv4sf }, { 0xd80042, CODE_FOR_vec_permv2df }, { 0xda0030, CODE_FOR_vec_setv4hi }, { 0xda0032, CODE_FOR_vec_setv16qi }, { 0xda0033, CODE_FOR_vec_setv8hi }, { 0xda0034, CODE_FOR_vec_setv4si }, { 0xda0035, CODE_FOR_vec_setv2di }, { 0xda0040, CODE_FOR_vec_setv2sf }, { 0xda0041, CODE_FOR_vec_setv4sf }, { 0xda0042, CODE_FOR_vec_setv2df }, { 0xdb000b, CODE_FOR_vec_shr_di }, { 0xdb002f, CODE_FOR_vec_shr_v8qi }, { 0xdb0030, CODE_FOR_vec_shr_v4hi }, { 0xdb0031, CODE_FOR_vec_shr_v2si }, { 0xde002f, CODE_FOR_vec_unpacks_hi_v8qi }, { 0xde0030, CODE_FOR_vec_unpacks_hi_v4hi }, { 0xde0032, CODE_FOR_vec_unpacks_hi_v16qi }, { 0xde0033, CODE_FOR_vec_unpacks_hi_v8hi }, { 0xde0034, CODE_FOR_vec_unpacks_hi_v4si }, { 0xde0041, CODE_FOR_vec_unpacks_hi_v4sf }, { 0xdf002f, CODE_FOR_vec_unpacks_lo_v8qi }, { 0xdf0030, CODE_FOR_vec_unpacks_lo_v4hi }, { 0xdf0032, CODE_FOR_vec_unpacks_lo_v16qi }, { 0xdf0033, CODE_FOR_vec_unpacks_lo_v8hi }, { 0xdf0034, CODE_FOR_vec_unpacks_lo_v4si }, { 0xdf0041, CODE_FOR_vec_unpacks_lo_v4sf }, { 0xe2002f, CODE_FOR_vec_unpacku_hi_v8qi }, { 0xe20030, CODE_FOR_vec_unpacku_hi_v4hi }, { 0xe20032, CODE_FOR_vec_unpacku_hi_v16qi }, { 0xe20033, CODE_FOR_vec_unpacku_hi_v8hi }, { 0xe20034, CODE_FOR_vec_unpacku_hi_v4si }, { 0xe3002f, CODE_FOR_vec_unpacku_lo_v8qi }, { 0xe30030, CODE_FOR_vec_unpacku_lo_v4hi }, { 0xe30032, CODE_FOR_vec_unpacku_lo_v16qi }, { 0xe30033, CODE_FOR_vec_unpacku_lo_v8hi }, { 0xe30034, CODE_FOR_vec_unpacku_lo_v4si }, { 0xf00008, CODE_FOR_sync_addqi }, { 0xf00009, CODE_FOR_sync_addhi }, { 0xf0000a, CODE_FOR_sync_addsi }, { 0xf0000b, CODE_FOR_sync_adddi }, { 0xf10008, CODE_FOR_sync_andqi }, { 0xf10009, CODE_FOR_sync_andhi }, { 0xf1000a, CODE_FOR_sync_andsi }, { 0xf1000b, CODE_FOR_sync_anddi }, { 0xf20008, CODE_FOR_sync_iorqi }, { 0xf20009, CODE_FOR_sync_iorhi }, { 0xf2000a, CODE_FOR_sync_iorsi }, { 0xf2000b, CODE_FOR_sync_iordi }, { 0xf40008, CODE_FOR_sync_nandqi }, { 0xf40009, CODE_FOR_sync_nandhi }, { 0xf4000a, CODE_FOR_sync_nandsi }, { 0xf4000b, CODE_FOR_sync_nanddi }, { 0xf50008, CODE_FOR_sync_subqi }, { 0xf50009, CODE_FOR_sync_subhi }, { 0xf5000a, CODE_FOR_sync_subsi }, { 0xf5000b, CODE_FOR_sync_subdi }, { 0xf60008, CODE_FOR_sync_xorqi }, { 0xf60009, CODE_FOR_sync_xorhi }, { 0xf6000a, CODE_FOR_sync_xorsi }, { 0xf6000b, CODE_FOR_sync_xordi }, { 0xfe000a, CODE_FOR_atomic_compare_and_swapsi }, { 0xfe000b, CODE_FOR_atomic_compare_and_swapdi }, { 0xff000a, CODE_FOR_atomic_exchangesi }, { 0xff000b, CODE_FOR_atomic_exchangedi }, { 0x100000a, CODE_FOR_atomic_fetch_addsi }, { 0x100000b, CODE_FOR_atomic_fetch_adddi }, { 0x110000a, CODE_FOR_get_thread_pointersi }, { 0x110000b, CODE_FOR_get_thread_pointerdi }, }; void init_all_optabs (struct target_optabs *optabs) { bool *ena = optabs->pat_enable; ena[0] = HAVE_extendqihi2; ena[1] = HAVE_extendqisi2; ena[2] = HAVE_extendqidi2; ena[3] = HAVE_extendhisi2; ena[4] = HAVE_extendhidi2; ena[5] = HAVE_extendsidi2; ena[6] = HAVE_extendsfdf2; ena[7] = HAVE_truncdiqi2; ena[8] = HAVE_truncdihi2; ena[9] = HAVE_truncdisi2; ena[10] = HAVE_truncdfsf2; ena[11] = HAVE_zero_extendqihi2; ena[12] = HAVE_zero_extendqisi2; ena[13] = HAVE_zero_extendqidi2; ena[14] = HAVE_zero_extendhisi2; ena[15] = HAVE_zero_extendhidi2; ena[16] = HAVE_zero_extendsidi2; ena[17] = HAVE_floatsisf2; ena[18] = HAVE_floatsidf2; ena[19] = HAVE_floatdisf2; ena[20] = HAVE_floatdidf2; ena[21] = HAVE_floatv4siv4sf2; ena[22] = HAVE_floatv2div2df2; ena[23] = HAVE_floatunsv4siv4sf2; ena[24] = HAVE_floatunsv2div2df2; ena[25] = HAVE_fix_truncsfsi2; ena[26] = HAVE_fix_truncsfdi2; ena[27] = HAVE_fix_truncdfsi2; ena[28] = HAVE_fix_truncdfdi2; ena[29] = HAVE_fix_truncv4sfv4si2; ena[30] = HAVE_fix_truncv2dfv2di2; ena[31] = HAVE_fixuns_truncsfsi2; ena[32] = HAVE_fixuns_truncsfdi2; ena[33] = HAVE_fixuns_truncdfsi2; ena[34] = HAVE_fixuns_truncdfdi2; ena[35] = HAVE_fixuns_truncv4sfv4si2; ena[36] = HAVE_fixuns_truncv2dfv2di2; ena[37] = HAVE_mulsidi3; ena[38] = HAVE_mulditi3; ena[39] = HAVE_umulsidi3; ena[40] = HAVE_umulditi3; ena[41] = HAVE_maddsidi4; ena[42] = HAVE_umaddsidi4; ena[43] = HAVE_ssmaddsqdq4; ena[44] = HAVE_msubsidi4; ena[45] = HAVE_umsubsidi4; ena[46] = HAVE_ssmsubsqdq4; ena[47] = HAVE_vcondv16qiv16qi; ena[48] = HAVE_vcondv8hiv16qi; ena[49] = HAVE_vcondv4siv16qi; ena[50] = HAVE_vcondv2div16qi; ena[51] = HAVE_vcondv4sfv16qi; ena[52] = HAVE_vcondv2dfv16qi; ena[53] = HAVE_vcondv16qiv8hi; ena[54] = HAVE_vcondv8hiv8hi; ena[55] = HAVE_vcondv4siv8hi; ena[56] = HAVE_vcondv2div8hi; ena[57] = HAVE_vcondv4sfv8hi; ena[58] = HAVE_vcondv2dfv8hi; ena[59] = HAVE_vcondv16qiv4si; ena[60] = HAVE_vcondv8hiv4si; ena[61] = HAVE_vcondv4siv4si; ena[62] = HAVE_vcondv2div4si; ena[63] = HAVE_vcondv4sfv4si; ena[64] = HAVE_vcondv2dfv4si; ena[65] = HAVE_vcondv16qiv2di; ena[66] = HAVE_vcondv8hiv2di; ena[67] = HAVE_vcondv4siv2di; ena[68] = HAVE_vcondv2div2di; ena[69] = HAVE_vcondv4sfv2di; ena[70] = HAVE_vcondv2dfv2di; ena[71] = HAVE_vcondv2sfv2sf; ena[72] = HAVE_vcondv16qiv4sf; ena[73] = HAVE_vcondv8hiv4sf; ena[74] = HAVE_vcondv4siv4sf; ena[75] = HAVE_vcondv2div4sf; ena[76] = HAVE_vcondv4sfv4sf; ena[77] = HAVE_vcondv2dfv4sf; ena[78] = HAVE_vcondv16qiv2df; ena[79] = HAVE_vcondv8hiv2df; ena[80] = HAVE_vcondv4siv2df; ena[81] = HAVE_vcondv2div2df; ena[82] = HAVE_vcondv4sfv2df; ena[83] = HAVE_vcondv2dfv2df; ena[84] = HAVE_vconduv16qiv16qi; ena[85] = HAVE_vconduv8hiv16qi; ena[86] = HAVE_vconduv4siv16qi; ena[87] = HAVE_vconduv2div16qi; ena[88] = HAVE_vconduv4sfv16qi; ena[89] = HAVE_vconduv2dfv16qi; ena[90] = HAVE_vconduv16qiv8hi; ena[91] = HAVE_vconduv8hiv8hi; ena[92] = HAVE_vconduv4siv8hi; ena[93] = HAVE_vconduv2div8hi; ena[94] = HAVE_vconduv4sfv8hi; ena[95] = HAVE_vconduv2dfv8hi; ena[96] = HAVE_vconduv16qiv4si; ena[97] = HAVE_vconduv8hiv4si; ena[98] = HAVE_vconduv4siv4si; ena[99] = HAVE_vconduv2div4si; ena[100] = HAVE_vconduv4sfv4si; ena[101] = HAVE_vconduv2dfv4si; ena[102] = HAVE_vconduv16qiv2di; ena[103] = HAVE_vconduv8hiv2di; ena[104] = HAVE_vconduv4siv2di; ena[105] = HAVE_vconduv2div2di; ena[106] = HAVE_vconduv4sfv2di; ena[107] = HAVE_vconduv2dfv2di; ena[108] = HAVE_addsi3; ena[109] = HAVE_adddi3; ena[110] = HAVE_addqq3; ena[111] = HAVE_addhq3; ena[112] = HAVE_addsq3; ena[113] = HAVE_adddq3; ena[114] = HAVE_adduqq3; ena[115] = HAVE_adduhq3; ena[116] = HAVE_addusq3; ena[117] = HAVE_addudq3; ena[118] = HAVE_addha3; ena[119] = HAVE_addsa3; ena[120] = HAVE_addda3; ena[121] = HAVE_adduha3; ena[122] = HAVE_addusa3; ena[123] = HAVE_adduda3; ena[124] = HAVE_addsf3; ena[125] = HAVE_adddf3; ena[126] = HAVE_addv4qi3; ena[127] = HAVE_addv2hi3; ena[128] = HAVE_addv8qi3; ena[129] = HAVE_addv4hi3; ena[130] = HAVE_addv2si3; ena[131] = HAVE_addv16qi3; ena[132] = HAVE_addv8hi3; ena[133] = HAVE_addv4si3; ena[134] = HAVE_addv2di3; ena[135] = HAVE_addv2sf3; ena[136] = HAVE_addv4sf3; ena[137] = HAVE_addv2df3; ena[138] = HAVE_ssaddhq3; ena[139] = HAVE_ssaddsq3; ena[140] = HAVE_ssaddha3; ena[141] = HAVE_ssaddsa3; ena[142] = HAVE_ssaddv2hq3; ena[143] = HAVE_ssaddv2ha3; ena[144] = HAVE_usadduqq3; ena[145] = HAVE_usadduhq3; ena[146] = HAVE_usadduha3; ena[147] = HAVE_usaddv4uqq3; ena[148] = HAVE_usaddv2uhq3; ena[149] = HAVE_usaddv2uha3; ena[150] = HAVE_subsi3; ena[151] = HAVE_subdi3; ena[152] = HAVE_subqq3; ena[153] = HAVE_subhq3; ena[154] = HAVE_subsq3; ena[155] = HAVE_subdq3; ena[156] = HAVE_subuqq3; ena[157] = HAVE_subuhq3; ena[158] = HAVE_subusq3; ena[159] = HAVE_subudq3; ena[160] = HAVE_subha3; ena[161] = HAVE_subsa3; ena[162] = HAVE_subda3; ena[163] = HAVE_subuha3; ena[164] = HAVE_subusa3; ena[165] = HAVE_subuda3; ena[166] = HAVE_subsf3; ena[167] = HAVE_subdf3; ena[168] = HAVE_subv4qi3; ena[169] = HAVE_subv2hi3; ena[170] = HAVE_subv8qi3; ena[171] = HAVE_subv4hi3; ena[172] = HAVE_subv2si3; ena[173] = HAVE_subv16qi3; ena[174] = HAVE_subv8hi3; ena[175] = HAVE_subv4si3; ena[176] = HAVE_subv2di3; ena[177] = HAVE_subv2sf3; ena[178] = HAVE_subv4sf3; ena[179] = HAVE_subv2df3; ena[180] = HAVE_sssubhq3; ena[181] = HAVE_sssubsq3; ena[182] = HAVE_sssubha3; ena[183] = HAVE_sssubsa3; ena[184] = HAVE_sssubv2hq3; ena[185] = HAVE_sssubv2ha3; ena[186] = HAVE_ussubuqq3; ena[187] = HAVE_ussubuhq3; ena[188] = HAVE_ussubuha3; ena[189] = HAVE_ussubv4uqq3; ena[190] = HAVE_ussubv2uhq3; ena[191] = HAVE_ussubv2uha3; ena[192] = HAVE_mulsi3; ena[193] = HAVE_muldi3; ena[194] = HAVE_mulsf3; ena[195] = HAVE_muldf3; ena[196] = HAVE_mulv2hi3; ena[197] = HAVE_mulv4hi3; ena[198] = HAVE_mulv16qi3; ena[199] = HAVE_mulv8hi3; ena[200] = HAVE_mulv4si3; ena[201] = HAVE_mulv2di3; ena[202] = HAVE_mulv2sf3; ena[203] = HAVE_mulv4sf3; ena[204] = HAVE_mulv2df3; ena[205] = HAVE_ssmulhq3; ena[206] = HAVE_ssmulsq3; ena[207] = HAVE_ssmulv2hq3; ena[208] = HAVE_divsi3; ena[209] = HAVE_divdi3; ena[210] = HAVE_divsf3; ena[211] = HAVE_divdf3; ena[212] = HAVE_divv16qi3; ena[213] = HAVE_divv8hi3; ena[214] = HAVE_divv4si3; ena[215] = HAVE_divv2di3; ena[216] = HAVE_divv2sf3; ena[217] = HAVE_divv4sf3; ena[218] = HAVE_divv2df3; ena[219] = HAVE_udivsi3; ena[220] = HAVE_udivdi3; ena[221] = HAVE_udivv16qi3; ena[222] = HAVE_udivv8hi3; ena[223] = HAVE_udivv4si3; ena[224] = HAVE_udivv2di3; ena[225] = HAVE_divmodsi4; ena[226] = HAVE_divmoddi4; ena[227] = HAVE_udivmodsi4; ena[228] = HAVE_udivmoddi4; ena[229] = HAVE_modsi3; ena[230] = HAVE_moddi3; ena[231] = HAVE_modv16qi3; ena[232] = HAVE_modv8hi3; ena[233] = HAVE_modv4si3; ena[234] = HAVE_modv2di3; ena[235] = HAVE_umodsi3; ena[236] = HAVE_umoddi3; ena[237] = HAVE_umodv16qi3; ena[238] = HAVE_umodv8hi3; ena[239] = HAVE_umodv4si3; ena[240] = HAVE_umodv2di3; ena[241] = HAVE_andsi3; ena[242] = HAVE_anddi3; ena[243] = HAVE_andv8qi3; ena[244] = HAVE_andv4hi3; ena[245] = HAVE_andv2si3; ena[246] = HAVE_andv16qi3; ena[247] = HAVE_andv8hi3; ena[248] = HAVE_andv4si3; ena[249] = HAVE_andv2di3; ena[250] = HAVE_iorsi3; ena[251] = HAVE_iordi3; ena[252] = HAVE_iorv8qi3; ena[253] = HAVE_iorv4hi3; ena[254] = HAVE_iorv2si3; ena[255] = HAVE_iorv16qi3; ena[256] = HAVE_iorv8hi3; ena[257] = HAVE_iorv4si3; ena[258] = HAVE_iorv2di3; ena[259] = HAVE_xorsi3; ena[260] = HAVE_xordi3; ena[261] = HAVE_xorv8qi3; ena[262] = HAVE_xorv4hi3; ena[263] = HAVE_xorv2si3; ena[264] = HAVE_xorv16qi3; ena[265] = HAVE_xorv8hi3; ena[266] = HAVE_xorv4si3; ena[267] = HAVE_xorv2di3; ena[268] = HAVE_ashlsi3; ena[269] = HAVE_ashldi3; ena[270] = HAVE_ashlv4hi3; ena[271] = HAVE_ashlv2si3; ena[272] = HAVE_ashrsi3; ena[273] = HAVE_ashrdi3; ena[274] = HAVE_ashrv4hi3; ena[275] = HAVE_ashrv2si3; ena[276] = HAVE_lshrsi3; ena[277] = HAVE_lshrdi3; ena[278] = HAVE_lshrv4hi3; ena[279] = HAVE_lshrv2si3; ena[280] = HAVE_rotrsi3; ena[281] = HAVE_rotrdi3; ena[282] = HAVE_vashlv16qi3; ena[283] = HAVE_vashlv8hi3; ena[284] = HAVE_vashlv4si3; ena[285] = HAVE_vashlv2di3; ena[286] = HAVE_vashrv16qi3; ena[287] = HAVE_vashrv8hi3; ena[288] = HAVE_vashrv4si3; ena[289] = HAVE_vashrv2di3; ena[290] = HAVE_vlshrv16qi3; ena[291] = HAVE_vlshrv8hi3; ena[292] = HAVE_vlshrv4si3; ena[293] = HAVE_vlshrv2di3; ena[294] = HAVE_sminv8qi3; ena[295] = HAVE_sminv4hi3; ena[296] = HAVE_sminv2si3; ena[297] = HAVE_sminv16qi3; ena[298] = HAVE_sminv8hi3; ena[299] = HAVE_sminv4si3; ena[300] = HAVE_sminv2di3; ena[301] = HAVE_sminv2sf3; ena[302] = HAVE_sminv4sf3; ena[303] = HAVE_sminv2df3; ena[304] = HAVE_smaxv8qi3; ena[305] = HAVE_smaxv4hi3; ena[306] = HAVE_smaxv2si3; ena[307] = HAVE_smaxv16qi3; ena[308] = HAVE_smaxv8hi3; ena[309] = HAVE_smaxv4si3; ena[310] = HAVE_smaxv2di3; ena[311] = HAVE_smaxv2sf3; ena[312] = HAVE_smaxv4sf3; ena[313] = HAVE_smaxv2df3; ena[314] = HAVE_uminv8qi3; ena[315] = HAVE_uminv16qi3; ena[316] = HAVE_uminv8hi3; ena[317] = HAVE_uminv4si3; ena[318] = HAVE_uminv2di3; ena[319] = HAVE_umaxv8qi3; ena[320] = HAVE_umaxv16qi3; ena[321] = HAVE_umaxv8hi3; ena[322] = HAVE_umaxv4si3; ena[323] = HAVE_umaxv2di3; ena[324] = HAVE_negsi2; ena[325] = HAVE_negdi2; ena[326] = HAVE_negsf2; ena[327] = HAVE_negdf2; ena[328] = HAVE_negv16qi2; ena[329] = HAVE_negv8hi2; ena[330] = HAVE_negv4si2; ena[331] = HAVE_negv2di2; ena[332] = HAVE_negv2sf2; ena[333] = HAVE_negv4sf2; ena[334] = HAVE_negv2df2; ena[335] = HAVE_abssf2; ena[336] = HAVE_absdf2; ena[337] = HAVE_absv16qi2; ena[338] = HAVE_absv8hi2; ena[339] = HAVE_absv4si2; ena[340] = HAVE_absv2di2; ena[341] = HAVE_absv2sf2; ena[342] = HAVE_one_cmplsi2; ena[343] = HAVE_one_cmpldi2; ena[344] = HAVE_one_cmplv8qi2; ena[345] = HAVE_one_cmplv4hi2; ena[346] = HAVE_one_cmplv2si2; ena[347] = HAVE_one_cmplv16qi2; ena[348] = HAVE_one_cmplv8hi2; ena[349] = HAVE_one_cmplv4si2; ena[350] = HAVE_one_cmplv2di2; ena[351] = HAVE_bswaphi2; ena[352] = HAVE_bswapsi2; ena[353] = HAVE_bswapdi2; ena[354] = HAVE_clzsi2; ena[355] = HAVE_clzdi2; ena[356] = HAVE_clzv16qi2; ena[357] = HAVE_clzv8hi2; ena[358] = HAVE_clzv4si2; ena[359] = HAVE_clzv2di2; ena[360] = HAVE_popcountsi2; ena[361] = HAVE_popcountdi2; ena[362] = HAVE_popcountv16qi2; ena[363] = HAVE_popcountv8hi2; ena[364] = HAVE_popcountv4si2; ena[365] = HAVE_popcountv2di2; ena[366] = HAVE_sqrtsf2; ena[367] = HAVE_sqrtdf2; ena[368] = HAVE_sqrtv2sf2; ena[369] = HAVE_sqrtv4sf2; ena[370] = HAVE_sqrtv2df2; ena[371] = HAVE_sync_old_addqi; ena[372] = HAVE_sync_old_addhi; ena[373] = HAVE_sync_old_addsi; ena[374] = HAVE_sync_old_adddi; ena[375] = HAVE_sync_old_subqi; ena[376] = HAVE_sync_old_subhi; ena[377] = HAVE_sync_old_subsi; ena[378] = HAVE_sync_old_subdi; ena[379] = HAVE_sync_old_iorqi; ena[380] = HAVE_sync_old_iorhi; ena[381] = HAVE_sync_old_iorsi; ena[382] = HAVE_sync_old_iordi; ena[383] = HAVE_sync_old_andqi; ena[384] = HAVE_sync_old_andhi; ena[385] = HAVE_sync_old_andsi; ena[386] = HAVE_sync_old_anddi; ena[387] = HAVE_sync_old_xorqi; ena[388] = HAVE_sync_old_xorhi; ena[389] = HAVE_sync_old_xorsi; ena[390] = HAVE_sync_old_xordi; ena[391] = HAVE_sync_old_nandqi; ena[392] = HAVE_sync_old_nandhi; ena[393] = HAVE_sync_old_nandsi; ena[394] = HAVE_sync_old_nanddi; ena[395] = HAVE_sync_new_addqi; ena[396] = HAVE_sync_new_addhi; ena[397] = HAVE_sync_new_addsi; ena[398] = HAVE_sync_new_adddi; ena[399] = HAVE_sync_new_subqi; ena[400] = HAVE_sync_new_subhi; ena[401] = HAVE_sync_new_subsi; ena[402] = HAVE_sync_new_subdi; ena[403] = HAVE_sync_new_iorqi; ena[404] = HAVE_sync_new_iorhi; ena[405] = HAVE_sync_new_iorsi; ena[406] = HAVE_sync_new_iordi; ena[407] = HAVE_sync_new_andqi; ena[408] = HAVE_sync_new_andhi; ena[409] = HAVE_sync_new_andsi; ena[410] = HAVE_sync_new_anddi; ena[411] = HAVE_sync_new_xorqi; ena[412] = HAVE_sync_new_xorhi; ena[413] = HAVE_sync_new_xorsi; ena[414] = HAVE_sync_new_xordi; ena[415] = HAVE_sync_new_nandqi; ena[416] = HAVE_sync_new_nandhi; ena[417] = HAVE_sync_new_nandsi; ena[418] = HAVE_sync_new_nanddi; ena[419] = HAVE_sync_compare_and_swapqi; ena[420] = HAVE_sync_compare_and_swaphi; ena[421] = HAVE_sync_compare_and_swapsi; ena[422] = HAVE_sync_compare_and_swapdi; ena[423] = HAVE_sync_lock_test_and_setqi; ena[424] = HAVE_sync_lock_test_and_sethi; ena[425] = HAVE_sync_lock_test_and_setsi; ena[426] = HAVE_sync_lock_test_and_setdi; ena[427] = HAVE_movccf; ena[428] = HAVE_movqi; ena[429] = HAVE_movhi; ena[430] = HAVE_movsi; ena[431] = HAVE_movdi; ena[432] = HAVE_movti; ena[433] = HAVE_movsf; ena[434] = HAVE_movdf; ena[435] = HAVE_movtf; ena[436] = HAVE_movv4qi; ena[437] = HAVE_movv2hi; ena[438] = HAVE_movv8qi; ena[439] = HAVE_movv4hi; ena[440] = HAVE_movv2si; ena[441] = HAVE_movv16qi; ena[442] = HAVE_movv8hi; ena[443] = HAVE_movv4si; ena[444] = HAVE_movv2di; ena[445] = HAVE_movv4qq; ena[446] = HAVE_movv2hq; ena[447] = HAVE_movv4uqq; ena[448] = HAVE_movv2uhq; ena[449] = HAVE_movv2ha; ena[450] = HAVE_movv2uha; ena[451] = HAVE_movv2sf; ena[452] = HAVE_movv4sf; ena[453] = HAVE_movv2df; ena[454] = HAVE_movmisalignv16qi; ena[455] = HAVE_movmisalignv8hi; ena[456] = HAVE_movmisalignv4si; ena[457] = HAVE_movmisalignv2di; ena[458] = HAVE_movmisalignv4sf; ena[459] = HAVE_movmisalignv2df; ena[460] = HAVE_insvsi; ena[461] = HAVE_insvdi; ena[462] = HAVE_extvsi; ena[463] = HAVE_extvdi; ena[464] = HAVE_extzvsi; ena[465] = HAVE_extzvdi; ena[466] = HAVE_insvmisalignsi; ena[467] = HAVE_insvmisaligndi; ena[468] = HAVE_extvmisalignsi; ena[469] = HAVE_extvmisaligndi; ena[470] = HAVE_extzvmisalignsi; ena[471] = HAVE_extzvmisaligndi; ena[472] = HAVE_cbranchsi4; ena[473] = HAVE_cbranchdi4; ena[474] = HAVE_cbranchsf4; ena[475] = HAVE_cbranchdf4; ena[476] = HAVE_movsicc; ena[477] = HAVE_movdicc; ena[478] = HAVE_movsfcc; ena[479] = HAVE_movdfcc; ena[480] = HAVE_movv2sfcc; ena[481] = HAVE_cstoresi4; ena[482] = HAVE_cstoredi4; ena[483] = HAVE_ctrapsi4; ena[484] = HAVE_ctrapdi4; ena[485] = HAVE_smulsi3_highpart; ena[486] = HAVE_smuldi3_highpart; ena[487] = HAVE_smulv4hi3_highpart; ena[488] = HAVE_umulsi3_highpart; ena[489] = HAVE_umuldi3_highpart; ena[490] = HAVE_umulv4hi3_highpart; ena[491] = HAVE_movmemsi; ena[492] = HAVE_fmasf4; ena[493] = HAVE_fmadf4; ena[494] = HAVE_fmav2sf4; ena[495] = HAVE_fmav4sf4; ena[496] = HAVE_fmav2df4; ena[497] = HAVE_fmssf4; ena[498] = HAVE_fmsdf4; ena[499] = HAVE_fmsv2sf4; ena[500] = HAVE_fnmasf4; ena[501] = HAVE_fnmadf4; ena[502] = HAVE_fnmav2sf4; ena[503] = HAVE_fnmav4sf4; ena[504] = HAVE_fnmav2df4; ena[505] = HAVE_fnmssf4; ena[506] = HAVE_fnmsdf4; ena[507] = HAVE_fnmsv2sf4; ena[508] = HAVE_reduc_smax_scal_v8qi; ena[509] = HAVE_reduc_smax_scal_v4hi; ena[510] = HAVE_reduc_smax_scal_v2si; ena[511] = HAVE_reduc_smax_scal_v2sf; ena[512] = HAVE_reduc_smin_scal_v8qi; ena[513] = HAVE_reduc_smin_scal_v4hi; ena[514] = HAVE_reduc_smin_scal_v2si; ena[515] = HAVE_reduc_smin_scal_v2sf; ena[516] = HAVE_reduc_plus_scal_v8qi; ena[517] = HAVE_reduc_plus_scal_v4hi; ena[518] = HAVE_reduc_plus_scal_v2si; ena[519] = HAVE_reduc_plus_scal_v2sf; ena[520] = HAVE_reduc_umax_scal_v8qi; ena[521] = HAVE_reduc_umin_scal_v8qi; ena[522] = HAVE_sdot_prodv4hi; ena[523] = HAVE_vec_extractv16qi; ena[524] = HAVE_vec_extractv8hi; ena[525] = HAVE_vec_extractv4si; ena[526] = HAVE_vec_extractv2di; ena[527] = HAVE_vec_extractv2sf; ena[528] = HAVE_vec_extractv4sf; ena[529] = HAVE_vec_extractv2df; ena[530] = HAVE_vec_initv8qi; ena[531] = HAVE_vec_initv4hi; ena[532] = HAVE_vec_initv2si; ena[533] = HAVE_vec_initv16qi; ena[534] = HAVE_vec_initv8hi; ena[535] = HAVE_vec_initv4si; ena[536] = HAVE_vec_initv2di; ena[537] = HAVE_vec_initv2sf; ena[538] = HAVE_vec_initv4sf; ena[539] = HAVE_vec_initv2df; ena[540] = HAVE_vec_pack_ssat_v4hi; ena[541] = HAVE_vec_pack_ssat_v2si; ena[542] = HAVE_vec_pack_trunc_v8hi; ena[543] = HAVE_vec_pack_trunc_v4si; ena[544] = HAVE_vec_pack_trunc_v2di; ena[545] = HAVE_vec_pack_trunc_v2df; ena[546] = HAVE_vec_pack_usat_v4hi; ena[547] = HAVE_vec_perm_constv8qi; ena[548] = HAVE_vec_perm_constv4hi; ena[549] = HAVE_vec_perm_constv2si; ena[550] = HAVE_vec_perm_constv16qi; ena[551] = HAVE_vec_perm_constv8hi; ena[552] = HAVE_vec_perm_constv4si; ena[553] = HAVE_vec_perm_constv2di; ena[554] = HAVE_vec_perm_constv2sf; ena[555] = HAVE_vec_perm_constv4sf; ena[556] = HAVE_vec_perm_constv2df; ena[557] = HAVE_vec_permv16qi; ena[558] = HAVE_vec_permv8hi; ena[559] = HAVE_vec_permv4si; ena[560] = HAVE_vec_permv2di; ena[561] = HAVE_vec_permv4sf; ena[562] = HAVE_vec_permv2df; ena[563] = HAVE_vec_setv4hi; ena[564] = HAVE_vec_setv16qi; ena[565] = HAVE_vec_setv8hi; ena[566] = HAVE_vec_setv4si; ena[567] = HAVE_vec_setv2di; ena[568] = HAVE_vec_setv2sf; ena[569] = HAVE_vec_setv4sf; ena[570] = HAVE_vec_setv2df; ena[571] = HAVE_vec_shr_di; ena[572] = HAVE_vec_shr_v8qi; ena[573] = HAVE_vec_shr_v4hi; ena[574] = HAVE_vec_shr_v2si; ena[575] = HAVE_vec_unpacks_hi_v8qi; ena[576] = HAVE_vec_unpacks_hi_v4hi; ena[577] = HAVE_vec_unpacks_hi_v16qi; ena[578] = HAVE_vec_unpacks_hi_v8hi; ena[579] = HAVE_vec_unpacks_hi_v4si; ena[580] = HAVE_vec_unpacks_hi_v4sf; ena[581] = HAVE_vec_unpacks_lo_v8qi; ena[582] = HAVE_vec_unpacks_lo_v4hi; ena[583] = HAVE_vec_unpacks_lo_v16qi; ena[584] = HAVE_vec_unpacks_lo_v8hi; ena[585] = HAVE_vec_unpacks_lo_v4si; ena[586] = HAVE_vec_unpacks_lo_v4sf; ena[587] = HAVE_vec_unpacku_hi_v8qi; ena[588] = HAVE_vec_unpacku_hi_v4hi; ena[589] = HAVE_vec_unpacku_hi_v16qi; ena[590] = HAVE_vec_unpacku_hi_v8hi; ena[591] = HAVE_vec_unpacku_hi_v4si; ena[592] = HAVE_vec_unpacku_lo_v8qi; ena[593] = HAVE_vec_unpacku_lo_v4hi; ena[594] = HAVE_vec_unpacku_lo_v16qi; ena[595] = HAVE_vec_unpacku_lo_v8hi; ena[596] = HAVE_vec_unpacku_lo_v4si; ena[597] = HAVE_sync_addqi; ena[598] = HAVE_sync_addhi; ena[599] = HAVE_sync_addsi; ena[600] = HAVE_sync_adddi; ena[601] = HAVE_sync_andqi; ena[602] = HAVE_sync_andhi; ena[603] = HAVE_sync_andsi; ena[604] = HAVE_sync_anddi; ena[605] = HAVE_sync_iorqi; ena[606] = HAVE_sync_iorhi; ena[607] = HAVE_sync_iorsi; ena[608] = HAVE_sync_iordi; ena[609] = HAVE_sync_nandqi; ena[610] = HAVE_sync_nandhi; ena[611] = HAVE_sync_nandsi; ena[612] = HAVE_sync_nanddi; ena[613] = HAVE_sync_subqi; ena[614] = HAVE_sync_subhi; ena[615] = HAVE_sync_subsi; ena[616] = HAVE_sync_subdi; ena[617] = HAVE_sync_xorqi; ena[618] = HAVE_sync_xorhi; ena[619] = HAVE_sync_xorsi; ena[620] = HAVE_sync_xordi; ena[621] = HAVE_atomic_compare_and_swapsi; ena[622] = HAVE_atomic_compare_and_swapdi; ena[623] = HAVE_atomic_exchangesi; ena[624] = HAVE_atomic_exchangedi; ena[625] = HAVE_atomic_fetch_addsi; ena[626] = HAVE_atomic_fetch_adddi; ena[627] = HAVE_get_thread_pointersi; ena[628] = HAVE_get_thread_pointerdi; } static int lookup_handler (unsigned scode) { int l = 0, h = ARRAY_SIZE (pats), m; while (h > l) { m = (h + l) / 2; if (scode == pats[m].scode) return m; else if (scode < pats[m].scode) h = m; else l = m + 1; } return -1; } enum insn_code raw_optab_handler (unsigned scode) { int i = lookup_handler (scode); return (i >= 0 && this_fn_optabs->pat_enable[i] ? pats[i].icode : CODE_FOR_nothing); } bool swap_optab_enable (optab op, machine_mode m, bool set) { unsigned scode = (op << 16) | m; int i = lookup_handler (scode); if (i >= 0) { bool ret = this_fn_optabs->pat_enable[i]; this_fn_optabs->pat_enable[i] = set; return ret; } else { gcc_assert (!set); return false; } } const struct convert_optab_libcall_d convlib_def[NUM_CONVLIB_OPTABS] = { { "extend", gen_extend_conv_libfunc }, { "trunc", gen_trunc_conv_libfunc }, { NULL, NULL }, { "fix", gen_fp_to_int_conv_libfunc }, { "fixuns", gen_fp_to_int_conv_libfunc }, { "float", gen_int_to_fp_conv_libfunc }, { NULL, gen_ufloat_conv_libfunc }, { "lrint", gen_int_to_fp_nondecimal_conv_libfunc }, { "lround", gen_int_to_fp_nondecimal_conv_libfunc }, { "lfloor", gen_int_to_fp_nondecimal_conv_libfunc }, { "lceil", gen_int_to_fp_nondecimal_conv_libfunc }, { "fract", gen_fract_conv_libfunc }, { "fractuns", gen_fractuns_conv_libfunc }, { "satfract", gen_satfract_conv_libfunc }, { "satfractuns", gen_satfractuns_conv_libfunc }, }; const struct optab_libcall_d normlib_def[NUM_NORMLIB_OPTABS] = { { '3', "add", gen_int_fp_fixed_libfunc }, { '3', "add", gen_intv_fp_libfunc }, { '3', "ssadd", gen_signed_fixed_libfunc }, { '3', "usadd", gen_unsigned_fixed_libfunc }, { '3', "sub", gen_int_fp_fixed_libfunc }, { '3', "sub", gen_intv_fp_libfunc }, { '3', "sssub", gen_signed_fixed_libfunc }, { '3', "ussub", gen_unsigned_fixed_libfunc }, { '3', "mul", gen_int_fp_fixed_libfunc }, { '3', "mul", gen_intv_fp_libfunc }, { '3', "ssmul", gen_signed_fixed_libfunc }, { '3', "usmul", gen_unsigned_fixed_libfunc }, { '3', "div", gen_int_fp_signed_fixed_libfunc }, { '3', "divv", gen_int_libfunc }, { '3', "ssdiv", gen_signed_fixed_libfunc }, { '3', "udiv", gen_int_unsigned_fixed_libfunc }, { '3', "usdiv", gen_unsigned_fixed_libfunc }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '3', "mod", gen_int_libfunc }, { '3', "umod", gen_int_libfunc }, { '2', "ftrunc", gen_fp_libfunc }, { '3', "and", gen_int_libfunc }, { '3', "ior", gen_int_libfunc }, { '3', "xor", gen_int_libfunc }, { '3', "ashl", gen_int_fixed_libfunc }, { '3', "ssashl", gen_signed_fixed_libfunc }, { '3', "usashl", gen_unsigned_fixed_libfunc }, { '3', "ashr", gen_int_signed_fixed_libfunc }, { '3', "lshr", gen_int_unsigned_fixed_libfunc }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '3', "min", gen_int_fp_libfunc }, { '3', "max", gen_int_fp_libfunc }, { '3', "umin", gen_int_libfunc }, { '3', "umax", gen_int_libfunc }, { '2', "neg", gen_int_fp_fixed_libfunc }, { '2', "neg", gen_intv_fp_libfunc }, { '2', "ssneg", gen_signed_fixed_libfunc }, { '2', "usneg", gen_unsigned_fixed_libfunc }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '2', "one_cmpl", gen_int_libfunc }, { '\0', NULL, NULL }, { '2', "ffs", gen_int_libfunc }, { '2', "clz", gen_int_libfunc }, { '2', "ctz", gen_int_libfunc }, { '2', "clrsb", gen_int_libfunc }, { '2', "popcount", gen_int_libfunc }, { '2', "parity", gen_int_libfunc }, { '2', "cmp", gen_int_fp_fixed_libfunc }, { '2', "ucmp", gen_int_libfunc }, { '2', "eq", gen_fp_libfunc }, { '2', "ne", gen_fp_libfunc }, { '2', "gt", gen_fp_libfunc }, { '2', "ge", gen_fp_libfunc }, { '2', "lt", gen_fp_libfunc }, { '2', "le", gen_fp_libfunc }, { '2', "unord", gen_fp_libfunc }, { '2', "powi", gen_fp_libfunc }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, { '\0', NULL, NULL }, }; enum rtx_code const optab_to_code_[NUM_OPTABS] = { UNKNOWN, SIGN_EXTEND, TRUNCATE, ZERO_EXTEND, FIX, UNSIGNED_FIX, FLOAT, UNSIGNED_FLOAT, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, FRACT_CONVERT, UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, PLUS, PLUS, SS_PLUS, US_PLUS, MINUS, MINUS, SS_MINUS, US_MINUS, MULT, MULT, SS_MULT, US_MULT, DIV, DIV, SS_DIV, UDIV, US_DIV, UNKNOWN, UNKNOWN, MOD, UMOD, UNKNOWN, AND, IOR, XOR, ASHIFT, SS_ASHIFT, US_ASHIFT, ASHIFTRT, LSHIFTRT, ROTATE, ROTATERT, ASHIFT, ASHIFTRT, LSHIFTRT, ROTATE, ROTATERT, SMIN, SMAX, UMIN, UMAX, NEG, NEG, SS_NEG, US_NEG, ABS, ABS, NOT, BSWAP, FFS, CLZ, CTZ, CLRSB, POPCOUNT, PARITY, UNKNOWN, UNKNOWN, EQ, NE, GT, GE, LT, LE, UNORDERED, UNKNOWN, SQRT, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, SET, STRICT_LOW_PART, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, COMPARE, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, FMA, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, }; const optab code_to_optab_[NUM_RTX_CODE] = { unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, mov_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, movstrict_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, cbranch_optab, add_optab, sub_optab, neg_optab, smul_optab, ssmul_optab, usmul_optab, sdiv_optab, ssdiv_optab, usdiv_optab, smod_optab, udiv_optab, umod_optab, and_optab, ior_optab, xor_optab, one_cmpl_optab, ashl_optab, rotl_optab, ashr_optab, lshr_optab, rotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, ne_optab, eq_optab, ge_optab, gt_optab, le_optab, lt_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unord_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, abs_optab, sqrt_optab, bswap_optab, ffs_optab, clrsb_optab, clz_optab, ctz_optab, popcount_optab, parity_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, ssadd_optab, usadd_optab, sssub_optab, ssneg_optab, usneg_optab, unknown_optab, ssashl_optab, usashl_optab, ussub_optab, unknown_optab, unknown_optab, fma_optab, unknown_optab, unknown_optab, unknown_optab, unknown_optab, };