/* 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 "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] = {
  { 0x010a0b, CODE_FOR_extendqihi2 },
  { 0x010a0c, CODE_FOR_extendqisi2 },
  { 0x010a0d, CODE_FOR_extendqidi2 },
  { 0x010b0c, CODE_FOR_extendhisi2 },
  { 0x010b0d, CODE_FOR_extendhidi2 },
  { 0x010c0d, CODE_FOR_extendsidi2 },
  { 0x012425, CODE_FOR_extendhfsf2 },
  { 0x012426, CODE_FOR_extendhfdf2 },
  { 0x012526, CODE_FOR_extendsfdf2 },
  { 0x022524, CODE_FOR_truncsfhf2 },
  { 0x022624, CODE_FOR_truncdfhf2 },
  { 0x022625, CODE_FOR_truncdfsf2 },
  { 0x030a0b, CODE_FOR_zero_extendqihi2 },
  { 0x030a0c, CODE_FOR_zero_extendqisi2 },
  { 0x030a0d, CODE_FOR_zero_extendqidi2 },
  { 0x030b0c, CODE_FOR_zero_extendhisi2 },
  { 0x030b0d, CODE_FOR_zero_extendhidi2 },
  { 0x030c0d, CODE_FOR_zero_extendsidi2 },
  { 0x044e38, CODE_FOR_fixv4hfv4hi2 },
  { 0x044f39, CODE_FOR_fixv2sfv2si2 },
  { 0x04513b, CODE_FOR_fixv8hfv8hi2 },
  { 0x04523c, CODE_FOR_fixv4sfv4si2 },
  { 0x04533d, CODE_FOR_fixv2dfv2di2 },
  { 0x054e38, CODE_FOR_fixunsv4hfv4hi2 },
  { 0x054f39, CODE_FOR_fixunsv2sfv2si2 },
  { 0x05513b, CODE_FOR_fixunsv8hfv8hi2 },
  { 0x05523c, CODE_FOR_fixunsv4sfv4si2 },
  { 0x05533d, CODE_FOR_fixunsv2dfv2di2 },
  { 0x060b24, CODE_FOR_floathihf2 },
  { 0x060c24, CODE_FOR_floatsihf2 },
  { 0x060c25, CODE_FOR_floatsisf2 },
  { 0x060c26, CODE_FOR_floatsidf2 },
  { 0x060d24, CODE_FOR_floatdihf2 },
  { 0x060d25, CODE_FOR_floatdisf2 },
  { 0x060d26, CODE_FOR_floatdidf2 },
  { 0x06384e, CODE_FOR_floatv4hiv4hf2 },
  { 0x06394f, CODE_FOR_floatv2siv2sf2 },
  { 0x063b51, CODE_FOR_floatv8hiv8hf2 },
  { 0x063c52, CODE_FOR_floatv4siv4sf2 },
  { 0x063d53, CODE_FOR_floatv2div2df2 },
  { 0x070b24, CODE_FOR_floatunshihf2 },
  { 0x070c24, CODE_FOR_floatunssihf2 },
  { 0x070c25, CODE_FOR_floatunssisf2 },
  { 0x070c26, CODE_FOR_floatunssidf2 },
  { 0x070d24, CODE_FOR_floatunsdihf2 },
  { 0x070d25, CODE_FOR_floatunsdisf2 },
  { 0x070d26, CODE_FOR_floatunsdidf2 },
  { 0x07384e, CODE_FOR_floatunsv4hiv4hf2 },
  { 0x07394f, CODE_FOR_floatunsv2siv2sf2 },
  { 0x073b51, CODE_FOR_floatunsv8hiv8hf2 },
  { 0x073c52, CODE_FOR_floatunsv4siv4sf2 },
  { 0x073d53, CODE_FOR_floatunsv2div2df2 },
  { 0x09240b, CODE_FOR_lroundhfhi2 },
  { 0x09240c, CODE_FOR_lroundhfsi2 },
  { 0x09240d, CODE_FOR_lroundhfdi2 },
  { 0x09250c, CODE_FOR_lroundsfsi2 },
  { 0x09250d, CODE_FOR_lroundsfdi2 },
  { 0x09260c, CODE_FOR_lrounddfsi2 },
  { 0x09260d, CODE_FOR_lrounddfdi2 },
  { 0x094e38, CODE_FOR_lroundv4hfv4hi2 },
  { 0x094f39, CODE_FOR_lroundv2sfv2si2 },
  { 0x09513b, CODE_FOR_lroundv8hfv8hi2 },
  { 0x09523c, CODE_FOR_lroundv4sfv4si2 },
  { 0x09533d, CODE_FOR_lroundv2dfv2di2 },
  { 0x0a240b, CODE_FOR_lfloorhfhi2 },
  { 0x0a240c, CODE_FOR_lfloorhfsi2 },
  { 0x0a240d, CODE_FOR_lfloorhfdi2 },
  { 0x0a250c, CODE_FOR_lfloorsfsi2 },
  { 0x0a250d, CODE_FOR_lfloorsfdi2 },
  { 0x0a260c, CODE_FOR_lfloordfsi2 },
  { 0x0a260d, CODE_FOR_lfloordfdi2 },
  { 0x0a4e38, CODE_FOR_lfloorv4hfv4hi2 },
  { 0x0a4f39, CODE_FOR_lfloorv2sfv2si2 },
  { 0x0a513b, CODE_FOR_lfloorv8hfv8hi2 },
  { 0x0a523c, CODE_FOR_lfloorv4sfv4si2 },
  { 0x0a533d, CODE_FOR_lfloorv2dfv2di2 },
  { 0x0b240b, CODE_FOR_lceilhfhi2 },
  { 0x0b240c, CODE_FOR_lceilhfsi2 },
  { 0x0b240d, CODE_FOR_lceilhfdi2 },
  { 0x0b250c, CODE_FOR_lceilsfsi2 },
  { 0x0b250d, CODE_FOR_lceilsfdi2 },
  { 0x0b260c, CODE_FOR_lceildfsi2 },
  { 0x0b260d, CODE_FOR_lceildfdi2 },
  { 0x0b4e38, CODE_FOR_lceilv4hfv4hi2 },
  { 0x0b4f39, CODE_FOR_lceilv2sfv2si2 },
  { 0x0b513b, CODE_FOR_lceilv8hfv8hi2 },
  { 0x0b523c, CODE_FOR_lceilv4sfv4si2 },
  { 0x0b533d, CODE_FOR_lceilv2dfv2di2 },
  { 0x10240b, CODE_FOR_fix_trunchfhi2 },
  { 0x10240c, CODE_FOR_fix_trunchfsi2 },
  { 0x10240d, CODE_FOR_fix_trunchfdi2 },
  { 0x10250c, CODE_FOR_fix_truncsfsi2 },
  { 0x10250d, CODE_FOR_fix_truncsfdi2 },
  { 0x10260c, CODE_FOR_fix_truncdfsi2 },
  { 0x10260d, CODE_FOR_fix_truncdfdi2 },
  { 0x104e38, CODE_FOR_fix_truncv4hfv4hi2 },
  { 0x104f39, CODE_FOR_fix_truncv2sfv2si2 },
  { 0x10513b, CODE_FOR_fix_truncv8hfv8hi2 },
  { 0x10523c, CODE_FOR_fix_truncv4sfv4si2 },
  { 0x10533d, CODE_FOR_fix_truncv2dfv2di2 },
  { 0x11240b, CODE_FOR_fixuns_trunchfhi2 },
  { 0x11240c, CODE_FOR_fixuns_trunchfsi2 },
  { 0x11240d, CODE_FOR_fixuns_trunchfdi2 },
  { 0x11250c, CODE_FOR_fixuns_truncsfsi2 },
  { 0x11250d, CODE_FOR_fixuns_truncsfdi2 },
  { 0x11260c, CODE_FOR_fixuns_truncdfsi2 },
  { 0x11260d, CODE_FOR_fixuns_truncdfdi2 },
  { 0x114e38, CODE_FOR_fixuns_truncv4hfv4hi2 },
  { 0x114f39, CODE_FOR_fixuns_truncv2sfv2si2 },
  { 0x11513b, CODE_FOR_fixuns_truncv8hfv8hi2 },
  { 0x11523c, CODE_FOR_fixuns_truncv4sfv4si2 },
  { 0x11533d, CODE_FOR_fixuns_truncv2dfv2di2 },
  { 0x120c0d, CODE_FOR_mulsidi3 },
  { 0x120d0e, CODE_FOR_mulditi3 },
  { 0x130c0d, CODE_FOR_umulsidi3 },
  { 0x130d0e, CODE_FOR_umulditi3 },
  { 0x150c0d, CODE_FOR_maddsidi4 },
  { 0x160c0d, CODE_FOR_umaddsidi4 },
  { 0x190c0d, CODE_FOR_msubsidi4 },
  { 0x1a0c0d, CODE_FOR_umsubsidi4 },
  { 0x1d3a0f, CODE_FOR_vec_load_lanesoiv16qi },
  { 0x1d3a10, CODE_FOR_vec_load_lanesciv16qi },
  { 0x1d3a11, CODE_FOR_vec_load_lanesxiv16qi },
  { 0x1d3b0f, CODE_FOR_vec_load_lanesoiv8hi },
  { 0x1d3b10, CODE_FOR_vec_load_lanesciv8hi },
  { 0x1d3b11, CODE_FOR_vec_load_lanesxiv8hi },
  { 0x1d3c0f, CODE_FOR_vec_load_lanesoiv4si },
  { 0x1d3c10, CODE_FOR_vec_load_lanesciv4si },
  { 0x1d3c11, CODE_FOR_vec_load_lanesxiv4si },
  { 0x1d3d0f, CODE_FOR_vec_load_lanesoiv2di },
  { 0x1d3d10, CODE_FOR_vec_load_lanesciv2di },
  { 0x1d3d11, CODE_FOR_vec_load_lanesxiv2di },
  { 0x1d510f, CODE_FOR_vec_load_lanesoiv8hf },
  { 0x1d5110, CODE_FOR_vec_load_lanesciv8hf },
  { 0x1d5111, CODE_FOR_vec_load_lanesxiv8hf },
  { 0x1d520f, CODE_FOR_vec_load_lanesoiv4sf },
  { 0x1d5210, CODE_FOR_vec_load_lanesciv4sf },
  { 0x1d5211, CODE_FOR_vec_load_lanesxiv4sf },
  { 0x1d530f, CODE_FOR_vec_load_lanesoiv2df },
  { 0x1d5310, CODE_FOR_vec_load_lanesciv2df },
  { 0x1d5311, CODE_FOR_vec_load_lanesxiv2df },
  { 0x1e3a0f, CODE_FOR_vec_store_lanesoiv16qi },
  { 0x1e3a10, CODE_FOR_vec_store_lanesciv16qi },
  { 0x1e3a11, CODE_FOR_vec_store_lanesxiv16qi },
  { 0x1e3b0f, CODE_FOR_vec_store_lanesoiv8hi },
  { 0x1e3b10, CODE_FOR_vec_store_lanesciv8hi },
  { 0x1e3b11, CODE_FOR_vec_store_lanesxiv8hi },
  { 0x1e3c0f, CODE_FOR_vec_store_lanesoiv4si },
  { 0x1e3c10, CODE_FOR_vec_store_lanesciv4si },
  { 0x1e3c11, CODE_FOR_vec_store_lanesxiv4si },
  { 0x1e3d0f, CODE_FOR_vec_store_lanesoiv2di },
  { 0x1e3d10, CODE_FOR_vec_store_lanesciv2di },
  { 0x1e3d11, CODE_FOR_vec_store_lanesxiv2di },
  { 0x1e510f, CODE_FOR_vec_store_lanesoiv8hf },
  { 0x1e5110, CODE_FOR_vec_store_lanesciv8hf },
  { 0x1e5111, CODE_FOR_vec_store_lanesxiv8hf },
  { 0x1e520f, CODE_FOR_vec_store_lanesoiv4sf },
  { 0x1e5210, CODE_FOR_vec_store_lanesciv4sf },
  { 0x1e5211, CODE_FOR_vec_store_lanesxiv4sf },
  { 0x1e530f, CODE_FOR_vec_store_lanesoiv2df },
  { 0x1e5310, CODE_FOR_vec_store_lanesciv2df },
  { 0x1e5311, CODE_FOR_vec_store_lanesxiv2df },
  { 0x1f0d0d, CODE_FOR_vconddidi },
  { 0x1f3737, CODE_FOR_vcondv8qiv8qi },
  { 0x1f3838, CODE_FOR_vcondv4hiv4hi },
  { 0x1f3939, CODE_FOR_vcondv2siv2si },
  { 0x1f3a3a, CODE_FOR_vcondv16qiv16qi },
  { 0x1f3b3b, CODE_FOR_vcondv8hiv8hi },
  { 0x1f3c3c, CODE_FOR_vcondv4siv4si },
  { 0x1f3d3d, CODE_FOR_vcondv2div2di },
  { 0x1f4f39, CODE_FOR_vcondv2siv2sf },
  { 0x1f4f4f, CODE_FOR_vcondv2sfv2sf },
  { 0x1f523c, CODE_FOR_vcondv4siv4sf },
  { 0x1f5252, CODE_FOR_vcondv4sfv4sf },
  { 0x1f533d, CODE_FOR_vcondv2div2df },
  { 0x1f5353, CODE_FOR_vcondv2dfv2df },
  { 0x200d0d, CODE_FOR_vcondudidi },
  { 0x203737, CODE_FOR_vconduv8qiv8qi },
  { 0x203838, CODE_FOR_vconduv4hiv4hi },
  { 0x203939, CODE_FOR_vconduv2siv2si },
  { 0x203a3a, CODE_FOR_vconduv16qiv16qi },
  { 0x203b3b, CODE_FOR_vconduv8hiv8hi },
  { 0x203c3c, CODE_FOR_vconduv4siv4si },
  { 0x203d3d, CODE_FOR_vconduv2div2di },
  { 0x26000c, CODE_FOR_addsi3 },
  { 0x26000d, CODE_FOR_adddi3 },
  { 0x26000e, CODE_FOR_addti3 },
  { 0x260024, CODE_FOR_addhf3 },
  { 0x260025, CODE_FOR_addsf3 },
  { 0x260026, CODE_FOR_adddf3 },
  { 0x260037, CODE_FOR_addv8qi3 },
  { 0x260038, CODE_FOR_addv4hi3 },
  { 0x260039, CODE_FOR_addv2si3 },
  { 0x26003a, CODE_FOR_addv16qi3 },
  { 0x26003b, CODE_FOR_addv8hi3 },
  { 0x26003c, CODE_FOR_addv4si3 },
  { 0x26003d, CODE_FOR_addv2di3 },
  { 0x26004e, CODE_FOR_addv4hf3 },
  { 0x26004f, CODE_FOR_addv2sf3 },
  { 0x260051, CODE_FOR_addv8hf3 },
  { 0x260052, CODE_FOR_addv4sf3 },
  { 0x260053, CODE_FOR_addv2df3 },
  { 0x2a000c, CODE_FOR_subsi3 },
  { 0x2a000d, CODE_FOR_subdi3 },
  { 0x2a000e, CODE_FOR_subti3 },
  { 0x2a0024, CODE_FOR_subhf3 },
  { 0x2a0025, CODE_FOR_subsf3 },
  { 0x2a0026, CODE_FOR_subdf3 },
  { 0x2a0037, CODE_FOR_subv8qi3 },
  { 0x2a0038, CODE_FOR_subv4hi3 },
  { 0x2a0039, CODE_FOR_subv2si3 },
  { 0x2a003a, CODE_FOR_subv16qi3 },
  { 0x2a003b, CODE_FOR_subv8hi3 },
  { 0x2a003c, CODE_FOR_subv4si3 },
  { 0x2a003d, CODE_FOR_subv2di3 },
  { 0x2a004e, CODE_FOR_subv4hf3 },
  { 0x2a004f, CODE_FOR_subv2sf3 },
  { 0x2a0051, CODE_FOR_subv8hf3 },
  { 0x2a0052, CODE_FOR_subv4sf3 },
  { 0x2a0053, CODE_FOR_subv2df3 },
  { 0x2e000c, CODE_FOR_mulsi3 },
  { 0x2e000d, CODE_FOR_muldi3 },
  { 0x2e000e, CODE_FOR_multi3 },
  { 0x2e0024, CODE_FOR_mulhf3 },
  { 0x2e0025, CODE_FOR_mulsf3 },
  { 0x2e0026, CODE_FOR_muldf3 },
  { 0x2e0037, CODE_FOR_mulv8qi3 },
  { 0x2e0038, CODE_FOR_mulv4hi3 },
  { 0x2e0039, CODE_FOR_mulv2si3 },
  { 0x2e003a, CODE_FOR_mulv16qi3 },
  { 0x2e003b, CODE_FOR_mulv8hi3 },
  { 0x2e003c, CODE_FOR_mulv4si3 },
  { 0x2e004e, CODE_FOR_mulv4hf3 },
  { 0x2e004f, CODE_FOR_mulv2sf3 },
  { 0x2e0051, CODE_FOR_mulv8hf3 },
  { 0x2e0052, CODE_FOR_mulv4sf3 },
  { 0x2e0053, CODE_FOR_mulv2df3 },
  { 0x32000c, CODE_FOR_divsi3 },
  { 0x32000d, CODE_FOR_divdi3 },
  { 0x320024, CODE_FOR_divhf3 },
  { 0x320025, CODE_FOR_divsf3 },
  { 0x320026, CODE_FOR_divdf3 },
  { 0x32004e, CODE_FOR_divv4hf3 },
  { 0x32004f, CODE_FOR_divv2sf3 },
  { 0x320051, CODE_FOR_divv8hf3 },
  { 0x320052, CODE_FOR_divv4sf3 },
  { 0x320053, CODE_FOR_divv2df3 },
  { 0x35000c, CODE_FOR_udivsi3 },
  { 0x35000d, CODE_FOR_udivdi3 },
  { 0x39000c, CODE_FOR_modsi3 },
  { 0x39000d, CODE_FOR_moddi3 },
  { 0x3b004e, CODE_FOR_ftruncv4hf2 },
  { 0x3b004f, CODE_FOR_ftruncv2sf2 },
  { 0x3b0051, CODE_FOR_ftruncv8hf2 },
  { 0x3b0052, CODE_FOR_ftruncv4sf2 },
  { 0x3b0053, CODE_FOR_ftruncv2df2 },
  { 0x3c000c, CODE_FOR_andsi3 },
  { 0x3c000d, CODE_FOR_anddi3 },
  { 0x3c0037, CODE_FOR_andv8qi3 },
  { 0x3c0038, CODE_FOR_andv4hi3 },
  { 0x3c0039, CODE_FOR_andv2si3 },
  { 0x3c003a, CODE_FOR_andv16qi3 },
  { 0x3c003b, CODE_FOR_andv8hi3 },
  { 0x3c003c, CODE_FOR_andv4si3 },
  { 0x3c003d, CODE_FOR_andv2di3 },
  { 0x3d000c, CODE_FOR_iorsi3 },
  { 0x3d000d, CODE_FOR_iordi3 },
  { 0x3d0037, CODE_FOR_iorv8qi3 },
  { 0x3d0038, CODE_FOR_iorv4hi3 },
  { 0x3d0039, CODE_FOR_iorv2si3 },
  { 0x3d003a, CODE_FOR_iorv16qi3 },
  { 0x3d003b, CODE_FOR_iorv8hi3 },
  { 0x3d003c, CODE_FOR_iorv4si3 },
  { 0x3d003d, CODE_FOR_iorv2di3 },
  { 0x3e000c, CODE_FOR_xorsi3 },
  { 0x3e000d, CODE_FOR_xordi3 },
  { 0x3e0037, CODE_FOR_xorv8qi3 },
  { 0x3e0038, CODE_FOR_xorv4hi3 },
  { 0x3e0039, CODE_FOR_xorv2si3 },
  { 0x3e003a, CODE_FOR_xorv16qi3 },
  { 0x3e003b, CODE_FOR_xorv8hi3 },
  { 0x3e003c, CODE_FOR_xorv4si3 },
  { 0x3e003d, CODE_FOR_xorv2di3 },
  { 0x3f000a, CODE_FOR_ashlqi3 },
  { 0x3f000b, CODE_FOR_ashlhi3 },
  { 0x3f000c, CODE_FOR_ashlsi3 },
  { 0x3f000d, CODE_FOR_ashldi3 },
  { 0x3f0037, CODE_FOR_ashlv8qi3 },
  { 0x3f0038, CODE_FOR_ashlv4hi3 },
  { 0x3f0039, CODE_FOR_ashlv2si3 },
  { 0x3f003a, CODE_FOR_ashlv16qi3 },
  { 0x3f003b, CODE_FOR_ashlv8hi3 },
  { 0x3f003c, CODE_FOR_ashlv4si3 },
  { 0x3f003d, CODE_FOR_ashlv2di3 },
  { 0x42000c, CODE_FOR_ashrsi3 },
  { 0x42000d, CODE_FOR_ashrdi3 },
  { 0x420037, CODE_FOR_ashrv8qi3 },
  { 0x420038, CODE_FOR_ashrv4hi3 },
  { 0x420039, CODE_FOR_ashrv2si3 },
  { 0x42003a, CODE_FOR_ashrv16qi3 },
  { 0x42003b, CODE_FOR_ashrv8hi3 },
  { 0x42003c, CODE_FOR_ashrv4si3 },
  { 0x42003d, CODE_FOR_ashrv2di3 },
  { 0x43000c, CODE_FOR_lshrsi3 },
  { 0x43000d, CODE_FOR_lshrdi3 },
  { 0x430037, CODE_FOR_lshrv8qi3 },
  { 0x430038, CODE_FOR_lshrv4hi3 },
  { 0x430039, CODE_FOR_lshrv2si3 },
  { 0x43003a, CODE_FOR_lshrv16qi3 },
  { 0x43003b, CODE_FOR_lshrv8hi3 },
  { 0x43003c, CODE_FOR_lshrv4si3 },
  { 0x43003d, CODE_FOR_lshrv2di3 },
  { 0x44000c, CODE_FOR_rotlsi3 },
  { 0x44000d, CODE_FOR_rotldi3 },
  { 0x45000c, CODE_FOR_rotrsi3 },
  { 0x45000d, CODE_FOR_rotrdi3 },
  { 0x460037, CODE_FOR_vashlv8qi3 },
  { 0x460038, CODE_FOR_vashlv4hi3 },
  { 0x460039, CODE_FOR_vashlv2si3 },
  { 0x46003a, CODE_FOR_vashlv16qi3 },
  { 0x46003b, CODE_FOR_vashlv8hi3 },
  { 0x46003c, CODE_FOR_vashlv4si3 },
  { 0x46003d, CODE_FOR_vashlv2di3 },
  { 0x470037, CODE_FOR_vashrv8qi3 },
  { 0x470038, CODE_FOR_vashrv4hi3 },
  { 0x470039, CODE_FOR_vashrv2si3 },
  { 0x47003a, CODE_FOR_vashrv16qi3 },
  { 0x47003b, CODE_FOR_vashrv8hi3 },
  { 0x47003c, CODE_FOR_vashrv4si3 },
  { 0x480037, CODE_FOR_vlshrv8qi3 },
  { 0x480038, CODE_FOR_vlshrv4hi3 },
  { 0x480039, CODE_FOR_vlshrv2si3 },
  { 0x48003a, CODE_FOR_vlshrv16qi3 },
  { 0x48003b, CODE_FOR_vlshrv8hi3 },
  { 0x48003c, CODE_FOR_vlshrv4si3 },
  { 0x4b0025, CODE_FOR_sminsf3 },
  { 0x4b0026, CODE_FOR_smindf3 },
  { 0x4b0037, CODE_FOR_sminv8qi3 },
  { 0x4b0038, CODE_FOR_sminv4hi3 },
  { 0x4b0039, CODE_FOR_sminv2si3 },
  { 0x4b003a, CODE_FOR_sminv16qi3 },
  { 0x4b003b, CODE_FOR_sminv8hi3 },
  { 0x4b003c, CODE_FOR_sminv4si3 },
  { 0x4b003d, CODE_FOR_sminv2di3 },
  { 0x4b004e, CODE_FOR_sminv4hf3 },
  { 0x4b004f, CODE_FOR_sminv2sf3 },
  { 0x4b0051, CODE_FOR_sminv8hf3 },
  { 0x4b0052, CODE_FOR_sminv4sf3 },
  { 0x4b0053, CODE_FOR_sminv2df3 },
  { 0x4c0025, CODE_FOR_smaxsf3 },
  { 0x4c0026, CODE_FOR_smaxdf3 },
  { 0x4c0037, CODE_FOR_smaxv8qi3 },
  { 0x4c0038, CODE_FOR_smaxv4hi3 },
  { 0x4c0039, CODE_FOR_smaxv2si3 },
  { 0x4c003a, CODE_FOR_smaxv16qi3 },
  { 0x4c003b, CODE_FOR_smaxv8hi3 },
  { 0x4c003c, CODE_FOR_smaxv4si3 },
  { 0x4c003d, CODE_FOR_smaxv2di3 },
  { 0x4c004e, CODE_FOR_smaxv4hf3 },
  { 0x4c004f, CODE_FOR_smaxv2sf3 },
  { 0x4c0051, CODE_FOR_smaxv8hf3 },
  { 0x4c0052, CODE_FOR_smaxv4sf3 },
  { 0x4c0053, CODE_FOR_smaxv2df3 },
  { 0x4d0037, CODE_FOR_uminv8qi3 },
  { 0x4d0038, CODE_FOR_uminv4hi3 },
  { 0x4d0039, CODE_FOR_uminv2si3 },
  { 0x4d003a, CODE_FOR_uminv16qi3 },
  { 0x4d003b, CODE_FOR_uminv8hi3 },
  { 0x4d003c, CODE_FOR_uminv4si3 },
  { 0x4d003d, CODE_FOR_uminv2di3 },
  { 0x4e0037, CODE_FOR_umaxv8qi3 },
  { 0x4e0038, CODE_FOR_umaxv4hi3 },
  { 0x4e0039, CODE_FOR_umaxv2si3 },
  { 0x4e003a, CODE_FOR_umaxv16qi3 },
  { 0x4e003b, CODE_FOR_umaxv8hi3 },
  { 0x4e003c, CODE_FOR_umaxv4si3 },
  { 0x4e003d, CODE_FOR_umaxv2di3 },
  { 0x4f000c, CODE_FOR_negsi2 },
  { 0x4f000d, CODE_FOR_negdi2 },
  { 0x4f0024, CODE_FOR_neghf2 },
  { 0x4f0025, CODE_FOR_negsf2 },
  { 0x4f0026, CODE_FOR_negdf2 },
  { 0x4f0037, CODE_FOR_negv8qi2 },
  { 0x4f0038, CODE_FOR_negv4hi2 },
  { 0x4f0039, CODE_FOR_negv2si2 },
  { 0x4f003a, CODE_FOR_negv16qi2 },
  { 0x4f003b, CODE_FOR_negv8hi2 },
  { 0x4f003c, CODE_FOR_negv4si2 },
  { 0x4f003d, CODE_FOR_negv2di2 },
  { 0x4f004e, CODE_FOR_negv4hf2 },
  { 0x4f004f, CODE_FOR_negv2sf2 },
  { 0x4f0051, CODE_FOR_negv8hf2 },
  { 0x4f0052, CODE_FOR_negv4sf2 },
  { 0x4f0053, CODE_FOR_negv2df2 },
  { 0x53000c, CODE_FOR_abssi2 },
  { 0x53000d, CODE_FOR_absdi2 },
  { 0x530024, CODE_FOR_abshf2 },
  { 0x530025, CODE_FOR_abssf2 },
  { 0x530026, CODE_FOR_absdf2 },
  { 0x530037, CODE_FOR_absv8qi2 },
  { 0x530038, CODE_FOR_absv4hi2 },
  { 0x530039, CODE_FOR_absv2si2 },
  { 0x53003a, CODE_FOR_absv16qi2 },
  { 0x53003b, CODE_FOR_absv8hi2 },
  { 0x53003c, CODE_FOR_absv4si2 },
  { 0x53003d, CODE_FOR_absv2di2 },
  { 0x53004e, CODE_FOR_absv4hf2 },
  { 0x53004f, CODE_FOR_absv2sf2 },
  { 0x530051, CODE_FOR_absv8hf2 },
  { 0x530052, CODE_FOR_absv4sf2 },
  { 0x530053, CODE_FOR_absv2df2 },
  { 0x55000c, CODE_FOR_one_cmplsi2 },
  { 0x55000d, CODE_FOR_one_cmpldi2 },
  { 0x550037, CODE_FOR_one_cmplv8qi2 },
  { 0x550038, CODE_FOR_one_cmplv4hi2 },
  { 0x550039, CODE_FOR_one_cmplv2si2 },
  { 0x55003a, CODE_FOR_one_cmplv16qi2 },
  { 0x55003b, CODE_FOR_one_cmplv8hi2 },
  { 0x55003c, CODE_FOR_one_cmplv4si2 },
  { 0x55003d, CODE_FOR_one_cmplv2di2 },
  { 0x56000b, CODE_FOR_bswaphi2 },
  { 0x56000c, CODE_FOR_bswapsi2 },
  { 0x56000d, CODE_FOR_bswapdi2 },
  { 0x560038, CODE_FOR_bswapv4hi2 },
  { 0x560039, CODE_FOR_bswapv2si2 },
  { 0x56003b, CODE_FOR_bswapv8hi2 },
  { 0x56003c, CODE_FOR_bswapv4si2 },
  { 0x56003d, CODE_FOR_bswapv2di2 },
  { 0x57000c, CODE_FOR_ffssi2 },
  { 0x57000d, CODE_FOR_ffsdi2 },
  { 0x58000c, CODE_FOR_clzsi2 },
  { 0x58000d, CODE_FOR_clzdi2 },
  { 0x580037, CODE_FOR_clzv8qi2 },
  { 0x580038, CODE_FOR_clzv4hi2 },
  { 0x580039, CODE_FOR_clzv2si2 },
  { 0x58003a, CODE_FOR_clzv16qi2 },
  { 0x58003b, CODE_FOR_clzv8hi2 },
  { 0x58003c, CODE_FOR_clzv4si2 },
  { 0x59000c, CODE_FOR_ctzsi2 },
  { 0x59000d, CODE_FOR_ctzdi2 },
  { 0x590039, CODE_FOR_ctzv2si2 },
  { 0x59003c, CODE_FOR_ctzv4si2 },
  { 0x5a000c, CODE_FOR_clrsbsi2 },
  { 0x5a000d, CODE_FOR_clrsbdi2 },
  { 0x5a0037, CODE_FOR_clrsbv8qi2 },
  { 0x5a0038, CODE_FOR_clrsbv4hi2 },
  { 0x5a0039, CODE_FOR_clrsbv2si2 },
  { 0x5a003a, CODE_FOR_clrsbv16qi2 },
  { 0x5a003b, CODE_FOR_clrsbv8hi2 },
  { 0x5a003c, CODE_FOR_clrsbv4si2 },
  { 0x5b0037, CODE_FOR_popcountv8qi2 },
  { 0x5b003a, CODE_FOR_popcountv16qi2 },
  { 0x670024, CODE_FOR_sqrthf2 },
  { 0x670025, CODE_FOR_sqrtsf2 },
  { 0x670026, CODE_FOR_sqrtdf2 },
  { 0x67004e, CODE_FOR_sqrtv4hf2 },
  { 0x67004f, CODE_FOR_sqrtv2sf2 },
  { 0x670051, CODE_FOR_sqrtv8hf2 },
  { 0x670052, CODE_FOR_sqrtv4sf2 },
  { 0x670053, CODE_FOR_sqrtv2df2 },
  { 0x76000a, CODE_FOR_movqi },
  { 0x76000b, CODE_FOR_movhi },
  { 0x76000c, CODE_FOR_movsi },
  { 0x76000d, CODE_FOR_movdi },
  { 0x76000e, CODE_FOR_movti },
  { 0x76000f, CODE_FOR_movoi },
  { 0x760010, CODE_FOR_movci },
  { 0x760011, CODE_FOR_movxi },
  { 0x760024, CODE_FOR_movhf },
  { 0x760025, CODE_FOR_movsf },
  { 0x760026, CODE_FOR_movdf },
  { 0x760027, CODE_FOR_movtf },
  { 0x760037, CODE_FOR_movv8qi },
  { 0x760038, CODE_FOR_movv4hi },
  { 0x760039, CODE_FOR_movv2si },
  { 0x76003a, CODE_FOR_movv16qi },
  { 0x76003b, CODE_FOR_movv8hi },
  { 0x76003c, CODE_FOR_movv4si },
  { 0x76003d, CODE_FOR_movv2di },
  { 0x76004e, CODE_FOR_movv4hf },
  { 0x76004f, CODE_FOR_movv2sf },
  { 0x760051, CODE_FOR_movv8hf },
  { 0x760052, CODE_FOR_movv4sf },
  { 0x760053, CODE_FOR_movv2df },
  { 0x780037, CODE_FOR_movmisalignv8qi },
  { 0x780038, CODE_FOR_movmisalignv4hi },
  { 0x780039, CODE_FOR_movmisalignv2si },
  { 0x78003a, CODE_FOR_movmisalignv16qi },
  { 0x78003b, CODE_FOR_movmisalignv8hi },
  { 0x78003c, CODE_FOR_movmisalignv4si },
  { 0x78003d, CODE_FOR_movmisalignv2di },
  { 0x78004f, CODE_FOR_movmisalignv2sf },
  { 0x780052, CODE_FOR_movmisalignv4sf },
  { 0x780053, CODE_FOR_movmisalignv2df },
  { 0x7a000c, CODE_FOR_insvsi },
  { 0x7a000d, CODE_FOR_insvdi },
  { 0x830002, CODE_FOR_cbranchcc4 },
  { 0x83000c, CODE_FOR_cbranchsi4 },
  { 0x83000d, CODE_FOR_cbranchdi4 },
  { 0x830025, CODE_FOR_cbranchsf4 },
  { 0x830026, CODE_FOR_cbranchdf4 },
  { 0x85000c, CODE_FOR_negsicc },
  { 0x85000d, CODE_FOR_negdicc },
  { 0x86000c, CODE_FOR_notsicc },
  { 0x86000d, CODE_FOR_notdicc },
  { 0x87000a, CODE_FOR_movqicc },
  { 0x87000b, CODE_FOR_movhicc },
  { 0x87000c, CODE_FOR_movsicc },
  { 0x87000d, CODE_FOR_movdicc },
  { 0x870025, CODE_FOR_movsfcc },
  { 0x870026, CODE_FOR_movdfcc },
  { 0x88000c, CODE_FOR_cmovsi6 },
  { 0x88000d, CODE_FOR_cmovdi6 },
  { 0x880025, CODE_FOR_cmovsf6 },
  { 0x880026, CODE_FOR_cmovdf6 },
  { 0x890002, CODE_FOR_cstorecc4 },
  { 0x89000c, CODE_FOR_cstoresi4 },
  { 0x89000d, CODE_FOR_cstoredi4 },
  { 0x890025, CODE_FOR_cstoresf4 },
  { 0x890026, CODE_FOR_cstoredf4 },
  { 0x93000d, CODE_FOR_smuldi3_highpart },
  { 0x94000d, CODE_FOR_umuldi3_highpart },
  { 0x98000d, CODE_FOR_movmemdi },
  { 0x9b0024, CODE_FOR_fmahf4 },
  { 0x9b0025, CODE_FOR_fmasf4 },
  { 0x9b0026, CODE_FOR_fmadf4 },
  { 0x9b004e, CODE_FOR_fmav4hf4 },
  { 0x9b004f, CODE_FOR_fmav2sf4 },
  { 0x9b0051, CODE_FOR_fmav8hf4 },
  { 0x9b0052, CODE_FOR_fmav4sf4 },
  { 0x9b0053, CODE_FOR_fmav2df4 },
  { 0x9c0025, CODE_FOR_fmssf4 },
  { 0x9c0026, CODE_FOR_fmsdf4 },
  { 0x9d0024, CODE_FOR_fnmahf4 },
  { 0x9d0025, CODE_FOR_fnmasf4 },
  { 0x9d0026, CODE_FOR_fnmadf4 },
  { 0x9d004e, CODE_FOR_fnmav4hf4 },
  { 0x9d004f, CODE_FOR_fnmav2sf4 },
  { 0x9d0051, CODE_FOR_fnmav8hf4 },
  { 0x9d0052, CODE_FOR_fnmav4sf4 },
  { 0x9d0053, CODE_FOR_fnmav2df4 },
  { 0x9e0025, CODE_FOR_fnmssf4 },
  { 0x9e0026, CODE_FOR_fnmsdf4 },
  { 0x9f0024, CODE_FOR_rinthf2 },
  { 0x9f0025, CODE_FOR_rintsf2 },
  { 0x9f0026, CODE_FOR_rintdf2 },
  { 0x9f004e, CODE_FOR_rintv4hf2 },
  { 0x9f004f, CODE_FOR_rintv2sf2 },
  { 0x9f0051, CODE_FOR_rintv8hf2 },
  { 0x9f0052, CODE_FOR_rintv4sf2 },
  { 0x9f0053, CODE_FOR_rintv2df2 },
  { 0xa00024, CODE_FOR_roundhf2 },
  { 0xa00025, CODE_FOR_roundsf2 },
  { 0xa00026, CODE_FOR_rounddf2 },
  { 0xa0004e, CODE_FOR_roundv4hf2 },
  { 0xa0004f, CODE_FOR_roundv2sf2 },
  { 0xa00051, CODE_FOR_roundv8hf2 },
  { 0xa00052, CODE_FOR_roundv4sf2 },
  { 0xa00053, CODE_FOR_roundv2df2 },
  { 0xa10024, CODE_FOR_floorhf2 },
  { 0xa10025, CODE_FOR_floorsf2 },
  { 0xa10026, CODE_FOR_floordf2 },
  { 0xa1004e, CODE_FOR_floorv4hf2 },
  { 0xa1004f, CODE_FOR_floorv2sf2 },
  { 0xa10051, CODE_FOR_floorv8hf2 },
  { 0xa10052, CODE_FOR_floorv4sf2 },
  { 0xa10053, CODE_FOR_floorv2df2 },
  { 0xa20024, CODE_FOR_ceilhf2 },
  { 0xa20025, CODE_FOR_ceilsf2 },
  { 0xa20026, CODE_FOR_ceildf2 },
  { 0xa2004e, CODE_FOR_ceilv4hf2 },
  { 0xa2004f, CODE_FOR_ceilv2sf2 },
  { 0xa20051, CODE_FOR_ceilv8hf2 },
  { 0xa20052, CODE_FOR_ceilv4sf2 },
  { 0xa20053, CODE_FOR_ceilv2df2 },
  { 0xa30024, CODE_FOR_btrunchf2 },
  { 0xa30025, CODE_FOR_btruncsf2 },
  { 0xa30026, CODE_FOR_btruncdf2 },
  { 0xa3004e, CODE_FOR_btruncv4hf2 },
  { 0xa3004f, CODE_FOR_btruncv2sf2 },
  { 0xa30051, CODE_FOR_btruncv8hf2 },
  { 0xa30052, CODE_FOR_btruncv4sf2 },
  { 0xa30053, CODE_FOR_btruncv2df2 },
  { 0xa40024, CODE_FOR_nearbyinthf2 },
  { 0xa40025, CODE_FOR_nearbyintsf2 },
  { 0xa40026, CODE_FOR_nearbyintdf2 },
  { 0xa4004e, CODE_FOR_nearbyintv4hf2 },
  { 0xa4004f, CODE_FOR_nearbyintv2sf2 },
  { 0xa40051, CODE_FOR_nearbyintv8hf2 },
  { 0xa40052, CODE_FOR_nearbyintv4sf2 },
  { 0xa40053, CODE_FOR_nearbyintv2df2 },
  { 0xa90025, CODE_FOR_copysignsf3 },
  { 0xa90026, CODE_FOR_copysigndf3 },
  { 0xba0025, CODE_FOR_rsqrtsf2 },
  { 0xba0026, CODE_FOR_rsqrtdf2 },
  { 0xba004f, CODE_FOR_rsqrtv2sf2 },
  { 0xba0052, CODE_FOR_rsqrtv4sf2 },
  { 0xba0053, CODE_FOR_rsqrtv2df2 },
  { 0xc10024, CODE_FOR_fmaxhf3 },
  { 0xc10025, CODE_FOR_fmaxsf3 },
  { 0xc10026, CODE_FOR_fmaxdf3 },
  { 0xc1004e, CODE_FOR_fmaxv4hf3 },
  { 0xc1004f, CODE_FOR_fmaxv2sf3 },
  { 0xc10051, CODE_FOR_fmaxv8hf3 },
  { 0xc10052, CODE_FOR_fmaxv4sf3 },
  { 0xc10053, CODE_FOR_fmaxv2df3 },
  { 0xc20024, CODE_FOR_fminhf3 },
  { 0xc20025, CODE_FOR_fminsf3 },
  { 0xc20026, CODE_FOR_fmindf3 },
  { 0xc2004e, CODE_FOR_fminv4hf3 },
  { 0xc2004f, CODE_FOR_fminv2sf3 },
  { 0xc20051, CODE_FOR_fminv8hf3 },
  { 0xc20052, CODE_FOR_fminv4sf3 },
  { 0xc20053, CODE_FOR_fminv2df3 },
  { 0xc30037, CODE_FOR_reduc_smax_scal_v8qi },
  { 0xc30038, CODE_FOR_reduc_smax_scal_v4hi },
  { 0xc30039, CODE_FOR_reduc_smax_scal_v2si },
  { 0xc3003a, CODE_FOR_reduc_smax_scal_v16qi },
  { 0xc3003b, CODE_FOR_reduc_smax_scal_v8hi },
  { 0xc3003c, CODE_FOR_reduc_smax_scal_v4si },
  { 0xc3004e, CODE_FOR_reduc_smax_scal_v4hf },
  { 0xc3004f, CODE_FOR_reduc_smax_scal_v2sf },
  { 0xc30051, CODE_FOR_reduc_smax_scal_v8hf },
  { 0xc30052, CODE_FOR_reduc_smax_scal_v4sf },
  { 0xc30053, CODE_FOR_reduc_smax_scal_v2df },
  { 0xc40037, CODE_FOR_reduc_smin_scal_v8qi },
  { 0xc40038, CODE_FOR_reduc_smin_scal_v4hi },
  { 0xc40039, CODE_FOR_reduc_smin_scal_v2si },
  { 0xc4003a, CODE_FOR_reduc_smin_scal_v16qi },
  { 0xc4003b, CODE_FOR_reduc_smin_scal_v8hi },
  { 0xc4003c, CODE_FOR_reduc_smin_scal_v4si },
  { 0xc4004e, CODE_FOR_reduc_smin_scal_v4hf },
  { 0xc4004f, CODE_FOR_reduc_smin_scal_v2sf },
  { 0xc40051, CODE_FOR_reduc_smin_scal_v8hf },
  { 0xc40052, CODE_FOR_reduc_smin_scal_v4sf },
  { 0xc40053, CODE_FOR_reduc_smin_scal_v2df },
  { 0xc50037, CODE_FOR_reduc_plus_scal_v8qi },
  { 0xc50038, CODE_FOR_reduc_plus_scal_v4hi },
  { 0xc50039, CODE_FOR_reduc_plus_scal_v2si },
  { 0xc5003a, CODE_FOR_reduc_plus_scal_v16qi },
  { 0xc5003b, CODE_FOR_reduc_plus_scal_v8hi },
  { 0xc5003c, CODE_FOR_reduc_plus_scal_v4si },
  { 0xc5003d, CODE_FOR_reduc_plus_scal_v2di },
  { 0xc5004f, CODE_FOR_reduc_plus_scal_v2sf },
  { 0xc50052, CODE_FOR_reduc_plus_scal_v4sf },
  { 0xc50053, CODE_FOR_reduc_plus_scal_v2df },
  { 0xc60037, CODE_FOR_reduc_umax_scal_v8qi },
  { 0xc60038, CODE_FOR_reduc_umax_scal_v4hi },
  { 0xc60039, CODE_FOR_reduc_umax_scal_v2si },
  { 0xc6003a, CODE_FOR_reduc_umax_scal_v16qi },
  { 0xc6003b, CODE_FOR_reduc_umax_scal_v8hi },
  { 0xc6003c, CODE_FOR_reduc_umax_scal_v4si },
  { 0xc70037, CODE_FOR_reduc_umin_scal_v8qi },
  { 0xc70038, CODE_FOR_reduc_umin_scal_v4hi },
  { 0xc70039, CODE_FOR_reduc_umin_scal_v2si },
  { 0xc7003a, CODE_FOR_reduc_umin_scal_v16qi },
  { 0xc7003b, CODE_FOR_reduc_umin_scal_v8hi },
  { 0xc7003c, CODE_FOR_reduc_umin_scal_v4si },
  { 0xc90037, CODE_FOR_widen_ssumv8qi3 },
  { 0xc90038, CODE_FOR_widen_ssumv4hi3 },
  { 0xc90039, CODE_FOR_widen_ssumv2si3 },
  { 0xc9003a, CODE_FOR_widen_ssumv16qi3 },
  { 0xc9003b, CODE_FOR_widen_ssumv8hi3 },
  { 0xc9003c, CODE_FOR_widen_ssumv4si3 },
  { 0xcb0037, CODE_FOR_widen_usumv8qi3 },
  { 0xcb0038, CODE_FOR_widen_usumv4hi3 },
  { 0xcb0039, CODE_FOR_widen_usumv2si3 },
  { 0xcb003a, CODE_FOR_widen_usumv16qi3 },
  { 0xcb003b, CODE_FOR_widen_usumv8hi3 },
  { 0xcb003c, CODE_FOR_widen_usumv4si3 },
  { 0xce0037, CODE_FOR_vec_extractv8qi },
  { 0xce0038, CODE_FOR_vec_extractv4hi },
  { 0xce0039, CODE_FOR_vec_extractv2si },
  { 0xce003a, CODE_FOR_vec_extractv16qi },
  { 0xce003b, CODE_FOR_vec_extractv8hi },
  { 0xce003c, CODE_FOR_vec_extractv4si },
  { 0xce003d, CODE_FOR_vec_extractv2di },
  { 0xce004e, CODE_FOR_vec_extractv4hf },
  { 0xce004f, CODE_FOR_vec_extractv2sf },
  { 0xce0051, CODE_FOR_vec_extractv8hf },
  { 0xce0052, CODE_FOR_vec_extractv4sf },
  { 0xce0053, CODE_FOR_vec_extractv2df },
  { 0xcf0037, CODE_FOR_vec_initv8qi },
  { 0xcf0038, CODE_FOR_vec_initv4hi },
  { 0xcf0039, CODE_FOR_vec_initv2si },
  { 0xcf003a, CODE_FOR_vec_initv16qi },
  { 0xcf003b, CODE_FOR_vec_initv8hi },
  { 0xcf003c, CODE_FOR_vec_initv4si },
  { 0xcf003d, CODE_FOR_vec_initv2di },
  { 0xcf004e, CODE_FOR_vec_initv4hf },
  { 0xcf004f, CODE_FOR_vec_initv2sf },
  { 0xcf0051, CODE_FOR_vec_initv8hf },
  { 0xcf0052, CODE_FOR_vec_initv4sf },
  { 0xcf0053, CODE_FOR_vec_initv2df },
  { 0xd2000d, CODE_FOR_vec_pack_trunc_di },
  { 0xd20026, CODE_FOR_vec_pack_trunc_df },
  { 0xd20038, CODE_FOR_vec_pack_trunc_v4hi },
  { 0xd20039, CODE_FOR_vec_pack_trunc_v2si },
  { 0xd2003b, CODE_FOR_vec_pack_trunc_v8hi },
  { 0xd2003c, CODE_FOR_vec_pack_trunc_v4si },
  { 0xd2003d, CODE_FOR_vec_pack_trunc_v2di },
  { 0xd20053, CODE_FOR_vec_pack_trunc_v2df },
  { 0xd50037, CODE_FOR_vec_perm_constv8qi },
  { 0xd50038, CODE_FOR_vec_perm_constv4hi },
  { 0xd50039, CODE_FOR_vec_perm_constv2si },
  { 0xd5003a, CODE_FOR_vec_perm_constv16qi },
  { 0xd5003b, CODE_FOR_vec_perm_constv8hi },
  { 0xd5003c, CODE_FOR_vec_perm_constv4si },
  { 0xd5003d, CODE_FOR_vec_perm_constv2di },
  { 0xd5004e, CODE_FOR_vec_perm_constv4hf },
  { 0xd5004f, CODE_FOR_vec_perm_constv2sf },
  { 0xd50051, CODE_FOR_vec_perm_constv8hf },
  { 0xd50052, CODE_FOR_vec_perm_constv4sf },
  { 0xd50053, CODE_FOR_vec_perm_constv2df },
  { 0xd60037, CODE_FOR_vec_permv8qi },
  { 0xd6003a, CODE_FOR_vec_permv16qi },
  { 0xd80037, CODE_FOR_vec_setv8qi },
  { 0xd80038, CODE_FOR_vec_setv4hi },
  { 0xd80039, CODE_FOR_vec_setv2si },
  { 0xd8003a, CODE_FOR_vec_setv16qi },
  { 0xd8003b, CODE_FOR_vec_setv8hi },
  { 0xd8003c, CODE_FOR_vec_setv4si },
  { 0xd8003d, CODE_FOR_vec_setv2di },
  { 0xd8004e, CODE_FOR_vec_setv4hf },
  { 0xd8004f, CODE_FOR_vec_setv2sf },
  { 0xd80051, CODE_FOR_vec_setv8hf },
  { 0xd80052, CODE_FOR_vec_setv4sf },
  { 0xd80053, CODE_FOR_vec_setv2df },
  { 0xd90037, CODE_FOR_vec_shr_v8qi },
  { 0xd90038, CODE_FOR_vec_shr_v4hi },
  { 0xd90039, CODE_FOR_vec_shr_v2si },
  { 0xd9004e, CODE_FOR_vec_shr_v4hf },
  { 0xd9004f, CODE_FOR_vec_shr_v2sf },
  { 0xdc003a, CODE_FOR_vec_unpacks_hi_v16qi },
  { 0xdc003b, CODE_FOR_vec_unpacks_hi_v8hi },
  { 0xdc003c, CODE_FOR_vec_unpacks_hi_v4si },
  { 0xdc0051, CODE_FOR_vec_unpacks_hi_v8hf },
  { 0xdc0052, CODE_FOR_vec_unpacks_hi_v4sf },
  { 0xdd003a, CODE_FOR_vec_unpacks_lo_v16qi },
  { 0xdd003b, CODE_FOR_vec_unpacks_lo_v8hi },
  { 0xdd003c, CODE_FOR_vec_unpacks_lo_v4si },
  { 0xdd0051, CODE_FOR_vec_unpacks_lo_v8hf },
  { 0xdd0052, CODE_FOR_vec_unpacks_lo_v4sf },
  { 0xe0003a, CODE_FOR_vec_unpacku_hi_v16qi },
  { 0xe0003b, CODE_FOR_vec_unpacku_hi_v8hi },
  { 0xe0003c, CODE_FOR_vec_unpacku_hi_v4si },
  { 0xe1003a, CODE_FOR_vec_unpacku_lo_v16qi },
  { 0xe1003b, CODE_FOR_vec_unpacku_lo_v8hi },
  { 0xe1003c, CODE_FOR_vec_unpacku_lo_v4si },
  { 0xe3003a, CODE_FOR_vec_widen_smult_hi_v16qi },
  { 0xe3003b, CODE_FOR_vec_widen_smult_hi_v8hi },
  { 0xe3003c, CODE_FOR_vec_widen_smult_hi_v4si },
  { 0xe4003a, CODE_FOR_vec_widen_smult_lo_v16qi },
  { 0xe4003b, CODE_FOR_vec_widen_smult_lo_v8hi },
  { 0xe4003c, CODE_FOR_vec_widen_smult_lo_v4si },
  { 0xe9003a, CODE_FOR_vec_widen_umult_hi_v16qi },
  { 0xe9003b, CODE_FOR_vec_widen_umult_hi_v8hi },
  { 0xe9003c, CODE_FOR_vec_widen_umult_hi_v4si },
  { 0xea003a, CODE_FOR_vec_widen_umult_lo_v16qi },
  { 0xea003b, CODE_FOR_vec_widen_umult_lo_v8hi },
  { 0xea003c, CODE_FOR_vec_widen_umult_lo_v4si },
  { 0xf5000a, CODE_FOR_atomic_add_fetchqi },
  { 0xf5000b, CODE_FOR_atomic_add_fetchhi },
  { 0xf5000c, CODE_FOR_atomic_add_fetchsi },
  { 0xf5000d, CODE_FOR_atomic_add_fetchdi },
  { 0xf6000a, CODE_FOR_atomic_addqi },
  { 0xf6000b, CODE_FOR_atomic_addhi },
  { 0xf6000c, CODE_FOR_atomic_addsi },
  { 0xf6000d, CODE_FOR_atomic_adddi },
  { 0xf7000a, CODE_FOR_atomic_and_fetchqi },
  { 0xf7000b, CODE_FOR_atomic_and_fetchhi },
  { 0xf7000c, CODE_FOR_atomic_and_fetchsi },
  { 0xf7000d, CODE_FOR_atomic_and_fetchdi },
  { 0xf8000a, CODE_FOR_atomic_andqi },
  { 0xf8000b, CODE_FOR_atomic_andhi },
  { 0xf8000c, CODE_FOR_atomic_andsi },
  { 0xf8000d, CODE_FOR_atomic_anddi },
  { 0xf9000a, CODE_FOR_atomic_compare_and_swapqi },
  { 0xf9000b, CODE_FOR_atomic_compare_and_swaphi },
  { 0xf9000c, CODE_FOR_atomic_compare_and_swapsi },
  { 0xf9000d, CODE_FOR_atomic_compare_and_swapdi },
  { 0xfa000a, CODE_FOR_atomic_exchangeqi },
  { 0xfa000b, CODE_FOR_atomic_exchangehi },
  { 0xfa000c, CODE_FOR_atomic_exchangesi },
  { 0xfa000d, CODE_FOR_atomic_exchangedi },
  { 0xfb000a, CODE_FOR_atomic_fetch_addqi },
  { 0xfb000b, CODE_FOR_atomic_fetch_addhi },
  { 0xfb000c, CODE_FOR_atomic_fetch_addsi },
  { 0xfb000d, CODE_FOR_atomic_fetch_adddi },
  { 0xfc000a, CODE_FOR_atomic_fetch_andqi },
  { 0xfc000b, CODE_FOR_atomic_fetch_andhi },
  { 0xfc000c, CODE_FOR_atomic_fetch_andsi },
  { 0xfc000d, CODE_FOR_atomic_fetch_anddi },
  { 0xfd000a, CODE_FOR_atomic_fetch_nandqi },
  { 0xfd000b, CODE_FOR_atomic_fetch_nandhi },
  { 0xfd000c, CODE_FOR_atomic_fetch_nandsi },
  { 0xfd000d, CODE_FOR_atomic_fetch_nanddi },
  { 0xfe000a, CODE_FOR_atomic_fetch_orqi },
  { 0xfe000b, CODE_FOR_atomic_fetch_orhi },
  { 0xfe000c, CODE_FOR_atomic_fetch_orsi },
  { 0xfe000d, CODE_FOR_atomic_fetch_ordi },
  { 0xff000a, CODE_FOR_atomic_fetch_subqi },
  { 0xff000b, CODE_FOR_atomic_fetch_subhi },
  { 0xff000c, CODE_FOR_atomic_fetch_subsi },
  { 0xff000d, CODE_FOR_atomic_fetch_subdi },
  { 0x100000a, CODE_FOR_atomic_fetch_xorqi },
  { 0x100000b, CODE_FOR_atomic_fetch_xorhi },
  { 0x100000c, CODE_FOR_atomic_fetch_xorsi },
  { 0x100000d, CODE_FOR_atomic_fetch_xordi },
  { 0x101000a, CODE_FOR_atomic_loadqi },
  { 0x101000b, CODE_FOR_atomic_loadhi },
  { 0x101000c, CODE_FOR_atomic_loadsi },
  { 0x101000d, CODE_FOR_atomic_loaddi },
  { 0x102000a, CODE_FOR_atomic_nand_fetchqi },
  { 0x102000b, CODE_FOR_atomic_nand_fetchhi },
  { 0x102000c, CODE_FOR_atomic_nand_fetchsi },
  { 0x102000d, CODE_FOR_atomic_nand_fetchdi },
  { 0x103000a, CODE_FOR_atomic_nandqi },
  { 0x103000b, CODE_FOR_atomic_nandhi },
  { 0x103000c, CODE_FOR_atomic_nandsi },
  { 0x103000d, CODE_FOR_atomic_nanddi },
  { 0x104000a, CODE_FOR_atomic_or_fetchqi },
  { 0x104000b, CODE_FOR_atomic_or_fetchhi },
  { 0x104000c, CODE_FOR_atomic_or_fetchsi },
  { 0x104000d, CODE_FOR_atomic_or_fetchdi },
  { 0x105000a, CODE_FOR_atomic_orqi },
  { 0x105000b, CODE_FOR_atomic_orhi },
  { 0x105000c, CODE_FOR_atomic_orsi },
  { 0x105000d, CODE_FOR_atomic_ordi },
  { 0x106000a, CODE_FOR_atomic_storeqi },
  { 0x106000b, CODE_FOR_atomic_storehi },
  { 0x106000c, CODE_FOR_atomic_storesi },
  { 0x106000d, CODE_FOR_atomic_storedi },
  { 0x107000a, CODE_FOR_atomic_sub_fetchqi },
  { 0x107000b, CODE_FOR_atomic_sub_fetchhi },
  { 0x107000c, CODE_FOR_atomic_sub_fetchsi },
  { 0x107000d, CODE_FOR_atomic_sub_fetchdi },
  { 0x108000a, CODE_FOR_atomic_subqi },
  { 0x108000b, CODE_FOR_atomic_subhi },
  { 0x108000c, CODE_FOR_atomic_subsi },
  { 0x108000d, CODE_FOR_atomic_subdi },
  { 0x109000a, CODE_FOR_atomic_xor_fetchqi },
  { 0x109000b, CODE_FOR_atomic_xor_fetchhi },
  { 0x109000c, CODE_FOR_atomic_xor_fetchsi },
  { 0x109000d, CODE_FOR_atomic_xor_fetchdi },
  { 0x10a000a, CODE_FOR_atomic_xorqi },
  { 0x10a000b, CODE_FOR_atomic_xorhi },
  { 0x10a000c, CODE_FOR_atomic_xorsi },
  { 0x10a000d, CODE_FOR_atomic_xordi },
  { 0x10b000d, 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_extendhfsf2;
  ena[7] = HAVE_extendhfdf2;
  ena[8] = HAVE_extendsfdf2;
  ena[9] = HAVE_truncsfhf2;
  ena[10] = HAVE_truncdfhf2;
  ena[11] = HAVE_truncdfsf2;
  ena[12] = HAVE_zero_extendqihi2;
  ena[13] = HAVE_zero_extendqisi2;
  ena[14] = HAVE_zero_extendqidi2;
  ena[15] = HAVE_zero_extendhisi2;
  ena[16] = HAVE_zero_extendhidi2;
  ena[17] = HAVE_zero_extendsidi2;
  ena[18] = HAVE_fixv4hfv4hi2;
  ena[19] = HAVE_fixv2sfv2si2;
  ena[20] = HAVE_fixv8hfv8hi2;
  ena[21] = HAVE_fixv4sfv4si2;
  ena[22] = HAVE_fixv2dfv2di2;
  ena[23] = HAVE_fixunsv4hfv4hi2;
  ena[24] = HAVE_fixunsv2sfv2si2;
  ena[25] = HAVE_fixunsv8hfv8hi2;
  ena[26] = HAVE_fixunsv4sfv4si2;
  ena[27] = HAVE_fixunsv2dfv2di2;
  ena[28] = HAVE_floathihf2;
  ena[29] = HAVE_floatsihf2;
  ena[30] = HAVE_floatsisf2;
  ena[31] = HAVE_floatsidf2;
  ena[32] = HAVE_floatdihf2;
  ena[33] = HAVE_floatdisf2;
  ena[34] = HAVE_floatdidf2;
  ena[35] = HAVE_floatv4hiv4hf2;
  ena[36] = HAVE_floatv2siv2sf2;
  ena[37] = HAVE_floatv8hiv8hf2;
  ena[38] = HAVE_floatv4siv4sf2;
  ena[39] = HAVE_floatv2div2df2;
  ena[40] = HAVE_floatunshihf2;
  ena[41] = HAVE_floatunssihf2;
  ena[42] = HAVE_floatunssisf2;
  ena[43] = HAVE_floatunssidf2;
  ena[44] = HAVE_floatunsdihf2;
  ena[45] = HAVE_floatunsdisf2;
  ena[46] = HAVE_floatunsdidf2;
  ena[47] = HAVE_floatunsv4hiv4hf2;
  ena[48] = HAVE_floatunsv2siv2sf2;
  ena[49] = HAVE_floatunsv8hiv8hf2;
  ena[50] = HAVE_floatunsv4siv4sf2;
  ena[51] = HAVE_floatunsv2div2df2;
  ena[52] = HAVE_lroundhfhi2;
  ena[53] = HAVE_lroundhfsi2;
  ena[54] = HAVE_lroundhfdi2;
  ena[55] = HAVE_lroundsfsi2;
  ena[56] = HAVE_lroundsfdi2;
  ena[57] = HAVE_lrounddfsi2;
  ena[58] = HAVE_lrounddfdi2;
  ena[59] = HAVE_lroundv4hfv4hi2;
  ena[60] = HAVE_lroundv2sfv2si2;
  ena[61] = HAVE_lroundv8hfv8hi2;
  ena[62] = HAVE_lroundv4sfv4si2;
  ena[63] = HAVE_lroundv2dfv2di2;
  ena[64] = HAVE_lfloorhfhi2;
  ena[65] = HAVE_lfloorhfsi2;
  ena[66] = HAVE_lfloorhfdi2;
  ena[67] = HAVE_lfloorsfsi2;
  ena[68] = HAVE_lfloorsfdi2;
  ena[69] = HAVE_lfloordfsi2;
  ena[70] = HAVE_lfloordfdi2;
  ena[71] = HAVE_lfloorv4hfv4hi2;
  ena[72] = HAVE_lfloorv2sfv2si2;
  ena[73] = HAVE_lfloorv8hfv8hi2;
  ena[74] = HAVE_lfloorv4sfv4si2;
  ena[75] = HAVE_lfloorv2dfv2di2;
  ena[76] = HAVE_lceilhfhi2;
  ena[77] = HAVE_lceilhfsi2;
  ena[78] = HAVE_lceilhfdi2;
  ena[79] = HAVE_lceilsfsi2;
  ena[80] = HAVE_lceilsfdi2;
  ena[81] = HAVE_lceildfsi2;
  ena[82] = HAVE_lceildfdi2;
  ena[83] = HAVE_lceilv4hfv4hi2;
  ena[84] = HAVE_lceilv2sfv2si2;
  ena[85] = HAVE_lceilv8hfv8hi2;
  ena[86] = HAVE_lceilv4sfv4si2;
  ena[87] = HAVE_lceilv2dfv2di2;
  ena[88] = HAVE_fix_trunchfhi2;
  ena[89] = HAVE_fix_trunchfsi2;
  ena[90] = HAVE_fix_trunchfdi2;
  ena[91] = HAVE_fix_truncsfsi2;
  ena[92] = HAVE_fix_truncsfdi2;
  ena[93] = HAVE_fix_truncdfsi2;
  ena[94] = HAVE_fix_truncdfdi2;
  ena[95] = HAVE_fix_truncv4hfv4hi2;
  ena[96] = HAVE_fix_truncv2sfv2si2;
  ena[97] = HAVE_fix_truncv8hfv8hi2;
  ena[98] = HAVE_fix_truncv4sfv4si2;
  ena[99] = HAVE_fix_truncv2dfv2di2;
  ena[100] = HAVE_fixuns_trunchfhi2;
  ena[101] = HAVE_fixuns_trunchfsi2;
  ena[102] = HAVE_fixuns_trunchfdi2;
  ena[103] = HAVE_fixuns_truncsfsi2;
  ena[104] = HAVE_fixuns_truncsfdi2;
  ena[105] = HAVE_fixuns_truncdfsi2;
  ena[106] = HAVE_fixuns_truncdfdi2;
  ena[107] = HAVE_fixuns_truncv4hfv4hi2;
  ena[108] = HAVE_fixuns_truncv2sfv2si2;
  ena[109] = HAVE_fixuns_truncv8hfv8hi2;
  ena[110] = HAVE_fixuns_truncv4sfv4si2;
  ena[111] = HAVE_fixuns_truncv2dfv2di2;
  ena[112] = HAVE_mulsidi3;
  ena[113] = HAVE_mulditi3;
  ena[114] = HAVE_umulsidi3;
  ena[115] = HAVE_umulditi3;
  ena[116] = HAVE_maddsidi4;
  ena[117] = HAVE_umaddsidi4;
  ena[118] = HAVE_msubsidi4;
  ena[119] = HAVE_umsubsidi4;
  ena[120] = HAVE_vec_load_lanesoiv16qi;
  ena[121] = HAVE_vec_load_lanesciv16qi;
  ena[122] = HAVE_vec_load_lanesxiv16qi;
  ena[123] = HAVE_vec_load_lanesoiv8hi;
  ena[124] = HAVE_vec_load_lanesciv8hi;
  ena[125] = HAVE_vec_load_lanesxiv8hi;
  ena[126] = HAVE_vec_load_lanesoiv4si;
  ena[127] = HAVE_vec_load_lanesciv4si;
  ena[128] = HAVE_vec_load_lanesxiv4si;
  ena[129] = HAVE_vec_load_lanesoiv2di;
  ena[130] = HAVE_vec_load_lanesciv2di;
  ena[131] = HAVE_vec_load_lanesxiv2di;
  ena[132] = HAVE_vec_load_lanesoiv8hf;
  ena[133] = HAVE_vec_load_lanesciv8hf;
  ena[134] = HAVE_vec_load_lanesxiv8hf;
  ena[135] = HAVE_vec_load_lanesoiv4sf;
  ena[136] = HAVE_vec_load_lanesciv4sf;
  ena[137] = HAVE_vec_load_lanesxiv4sf;
  ena[138] = HAVE_vec_load_lanesoiv2df;
  ena[139] = HAVE_vec_load_lanesciv2df;
  ena[140] = HAVE_vec_load_lanesxiv2df;
  ena[141] = HAVE_vec_store_lanesoiv16qi;
  ena[142] = HAVE_vec_store_lanesciv16qi;
  ena[143] = HAVE_vec_store_lanesxiv16qi;
  ena[144] = HAVE_vec_store_lanesoiv8hi;
  ena[145] = HAVE_vec_store_lanesciv8hi;
  ena[146] = HAVE_vec_store_lanesxiv8hi;
  ena[147] = HAVE_vec_store_lanesoiv4si;
  ena[148] = HAVE_vec_store_lanesciv4si;
  ena[149] = HAVE_vec_store_lanesxiv4si;
  ena[150] = HAVE_vec_store_lanesoiv2di;
  ena[151] = HAVE_vec_store_lanesciv2di;
  ena[152] = HAVE_vec_store_lanesxiv2di;
  ena[153] = HAVE_vec_store_lanesoiv8hf;
  ena[154] = HAVE_vec_store_lanesciv8hf;
  ena[155] = HAVE_vec_store_lanesxiv8hf;
  ena[156] = HAVE_vec_store_lanesoiv4sf;
  ena[157] = HAVE_vec_store_lanesciv4sf;
  ena[158] = HAVE_vec_store_lanesxiv4sf;
  ena[159] = HAVE_vec_store_lanesoiv2df;
  ena[160] = HAVE_vec_store_lanesciv2df;
  ena[161] = HAVE_vec_store_lanesxiv2df;
  ena[162] = HAVE_vconddidi;
  ena[163] = HAVE_vcondv8qiv8qi;
  ena[164] = HAVE_vcondv4hiv4hi;
  ena[165] = HAVE_vcondv2siv2si;
  ena[166] = HAVE_vcondv16qiv16qi;
  ena[167] = HAVE_vcondv8hiv8hi;
  ena[168] = HAVE_vcondv4siv4si;
  ena[169] = HAVE_vcondv2div2di;
  ena[170] = HAVE_vcondv2siv2sf;
  ena[171] = HAVE_vcondv2sfv2sf;
  ena[172] = HAVE_vcondv4siv4sf;
  ena[173] = HAVE_vcondv4sfv4sf;
  ena[174] = HAVE_vcondv2div2df;
  ena[175] = HAVE_vcondv2dfv2df;
  ena[176] = HAVE_vcondudidi;
  ena[177] = HAVE_vconduv8qiv8qi;
  ena[178] = HAVE_vconduv4hiv4hi;
  ena[179] = HAVE_vconduv2siv2si;
  ena[180] = HAVE_vconduv16qiv16qi;
  ena[181] = HAVE_vconduv8hiv8hi;
  ena[182] = HAVE_vconduv4siv4si;
  ena[183] = HAVE_vconduv2div2di;
  ena[184] = HAVE_addsi3;
  ena[185] = HAVE_adddi3;
  ena[186] = HAVE_addti3;
  ena[187] = HAVE_addhf3;
  ena[188] = HAVE_addsf3;
  ena[189] = HAVE_adddf3;
  ena[190] = HAVE_addv8qi3;
  ena[191] = HAVE_addv4hi3;
  ena[192] = HAVE_addv2si3;
  ena[193] = HAVE_addv16qi3;
  ena[194] = HAVE_addv8hi3;
  ena[195] = HAVE_addv4si3;
  ena[196] = HAVE_addv2di3;
  ena[197] = HAVE_addv4hf3;
  ena[198] = HAVE_addv2sf3;
  ena[199] = HAVE_addv8hf3;
  ena[200] = HAVE_addv4sf3;
  ena[201] = HAVE_addv2df3;
  ena[202] = HAVE_subsi3;
  ena[203] = HAVE_subdi3;
  ena[204] = HAVE_subti3;
  ena[205] = HAVE_subhf3;
  ena[206] = HAVE_subsf3;
  ena[207] = HAVE_subdf3;
  ena[208] = HAVE_subv8qi3;
  ena[209] = HAVE_subv4hi3;
  ena[210] = HAVE_subv2si3;
  ena[211] = HAVE_subv16qi3;
  ena[212] = HAVE_subv8hi3;
  ena[213] = HAVE_subv4si3;
  ena[214] = HAVE_subv2di3;
  ena[215] = HAVE_subv4hf3;
  ena[216] = HAVE_subv2sf3;
  ena[217] = HAVE_subv8hf3;
  ena[218] = HAVE_subv4sf3;
  ena[219] = HAVE_subv2df3;
  ena[220] = HAVE_mulsi3;
  ena[221] = HAVE_muldi3;
  ena[222] = HAVE_multi3;
  ena[223] = HAVE_mulhf3;
  ena[224] = HAVE_mulsf3;
  ena[225] = HAVE_muldf3;
  ena[226] = HAVE_mulv8qi3;
  ena[227] = HAVE_mulv4hi3;
  ena[228] = HAVE_mulv2si3;
  ena[229] = HAVE_mulv16qi3;
  ena[230] = HAVE_mulv8hi3;
  ena[231] = HAVE_mulv4si3;
  ena[232] = HAVE_mulv4hf3;
  ena[233] = HAVE_mulv2sf3;
  ena[234] = HAVE_mulv8hf3;
  ena[235] = HAVE_mulv4sf3;
  ena[236] = HAVE_mulv2df3;
  ena[237] = HAVE_divsi3;
  ena[238] = HAVE_divdi3;
  ena[239] = HAVE_divhf3;
  ena[240] = HAVE_divsf3;
  ena[241] = HAVE_divdf3;
  ena[242] = HAVE_divv4hf3;
  ena[243] = HAVE_divv2sf3;
  ena[244] = HAVE_divv8hf3;
  ena[245] = HAVE_divv4sf3;
  ena[246] = HAVE_divv2df3;
  ena[247] = HAVE_udivsi3;
  ena[248] = HAVE_udivdi3;
  ena[249] = HAVE_modsi3;
  ena[250] = HAVE_moddi3;
  ena[251] = HAVE_ftruncv4hf2;
  ena[252] = HAVE_ftruncv2sf2;
  ena[253] = HAVE_ftruncv8hf2;
  ena[254] = HAVE_ftruncv4sf2;
  ena[255] = HAVE_ftruncv2df2;
  ena[256] = HAVE_andsi3;
  ena[257] = HAVE_anddi3;
  ena[258] = HAVE_andv8qi3;
  ena[259] = HAVE_andv4hi3;
  ena[260] = HAVE_andv2si3;
  ena[261] = HAVE_andv16qi3;
  ena[262] = HAVE_andv8hi3;
  ena[263] = HAVE_andv4si3;
  ena[264] = HAVE_andv2di3;
  ena[265] = HAVE_iorsi3;
  ena[266] = HAVE_iordi3;
  ena[267] = HAVE_iorv8qi3;
  ena[268] = HAVE_iorv4hi3;
  ena[269] = HAVE_iorv2si3;
  ena[270] = HAVE_iorv16qi3;
  ena[271] = HAVE_iorv8hi3;
  ena[272] = HAVE_iorv4si3;
  ena[273] = HAVE_iorv2di3;
  ena[274] = HAVE_xorsi3;
  ena[275] = HAVE_xordi3;
  ena[276] = HAVE_xorv8qi3;
  ena[277] = HAVE_xorv4hi3;
  ena[278] = HAVE_xorv2si3;
  ena[279] = HAVE_xorv16qi3;
  ena[280] = HAVE_xorv8hi3;
  ena[281] = HAVE_xorv4si3;
  ena[282] = HAVE_xorv2di3;
  ena[283] = HAVE_ashlqi3;
  ena[284] = HAVE_ashlhi3;
  ena[285] = HAVE_ashlsi3;
  ena[286] = HAVE_ashldi3;
  ena[287] = HAVE_ashlv8qi3;
  ena[288] = HAVE_ashlv4hi3;
  ena[289] = HAVE_ashlv2si3;
  ena[290] = HAVE_ashlv16qi3;
  ena[291] = HAVE_ashlv8hi3;
  ena[292] = HAVE_ashlv4si3;
  ena[293] = HAVE_ashlv2di3;
  ena[294] = HAVE_ashrsi3;
  ena[295] = HAVE_ashrdi3;
  ena[296] = HAVE_ashrv8qi3;
  ena[297] = HAVE_ashrv4hi3;
  ena[298] = HAVE_ashrv2si3;
  ena[299] = HAVE_ashrv16qi3;
  ena[300] = HAVE_ashrv8hi3;
  ena[301] = HAVE_ashrv4si3;
  ena[302] = HAVE_ashrv2di3;
  ena[303] = HAVE_lshrsi3;
  ena[304] = HAVE_lshrdi3;
  ena[305] = HAVE_lshrv8qi3;
  ena[306] = HAVE_lshrv4hi3;
  ena[307] = HAVE_lshrv2si3;
  ena[308] = HAVE_lshrv16qi3;
  ena[309] = HAVE_lshrv8hi3;
  ena[310] = HAVE_lshrv4si3;
  ena[311] = HAVE_lshrv2di3;
  ena[312] = HAVE_rotlsi3;
  ena[313] = HAVE_rotldi3;
  ena[314] = HAVE_rotrsi3;
  ena[315] = HAVE_rotrdi3;
  ena[316] = HAVE_vashlv8qi3;
  ena[317] = HAVE_vashlv4hi3;
  ena[318] = HAVE_vashlv2si3;
  ena[319] = HAVE_vashlv16qi3;
  ena[320] = HAVE_vashlv8hi3;
  ena[321] = HAVE_vashlv4si3;
  ena[322] = HAVE_vashlv2di3;
  ena[323] = HAVE_vashrv8qi3;
  ena[324] = HAVE_vashrv4hi3;
  ena[325] = HAVE_vashrv2si3;
  ena[326] = HAVE_vashrv16qi3;
  ena[327] = HAVE_vashrv8hi3;
  ena[328] = HAVE_vashrv4si3;
  ena[329] = HAVE_vlshrv8qi3;
  ena[330] = HAVE_vlshrv4hi3;
  ena[331] = HAVE_vlshrv2si3;
  ena[332] = HAVE_vlshrv16qi3;
  ena[333] = HAVE_vlshrv8hi3;
  ena[334] = HAVE_vlshrv4si3;
  ena[335] = HAVE_sminsf3;
  ena[336] = HAVE_smindf3;
  ena[337] = HAVE_sminv8qi3;
  ena[338] = HAVE_sminv4hi3;
  ena[339] = HAVE_sminv2si3;
  ena[340] = HAVE_sminv16qi3;
  ena[341] = HAVE_sminv8hi3;
  ena[342] = HAVE_sminv4si3;
  ena[343] = HAVE_sminv2di3;
  ena[344] = HAVE_sminv4hf3;
  ena[345] = HAVE_sminv2sf3;
  ena[346] = HAVE_sminv8hf3;
  ena[347] = HAVE_sminv4sf3;
  ena[348] = HAVE_sminv2df3;
  ena[349] = HAVE_smaxsf3;
  ena[350] = HAVE_smaxdf3;
  ena[351] = HAVE_smaxv8qi3;
  ena[352] = HAVE_smaxv4hi3;
  ena[353] = HAVE_smaxv2si3;
  ena[354] = HAVE_smaxv16qi3;
  ena[355] = HAVE_smaxv8hi3;
  ena[356] = HAVE_smaxv4si3;
  ena[357] = HAVE_smaxv2di3;
  ena[358] = HAVE_smaxv4hf3;
  ena[359] = HAVE_smaxv2sf3;
  ena[360] = HAVE_smaxv8hf3;
  ena[361] = HAVE_smaxv4sf3;
  ena[362] = HAVE_smaxv2df3;
  ena[363] = HAVE_uminv8qi3;
  ena[364] = HAVE_uminv4hi3;
  ena[365] = HAVE_uminv2si3;
  ena[366] = HAVE_uminv16qi3;
  ena[367] = HAVE_uminv8hi3;
  ena[368] = HAVE_uminv4si3;
  ena[369] = HAVE_uminv2di3;
  ena[370] = HAVE_umaxv8qi3;
  ena[371] = HAVE_umaxv4hi3;
  ena[372] = HAVE_umaxv2si3;
  ena[373] = HAVE_umaxv16qi3;
  ena[374] = HAVE_umaxv8hi3;
  ena[375] = HAVE_umaxv4si3;
  ena[376] = HAVE_umaxv2di3;
  ena[377] = HAVE_negsi2;
  ena[378] = HAVE_negdi2;
  ena[379] = HAVE_neghf2;
  ena[380] = HAVE_negsf2;
  ena[381] = HAVE_negdf2;
  ena[382] = HAVE_negv8qi2;
  ena[383] = HAVE_negv4hi2;
  ena[384] = HAVE_negv2si2;
  ena[385] = HAVE_negv16qi2;
  ena[386] = HAVE_negv8hi2;
  ena[387] = HAVE_negv4si2;
  ena[388] = HAVE_negv2di2;
  ena[389] = HAVE_negv4hf2;
  ena[390] = HAVE_negv2sf2;
  ena[391] = HAVE_negv8hf2;
  ena[392] = HAVE_negv4sf2;
  ena[393] = HAVE_negv2df2;
  ena[394] = HAVE_abssi2;
  ena[395] = HAVE_absdi2;
  ena[396] = HAVE_abshf2;
  ena[397] = HAVE_abssf2;
  ena[398] = HAVE_absdf2;
  ena[399] = HAVE_absv8qi2;
  ena[400] = HAVE_absv4hi2;
  ena[401] = HAVE_absv2si2;
  ena[402] = HAVE_absv16qi2;
  ena[403] = HAVE_absv8hi2;
  ena[404] = HAVE_absv4si2;
  ena[405] = HAVE_absv2di2;
  ena[406] = HAVE_absv4hf2;
  ena[407] = HAVE_absv2sf2;
  ena[408] = HAVE_absv8hf2;
  ena[409] = HAVE_absv4sf2;
  ena[410] = HAVE_absv2df2;
  ena[411] = HAVE_one_cmplsi2;
  ena[412] = HAVE_one_cmpldi2;
  ena[413] = HAVE_one_cmplv8qi2;
  ena[414] = HAVE_one_cmplv4hi2;
  ena[415] = HAVE_one_cmplv2si2;
  ena[416] = HAVE_one_cmplv16qi2;
  ena[417] = HAVE_one_cmplv8hi2;
  ena[418] = HAVE_one_cmplv4si2;
  ena[419] = HAVE_one_cmplv2di2;
  ena[420] = HAVE_bswaphi2;
  ena[421] = HAVE_bswapsi2;
  ena[422] = HAVE_bswapdi2;
  ena[423] = HAVE_bswapv4hi2;
  ena[424] = HAVE_bswapv2si2;
  ena[425] = HAVE_bswapv8hi2;
  ena[426] = HAVE_bswapv4si2;
  ena[427] = HAVE_bswapv2di2;
  ena[428] = HAVE_ffssi2;
  ena[429] = HAVE_ffsdi2;
  ena[430] = HAVE_clzsi2;
  ena[431] = HAVE_clzdi2;
  ena[432] = HAVE_clzv8qi2;
  ena[433] = HAVE_clzv4hi2;
  ena[434] = HAVE_clzv2si2;
  ena[435] = HAVE_clzv16qi2;
  ena[436] = HAVE_clzv8hi2;
  ena[437] = HAVE_clzv4si2;
  ena[438] = HAVE_ctzsi2;
  ena[439] = HAVE_ctzdi2;
  ena[440] = HAVE_ctzv2si2;
  ena[441] = HAVE_ctzv4si2;
  ena[442] = HAVE_clrsbsi2;
  ena[443] = HAVE_clrsbdi2;
  ena[444] = HAVE_clrsbv8qi2;
  ena[445] = HAVE_clrsbv4hi2;
  ena[446] = HAVE_clrsbv2si2;
  ena[447] = HAVE_clrsbv16qi2;
  ena[448] = HAVE_clrsbv8hi2;
  ena[449] = HAVE_clrsbv4si2;
  ena[450] = HAVE_popcountv8qi2;
  ena[451] = HAVE_popcountv16qi2;
  ena[452] = HAVE_sqrthf2;
  ena[453] = HAVE_sqrtsf2;
  ena[454] = HAVE_sqrtdf2;
  ena[455] = HAVE_sqrtv4hf2;
  ena[456] = HAVE_sqrtv2sf2;
  ena[457] = HAVE_sqrtv8hf2;
  ena[458] = HAVE_sqrtv4sf2;
  ena[459] = HAVE_sqrtv2df2;
  ena[460] = HAVE_movqi;
  ena[461] = HAVE_movhi;
  ena[462] = HAVE_movsi;
  ena[463] = HAVE_movdi;
  ena[464] = HAVE_movti;
  ena[465] = HAVE_movoi;
  ena[466] = HAVE_movci;
  ena[467] = HAVE_movxi;
  ena[468] = HAVE_movhf;
  ena[469] = HAVE_movsf;
  ena[470] = HAVE_movdf;
  ena[471] = HAVE_movtf;
  ena[472] = HAVE_movv8qi;
  ena[473] = HAVE_movv4hi;
  ena[474] = HAVE_movv2si;
  ena[475] = HAVE_movv16qi;
  ena[476] = HAVE_movv8hi;
  ena[477] = HAVE_movv4si;
  ena[478] = HAVE_movv2di;
  ena[479] = HAVE_movv4hf;
  ena[480] = HAVE_movv2sf;
  ena[481] = HAVE_movv8hf;
  ena[482] = HAVE_movv4sf;
  ena[483] = HAVE_movv2df;
  ena[484] = HAVE_movmisalignv8qi;
  ena[485] = HAVE_movmisalignv4hi;
  ena[486] = HAVE_movmisalignv2si;
  ena[487] = HAVE_movmisalignv16qi;
  ena[488] = HAVE_movmisalignv8hi;
  ena[489] = HAVE_movmisalignv4si;
  ena[490] = HAVE_movmisalignv2di;
  ena[491] = HAVE_movmisalignv2sf;
  ena[492] = HAVE_movmisalignv4sf;
  ena[493] = HAVE_movmisalignv2df;
  ena[494] = HAVE_insvsi;
  ena[495] = HAVE_insvdi;
  ena[496] = HAVE_cbranchcc4;
  ena[497] = HAVE_cbranchsi4;
  ena[498] = HAVE_cbranchdi4;
  ena[499] = HAVE_cbranchsf4;
  ena[500] = HAVE_cbranchdf4;
  ena[501] = HAVE_negsicc;
  ena[502] = HAVE_negdicc;
  ena[503] = HAVE_notsicc;
  ena[504] = HAVE_notdicc;
  ena[505] = HAVE_movqicc;
  ena[506] = HAVE_movhicc;
  ena[507] = HAVE_movsicc;
  ena[508] = HAVE_movdicc;
  ena[509] = HAVE_movsfcc;
  ena[510] = HAVE_movdfcc;
  ena[511] = HAVE_cmovsi6;
  ena[512] = HAVE_cmovdi6;
  ena[513] = HAVE_cmovsf6;
  ena[514] = HAVE_cmovdf6;
  ena[515] = HAVE_cstorecc4;
  ena[516] = HAVE_cstoresi4;
  ena[517] = HAVE_cstoredi4;
  ena[518] = HAVE_cstoresf4;
  ena[519] = HAVE_cstoredf4;
  ena[520] = HAVE_smuldi3_highpart;
  ena[521] = HAVE_umuldi3_highpart;
  ena[522] = HAVE_movmemdi;
  ena[523] = HAVE_fmahf4;
  ena[524] = HAVE_fmasf4;
  ena[525] = HAVE_fmadf4;
  ena[526] = HAVE_fmav4hf4;
  ena[527] = HAVE_fmav2sf4;
  ena[528] = HAVE_fmav8hf4;
  ena[529] = HAVE_fmav4sf4;
  ena[530] = HAVE_fmav2df4;
  ena[531] = HAVE_fmssf4;
  ena[532] = HAVE_fmsdf4;
  ena[533] = HAVE_fnmahf4;
  ena[534] = HAVE_fnmasf4;
  ena[535] = HAVE_fnmadf4;
  ena[536] = HAVE_fnmav4hf4;
  ena[537] = HAVE_fnmav2sf4;
  ena[538] = HAVE_fnmav8hf4;
  ena[539] = HAVE_fnmav4sf4;
  ena[540] = HAVE_fnmav2df4;
  ena[541] = HAVE_fnmssf4;
  ena[542] = HAVE_fnmsdf4;
  ena[543] = HAVE_rinthf2;
  ena[544] = HAVE_rintsf2;
  ena[545] = HAVE_rintdf2;
  ena[546] = HAVE_rintv4hf2;
  ena[547] = HAVE_rintv2sf2;
  ena[548] = HAVE_rintv8hf2;
  ena[549] = HAVE_rintv4sf2;
  ena[550] = HAVE_rintv2df2;
  ena[551] = HAVE_roundhf2;
  ena[552] = HAVE_roundsf2;
  ena[553] = HAVE_rounddf2;
  ena[554] = HAVE_roundv4hf2;
  ena[555] = HAVE_roundv2sf2;
  ena[556] = HAVE_roundv8hf2;
  ena[557] = HAVE_roundv4sf2;
  ena[558] = HAVE_roundv2df2;
  ena[559] = HAVE_floorhf2;
  ena[560] = HAVE_floorsf2;
  ena[561] = HAVE_floordf2;
  ena[562] = HAVE_floorv4hf2;
  ena[563] = HAVE_floorv2sf2;
  ena[564] = HAVE_floorv8hf2;
  ena[565] = HAVE_floorv4sf2;
  ena[566] = HAVE_floorv2df2;
  ena[567] = HAVE_ceilhf2;
  ena[568] = HAVE_ceilsf2;
  ena[569] = HAVE_ceildf2;
  ena[570] = HAVE_ceilv4hf2;
  ena[571] = HAVE_ceilv2sf2;
  ena[572] = HAVE_ceilv8hf2;
  ena[573] = HAVE_ceilv4sf2;
  ena[574] = HAVE_ceilv2df2;
  ena[575] = HAVE_btrunchf2;
  ena[576] = HAVE_btruncsf2;
  ena[577] = HAVE_btruncdf2;
  ena[578] = HAVE_btruncv4hf2;
  ena[579] = HAVE_btruncv2sf2;
  ena[580] = HAVE_btruncv8hf2;
  ena[581] = HAVE_btruncv4sf2;
  ena[582] = HAVE_btruncv2df2;
  ena[583] = HAVE_nearbyinthf2;
  ena[584] = HAVE_nearbyintsf2;
  ena[585] = HAVE_nearbyintdf2;
  ena[586] = HAVE_nearbyintv4hf2;
  ena[587] = HAVE_nearbyintv2sf2;
  ena[588] = HAVE_nearbyintv8hf2;
  ena[589] = HAVE_nearbyintv4sf2;
  ena[590] = HAVE_nearbyintv2df2;
  ena[591] = HAVE_copysignsf3;
  ena[592] = HAVE_copysigndf3;
  ena[593] = HAVE_rsqrtsf2;
  ena[594] = HAVE_rsqrtdf2;
  ena[595] = HAVE_rsqrtv2sf2;
  ena[596] = HAVE_rsqrtv4sf2;
  ena[597] = HAVE_rsqrtv2df2;
  ena[598] = HAVE_fmaxhf3;
  ena[599] = HAVE_fmaxsf3;
  ena[600] = HAVE_fmaxdf3;
  ena[601] = HAVE_fmaxv4hf3;
  ena[602] = HAVE_fmaxv2sf3;
  ena[603] = HAVE_fmaxv8hf3;
  ena[604] = HAVE_fmaxv4sf3;
  ena[605] = HAVE_fmaxv2df3;
  ena[606] = HAVE_fminhf3;
  ena[607] = HAVE_fminsf3;
  ena[608] = HAVE_fmindf3;
  ena[609] = HAVE_fminv4hf3;
  ena[610] = HAVE_fminv2sf3;
  ena[611] = HAVE_fminv8hf3;
  ena[612] = HAVE_fminv4sf3;
  ena[613] = HAVE_fminv2df3;
  ena[614] = HAVE_reduc_smax_scal_v8qi;
  ena[615] = HAVE_reduc_smax_scal_v4hi;
  ena[616] = HAVE_reduc_smax_scal_v2si;
  ena[617] = HAVE_reduc_smax_scal_v16qi;
  ena[618] = HAVE_reduc_smax_scal_v8hi;
  ena[619] = HAVE_reduc_smax_scal_v4si;
  ena[620] = HAVE_reduc_smax_scal_v4hf;
  ena[621] = HAVE_reduc_smax_scal_v2sf;
  ena[622] = HAVE_reduc_smax_scal_v8hf;
  ena[623] = HAVE_reduc_smax_scal_v4sf;
  ena[624] = HAVE_reduc_smax_scal_v2df;
  ena[625] = HAVE_reduc_smin_scal_v8qi;
  ena[626] = HAVE_reduc_smin_scal_v4hi;
  ena[627] = HAVE_reduc_smin_scal_v2si;
  ena[628] = HAVE_reduc_smin_scal_v16qi;
  ena[629] = HAVE_reduc_smin_scal_v8hi;
  ena[630] = HAVE_reduc_smin_scal_v4si;
  ena[631] = HAVE_reduc_smin_scal_v4hf;
  ena[632] = HAVE_reduc_smin_scal_v2sf;
  ena[633] = HAVE_reduc_smin_scal_v8hf;
  ena[634] = HAVE_reduc_smin_scal_v4sf;
  ena[635] = HAVE_reduc_smin_scal_v2df;
  ena[636] = HAVE_reduc_plus_scal_v8qi;
  ena[637] = HAVE_reduc_plus_scal_v4hi;
  ena[638] = HAVE_reduc_plus_scal_v2si;
  ena[639] = HAVE_reduc_plus_scal_v16qi;
  ena[640] = HAVE_reduc_plus_scal_v8hi;
  ena[641] = HAVE_reduc_plus_scal_v4si;
  ena[642] = HAVE_reduc_plus_scal_v2di;
  ena[643] = HAVE_reduc_plus_scal_v2sf;
  ena[644] = HAVE_reduc_plus_scal_v4sf;
  ena[645] = HAVE_reduc_plus_scal_v2df;
  ena[646] = HAVE_reduc_umax_scal_v8qi;
  ena[647] = HAVE_reduc_umax_scal_v4hi;
  ena[648] = HAVE_reduc_umax_scal_v2si;
  ena[649] = HAVE_reduc_umax_scal_v16qi;
  ena[650] = HAVE_reduc_umax_scal_v8hi;
  ena[651] = HAVE_reduc_umax_scal_v4si;
  ena[652] = HAVE_reduc_umin_scal_v8qi;
  ena[653] = HAVE_reduc_umin_scal_v4hi;
  ena[654] = HAVE_reduc_umin_scal_v2si;
  ena[655] = HAVE_reduc_umin_scal_v16qi;
  ena[656] = HAVE_reduc_umin_scal_v8hi;
  ena[657] = HAVE_reduc_umin_scal_v4si;
  ena[658] = HAVE_widen_ssumv8qi3;
  ena[659] = HAVE_widen_ssumv4hi3;
  ena[660] = HAVE_widen_ssumv2si3;
  ena[661] = HAVE_widen_ssumv16qi3;
  ena[662] = HAVE_widen_ssumv8hi3;
  ena[663] = HAVE_widen_ssumv4si3;
  ena[664] = HAVE_widen_usumv8qi3;
  ena[665] = HAVE_widen_usumv4hi3;
  ena[666] = HAVE_widen_usumv2si3;
  ena[667] = HAVE_widen_usumv16qi3;
  ena[668] = HAVE_widen_usumv8hi3;
  ena[669] = HAVE_widen_usumv4si3;
  ena[670] = HAVE_vec_extractv8qi;
  ena[671] = HAVE_vec_extractv4hi;
  ena[672] = HAVE_vec_extractv2si;
  ena[673] = HAVE_vec_extractv16qi;
  ena[674] = HAVE_vec_extractv8hi;
  ena[675] = HAVE_vec_extractv4si;
  ena[676] = HAVE_vec_extractv2di;
  ena[677] = HAVE_vec_extractv4hf;
  ena[678] = HAVE_vec_extractv2sf;
  ena[679] = HAVE_vec_extractv8hf;
  ena[680] = HAVE_vec_extractv4sf;
  ena[681] = HAVE_vec_extractv2df;
  ena[682] = HAVE_vec_initv8qi;
  ena[683] = HAVE_vec_initv4hi;
  ena[684] = HAVE_vec_initv2si;
  ena[685] = HAVE_vec_initv16qi;
  ena[686] = HAVE_vec_initv8hi;
  ena[687] = HAVE_vec_initv4si;
  ena[688] = HAVE_vec_initv2di;
  ena[689] = HAVE_vec_initv4hf;
  ena[690] = HAVE_vec_initv2sf;
  ena[691] = HAVE_vec_initv8hf;
  ena[692] = HAVE_vec_initv4sf;
  ena[693] = HAVE_vec_initv2df;
  ena[694] = HAVE_vec_pack_trunc_di;
  ena[695] = HAVE_vec_pack_trunc_df;
  ena[696] = HAVE_vec_pack_trunc_v4hi;
  ena[697] = HAVE_vec_pack_trunc_v2si;
  ena[698] = HAVE_vec_pack_trunc_v8hi;
  ena[699] = HAVE_vec_pack_trunc_v4si;
  ena[700] = HAVE_vec_pack_trunc_v2di;
  ena[701] = HAVE_vec_pack_trunc_v2df;
  ena[702] = HAVE_vec_perm_constv8qi;
  ena[703] = HAVE_vec_perm_constv4hi;
  ena[704] = HAVE_vec_perm_constv2si;
  ena[705] = HAVE_vec_perm_constv16qi;
  ena[706] = HAVE_vec_perm_constv8hi;
  ena[707] = HAVE_vec_perm_constv4si;
  ena[708] = HAVE_vec_perm_constv2di;
  ena[709] = HAVE_vec_perm_constv4hf;
  ena[710] = HAVE_vec_perm_constv2sf;
  ena[711] = HAVE_vec_perm_constv8hf;
  ena[712] = HAVE_vec_perm_constv4sf;
  ena[713] = HAVE_vec_perm_constv2df;
  ena[714] = HAVE_vec_permv8qi;
  ena[715] = HAVE_vec_permv16qi;
  ena[716] = HAVE_vec_setv8qi;
  ena[717] = HAVE_vec_setv4hi;
  ena[718] = HAVE_vec_setv2si;
  ena[719] = HAVE_vec_setv16qi;
  ena[720] = HAVE_vec_setv8hi;
  ena[721] = HAVE_vec_setv4si;
  ena[722] = HAVE_vec_setv2di;
  ena[723] = HAVE_vec_setv4hf;
  ena[724] = HAVE_vec_setv2sf;
  ena[725] = HAVE_vec_setv8hf;
  ena[726] = HAVE_vec_setv4sf;
  ena[727] = HAVE_vec_setv2df;
  ena[728] = HAVE_vec_shr_v8qi;
  ena[729] = HAVE_vec_shr_v4hi;
  ena[730] = HAVE_vec_shr_v2si;
  ena[731] = HAVE_vec_shr_v4hf;
  ena[732] = HAVE_vec_shr_v2sf;
  ena[733] = HAVE_vec_unpacks_hi_v16qi;
  ena[734] = HAVE_vec_unpacks_hi_v8hi;
  ena[735] = HAVE_vec_unpacks_hi_v4si;
  ena[736] = HAVE_vec_unpacks_hi_v8hf;
  ena[737] = HAVE_vec_unpacks_hi_v4sf;
  ena[738] = HAVE_vec_unpacks_lo_v16qi;
  ena[739] = HAVE_vec_unpacks_lo_v8hi;
  ena[740] = HAVE_vec_unpacks_lo_v4si;
  ena[741] = HAVE_vec_unpacks_lo_v8hf;
  ena[742] = HAVE_vec_unpacks_lo_v4sf;
  ena[743] = HAVE_vec_unpacku_hi_v16qi;
  ena[744] = HAVE_vec_unpacku_hi_v8hi;
  ena[745] = HAVE_vec_unpacku_hi_v4si;
  ena[746] = HAVE_vec_unpacku_lo_v16qi;
  ena[747] = HAVE_vec_unpacku_lo_v8hi;
  ena[748] = HAVE_vec_unpacku_lo_v4si;
  ena[749] = HAVE_vec_widen_smult_hi_v16qi;
  ena[750] = HAVE_vec_widen_smult_hi_v8hi;
  ena[751] = HAVE_vec_widen_smult_hi_v4si;
  ena[752] = HAVE_vec_widen_smult_lo_v16qi;
  ena[753] = HAVE_vec_widen_smult_lo_v8hi;
  ena[754] = HAVE_vec_widen_smult_lo_v4si;
  ena[755] = HAVE_vec_widen_umult_hi_v16qi;
  ena[756] = HAVE_vec_widen_umult_hi_v8hi;
  ena[757] = HAVE_vec_widen_umult_hi_v4si;
  ena[758] = HAVE_vec_widen_umult_lo_v16qi;
  ena[759] = HAVE_vec_widen_umult_lo_v8hi;
  ena[760] = HAVE_vec_widen_umult_lo_v4si;
  ena[761] = HAVE_atomic_add_fetchqi;
  ena[762] = HAVE_atomic_add_fetchhi;
  ena[763] = HAVE_atomic_add_fetchsi;
  ena[764] = HAVE_atomic_add_fetchdi;
  ena[765] = HAVE_atomic_addqi;
  ena[766] = HAVE_atomic_addhi;
  ena[767] = HAVE_atomic_addsi;
  ena[768] = HAVE_atomic_adddi;
  ena[769] = HAVE_atomic_and_fetchqi;
  ena[770] = HAVE_atomic_and_fetchhi;
  ena[771] = HAVE_atomic_and_fetchsi;
  ena[772] = HAVE_atomic_and_fetchdi;
  ena[773] = HAVE_atomic_andqi;
  ena[774] = HAVE_atomic_andhi;
  ena[775] = HAVE_atomic_andsi;
  ena[776] = HAVE_atomic_anddi;
  ena[777] = HAVE_atomic_compare_and_swapqi;
  ena[778] = HAVE_atomic_compare_and_swaphi;
  ena[779] = HAVE_atomic_compare_and_swapsi;
  ena[780] = HAVE_atomic_compare_and_swapdi;
  ena[781] = HAVE_atomic_exchangeqi;
  ena[782] = HAVE_atomic_exchangehi;
  ena[783] = HAVE_atomic_exchangesi;
  ena[784] = HAVE_atomic_exchangedi;
  ena[785] = HAVE_atomic_fetch_addqi;
  ena[786] = HAVE_atomic_fetch_addhi;
  ena[787] = HAVE_atomic_fetch_addsi;
  ena[788] = HAVE_atomic_fetch_adddi;
  ena[789] = HAVE_atomic_fetch_andqi;
  ena[790] = HAVE_atomic_fetch_andhi;
  ena[791] = HAVE_atomic_fetch_andsi;
  ena[792] = HAVE_atomic_fetch_anddi;
  ena[793] = HAVE_atomic_fetch_nandqi;
  ena[794] = HAVE_atomic_fetch_nandhi;
  ena[795] = HAVE_atomic_fetch_nandsi;
  ena[796] = HAVE_atomic_fetch_nanddi;
  ena[797] = HAVE_atomic_fetch_orqi;
  ena[798] = HAVE_atomic_fetch_orhi;
  ena[799] = HAVE_atomic_fetch_orsi;
  ena[800] = HAVE_atomic_fetch_ordi;
  ena[801] = HAVE_atomic_fetch_subqi;
  ena[802] = HAVE_atomic_fetch_subhi;
  ena[803] = HAVE_atomic_fetch_subsi;
  ena[804] = HAVE_atomic_fetch_subdi;
  ena[805] = HAVE_atomic_fetch_xorqi;
  ena[806] = HAVE_atomic_fetch_xorhi;
  ena[807] = HAVE_atomic_fetch_xorsi;
  ena[808] = HAVE_atomic_fetch_xordi;
  ena[809] = HAVE_atomic_loadqi;
  ena[810] = HAVE_atomic_loadhi;
  ena[811] = HAVE_atomic_loadsi;
  ena[812] = HAVE_atomic_loaddi;
  ena[813] = HAVE_atomic_nand_fetchqi;
  ena[814] = HAVE_atomic_nand_fetchhi;
  ena[815] = HAVE_atomic_nand_fetchsi;
  ena[816] = HAVE_atomic_nand_fetchdi;
  ena[817] = HAVE_atomic_nandqi;
  ena[818] = HAVE_atomic_nandhi;
  ena[819] = HAVE_atomic_nandsi;
  ena[820] = HAVE_atomic_nanddi;
  ena[821] = HAVE_atomic_or_fetchqi;
  ena[822] = HAVE_atomic_or_fetchhi;
  ena[823] = HAVE_atomic_or_fetchsi;
  ena[824] = HAVE_atomic_or_fetchdi;
  ena[825] = HAVE_atomic_orqi;
  ena[826] = HAVE_atomic_orhi;
  ena[827] = HAVE_atomic_orsi;
  ena[828] = HAVE_atomic_ordi;
  ena[829] = HAVE_atomic_storeqi;
  ena[830] = HAVE_atomic_storehi;
  ena[831] = HAVE_atomic_storesi;
  ena[832] = HAVE_atomic_storedi;
  ena[833] = HAVE_atomic_sub_fetchqi;
  ena[834] = HAVE_atomic_sub_fetchhi;
  ena[835] = HAVE_atomic_sub_fetchsi;
  ena[836] = HAVE_atomic_sub_fetchdi;
  ena[837] = HAVE_atomic_subqi;
  ena[838] = HAVE_atomic_subhi;
  ena[839] = HAVE_atomic_subsi;
  ena[840] = HAVE_atomic_subdi;
  ena[841] = HAVE_atomic_xor_fetchqi;
  ena[842] = HAVE_atomic_xor_fetchhi;
  ena[843] = HAVE_atomic_xor_fetchsi;
  ena[844] = HAVE_atomic_xor_fetchdi;
  ena[845] = HAVE_atomic_xorqi;
  ena[846] = HAVE_atomic_xorhi;
  ena[847] = HAVE_atomic_xorsi;
  ena[848] = HAVE_atomic_xordi;
  ena[849] = 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 },
  { '4', "divmod", gen_int_libfunc },
  { '4', "udivmod", gen_int_libfunc },
  { '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,
  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,
};

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,
};

