/* Generated automatically by the program `genopinit'
   from the machine description file `md'.  */

#define IN_TARGET_CODE 1
#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] = {
  { 0x011c1d, CODE_FOR_extendqihi2 },
  { 0x011c1e, CODE_FOR_extendqisi2 },
  { 0x011c1f, CODE_FOR_extendqidi2 },
  { 0x011d1e, CODE_FOR_extendhisi2 },
  { 0x011d1f, CODE_FOR_extendhidi2 },
  { 0x011e1f, CODE_FOR_extendsidi2 },
  { 0x013739, CODE_FOR_extendhfsf2 },
  { 0x01373a, CODE_FOR_extendhfdf2 },
  { 0x01393a, CODE_FOR_extendsfdf2 },
  { 0x023937, CODE_FOR_truncsfhf2 },
  { 0x023a37, CODE_FOR_truncdfhf2 },
  { 0x023a39, CODE_FOR_truncdfsf2 },
  { 0x031c1e, CODE_FOR_zero_extendqisi2 },
  { 0x031c1f, CODE_FOR_zero_extendqidi2 },
  { 0x031d1e, CODE_FOR_zero_extendhisi2 },
  { 0x031d1f, CODE_FOR_zero_extendhidi2 },
  { 0x031e1f, CODE_FOR_zero_extendsidi2 },
  { 0x061e37, CODE_FOR_floatsihf2 },
  { 0x061e39, CODE_FOR_floatsisf2 },
  { 0x061e3a, CODE_FOR_floatsidf2 },
  { 0x061f37, CODE_FOR_floatdihf2 },
  { 0x065362, CODE_FOR_floatv2siv2sf2 },
  { 0x065665, CODE_FOR_floatv4siv4sf2 },
  { 0x071e39, CODE_FOR_floatunssisf2 },
  { 0x071e3a, CODE_FOR_floatunssidf2 },
  { 0x075362, CODE_FOR_floatunsv2siv2sf2 },
  { 0x075665, CODE_FOR_floatunsv4siv4sf2 },
  { 0x09391e, CODE_FOR_lroundsfsi2 },
  { 0x093a1e, CODE_FOR_lrounddfsi2 },
  { 0x096253, CODE_FOR_lroundv2sfv2si2 },
  { 0x096556, CODE_FOR_lroundv4sfv4si2 },
  { 0x0a391e, CODE_FOR_lfloorsfsi2 },
  { 0x0a3a1e, CODE_FOR_lfloordfsi2 },
  { 0x0a6253, CODE_FOR_lfloorv2sfv2si2 },
  { 0x0a6556, CODE_FOR_lfloorv4sfv4si2 },
  { 0x0b391e, CODE_FOR_lceilsfsi2 },
  { 0x0b3a1e, CODE_FOR_lceildfsi2 },
  { 0x0b6253, CODE_FOR_lceilv2sfv2si2 },
  { 0x0b6556, CODE_FOR_lceilv4sfv4si2 },
  { 0x10371e, CODE_FOR_fix_trunchfsi2 },
  { 0x10371f, CODE_FOR_fix_trunchfdi2 },
  { 0x10391e, CODE_FOR_fix_truncsfsi2 },
  { 0x103a1e, CODE_FOR_fix_truncdfsi2 },
  { 0x106253, CODE_FOR_fix_truncv2sfv2si2 },
  { 0x106556, CODE_FOR_fix_truncv4sfv4si2 },
  { 0x11391e, CODE_FOR_fixuns_truncsfsi2 },
  { 0x113a1e, CODE_FOR_fixuns_truncdfsi2 },
  { 0x116253, CODE_FOR_fixuns_truncv2sfv2si2 },
  { 0x116556, CODE_FOR_fixuns_truncv4sfv4si2 },
  { 0x121d1e, CODE_FOR_mulhisi3 },
  { 0x121e1f, CODE_FOR_mulsidi3 },
  { 0x131e1f, CODE_FOR_umulsidi3 },
  { 0x151d1e, CODE_FOR_maddhisi4 },
  { 0x151d1f, CODE_FOR_maddhidi4 },
  { 0x151e1f, CODE_FOR_maddsidi4 },
  { 0x161e1f, CODE_FOR_umaddsidi4 },
  { 0x1d1f1f, CODE_FOR_vec_load_lanesdidi },
  { 0x1d1f20, CODE_FOR_vec_load_lanestidi },
  { 0x1d1f21, CODE_FOR_vec_load_laneseidi },
  { 0x1d1f22, CODE_FOR_vec_load_lanesoidi },
  { 0x1d5120, CODE_FOR_vec_load_lanestiv8qi },
  { 0x1d5121, CODE_FOR_vec_load_laneseiv8qi },
  { 0x1d5122, CODE_FOR_vec_load_lanesoiv8qi },
  { 0x1d5151, CODE_FOR_vec_load_lanesv8qiv8qi },
  { 0x1d5220, CODE_FOR_vec_load_lanestiv4hi },
  { 0x1d5221, CODE_FOR_vec_load_laneseiv4hi },
  { 0x1d5222, CODE_FOR_vec_load_lanesoiv4hi },
  { 0x1d5252, CODE_FOR_vec_load_lanesv4hiv4hi },
  { 0x1d5320, CODE_FOR_vec_load_lanestiv2si },
  { 0x1d5321, CODE_FOR_vec_load_laneseiv2si },
  { 0x1d5322, CODE_FOR_vec_load_lanesoiv2si },
  { 0x1d5353, CODE_FOR_vec_load_lanesv2siv2si },
  { 0x1d5422, CODE_FOR_vec_load_lanesoiv16qi },
  { 0x1d5423, CODE_FOR_vec_load_lanesciv16qi },
  { 0x1d5424, CODE_FOR_vec_load_lanesxiv16qi },
  { 0x1d5454, CODE_FOR_vec_load_lanesv16qiv16qi },
  { 0x1d5522, CODE_FOR_vec_load_lanesoiv8hi },
  { 0x1d5523, CODE_FOR_vec_load_lanesciv8hi },
  { 0x1d5524, CODE_FOR_vec_load_lanesxiv8hi },
  { 0x1d5555, CODE_FOR_vec_load_lanesv8hiv8hi },
  { 0x1d5622, CODE_FOR_vec_load_lanesoiv4si },
  { 0x1d5623, CODE_FOR_vec_load_lanesciv4si },
  { 0x1d5624, CODE_FOR_vec_load_lanesxiv4si },
  { 0x1d5656, CODE_FOR_vec_load_lanesv4siv4si },
  { 0x1d5757, CODE_FOR_vec_load_lanesv2div2di },
  { 0x1d6020, CODE_FOR_vec_load_lanestiv4hf },
  { 0x1d6021, CODE_FOR_vec_load_laneseiv4hf },
  { 0x1d6022, CODE_FOR_vec_load_lanesoiv4hf },
  { 0x1d6060, CODE_FOR_vec_load_lanesv4hfv4hf },
  { 0x1d6120, CODE_FOR_vec_load_lanestiv4bf },
  { 0x1d6121, CODE_FOR_vec_load_laneseiv4bf },
  { 0x1d6122, CODE_FOR_vec_load_lanesoiv4bf },
  { 0x1d6161, CODE_FOR_vec_load_lanesv4bfv4bf },
  { 0x1d6220, CODE_FOR_vec_load_lanestiv2sf },
  { 0x1d6221, CODE_FOR_vec_load_laneseiv2sf },
  { 0x1d6222, CODE_FOR_vec_load_lanesoiv2sf },
  { 0x1d6262, CODE_FOR_vec_load_lanesv2sfv2sf },
  { 0x1d6322, CODE_FOR_vec_load_lanesoiv8hf },
  { 0x1d6323, CODE_FOR_vec_load_lanesciv8hf },
  { 0x1d6324, CODE_FOR_vec_load_lanesxiv8hf },
  { 0x1d6363, CODE_FOR_vec_load_lanesv8hfv8hf },
  { 0x1d6464, CODE_FOR_vec_load_lanesv8bfv8bf },
  { 0x1d6522, CODE_FOR_vec_load_lanesoiv4sf },
  { 0x1d6523, CODE_FOR_vec_load_lanesciv4sf },
  { 0x1d6524, CODE_FOR_vec_load_lanesxiv4sf },
  { 0x1d6565, CODE_FOR_vec_load_lanesv4sfv4sf },
  { 0x1e1f1f, CODE_FOR_vec_store_lanesdidi },
  { 0x1e1f20, CODE_FOR_vec_store_lanestidi },
  { 0x1e1f21, CODE_FOR_vec_store_laneseidi },
  { 0x1e1f22, CODE_FOR_vec_store_lanesoidi },
  { 0x1e5120, CODE_FOR_vec_store_lanestiv8qi },
  { 0x1e5121, CODE_FOR_vec_store_laneseiv8qi },
  { 0x1e5122, CODE_FOR_vec_store_lanesoiv8qi },
  { 0x1e5151, CODE_FOR_vec_store_lanesv8qiv8qi },
  { 0x1e5220, CODE_FOR_vec_store_lanestiv4hi },
  { 0x1e5221, CODE_FOR_vec_store_laneseiv4hi },
  { 0x1e5222, CODE_FOR_vec_store_lanesoiv4hi },
  { 0x1e5252, CODE_FOR_vec_store_lanesv4hiv4hi },
  { 0x1e5320, CODE_FOR_vec_store_lanestiv2si },
  { 0x1e5321, CODE_FOR_vec_store_laneseiv2si },
  { 0x1e5322, CODE_FOR_vec_store_lanesoiv2si },
  { 0x1e5353, CODE_FOR_vec_store_lanesv2siv2si },
  { 0x1e5422, CODE_FOR_vec_store_lanesoiv16qi },
  { 0x1e5423, CODE_FOR_vec_store_lanesciv16qi },
  { 0x1e5424, CODE_FOR_vec_store_lanesxiv16qi },
  { 0x1e5454, CODE_FOR_vec_store_lanesv16qiv16qi },
  { 0x1e5522, CODE_FOR_vec_store_lanesoiv8hi },
  { 0x1e5523, CODE_FOR_vec_store_lanesciv8hi },
  { 0x1e5524, CODE_FOR_vec_store_lanesxiv8hi },
  { 0x1e5555, CODE_FOR_vec_store_lanesv8hiv8hi },
  { 0x1e5622, CODE_FOR_vec_store_lanesoiv4si },
  { 0x1e5623, CODE_FOR_vec_store_lanesciv4si },
  { 0x1e5624, CODE_FOR_vec_store_lanesxiv4si },
  { 0x1e5656, CODE_FOR_vec_store_lanesv4siv4si },
  { 0x1e5757, CODE_FOR_vec_store_lanesv2div2di },
  { 0x1e6020, CODE_FOR_vec_store_lanestiv4hf },
  { 0x1e6021, CODE_FOR_vec_store_laneseiv4hf },
  { 0x1e6022, CODE_FOR_vec_store_lanesoiv4hf },
  { 0x1e6060, CODE_FOR_vec_store_lanesv4hfv4hf },
  { 0x1e6120, CODE_FOR_vec_store_lanestiv4bf },
  { 0x1e6121, CODE_FOR_vec_store_laneseiv4bf },
  { 0x1e6122, CODE_FOR_vec_store_lanesoiv4bf },
  { 0x1e6161, CODE_FOR_vec_store_lanesv4bfv4bf },
  { 0x1e6220, CODE_FOR_vec_store_lanestiv2sf },
  { 0x1e6221, CODE_FOR_vec_store_laneseiv2sf },
  { 0x1e6222, CODE_FOR_vec_store_lanesoiv2sf },
  { 0x1e6262, CODE_FOR_vec_store_lanesv2sfv2sf },
  { 0x1e6322, CODE_FOR_vec_store_lanesoiv8hf },
  { 0x1e6323, CODE_FOR_vec_store_lanesciv8hf },
  { 0x1e6324, CODE_FOR_vec_store_lanesxiv8hf },
  { 0x1e6363, CODE_FOR_vec_store_lanesv8hfv8hf },
  { 0x1e6464, CODE_FOR_vec_store_lanesv8bfv8bf },
  { 0x1e6522, CODE_FOR_vec_store_lanesoiv4sf },
  { 0x1e6523, CODE_FOR_vec_store_lanesciv4sf },
  { 0x1e6524, CODE_FOR_vec_store_lanesxiv4sf },
  { 0x1e6565, CODE_FOR_vec_store_lanesv4sfv4sf },
  { 0x215151, CODE_FOR_vcondv8qiv8qi },
  { 0x215252, CODE_FOR_vcondv4hiv4hi },
  { 0x215260, CODE_FOR_vcondv4hfv4hi },
  { 0x215353, CODE_FOR_vcondv2siv2si },
  { 0x215362, CODE_FOR_vcondv2sfv2si },
  { 0x215454, CODE_FOR_vcondv16qiv16qi },
  { 0x215555, CODE_FOR_vcondv8hiv8hi },
  { 0x215563, CODE_FOR_vcondv8hfv8hi },
  { 0x215656, CODE_FOR_vcondv4siv4si },
  { 0x215665, CODE_FOR_vcondv4sfv4si },
  { 0x216052, CODE_FOR_vcondv4hiv4hf },
  { 0x216060, CODE_FOR_vcondv4hfv4hf },
  { 0x216253, CODE_FOR_vcondv2siv2sf },
  { 0x216262, CODE_FOR_vcondv2sfv2sf },
  { 0x216355, CODE_FOR_vcondv8hiv8hf },
  { 0x216363, CODE_FOR_vcondv8hfv8hf },
  { 0x216556, CODE_FOR_vcondv4siv4sf },
  { 0x216565, CODE_FOR_vcondv4sfv4sf },
  { 0x225151, CODE_FOR_vconduv8qiv8qi },
  { 0x225252, CODE_FOR_vconduv4hiv4hi },
  { 0x225353, CODE_FOR_vconduv2siv2si },
  { 0x225362, CODE_FOR_vconduv2sfv2si },
  { 0x225454, CODE_FOR_vconduv16qiv16qi },
  { 0x225555, CODE_FOR_vconduv8hiv8hi },
  { 0x225656, CODE_FOR_vconduv4siv4si },
  { 0x225665, CODE_FOR_vconduv4sfv4si },
  { 0x244b54, CODE_FOR_vcond_mask_v16qiv16bi },
  { 0x244c55, CODE_FOR_vcond_mask_v8hiv8bi },
  { 0x244c63, CODE_FOR_vcond_mask_v8hfv8bi },
  { 0x244d56, CODE_FOR_vcond_mask_v4siv4bi },
  { 0x244d65, CODE_FOR_vcond_mask_v4sfv4bi },
  { 0x245151, CODE_FOR_vcond_mask_v8qiv8qi },
  { 0x245252, CODE_FOR_vcond_mask_v4hiv4hi },
  { 0x245260, CODE_FOR_vcond_mask_v4hfv4hi },
  { 0x245353, CODE_FOR_vcond_mask_v2siv2si },
  { 0x245362, CODE_FOR_vcond_mask_v2sfv2si },
  { 0x245454, CODE_FOR_vcond_mask_v16qiv16qi },
  { 0x245555, CODE_FOR_vcond_mask_v8hiv8hi },
  { 0x245563, CODE_FOR_vcond_mask_v8hfv8hi },
  { 0x245656, CODE_FOR_vcond_mask_v4siv4si },
  { 0x245665, CODE_FOR_vcond_mask_v4sfv4si },
  { 0x254b54, CODE_FOR_vec_cmpv16qiv16bi },
  { 0x254c55, CODE_FOR_vec_cmpv8hiv8bi },
  { 0x254c63, CODE_FOR_vec_cmpv8hfv8bi },
  { 0x254d56, CODE_FOR_vec_cmpv4siv4bi },
  { 0x254d65, CODE_FOR_vec_cmpv4sfv4bi },
  { 0x255151, CODE_FOR_vec_cmpv8qiv8qi },
  { 0x255252, CODE_FOR_vec_cmpv4hiv4hi },
  { 0x255260, CODE_FOR_vec_cmpv4hfv4hi },
  { 0x255353, CODE_FOR_vec_cmpv2siv2si },
  { 0x255362, CODE_FOR_vec_cmpv2sfv2si },
  { 0x255454, CODE_FOR_vec_cmpv16qiv16qi },
  { 0x255555, CODE_FOR_vec_cmpv8hiv8hi },
  { 0x255563, CODE_FOR_vec_cmpv8hfv8hi },
  { 0x255656, CODE_FOR_vec_cmpv4siv4si },
  { 0x255665, CODE_FOR_vec_cmpv4sfv4si },
  { 0x264b54, CODE_FOR_vec_cmpuv16qiv16bi },
  { 0x264c55, CODE_FOR_vec_cmpuv8hiv8bi },
  { 0x264d56, CODE_FOR_vec_cmpuv4siv4bi },
  { 0x265151, CODE_FOR_vec_cmpuv8qiv8qi },
  { 0x265252, CODE_FOR_vec_cmpuv4hiv4hi },
  { 0x265353, CODE_FOR_vec_cmpuv2siv2si },
  { 0x265454, CODE_FOR_vec_cmpuv16qiv16qi },
  { 0x265555, CODE_FOR_vec_cmpuv8hiv8hi },
  { 0x265656, CODE_FOR_vec_cmpuv4siv4si },
  { 0x2e1c51, CODE_FOR_vec_extractv8qiqi },
  { 0x2e1c54, CODE_FOR_vec_extractv16qiqi },
  { 0x2e1d52, CODE_FOR_vec_extractv4hihi },
  { 0x2e1d55, CODE_FOR_vec_extractv8hihi },
  { 0x2e1e53, CODE_FOR_vec_extractv2sisi },
  { 0x2e1e56, CODE_FOR_vec_extractv4sisi },
  { 0x2e1f57, CODE_FOR_vec_extractv2didi },
  { 0x2e3760, CODE_FOR_vec_extractv4hfhf },
  { 0x2e3763, CODE_FOR_vec_extractv8hfhf },
  { 0x2e3861, CODE_FOR_vec_extractv4bfbf },
  { 0x2e3962, CODE_FOR_vec_extractv2sfsf },
  { 0x2e3965, CODE_FOR_vec_extractv4sfsf },
  { 0x2f1c51, CODE_FOR_vec_initv8qiqi },
  { 0x2f1c54, CODE_FOR_vec_initv16qiqi },
  { 0x2f1d52, CODE_FOR_vec_initv4hihi },
  { 0x2f1d55, CODE_FOR_vec_initv8hihi },
  { 0x2f1e53, CODE_FOR_vec_initv2sisi },
  { 0x2f1e56, CODE_FOR_vec_initv4sisi },
  { 0x2f1f1f, CODE_FOR_vec_initdidi },
  { 0x2f1f57, CODE_FOR_vec_initv2didi },
  { 0x2f3760, CODE_FOR_vec_initv4hfhf },
  { 0x2f3763, CODE_FOR_vec_initv8hfhf },
  { 0x2f3861, CODE_FOR_vec_initv4bfbf },
  { 0x2f3864, CODE_FOR_vec_initv8bfbf },
  { 0x2f3962, CODE_FOR_vec_initv2sfsf },
  { 0x2f3965, CODE_FOR_vec_initv4sfsf },
  { 0x31001e, CODE_FOR_addsi3 },
  { 0x31001f, CODE_FOR_adddi3 },
  { 0x310025, CODE_FOR_addqq3 },
  { 0x310026, CODE_FOR_addhq3 },
  { 0x310027, CODE_FOR_addsq3 },
  { 0x31002a, CODE_FOR_adduqq3 },
  { 0x31002b, CODE_FOR_adduhq3 },
  { 0x31002c, CODE_FOR_addusq3 },
  { 0x31002f, CODE_FOR_addha3 },
  { 0x310030, CODE_FOR_addsa3 },
  { 0x310033, CODE_FOR_adduha3 },
  { 0x310034, CODE_FOR_addusa3 },
  { 0x310037, CODE_FOR_addhf3 },
  { 0x310039, CODE_FOR_addsf3 },
  { 0x31003a, CODE_FOR_adddf3 },
  { 0x310051, CODE_FOR_addv8qi3 },
  { 0x310052, CODE_FOR_addv4hi3 },
  { 0x310053, CODE_FOR_addv2si3 },
  { 0x310054, CODE_FOR_addv16qi3 },
  { 0x310055, CODE_FOR_addv8hi3 },
  { 0x310056, CODE_FOR_addv4si3 },
  { 0x310057, CODE_FOR_addv2di3 },
  { 0x310058, CODE_FOR_addv4qq3 },
  { 0x310059, CODE_FOR_addv2hq3 },
  { 0x31005c, CODE_FOR_addv2ha3 },
  { 0x310060, CODE_FOR_addv4hf3 },
  { 0x310062, CODE_FOR_addv2sf3 },
  { 0x310063, CODE_FOR_addv8hf3 },
  { 0x310065, CODE_FOR_addv4sf3 },
  { 0x330025, CODE_FOR_ssaddqq3 },
  { 0x330026, CODE_FOR_ssaddhq3 },
  { 0x330027, CODE_FOR_ssaddsq3 },
  { 0x33002f, CODE_FOR_ssaddha3 },
  { 0x330030, CODE_FOR_ssaddsa3 },
  { 0x330058, CODE_FOR_ssaddv4qq3 },
  { 0x330059, CODE_FOR_ssaddv2hq3 },
  { 0x33005c, CODE_FOR_ssaddv2ha3 },
  { 0x34002a, CODE_FOR_usadduqq3 },
  { 0x34002b, CODE_FOR_usadduhq3 },
  { 0x340033, CODE_FOR_usadduha3 },
  { 0x34005a, CODE_FOR_usaddv4uqq3 },
  { 0x34005b, CODE_FOR_usaddv2uhq3 },
  { 0x34005d, CODE_FOR_usaddv2uha3 },
  { 0x35001e, CODE_FOR_subsi3 },
  { 0x35001f, CODE_FOR_subdi3 },
  { 0x350025, CODE_FOR_subqq3 },
  { 0x350026, CODE_FOR_subhq3 },
  { 0x350027, CODE_FOR_subsq3 },
  { 0x35002a, CODE_FOR_subuqq3 },
  { 0x35002b, CODE_FOR_subuhq3 },
  { 0x35002c, CODE_FOR_subusq3 },
  { 0x35002f, CODE_FOR_subha3 },
  { 0x350030, CODE_FOR_subsa3 },
  { 0x350033, CODE_FOR_subuha3 },
  { 0x350034, CODE_FOR_subusa3 },
  { 0x350037, CODE_FOR_subhf3 },
  { 0x350039, CODE_FOR_subsf3 },
  { 0x35003a, CODE_FOR_subdf3 },
  { 0x350051, CODE_FOR_subv8qi3 },
  { 0x350052, CODE_FOR_subv4hi3 },
  { 0x350053, CODE_FOR_subv2si3 },
  { 0x350054, CODE_FOR_subv16qi3 },
  { 0x350055, CODE_FOR_subv8hi3 },
  { 0x350056, CODE_FOR_subv4si3 },
  { 0x350057, CODE_FOR_subv2di3 },
  { 0x350058, CODE_FOR_subv4qq3 },
  { 0x350059, CODE_FOR_subv2hq3 },
  { 0x35005c, CODE_FOR_subv2ha3 },
  { 0x350060, CODE_FOR_subv4hf3 },
  { 0x350062, CODE_FOR_subv2sf3 },
  { 0x350063, CODE_FOR_subv8hf3 },
  { 0x350065, CODE_FOR_subv4sf3 },
  { 0x36001e, CODE_FOR_subvsi3 },
  { 0x370025, CODE_FOR_sssubqq3 },
  { 0x370026, CODE_FOR_sssubhq3 },
  { 0x370027, CODE_FOR_sssubsq3 },
  { 0x37002f, CODE_FOR_sssubha3 },
  { 0x370030, CODE_FOR_sssubsa3 },
  { 0x370058, CODE_FOR_sssubv4qq3 },
  { 0x370059, CODE_FOR_sssubv2hq3 },
  { 0x37005c, CODE_FOR_sssubv2ha3 },
  { 0x38002a, CODE_FOR_ussubuqq3 },
  { 0x38002b, CODE_FOR_ussubuhq3 },
  { 0x380033, CODE_FOR_ussubuha3 },
  { 0x38005a, CODE_FOR_ussubv4uqq3 },
  { 0x38005b, CODE_FOR_ussubv2uhq3 },
  { 0x38005d, CODE_FOR_ussubv2uha3 },
  { 0x39001d, CODE_FOR_mulhi3 },
  { 0x39001e, CODE_FOR_mulsi3 },
  { 0x390025, CODE_FOR_mulqq3 },
  { 0x390026, CODE_FOR_mulhq3 },
  { 0x390027, CODE_FOR_mulsq3 },
  { 0x39002f, CODE_FOR_mulha3 },
  { 0x390030, CODE_FOR_mulsa3 },
  { 0x390033, CODE_FOR_muluha3 },
  { 0x390034, CODE_FOR_mulusa3 },
  { 0x390037, CODE_FOR_mulhf3 },
  { 0x390039, CODE_FOR_mulsf3 },
  { 0x39003a, CODE_FOR_muldf3 },
  { 0x390051, CODE_FOR_mulv8qi3 },
  { 0x390052, CODE_FOR_mulv4hi3 },
  { 0x390053, CODE_FOR_mulv2si3 },
  { 0x390054, CODE_FOR_mulv16qi3 },
  { 0x390055, CODE_FOR_mulv8hi3 },
  { 0x390056, CODE_FOR_mulv4si3 },
  { 0x390060, CODE_FOR_mulv4hf3 },
  { 0x390062, CODE_FOR_mulv2sf3 },
  { 0x390063, CODE_FOR_mulv8hf3 },
  { 0x390065, CODE_FOR_mulv4sf3 },
  { 0x3b002f, CODE_FOR_ssmulha3 },
  { 0x3b0030, CODE_FOR_ssmulsa3 },
  { 0x3c0033, CODE_FOR_usmuluha3 },
  { 0x3c0034, CODE_FOR_usmulusa3 },
  { 0x3d001e, CODE_FOR_divsi3 },
  { 0x3d0037, CODE_FOR_divhf3 },
  { 0x3d0039, CODE_FOR_divsf3 },
  { 0x3d003a, CODE_FOR_divdf3 },
  { 0x3d0062, CODE_FOR_divv2sf3 },
  { 0x3d0065, CODE_FOR_divv4sf3 },
  { 0x40001e, CODE_FOR_udivsi3 },
  { 0x44001e, CODE_FOR_modsi3 },
  { 0x47001e, CODE_FOR_andsi3 },
  { 0x47001f, CODE_FOR_anddi3 },
  { 0x470051, CODE_FOR_andv8qi3 },
  { 0x470052, CODE_FOR_andv4hi3 },
  { 0x470053, CODE_FOR_andv2si3 },
  { 0x470054, CODE_FOR_andv16qi3 },
  { 0x470055, CODE_FOR_andv8hi3 },
  { 0x470056, CODE_FOR_andv4si3 },
  { 0x470057, CODE_FOR_andv2di3 },
  { 0x470060, CODE_FOR_andv4hf3 },
  { 0x470062, CODE_FOR_andv2sf3 },
  { 0x470063, CODE_FOR_andv8hf3 },
  { 0x470065, CODE_FOR_andv4sf3 },
  { 0x48001e, CODE_FOR_iorsi3 },
  { 0x48001f, CODE_FOR_iordi3 },
  { 0x480051, CODE_FOR_iorv8qi3 },
  { 0x480052, CODE_FOR_iorv4hi3 },
  { 0x480053, CODE_FOR_iorv2si3 },
  { 0x480054, CODE_FOR_iorv16qi3 },
  { 0x480055, CODE_FOR_iorv8hi3 },
  { 0x480056, CODE_FOR_iorv4si3 },
  { 0x480057, CODE_FOR_iorv2di3 },
  { 0x480060, CODE_FOR_iorv4hf3 },
  { 0x480062, CODE_FOR_iorv2sf3 },
  { 0x480063, CODE_FOR_iorv8hf3 },
  { 0x480065, CODE_FOR_iorv4sf3 },
  { 0x49001e, CODE_FOR_xorsi3 },
  { 0x49001f, CODE_FOR_xordi3 },
  { 0x490051, CODE_FOR_xorv8qi3 },
  { 0x490052, CODE_FOR_xorv4hi3 },
  { 0x490053, CODE_FOR_xorv2si3 },
  { 0x490054, CODE_FOR_xorv16qi3 },
  { 0x490055, CODE_FOR_xorv8hi3 },
  { 0x490056, CODE_FOR_xorv4si3 },
  { 0x490057, CODE_FOR_xorv2di3 },
  { 0x490060, CODE_FOR_xorv4hf3 },
  { 0x490062, CODE_FOR_xorv2sf3 },
  { 0x490063, CODE_FOR_xorv8hf3 },
  { 0x490065, CODE_FOR_xorv4sf3 },
  { 0x4a001e, CODE_FOR_ashlsi3 },
  { 0x4a001f, CODE_FOR_ashldi3 },
  { 0x4d001e, CODE_FOR_ashrsi3 },
  { 0x4d001f, CODE_FOR_ashrdi3 },
  { 0x4e001e, CODE_FOR_lshrsi3 },
  { 0x4e001f, CODE_FOR_lshrdi3 },
  { 0x4f001e, CODE_FOR_rotlsi3 },
  { 0x50001e, CODE_FOR_rotrsi3 },
  { 0x510051, CODE_FOR_vashlv8qi3 },
  { 0x510052, CODE_FOR_vashlv4hi3 },
  { 0x510053, CODE_FOR_vashlv2si3 },
  { 0x510054, CODE_FOR_vashlv16qi3 },
  { 0x510055, CODE_FOR_vashlv8hi3 },
  { 0x510056, CODE_FOR_vashlv4si3 },
  { 0x520051, CODE_FOR_vashrv8qi3 },
  { 0x520052, CODE_FOR_vashrv4hi3 },
  { 0x520053, CODE_FOR_vashrv2si3 },
  { 0x520054, CODE_FOR_vashrv16qi3 },
  { 0x520055, CODE_FOR_vashrv8hi3 },
  { 0x520056, CODE_FOR_vashrv4si3 },
  { 0x530051, CODE_FOR_vlshrv8qi3 },
  { 0x530052, CODE_FOR_vlshrv4hi3 },
  { 0x530053, CODE_FOR_vlshrv2si3 },
  { 0x530054, CODE_FOR_vlshrv16qi3 },
  { 0x530055, CODE_FOR_vlshrv8hi3 },
  { 0x530056, CODE_FOR_vlshrv4si3 },
  { 0x56001e, CODE_FOR_sminsi3 },
  { 0x560039, CODE_FOR_sminsf3 },
  { 0x56003a, CODE_FOR_smindf3 },
  { 0x560051, CODE_FOR_sminv8qi3 },
  { 0x560052, CODE_FOR_sminv4hi3 },
  { 0x560053, CODE_FOR_sminv2si3 },
  { 0x560054, CODE_FOR_sminv16qi3 },
  { 0x560055, CODE_FOR_sminv8hi3 },
  { 0x560056, CODE_FOR_sminv4si3 },
  { 0x560062, CODE_FOR_sminv2sf3 },
  { 0x560065, CODE_FOR_sminv4sf3 },
  { 0x57001e, CODE_FOR_smaxsi3 },
  { 0x570039, CODE_FOR_smaxsf3 },
  { 0x57003a, CODE_FOR_smaxdf3 },
  { 0x570051, CODE_FOR_smaxv8qi3 },
  { 0x570052, CODE_FOR_smaxv4hi3 },
  { 0x570053, CODE_FOR_smaxv2si3 },
  { 0x570054, CODE_FOR_smaxv16qi3 },
  { 0x570055, CODE_FOR_smaxv8hi3 },
  { 0x570056, CODE_FOR_smaxv4si3 },
  { 0x570062, CODE_FOR_smaxv2sf3 },
  { 0x570065, CODE_FOR_smaxv4sf3 },
  { 0x58001e, CODE_FOR_uminsi3 },
  { 0x580051, CODE_FOR_uminv8qi3 },
  { 0x580052, CODE_FOR_uminv4hi3 },
  { 0x580053, CODE_FOR_uminv2si3 },
  { 0x580054, CODE_FOR_uminv16qi3 },
  { 0x580055, CODE_FOR_uminv8hi3 },
  { 0x580056, CODE_FOR_uminv4si3 },
  { 0x59001e, CODE_FOR_umaxsi3 },
  { 0x590051, CODE_FOR_umaxv8qi3 },
  { 0x590052, CODE_FOR_umaxv4hi3 },
  { 0x590053, CODE_FOR_umaxv2si3 },
  { 0x590054, CODE_FOR_umaxv16qi3 },
  { 0x590055, CODE_FOR_umaxv8hi3 },
  { 0x590056, CODE_FOR_umaxv4si3 },
  { 0x5a001e, CODE_FOR_negsi2 },
  { 0x5a0037, CODE_FOR_neghf2 },
  { 0x5a0039, CODE_FOR_negsf2 },
  { 0x5a003a, CODE_FOR_negdf2 },
  { 0x5a0051, CODE_FOR_negv8qi2 },
  { 0x5a0052, CODE_FOR_negv4hi2 },
  { 0x5a0053, CODE_FOR_negv2si2 },
  { 0x5a0054, CODE_FOR_negv16qi2 },
  { 0x5a0055, CODE_FOR_negv8hi2 },
  { 0x5a0056, CODE_FOR_negv4si2 },
  { 0x5a0060, CODE_FOR_negv4hf2 },
  { 0x5a0062, CODE_FOR_negv2sf2 },
  { 0x5a0063, CODE_FOR_negv8hf2 },
  { 0x5a0065, CODE_FOR_negv4sf2 },
  { 0x5e001e, CODE_FOR_abssi2 },
  { 0x5e0037, CODE_FOR_abshf2 },
  { 0x5e0039, CODE_FOR_abssf2 },
  { 0x5e003a, CODE_FOR_absdf2 },
  { 0x5e0051, CODE_FOR_absv8qi2 },
  { 0x5e0052, CODE_FOR_absv4hi2 },
  { 0x5e0053, CODE_FOR_absv2si2 },
  { 0x5e0054, CODE_FOR_absv16qi2 },
  { 0x5e0055, CODE_FOR_absv8hi2 },
  { 0x5e0056, CODE_FOR_absv4si2 },
  { 0x5e0060, CODE_FOR_absv4hf2 },
  { 0x5e0062, CODE_FOR_absv2sf2 },
  { 0x5e0063, CODE_FOR_absv8hf2 },
  { 0x5e0065, CODE_FOR_absv4sf2 },
  { 0x60001e, CODE_FOR_one_cmplsi2 },
  { 0x60001f, CODE_FOR_one_cmpldi2 },
  { 0x600051, CODE_FOR_one_cmplv8qi2 },
  { 0x600052, CODE_FOR_one_cmplv4hi2 },
  { 0x600053, CODE_FOR_one_cmplv2si2 },
  { 0x600054, CODE_FOR_one_cmplv16qi2 },
  { 0x600055, CODE_FOR_one_cmplv8hi2 },
  { 0x600056, CODE_FOR_one_cmplv4si2 },
  { 0x600057, CODE_FOR_one_cmplv2di2 },
  { 0x600060, CODE_FOR_one_cmplv4hf2 },
  { 0x600062, CODE_FOR_one_cmplv2sf2 },
  { 0x600063, CODE_FOR_one_cmplv8hf2 },
  { 0x600065, CODE_FOR_one_cmplv4sf2 },
  { 0x61001d, CODE_FOR_bswaphi2 },
  { 0x61001e, CODE_FOR_bswapsi2 },
  { 0x63001e, CODE_FOR_clzsi2 },
  { 0x630051, CODE_FOR_clzv8qi2 },
  { 0x630052, CODE_FOR_clzv4hi2 },
  { 0x630053, CODE_FOR_clzv2si2 },
  { 0x630054, CODE_FOR_clzv16qi2 },
  { 0x630055, CODE_FOR_clzv8hi2 },
  { 0x630056, CODE_FOR_clzv4si2 },
  { 0x64001e, CODE_FOR_ctzsi2 },
  { 0x660051, CODE_FOR_popcountv8qi2 },
  { 0x660054, CODE_FOR_popcountv16qi2 },
  { 0x720039, CODE_FOR_sqrtsf2 },
  { 0x72003a, CODE_FOR_sqrtdf2 },
  { 0x81001c, CODE_FOR_movqi },
  { 0x81001d, CODE_FOR_movhi },
  { 0x81001e, CODE_FOR_movsi },
  { 0x81001f, CODE_FOR_movdi },
  { 0x810020, CODE_FOR_movti },
  { 0x810021, CODE_FOR_movei },
  { 0x810022, CODE_FOR_movoi },
  { 0x810023, CODE_FOR_movci },
  { 0x810024, CODE_FOR_movxi },
  { 0x810037, CODE_FOR_movhf },
  { 0x810038, CODE_FOR_movbf },
  { 0x810039, CODE_FOR_movsf },
  { 0x81003a, CODE_FOR_movdf },
  { 0x81004b, CODE_FOR_movv16bi },
  { 0x81004c, CODE_FOR_movv8bi },
  { 0x81004d, CODE_FOR_movv4bi },
  { 0x81004e, CODE_FOR_movv2qi },
  { 0x810051, CODE_FOR_movv8qi },
  { 0x810052, CODE_FOR_movv4hi },
  { 0x810053, CODE_FOR_movv2si },
  { 0x810054, CODE_FOR_movv16qi },
  { 0x810055, CODE_FOR_movv8hi },
  { 0x810056, CODE_FOR_movv4si },
  { 0x810057, CODE_FOR_movv2di },
  { 0x810060, CODE_FOR_movv4hf },
  { 0x810061, CODE_FOR_movv4bf },
  { 0x810062, CODE_FOR_movv2sf },
  { 0x810063, CODE_FOR_movv8hf },
  { 0x810064, CODE_FOR_movv8bf },
  { 0x810065, CODE_FOR_movv4sf },
  { 0x83001d, CODE_FOR_movmisalignhi },
  { 0x83001e, CODE_FOR_movmisalignsi },
  { 0x83001f, CODE_FOR_movmisaligndi },
  { 0x830051, CODE_FOR_movmisalignv8qi },
  { 0x830052, CODE_FOR_movmisalignv4hi },
  { 0x830053, CODE_FOR_movmisalignv2si },
  { 0x830054, CODE_FOR_movmisalignv16qi },
  { 0x830055, CODE_FOR_movmisalignv8hi },
  { 0x830056, CODE_FOR_movmisalignv4si },
  { 0x830057, CODE_FOR_movmisalignv2di },
  { 0x830060, CODE_FOR_movmisalignv4hf },
  { 0x830062, CODE_FOR_movmisalignv2sf },
  { 0x830063, CODE_FOR_movmisalignv8hf },
  { 0x830065, CODE_FOR_movmisalignv4sf },
  { 0x8c001d, CODE_FOR_reload_inhi },
  { 0x8d001d, CODE_FOR_reload_outhi },
  { 0x8d003a, CODE_FOR_reload_outdf },
  { 0x8e001c, CODE_FOR_cbranchqi4 },
  { 0x8e001e, CODE_FOR_cbranchsi4 },
  { 0x8e001f, CODE_FOR_cbranchdi4 },
  { 0x8e0039, CODE_FOR_cbranchsf4 },
  { 0x8e003a, CODE_FOR_cbranchdf4 },
  { 0x94001e, CODE_FOR_movsicc },
  { 0x940037, CODE_FOR_movhfcc },
  { 0x940039, CODE_FOR_movsfcc },
  { 0x94003a, CODE_FOR_movdfcc },
  { 0xae001e, CODE_FOR_cstoresi4 },
  { 0xae001f, CODE_FOR_cstoredi4 },
  { 0xae0037, CODE_FOR_cstorehf4 },
  { 0xae0039, CODE_FOR_cstoresf4 },
  { 0xae003a, CODE_FOR_cstoredf4 },
  { 0xb0001e, CODE_FOR_addvsi4 },
  { 0xb0001f, CODE_FOR_addvdi4 },
  { 0xb1001e, CODE_FOR_subvsi4 },
  { 0xb1001f, CODE_FOR_subvdi4 },
  { 0xb3001e, CODE_FOR_uaddvsi4 },
  { 0xb3001f, CODE_FOR_uaddvdi4 },
  { 0xb4001e, CODE_FOR_usubvsi4 },
  { 0xb4001f, CODE_FOR_usubvdi4 },
  { 0xb6001e, CODE_FOR_negvsi3 },
  { 0xb6001f, CODE_FOR_negvdi3 },
  { 0xb9001e, CODE_FOR_smulsi3_highpart },
  { 0xb90052, CODE_FOR_smulv4hi3_highpart },
  { 0xba001e, CODE_FOR_umulsi3_highpart },
  { 0xba0052, CODE_FOR_umulv4hi3_highpart },
  { 0xbe001c, CODE_FOR_cpymemqi },
  { 0xc0001e, CODE_FOR_setmemsi },
  { 0xc30037, CODE_FOR_fmahf4 },
  { 0xc30039, CODE_FOR_fmasf4 },
  { 0xc3003a, CODE_FOR_fmadf4 },
  { 0xc30060, CODE_FOR_fmav4hf4 },
  { 0xc30062, CODE_FOR_fmav2sf4 },
  { 0xc30063, CODE_FOR_fmav8hf4 },
  { 0xc30065, CODE_FOR_fmav4sf4 },
  { 0xc70039, CODE_FOR_rintsf2 },
  { 0xc7003a, CODE_FOR_rintdf2 },
  { 0xc70062, CODE_FOR_rintv2sf2 },
  { 0xc70065, CODE_FOR_rintv4sf2 },
  { 0xc80039, CODE_FOR_roundsf2 },
  { 0xc8003a, CODE_FOR_rounddf2 },
  { 0xc80062, CODE_FOR_roundv2sf2 },
  { 0xc80065, CODE_FOR_roundv4sf2 },
  { 0xc90062, CODE_FOR_roundevenv2sf2 },
  { 0xc90065, CODE_FOR_roundevenv4sf2 },
  { 0xca0039, CODE_FOR_floorsf2 },
  { 0xca003a, CODE_FOR_floordf2 },
  { 0xca0062, CODE_FOR_floorv2sf2 },
  { 0xca0065, CODE_FOR_floorv4sf2 },
  { 0xcb0039, CODE_FOR_ceilsf2 },
  { 0xcb003a, CODE_FOR_ceildf2 },
  { 0xcb0062, CODE_FOR_ceilv2sf2 },
  { 0xcb0065, CODE_FOR_ceilv4sf2 },
  { 0xcc0039, CODE_FOR_btruncsf2 },
  { 0xcc003a, CODE_FOR_btruncdf2 },
  { 0xcc0062, CODE_FOR_btruncv2sf2 },
  { 0xcc0065, CODE_FOR_btruncv4sf2 },
  { 0xcd0039, CODE_FOR_nearbyintsf2 },
  { 0xcd003a, CODE_FOR_nearbyintdf2 },
  { 0xd50039, CODE_FOR_copysignsf3 },
  { 0xd5003a, CODE_FOR_copysigndf3 },
  { 0xd50062, CODE_FOR_copysignv2sf3 },
  { 0xd50065, CODE_FOR_copysignv4sf3 },
  { 0xd70054, CODE_FOR_cadd90v16qi3 },
  { 0xd70055, CODE_FOR_cadd90v8hi3 },
  { 0xd70056, CODE_FOR_cadd90v4si3 },
  { 0xd70060, CODE_FOR_cadd90v4hf3 },
  { 0xd70062, CODE_FOR_cadd90v2sf3 },
  { 0xd70063, CODE_FOR_cadd90v8hf3 },
  { 0xd70065, CODE_FOR_cadd90v4sf3 },
  { 0xd80054, CODE_FOR_cadd270v16qi3 },
  { 0xd80055, CODE_FOR_cadd270v8hi3 },
  { 0xd80056, CODE_FOR_cadd270v4si3 },
  { 0xd80060, CODE_FOR_cadd270v4hf3 },
  { 0xd80062, CODE_FOR_cadd270v2sf3 },
  { 0xd80063, CODE_FOR_cadd270v8hf3 },
  { 0xd80065, CODE_FOR_cadd270v4sf3 },
  { 0xd90060, CODE_FOR_cmulv4hf3 },
  { 0xd90062, CODE_FOR_cmulv2sf3 },
  { 0xd90063, CODE_FOR_cmulv8hf3 },
  { 0xd90065, CODE_FOR_cmulv4sf3 },
  { 0xda0060, CODE_FOR_cmul_conjv4hf3 },
  { 0xda0062, CODE_FOR_cmul_conjv2sf3 },
  { 0xda0063, CODE_FOR_cmul_conjv8hf3 },
  { 0xda0065, CODE_FOR_cmul_conjv4sf3 },
  { 0xdb0060, CODE_FOR_cmlav4hf4 },
  { 0xdb0062, CODE_FOR_cmlav2sf4 },
  { 0xdb0063, CODE_FOR_cmlav8hf4 },
  { 0xdb0065, CODE_FOR_cmlav4sf4 },
  { 0xdc0060, CODE_FOR_cmla_conjv4hf4 },
  { 0xdc0062, CODE_FOR_cmla_conjv2sf4 },
  { 0xdc0063, CODE_FOR_cmla_conjv8hf4 },
  { 0xdc0065, CODE_FOR_cmla_conjv4sf4 },
  { 0xdd0060, CODE_FOR_cmlsv4hf4 },
  { 0xdd0062, CODE_FOR_cmlsv2sf4 },
  { 0xdd0063, CODE_FOR_cmlsv8hf4 },
  { 0xdd0065, CODE_FOR_cmlsv4sf4 },
  { 0xde0060, CODE_FOR_cmls_conjv4hf4 },
  { 0xde0062, CODE_FOR_cmls_conjv2sf4 },
  { 0xde0063, CODE_FOR_cmls_conjv8hf4 },
  { 0xde0065, CODE_FOR_cmls_conjv4sf4 },
  { 0xfe0039, CODE_FOR_fmaxsf3 },
  { 0xfe003a, CODE_FOR_fmaxdf3 },
  { 0xfe0062, CODE_FOR_fmaxv2sf3 },
  { 0xfe0065, CODE_FOR_fmaxv4sf3 },
  { 0xff0039, CODE_FOR_fminsf3 },
  { 0xff003a, CODE_FOR_fmindf3 },
  { 0xff0062, CODE_FOR_fminv2sf3 },
  { 0xff0065, CODE_FOR_fminv4sf3 },
  { 0x1020051, CODE_FOR_reduc_smax_scal_v8qi },
  { 0x1020052, CODE_FOR_reduc_smax_scal_v4hi },
  { 0x1020053, CODE_FOR_reduc_smax_scal_v2si },
  { 0x1020054, CODE_FOR_reduc_smax_scal_v16qi },
  { 0x1020055, CODE_FOR_reduc_smax_scal_v8hi },
  { 0x1020056, CODE_FOR_reduc_smax_scal_v4si },
  { 0x1020062, CODE_FOR_reduc_smax_scal_v2sf },
  { 0x1020065, CODE_FOR_reduc_smax_scal_v4sf },
  { 0x1030051, CODE_FOR_reduc_smin_scal_v8qi },
  { 0x1030052, CODE_FOR_reduc_smin_scal_v4hi },
  { 0x1030053, CODE_FOR_reduc_smin_scal_v2si },
  { 0x1030054, CODE_FOR_reduc_smin_scal_v16qi },
  { 0x1030055, CODE_FOR_reduc_smin_scal_v8hi },
  { 0x1030056, CODE_FOR_reduc_smin_scal_v4si },
  { 0x1030062, CODE_FOR_reduc_smin_scal_v2sf },
  { 0x1030065, CODE_FOR_reduc_smin_scal_v4sf },
  { 0x1040051, CODE_FOR_reduc_plus_scal_v8qi },
  { 0x1040052, CODE_FOR_reduc_plus_scal_v4hi },
  { 0x1040053, CODE_FOR_reduc_plus_scal_v2si },
  { 0x1040054, CODE_FOR_reduc_plus_scal_v16qi },
  { 0x1040055, CODE_FOR_reduc_plus_scal_v8hi },
  { 0x1040056, CODE_FOR_reduc_plus_scal_v4si },
  { 0x1040057, CODE_FOR_reduc_plus_scal_v2di },
  { 0x1040062, CODE_FOR_reduc_plus_scal_v2sf },
  { 0x1040065, CODE_FOR_reduc_plus_scal_v4sf },
  { 0x1050051, CODE_FOR_reduc_umax_scal_v8qi },
  { 0x1050052, CODE_FOR_reduc_umax_scal_v4hi },
  { 0x1050053, CODE_FOR_reduc_umax_scal_v2si },
  { 0x1050054, CODE_FOR_reduc_umax_scal_v16qi },
  { 0x1050055, CODE_FOR_reduc_umax_scal_v8hi },
  { 0x1050056, CODE_FOR_reduc_umax_scal_v4si },
  { 0x1060051, CODE_FOR_reduc_umin_scal_v8qi },
  { 0x1060052, CODE_FOR_reduc_umin_scal_v4hi },
  { 0x1060053, CODE_FOR_reduc_umin_scal_v2si },
  { 0x1060054, CODE_FOR_reduc_umin_scal_v16qi },
  { 0x1060055, CODE_FOR_reduc_umin_scal_v8hi },
  { 0x1060056, CODE_FOR_reduc_umin_scal_v4si },
  { 0x10e0054, CODE_FOR_avgv16qi3_floor },
  { 0x10e0055, CODE_FOR_avgv8hi3_floor },
  { 0x10e0056, CODE_FOR_avgv4si3_floor },
  { 0x10f0054, CODE_FOR_uavgv16qi3_floor },
  { 0x10f0055, CODE_FOR_uavgv8hi3_floor },
  { 0x10f0056, CODE_FOR_uavgv4si3_floor },
  { 0x1100054, CODE_FOR_avgv16qi3_ceil },
  { 0x1100055, CODE_FOR_avgv8hi3_ceil },
  { 0x1100056, CODE_FOR_avgv4si3_ceil },
  { 0x1110054, CODE_FOR_uavgv16qi3_ceil },
  { 0x1110055, CODE_FOR_uavgv8hi3_ceil },
  { 0x1110056, CODE_FOR_uavgv4si3_ceil },
  { 0x1120051, CODE_FOR_sdot_prodv8qi },
  { 0x1120054, CODE_FOR_sdot_prodv16qi },
  { 0x1130051, CODE_FOR_widen_ssumv8qi3 },
  { 0x1130052, CODE_FOR_widen_ssumv4hi3 },
  { 0x1130053, CODE_FOR_widen_ssumv2si3 },
  { 0x1130054, CODE_FOR_widen_ssumv16qi3 },
  { 0x1130055, CODE_FOR_widen_ssumv8hi3 },
  { 0x1130056, CODE_FOR_widen_ssumv4si3 },
  { 0x1140051, CODE_FOR_udot_prodv8qi },
  { 0x1140054, CODE_FOR_udot_prodv16qi },
  { 0x1150051, CODE_FOR_usdot_prodv8qi },
  { 0x1150054, CODE_FOR_usdot_prodv16qi },
  { 0x1160051, CODE_FOR_widen_usumv8qi3 },
  { 0x1160052, CODE_FOR_widen_usumv4hi3 },
  { 0x1160053, CODE_FOR_widen_usumv2si3 },
  { 0x1160054, CODE_FOR_widen_usumv16qi3 },
  { 0x1160055, CODE_FOR_widen_usumv8hi3 },
  { 0x1160056, CODE_FOR_widen_usumv4si3 },
  { 0x1170054, CODE_FOR_usadv16qi },
  { 0x1180054, CODE_FOR_ssadv16qi },
  { 0x120001f, CODE_FOR_vec_pack_trunc_di },
  { 0x1200052, CODE_FOR_vec_pack_trunc_v4hi },
  { 0x1200053, CODE_FOR_vec_pack_trunc_v2si },
  { 0x1200055, CODE_FOR_vec_pack_trunc_v8hi },
  { 0x1200056, CODE_FOR_vec_pack_trunc_v4si },
  { 0x1200057, CODE_FOR_vec_pack_trunc_v2di },
  { 0x1260051, CODE_FOR_vec_permv8qi },
  { 0x1260054, CODE_FOR_vec_permv16qi },
  { 0x1280054, CODE_FOR_vec_setv16qi },
  { 0x1280055, CODE_FOR_vec_setv8hi },
  { 0x1280056, CODE_FOR_vec_setv4si },
  { 0x1280057, CODE_FOR_vec_setv2di },
  { 0x1280063, CODE_FOR_vec_setv8hf },
  { 0x1280065, CODE_FOR_vec_setv4sf },
  { 0x1310051, CODE_FOR_vec_unpacks_hi_v8qi },
  { 0x1310052, CODE_FOR_vec_unpacks_hi_v4hi },
  { 0x1310053, CODE_FOR_vec_unpacks_hi_v2si },
  { 0x1310054, CODE_FOR_vec_unpacks_hi_v16qi },
  { 0x1310055, CODE_FOR_vec_unpacks_hi_v8hi },
  { 0x1310056, CODE_FOR_vec_unpacks_hi_v4si },
  { 0x1320051, CODE_FOR_vec_unpacks_lo_v8qi },
  { 0x1320052, CODE_FOR_vec_unpacks_lo_v4hi },
  { 0x1320053, CODE_FOR_vec_unpacks_lo_v2si },
  { 0x1320054, CODE_FOR_vec_unpacks_lo_v16qi },
  { 0x1320055, CODE_FOR_vec_unpacks_lo_v8hi },
  { 0x1320056, CODE_FOR_vec_unpacks_lo_v4si },
  { 0x1370051, CODE_FOR_vec_unpacku_hi_v8qi },
  { 0x1370052, CODE_FOR_vec_unpacku_hi_v4hi },
  { 0x1370053, CODE_FOR_vec_unpacku_hi_v2si },
  { 0x1370054, CODE_FOR_vec_unpacku_hi_v16qi },
  { 0x1370055, CODE_FOR_vec_unpacku_hi_v8hi },
  { 0x1370056, CODE_FOR_vec_unpacku_hi_v4si },
  { 0x1380051, CODE_FOR_vec_unpacku_lo_v8qi },
  { 0x1380052, CODE_FOR_vec_unpacku_lo_v4hi },
  { 0x1380053, CODE_FOR_vec_unpacku_lo_v2si },
  { 0x1380054, CODE_FOR_vec_unpacku_lo_v16qi },
  { 0x1380055, CODE_FOR_vec_unpacku_lo_v8hi },
  { 0x1380056, CODE_FOR_vec_unpacku_lo_v4si },
  { 0x13a0051, CODE_FOR_vec_widen_smult_hi_v8qi },
  { 0x13a0052, CODE_FOR_vec_widen_smult_hi_v4hi },
  { 0x13a0053, CODE_FOR_vec_widen_smult_hi_v2si },
  { 0x13a0054, CODE_FOR_vec_widen_smult_hi_v16qi },
  { 0x13a0055, CODE_FOR_vec_widen_smult_hi_v8hi },
  { 0x13a0056, CODE_FOR_vec_widen_smult_hi_v4si },
  { 0x13b0051, CODE_FOR_vec_widen_smult_lo_v8qi },
  { 0x13b0052, CODE_FOR_vec_widen_smult_lo_v4hi },
  { 0x13b0053, CODE_FOR_vec_widen_smult_lo_v2si },
  { 0x13b0054, CODE_FOR_vec_widen_smult_lo_v16qi },
  { 0x13b0055, CODE_FOR_vec_widen_smult_lo_v8hi },
  { 0x13b0056, CODE_FOR_vec_widen_smult_lo_v4si },
  { 0x1410051, CODE_FOR_vec_widen_sshiftl_hi_v8qi },
  { 0x1410052, CODE_FOR_vec_widen_sshiftl_hi_v4hi },
  { 0x1410053, CODE_FOR_vec_widen_sshiftl_hi_v2si },
  { 0x1410054, CODE_FOR_vec_widen_sshiftl_hi_v16qi },
  { 0x1410055, CODE_FOR_vec_widen_sshiftl_hi_v8hi },
  { 0x1410056, CODE_FOR_vec_widen_sshiftl_hi_v4si },
  { 0x1420051, CODE_FOR_vec_widen_sshiftl_lo_v8qi },
  { 0x1420052, CODE_FOR_vec_widen_sshiftl_lo_v4hi },
  { 0x1420053, CODE_FOR_vec_widen_sshiftl_lo_v2si },
  { 0x1420054, CODE_FOR_vec_widen_sshiftl_lo_v16qi },
  { 0x1420055, CODE_FOR_vec_widen_sshiftl_lo_v8hi },
  { 0x1420056, CODE_FOR_vec_widen_sshiftl_lo_v4si },
  { 0x1440051, CODE_FOR_vec_widen_umult_hi_v8qi },
  { 0x1440052, CODE_FOR_vec_widen_umult_hi_v4hi },
  { 0x1440053, CODE_FOR_vec_widen_umult_hi_v2si },
  { 0x1440054, CODE_FOR_vec_widen_umult_hi_v16qi },
  { 0x1440055, CODE_FOR_vec_widen_umult_hi_v8hi },
  { 0x1440056, CODE_FOR_vec_widen_umult_hi_v4si },
  { 0x1450051, CODE_FOR_vec_widen_umult_lo_v8qi },
  { 0x1450052, CODE_FOR_vec_widen_umult_lo_v4hi },
  { 0x1450053, CODE_FOR_vec_widen_umult_lo_v2si },
  { 0x1450054, CODE_FOR_vec_widen_umult_lo_v16qi },
  { 0x1450055, CODE_FOR_vec_widen_umult_lo_v8hi },
  { 0x1450056, CODE_FOR_vec_widen_umult_lo_v4si },
  { 0x1470051, CODE_FOR_vec_widen_ushiftl_hi_v8qi },
  { 0x1470052, CODE_FOR_vec_widen_ushiftl_hi_v4hi },
  { 0x1470053, CODE_FOR_vec_widen_ushiftl_hi_v2si },
  { 0x1470054, CODE_FOR_vec_widen_ushiftl_hi_v16qi },
  { 0x1470055, CODE_FOR_vec_widen_ushiftl_hi_v8hi },
  { 0x1470056, CODE_FOR_vec_widen_ushiftl_hi_v4si },
  { 0x1480051, CODE_FOR_vec_widen_ushiftl_lo_v8qi },
  { 0x1480052, CODE_FOR_vec_widen_ushiftl_lo_v4hi },
  { 0x1480053, CODE_FOR_vec_widen_ushiftl_lo_v2si },
  { 0x1480054, CODE_FOR_vec_widen_ushiftl_lo_v16qi },
  { 0x1480055, CODE_FOR_vec_widen_ushiftl_lo_v8hi },
  { 0x1480056, CODE_FOR_vec_widen_ushiftl_lo_v4si },
  { 0x157001c, CODE_FOR_atomic_add_fetchqi },
  { 0x157001d, CODE_FOR_atomic_add_fetchhi },
  { 0x157001e, CODE_FOR_atomic_add_fetchsi },
  { 0x157001f, CODE_FOR_atomic_add_fetchdi },
  { 0x158001c, CODE_FOR_atomic_addqi },
  { 0x158001d, CODE_FOR_atomic_addhi },
  { 0x158001e, CODE_FOR_atomic_addsi },
  { 0x158001f, CODE_FOR_atomic_adddi },
  { 0x159001c, CODE_FOR_atomic_and_fetchqi },
  { 0x159001d, CODE_FOR_atomic_and_fetchhi },
  { 0x159001e, CODE_FOR_atomic_and_fetchsi },
  { 0x159001f, CODE_FOR_atomic_and_fetchdi },
  { 0x15a001c, CODE_FOR_atomic_andqi },
  { 0x15a001d, CODE_FOR_atomic_andhi },
  { 0x15a001e, CODE_FOR_atomic_andsi },
  { 0x15a001f, CODE_FOR_atomic_anddi },
  { 0x15e001c, CODE_FOR_atomic_compare_and_swapqi },
  { 0x15e001d, CODE_FOR_atomic_compare_and_swaphi },
  { 0x15e001e, CODE_FOR_atomic_compare_and_swapsi },
  { 0x15e001f, CODE_FOR_atomic_compare_and_swapdi },
  { 0x15f001c, CODE_FOR_atomic_exchangeqi },
  { 0x15f001d, CODE_FOR_atomic_exchangehi },
  { 0x15f001e, CODE_FOR_atomic_exchangesi },
  { 0x15f001f, CODE_FOR_atomic_exchangedi },
  { 0x160001c, CODE_FOR_atomic_fetch_addqi },
  { 0x160001d, CODE_FOR_atomic_fetch_addhi },
  { 0x160001e, CODE_FOR_atomic_fetch_addsi },
  { 0x160001f, CODE_FOR_atomic_fetch_adddi },
  { 0x161001c, CODE_FOR_atomic_fetch_andqi },
  { 0x161001d, CODE_FOR_atomic_fetch_andhi },
  { 0x161001e, CODE_FOR_atomic_fetch_andsi },
  { 0x161001f, CODE_FOR_atomic_fetch_anddi },
  { 0x162001c, CODE_FOR_atomic_fetch_nandqi },
  { 0x162001d, CODE_FOR_atomic_fetch_nandhi },
  { 0x162001e, CODE_FOR_atomic_fetch_nandsi },
  { 0x162001f, CODE_FOR_atomic_fetch_nanddi },
  { 0x163001c, CODE_FOR_atomic_fetch_orqi },
  { 0x163001d, CODE_FOR_atomic_fetch_orhi },
  { 0x163001e, CODE_FOR_atomic_fetch_orsi },
  { 0x163001f, CODE_FOR_atomic_fetch_ordi },
  { 0x164001c, CODE_FOR_atomic_fetch_subqi },
  { 0x164001d, CODE_FOR_atomic_fetch_subhi },
  { 0x164001e, CODE_FOR_atomic_fetch_subsi },
  { 0x164001f, CODE_FOR_atomic_fetch_subdi },
  { 0x165001c, CODE_FOR_atomic_fetch_xorqi },
  { 0x165001d, CODE_FOR_atomic_fetch_xorhi },
  { 0x165001e, CODE_FOR_atomic_fetch_xorsi },
  { 0x165001f, CODE_FOR_atomic_fetch_xordi },
  { 0x166001c, CODE_FOR_atomic_loadqi },
  { 0x166001d, CODE_FOR_atomic_loadhi },
  { 0x166001e, CODE_FOR_atomic_loadsi },
  { 0x166001f, CODE_FOR_atomic_loaddi },
  { 0x167001c, CODE_FOR_atomic_nand_fetchqi },
  { 0x167001d, CODE_FOR_atomic_nand_fetchhi },
  { 0x167001e, CODE_FOR_atomic_nand_fetchsi },
  { 0x167001f, CODE_FOR_atomic_nand_fetchdi },
  { 0x168001c, CODE_FOR_atomic_nandqi },
  { 0x168001d, CODE_FOR_atomic_nandhi },
  { 0x168001e, CODE_FOR_atomic_nandsi },
  { 0x168001f, CODE_FOR_atomic_nanddi },
  { 0x169001c, CODE_FOR_atomic_or_fetchqi },
  { 0x169001d, CODE_FOR_atomic_or_fetchhi },
  { 0x169001e, CODE_FOR_atomic_or_fetchsi },
  { 0x169001f, CODE_FOR_atomic_or_fetchdi },
  { 0x16a001c, CODE_FOR_atomic_orqi },
  { 0x16a001d, CODE_FOR_atomic_orhi },
  { 0x16a001e, CODE_FOR_atomic_orsi },
  { 0x16a001f, CODE_FOR_atomic_ordi },
  { 0x16b001c, CODE_FOR_atomic_storeqi },
  { 0x16b001d, CODE_FOR_atomic_storehi },
  { 0x16b001e, CODE_FOR_atomic_storesi },
  { 0x16c001c, CODE_FOR_atomic_sub_fetchqi },
  { 0x16c001d, CODE_FOR_atomic_sub_fetchhi },
  { 0x16c001e, CODE_FOR_atomic_sub_fetchsi },
  { 0x16c001f, CODE_FOR_atomic_sub_fetchdi },
  { 0x16d001c, CODE_FOR_atomic_subqi },
  { 0x16d001d, CODE_FOR_atomic_subhi },
  { 0x16d001e, CODE_FOR_atomic_subsi },
  { 0x16d001f, CODE_FOR_atomic_subdi },
  { 0x16e001c, CODE_FOR_atomic_xor_fetchqi },
  { 0x16e001d, CODE_FOR_atomic_xor_fetchhi },
  { 0x16e001e, CODE_FOR_atomic_xor_fetchsi },
  { 0x16e001f, CODE_FOR_atomic_xor_fetchdi },
  { 0x16f001c, CODE_FOR_atomic_xorqi },
  { 0x16f001d, CODE_FOR_atomic_xorhi },
  { 0x16f001e, CODE_FOR_atomic_xorsi },
  { 0x16f001f, CODE_FOR_atomic_xordi },
  { 0x175001e, CODE_FOR_get_thread_pointersi },
};

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_extendqisi2;
  ena[13] = HAVE_zero_extendqidi2;
  ena[14] = HAVE_zero_extendhisi2;
  ena[15] = HAVE_zero_extendhidi2;
  ena[16] = HAVE_zero_extendsidi2;
  ena[17] = HAVE_floatsihf2;
  ena[18] = HAVE_floatsisf2;
  ena[19] = HAVE_floatsidf2;
  ena[20] = HAVE_floatdihf2;
  ena[21] = HAVE_floatv2siv2sf2;
  ena[22] = HAVE_floatv4siv4sf2;
  ena[23] = HAVE_floatunssisf2;
  ena[24] = HAVE_floatunssidf2;
  ena[25] = HAVE_floatunsv2siv2sf2;
  ena[26] = HAVE_floatunsv4siv4sf2;
  ena[27] = HAVE_lroundsfsi2;
  ena[28] = HAVE_lrounddfsi2;
  ena[29] = HAVE_lroundv2sfv2si2;
  ena[30] = HAVE_lroundv4sfv4si2;
  ena[31] = HAVE_lfloorsfsi2;
  ena[32] = HAVE_lfloordfsi2;
  ena[33] = HAVE_lfloorv2sfv2si2;
  ena[34] = HAVE_lfloorv4sfv4si2;
  ena[35] = HAVE_lceilsfsi2;
  ena[36] = HAVE_lceildfsi2;
  ena[37] = HAVE_lceilv2sfv2si2;
  ena[38] = HAVE_lceilv4sfv4si2;
  ena[39] = HAVE_fix_trunchfsi2;
  ena[40] = HAVE_fix_trunchfdi2;
  ena[41] = HAVE_fix_truncsfsi2;
  ena[42] = HAVE_fix_truncdfsi2;
  ena[43] = HAVE_fix_truncv2sfv2si2;
  ena[44] = HAVE_fix_truncv4sfv4si2;
  ena[45] = HAVE_fixuns_truncsfsi2;
  ena[46] = HAVE_fixuns_truncdfsi2;
  ena[47] = HAVE_fixuns_truncv2sfv2si2;
  ena[48] = HAVE_fixuns_truncv4sfv4si2;
  ena[49] = HAVE_mulhisi3;
  ena[50] = HAVE_mulsidi3;
  ena[51] = HAVE_umulsidi3;
  ena[52] = HAVE_maddhisi4;
  ena[53] = HAVE_maddhidi4;
  ena[54] = HAVE_maddsidi4;
  ena[55] = HAVE_umaddsidi4;
  ena[56] = HAVE_vec_load_lanesdidi;
  ena[57] = HAVE_vec_load_lanestidi;
  ena[58] = HAVE_vec_load_laneseidi;
  ena[59] = HAVE_vec_load_lanesoidi;
  ena[60] = HAVE_vec_load_lanestiv8qi;
  ena[61] = HAVE_vec_load_laneseiv8qi;
  ena[62] = HAVE_vec_load_lanesoiv8qi;
  ena[63] = HAVE_vec_load_lanesv8qiv8qi;
  ena[64] = HAVE_vec_load_lanestiv4hi;
  ena[65] = HAVE_vec_load_laneseiv4hi;
  ena[66] = HAVE_vec_load_lanesoiv4hi;
  ena[67] = HAVE_vec_load_lanesv4hiv4hi;
  ena[68] = HAVE_vec_load_lanestiv2si;
  ena[69] = HAVE_vec_load_laneseiv2si;
  ena[70] = HAVE_vec_load_lanesoiv2si;
  ena[71] = HAVE_vec_load_lanesv2siv2si;
  ena[72] = HAVE_vec_load_lanesoiv16qi;
  ena[73] = HAVE_vec_load_lanesciv16qi;
  ena[74] = HAVE_vec_load_lanesxiv16qi;
  ena[75] = HAVE_vec_load_lanesv16qiv16qi;
  ena[76] = HAVE_vec_load_lanesoiv8hi;
  ena[77] = HAVE_vec_load_lanesciv8hi;
  ena[78] = HAVE_vec_load_lanesxiv8hi;
  ena[79] = HAVE_vec_load_lanesv8hiv8hi;
  ena[80] = HAVE_vec_load_lanesoiv4si;
  ena[81] = HAVE_vec_load_lanesciv4si;
  ena[82] = HAVE_vec_load_lanesxiv4si;
  ena[83] = HAVE_vec_load_lanesv4siv4si;
  ena[84] = HAVE_vec_load_lanesv2div2di;
  ena[85] = HAVE_vec_load_lanestiv4hf;
  ena[86] = HAVE_vec_load_laneseiv4hf;
  ena[87] = HAVE_vec_load_lanesoiv4hf;
  ena[88] = HAVE_vec_load_lanesv4hfv4hf;
  ena[89] = HAVE_vec_load_lanestiv4bf;
  ena[90] = HAVE_vec_load_laneseiv4bf;
  ena[91] = HAVE_vec_load_lanesoiv4bf;
  ena[92] = HAVE_vec_load_lanesv4bfv4bf;
  ena[93] = HAVE_vec_load_lanestiv2sf;
  ena[94] = HAVE_vec_load_laneseiv2sf;
  ena[95] = HAVE_vec_load_lanesoiv2sf;
  ena[96] = HAVE_vec_load_lanesv2sfv2sf;
  ena[97] = HAVE_vec_load_lanesoiv8hf;
  ena[98] = HAVE_vec_load_lanesciv8hf;
  ena[99] = HAVE_vec_load_lanesxiv8hf;
  ena[100] = HAVE_vec_load_lanesv8hfv8hf;
  ena[101] = HAVE_vec_load_lanesv8bfv8bf;
  ena[102] = HAVE_vec_load_lanesoiv4sf;
  ena[103] = HAVE_vec_load_lanesciv4sf;
  ena[104] = HAVE_vec_load_lanesxiv4sf;
  ena[105] = HAVE_vec_load_lanesv4sfv4sf;
  ena[106] = HAVE_vec_store_lanesdidi;
  ena[107] = HAVE_vec_store_lanestidi;
  ena[108] = HAVE_vec_store_laneseidi;
  ena[109] = HAVE_vec_store_lanesoidi;
  ena[110] = HAVE_vec_store_lanestiv8qi;
  ena[111] = HAVE_vec_store_laneseiv8qi;
  ena[112] = HAVE_vec_store_lanesoiv8qi;
  ena[113] = HAVE_vec_store_lanesv8qiv8qi;
  ena[114] = HAVE_vec_store_lanestiv4hi;
  ena[115] = HAVE_vec_store_laneseiv4hi;
  ena[116] = HAVE_vec_store_lanesoiv4hi;
  ena[117] = HAVE_vec_store_lanesv4hiv4hi;
  ena[118] = HAVE_vec_store_lanestiv2si;
  ena[119] = HAVE_vec_store_laneseiv2si;
  ena[120] = HAVE_vec_store_lanesoiv2si;
  ena[121] = HAVE_vec_store_lanesv2siv2si;
  ena[122] = HAVE_vec_store_lanesoiv16qi;
  ena[123] = HAVE_vec_store_lanesciv16qi;
  ena[124] = HAVE_vec_store_lanesxiv16qi;
  ena[125] = HAVE_vec_store_lanesv16qiv16qi;
  ena[126] = HAVE_vec_store_lanesoiv8hi;
  ena[127] = HAVE_vec_store_lanesciv8hi;
  ena[128] = HAVE_vec_store_lanesxiv8hi;
  ena[129] = HAVE_vec_store_lanesv8hiv8hi;
  ena[130] = HAVE_vec_store_lanesoiv4si;
  ena[131] = HAVE_vec_store_lanesciv4si;
  ena[132] = HAVE_vec_store_lanesxiv4si;
  ena[133] = HAVE_vec_store_lanesv4siv4si;
  ena[134] = HAVE_vec_store_lanesv2div2di;
  ena[135] = HAVE_vec_store_lanestiv4hf;
  ena[136] = HAVE_vec_store_laneseiv4hf;
  ena[137] = HAVE_vec_store_lanesoiv4hf;
  ena[138] = HAVE_vec_store_lanesv4hfv4hf;
  ena[139] = HAVE_vec_store_lanestiv4bf;
  ena[140] = HAVE_vec_store_laneseiv4bf;
  ena[141] = HAVE_vec_store_lanesoiv4bf;
  ena[142] = HAVE_vec_store_lanesv4bfv4bf;
  ena[143] = HAVE_vec_store_lanestiv2sf;
  ena[144] = HAVE_vec_store_laneseiv2sf;
  ena[145] = HAVE_vec_store_lanesoiv2sf;
  ena[146] = HAVE_vec_store_lanesv2sfv2sf;
  ena[147] = HAVE_vec_store_lanesoiv8hf;
  ena[148] = HAVE_vec_store_lanesciv8hf;
  ena[149] = HAVE_vec_store_lanesxiv8hf;
  ena[150] = HAVE_vec_store_lanesv8hfv8hf;
  ena[151] = HAVE_vec_store_lanesv8bfv8bf;
  ena[152] = HAVE_vec_store_lanesoiv4sf;
  ena[153] = HAVE_vec_store_lanesciv4sf;
  ena[154] = HAVE_vec_store_lanesxiv4sf;
  ena[155] = HAVE_vec_store_lanesv4sfv4sf;
  ena[156] = HAVE_vcondv8qiv8qi;
  ena[157] = HAVE_vcondv4hiv4hi;
  ena[158] = HAVE_vcondv4hfv4hi;
  ena[159] = HAVE_vcondv2siv2si;
  ena[160] = HAVE_vcondv2sfv2si;
  ena[161] = HAVE_vcondv16qiv16qi;
  ena[162] = HAVE_vcondv8hiv8hi;
  ena[163] = HAVE_vcondv8hfv8hi;
  ena[164] = HAVE_vcondv4siv4si;
  ena[165] = HAVE_vcondv4sfv4si;
  ena[166] = HAVE_vcondv4hiv4hf;
  ena[167] = HAVE_vcondv4hfv4hf;
  ena[168] = HAVE_vcondv2siv2sf;
  ena[169] = HAVE_vcondv2sfv2sf;
  ena[170] = HAVE_vcondv8hiv8hf;
  ena[171] = HAVE_vcondv8hfv8hf;
  ena[172] = HAVE_vcondv4siv4sf;
  ena[173] = HAVE_vcondv4sfv4sf;
  ena[174] = HAVE_vconduv8qiv8qi;
  ena[175] = HAVE_vconduv4hiv4hi;
  ena[176] = HAVE_vconduv2siv2si;
  ena[177] = HAVE_vconduv2sfv2si;
  ena[178] = HAVE_vconduv16qiv16qi;
  ena[179] = HAVE_vconduv8hiv8hi;
  ena[180] = HAVE_vconduv4siv4si;
  ena[181] = HAVE_vconduv4sfv4si;
  ena[182] = HAVE_vcond_mask_v16qiv16bi;
  ena[183] = HAVE_vcond_mask_v8hiv8bi;
  ena[184] = HAVE_vcond_mask_v8hfv8bi;
  ena[185] = HAVE_vcond_mask_v4siv4bi;
  ena[186] = HAVE_vcond_mask_v4sfv4bi;
  ena[187] = HAVE_vcond_mask_v8qiv8qi;
  ena[188] = HAVE_vcond_mask_v4hiv4hi;
  ena[189] = HAVE_vcond_mask_v4hfv4hi;
  ena[190] = HAVE_vcond_mask_v2siv2si;
  ena[191] = HAVE_vcond_mask_v2sfv2si;
  ena[192] = HAVE_vcond_mask_v16qiv16qi;
  ena[193] = HAVE_vcond_mask_v8hiv8hi;
  ena[194] = HAVE_vcond_mask_v8hfv8hi;
  ena[195] = HAVE_vcond_mask_v4siv4si;
  ena[196] = HAVE_vcond_mask_v4sfv4si;
  ena[197] = HAVE_vec_cmpv16qiv16bi;
  ena[198] = HAVE_vec_cmpv8hiv8bi;
  ena[199] = HAVE_vec_cmpv8hfv8bi;
  ena[200] = HAVE_vec_cmpv4siv4bi;
  ena[201] = HAVE_vec_cmpv4sfv4bi;
  ena[202] = HAVE_vec_cmpv8qiv8qi;
  ena[203] = HAVE_vec_cmpv4hiv4hi;
  ena[204] = HAVE_vec_cmpv4hfv4hi;
  ena[205] = HAVE_vec_cmpv2siv2si;
  ena[206] = HAVE_vec_cmpv2sfv2si;
  ena[207] = HAVE_vec_cmpv16qiv16qi;
  ena[208] = HAVE_vec_cmpv8hiv8hi;
  ena[209] = HAVE_vec_cmpv8hfv8hi;
  ena[210] = HAVE_vec_cmpv4siv4si;
  ena[211] = HAVE_vec_cmpv4sfv4si;
  ena[212] = HAVE_vec_cmpuv16qiv16bi;
  ena[213] = HAVE_vec_cmpuv8hiv8bi;
  ena[214] = HAVE_vec_cmpuv4siv4bi;
  ena[215] = HAVE_vec_cmpuv8qiv8qi;
  ena[216] = HAVE_vec_cmpuv4hiv4hi;
  ena[217] = HAVE_vec_cmpuv2siv2si;
  ena[218] = HAVE_vec_cmpuv16qiv16qi;
  ena[219] = HAVE_vec_cmpuv8hiv8hi;
  ena[220] = HAVE_vec_cmpuv4siv4si;
  ena[221] = HAVE_vec_extractv8qiqi;
  ena[222] = HAVE_vec_extractv16qiqi;
  ena[223] = HAVE_vec_extractv4hihi;
  ena[224] = HAVE_vec_extractv8hihi;
  ena[225] = HAVE_vec_extractv2sisi;
  ena[226] = HAVE_vec_extractv4sisi;
  ena[227] = HAVE_vec_extractv2didi;
  ena[228] = HAVE_vec_extractv4hfhf;
  ena[229] = HAVE_vec_extractv8hfhf;
  ena[230] = HAVE_vec_extractv4bfbf;
  ena[231] = HAVE_vec_extractv2sfsf;
  ena[232] = HAVE_vec_extractv4sfsf;
  ena[233] = HAVE_vec_initv8qiqi;
  ena[234] = HAVE_vec_initv16qiqi;
  ena[235] = HAVE_vec_initv4hihi;
  ena[236] = HAVE_vec_initv8hihi;
  ena[237] = HAVE_vec_initv2sisi;
  ena[238] = HAVE_vec_initv4sisi;
  ena[239] = HAVE_vec_initdidi;
  ena[240] = HAVE_vec_initv2didi;
  ena[241] = HAVE_vec_initv4hfhf;
  ena[242] = HAVE_vec_initv8hfhf;
  ena[243] = HAVE_vec_initv4bfbf;
  ena[244] = HAVE_vec_initv8bfbf;
  ena[245] = HAVE_vec_initv2sfsf;
  ena[246] = HAVE_vec_initv4sfsf;
  ena[247] = HAVE_addsi3;
  ena[248] = HAVE_adddi3;
  ena[249] = HAVE_addqq3;
  ena[250] = HAVE_addhq3;
  ena[251] = HAVE_addsq3;
  ena[252] = HAVE_adduqq3;
  ena[253] = HAVE_adduhq3;
  ena[254] = HAVE_addusq3;
  ena[255] = HAVE_addha3;
  ena[256] = HAVE_addsa3;
  ena[257] = HAVE_adduha3;
  ena[258] = HAVE_addusa3;
  ena[259] = HAVE_addhf3;
  ena[260] = HAVE_addsf3;
  ena[261] = HAVE_adddf3;
  ena[262] = HAVE_addv8qi3;
  ena[263] = HAVE_addv4hi3;
  ena[264] = HAVE_addv2si3;
  ena[265] = HAVE_addv16qi3;
  ena[266] = HAVE_addv8hi3;
  ena[267] = HAVE_addv4si3;
  ena[268] = HAVE_addv2di3;
  ena[269] = HAVE_addv4qq3;
  ena[270] = HAVE_addv2hq3;
  ena[271] = HAVE_addv2ha3;
  ena[272] = HAVE_addv4hf3;
  ena[273] = HAVE_addv2sf3;
  ena[274] = HAVE_addv8hf3;
  ena[275] = HAVE_addv4sf3;
  ena[276] = HAVE_ssaddqq3;
  ena[277] = HAVE_ssaddhq3;
  ena[278] = HAVE_ssaddsq3;
  ena[279] = HAVE_ssaddha3;
  ena[280] = HAVE_ssaddsa3;
  ena[281] = HAVE_ssaddv4qq3;
  ena[282] = HAVE_ssaddv2hq3;
  ena[283] = HAVE_ssaddv2ha3;
  ena[284] = HAVE_usadduqq3;
  ena[285] = HAVE_usadduhq3;
  ena[286] = HAVE_usadduha3;
  ena[287] = HAVE_usaddv4uqq3;
  ena[288] = HAVE_usaddv2uhq3;
  ena[289] = HAVE_usaddv2uha3;
  ena[290] = HAVE_subsi3;
  ena[291] = HAVE_subdi3;
  ena[292] = HAVE_subqq3;
  ena[293] = HAVE_subhq3;
  ena[294] = HAVE_subsq3;
  ena[295] = HAVE_subuqq3;
  ena[296] = HAVE_subuhq3;
  ena[297] = HAVE_subusq3;
  ena[298] = HAVE_subha3;
  ena[299] = HAVE_subsa3;
  ena[300] = HAVE_subuha3;
  ena[301] = HAVE_subusa3;
  ena[302] = HAVE_subhf3;
  ena[303] = HAVE_subsf3;
  ena[304] = HAVE_subdf3;
  ena[305] = HAVE_subv8qi3;
  ena[306] = HAVE_subv4hi3;
  ena[307] = HAVE_subv2si3;
  ena[308] = HAVE_subv16qi3;
  ena[309] = HAVE_subv8hi3;
  ena[310] = HAVE_subv4si3;
  ena[311] = HAVE_subv2di3;
  ena[312] = HAVE_subv4qq3;
  ena[313] = HAVE_subv2hq3;
  ena[314] = HAVE_subv2ha3;
  ena[315] = HAVE_subv4hf3;
  ena[316] = HAVE_subv2sf3;
  ena[317] = HAVE_subv8hf3;
  ena[318] = HAVE_subv4sf3;
  ena[319] = HAVE_subvsi3;
  ena[320] = HAVE_sssubqq3;
  ena[321] = HAVE_sssubhq3;
  ena[322] = HAVE_sssubsq3;
  ena[323] = HAVE_sssubha3;
  ena[324] = HAVE_sssubsa3;
  ena[325] = HAVE_sssubv4qq3;
  ena[326] = HAVE_sssubv2hq3;
  ena[327] = HAVE_sssubv2ha3;
  ena[328] = HAVE_ussubuqq3;
  ena[329] = HAVE_ussubuhq3;
  ena[330] = HAVE_ussubuha3;
  ena[331] = HAVE_ussubv4uqq3;
  ena[332] = HAVE_ussubv2uhq3;
  ena[333] = HAVE_ussubv2uha3;
  ena[334] = HAVE_mulhi3;
  ena[335] = HAVE_mulsi3;
  ena[336] = HAVE_mulqq3;
  ena[337] = HAVE_mulhq3;
  ena[338] = HAVE_mulsq3;
  ena[339] = HAVE_mulha3;
  ena[340] = HAVE_mulsa3;
  ena[341] = HAVE_muluha3;
  ena[342] = HAVE_mulusa3;
  ena[343] = HAVE_mulhf3;
  ena[344] = HAVE_mulsf3;
  ena[345] = HAVE_muldf3;
  ena[346] = HAVE_mulv8qi3;
  ena[347] = HAVE_mulv4hi3;
  ena[348] = HAVE_mulv2si3;
  ena[349] = HAVE_mulv16qi3;
  ena[350] = HAVE_mulv8hi3;
  ena[351] = HAVE_mulv4si3;
  ena[352] = HAVE_mulv4hf3;
  ena[353] = HAVE_mulv2sf3;
  ena[354] = HAVE_mulv8hf3;
  ena[355] = HAVE_mulv4sf3;
  ena[356] = HAVE_ssmulha3;
  ena[357] = HAVE_ssmulsa3;
  ena[358] = HAVE_usmuluha3;
  ena[359] = HAVE_usmulusa3;
  ena[360] = HAVE_divsi3;
  ena[361] = HAVE_divhf3;
  ena[362] = HAVE_divsf3;
  ena[363] = HAVE_divdf3;
  ena[364] = HAVE_divv2sf3;
  ena[365] = HAVE_divv4sf3;
  ena[366] = HAVE_udivsi3;
  ena[367] = HAVE_modsi3;
  ena[368] = HAVE_andsi3;
  ena[369] = HAVE_anddi3;
  ena[370] = HAVE_andv8qi3;
  ena[371] = HAVE_andv4hi3;
  ena[372] = HAVE_andv2si3;
  ena[373] = HAVE_andv16qi3;
  ena[374] = HAVE_andv8hi3;
  ena[375] = HAVE_andv4si3;
  ena[376] = HAVE_andv2di3;
  ena[377] = HAVE_andv4hf3;
  ena[378] = HAVE_andv2sf3;
  ena[379] = HAVE_andv8hf3;
  ena[380] = HAVE_andv4sf3;
  ena[381] = HAVE_iorsi3;
  ena[382] = HAVE_iordi3;
  ena[383] = HAVE_iorv8qi3;
  ena[384] = HAVE_iorv4hi3;
  ena[385] = HAVE_iorv2si3;
  ena[386] = HAVE_iorv16qi3;
  ena[387] = HAVE_iorv8hi3;
  ena[388] = HAVE_iorv4si3;
  ena[389] = HAVE_iorv2di3;
  ena[390] = HAVE_iorv4hf3;
  ena[391] = HAVE_iorv2sf3;
  ena[392] = HAVE_iorv8hf3;
  ena[393] = HAVE_iorv4sf3;
  ena[394] = HAVE_xorsi3;
  ena[395] = HAVE_xordi3;
  ena[396] = HAVE_xorv8qi3;
  ena[397] = HAVE_xorv4hi3;
  ena[398] = HAVE_xorv2si3;
  ena[399] = HAVE_xorv16qi3;
  ena[400] = HAVE_xorv8hi3;
  ena[401] = HAVE_xorv4si3;
  ena[402] = HAVE_xorv2di3;
  ena[403] = HAVE_xorv4hf3;
  ena[404] = HAVE_xorv2sf3;
  ena[405] = HAVE_xorv8hf3;
  ena[406] = HAVE_xorv4sf3;
  ena[407] = HAVE_ashlsi3;
  ena[408] = HAVE_ashldi3;
  ena[409] = HAVE_ashrsi3;
  ena[410] = HAVE_ashrdi3;
  ena[411] = HAVE_lshrsi3;
  ena[412] = HAVE_lshrdi3;
  ena[413] = HAVE_rotlsi3;
  ena[414] = HAVE_rotrsi3;
  ena[415] = HAVE_vashlv8qi3;
  ena[416] = HAVE_vashlv4hi3;
  ena[417] = HAVE_vashlv2si3;
  ena[418] = HAVE_vashlv16qi3;
  ena[419] = HAVE_vashlv8hi3;
  ena[420] = HAVE_vashlv4si3;
  ena[421] = HAVE_vashrv8qi3;
  ena[422] = HAVE_vashrv4hi3;
  ena[423] = HAVE_vashrv2si3;
  ena[424] = HAVE_vashrv16qi3;
  ena[425] = HAVE_vashrv8hi3;
  ena[426] = HAVE_vashrv4si3;
  ena[427] = HAVE_vlshrv8qi3;
  ena[428] = HAVE_vlshrv4hi3;
  ena[429] = HAVE_vlshrv2si3;
  ena[430] = HAVE_vlshrv16qi3;
  ena[431] = HAVE_vlshrv8hi3;
  ena[432] = HAVE_vlshrv4si3;
  ena[433] = HAVE_sminsi3;
  ena[434] = HAVE_sminsf3;
  ena[435] = HAVE_smindf3;
  ena[436] = HAVE_sminv8qi3;
  ena[437] = HAVE_sminv4hi3;
  ena[438] = HAVE_sminv2si3;
  ena[439] = HAVE_sminv16qi3;
  ena[440] = HAVE_sminv8hi3;
  ena[441] = HAVE_sminv4si3;
  ena[442] = HAVE_sminv2sf3;
  ena[443] = HAVE_sminv4sf3;
  ena[444] = HAVE_smaxsi3;
  ena[445] = HAVE_smaxsf3;
  ena[446] = HAVE_smaxdf3;
  ena[447] = HAVE_smaxv8qi3;
  ena[448] = HAVE_smaxv4hi3;
  ena[449] = HAVE_smaxv2si3;
  ena[450] = HAVE_smaxv16qi3;
  ena[451] = HAVE_smaxv8hi3;
  ena[452] = HAVE_smaxv4si3;
  ena[453] = HAVE_smaxv2sf3;
  ena[454] = HAVE_smaxv4sf3;
  ena[455] = HAVE_uminsi3;
  ena[456] = HAVE_uminv8qi3;
  ena[457] = HAVE_uminv4hi3;
  ena[458] = HAVE_uminv2si3;
  ena[459] = HAVE_uminv16qi3;
  ena[460] = HAVE_uminv8hi3;
  ena[461] = HAVE_uminv4si3;
  ena[462] = HAVE_umaxsi3;
  ena[463] = HAVE_umaxv8qi3;
  ena[464] = HAVE_umaxv4hi3;
  ena[465] = HAVE_umaxv2si3;
  ena[466] = HAVE_umaxv16qi3;
  ena[467] = HAVE_umaxv8hi3;
  ena[468] = HAVE_umaxv4si3;
  ena[469] = HAVE_negsi2;
  ena[470] = HAVE_neghf2;
  ena[471] = HAVE_negsf2;
  ena[472] = HAVE_negdf2;
  ena[473] = HAVE_negv8qi2;
  ena[474] = HAVE_negv4hi2;
  ena[475] = HAVE_negv2si2;
  ena[476] = HAVE_negv16qi2;
  ena[477] = HAVE_negv8hi2;
  ena[478] = HAVE_negv4si2;
  ena[479] = HAVE_negv4hf2;
  ena[480] = HAVE_negv2sf2;
  ena[481] = HAVE_negv8hf2;
  ena[482] = HAVE_negv4sf2;
  ena[483] = HAVE_abssi2;
  ena[484] = HAVE_abshf2;
  ena[485] = HAVE_abssf2;
  ena[486] = HAVE_absdf2;
  ena[487] = HAVE_absv8qi2;
  ena[488] = HAVE_absv4hi2;
  ena[489] = HAVE_absv2si2;
  ena[490] = HAVE_absv16qi2;
  ena[491] = HAVE_absv8hi2;
  ena[492] = HAVE_absv4si2;
  ena[493] = HAVE_absv4hf2;
  ena[494] = HAVE_absv2sf2;
  ena[495] = HAVE_absv8hf2;
  ena[496] = HAVE_absv4sf2;
  ena[497] = HAVE_one_cmplsi2;
  ena[498] = HAVE_one_cmpldi2;
  ena[499] = HAVE_one_cmplv8qi2;
  ena[500] = HAVE_one_cmplv4hi2;
  ena[501] = HAVE_one_cmplv2si2;
  ena[502] = HAVE_one_cmplv16qi2;
  ena[503] = HAVE_one_cmplv8hi2;
  ena[504] = HAVE_one_cmplv4si2;
  ena[505] = HAVE_one_cmplv2di2;
  ena[506] = HAVE_one_cmplv4hf2;
  ena[507] = HAVE_one_cmplv2sf2;
  ena[508] = HAVE_one_cmplv8hf2;
  ena[509] = HAVE_one_cmplv4sf2;
  ena[510] = HAVE_bswaphi2;
  ena[511] = HAVE_bswapsi2;
  ena[512] = HAVE_clzsi2;
  ena[513] = HAVE_clzv8qi2;
  ena[514] = HAVE_clzv4hi2;
  ena[515] = HAVE_clzv2si2;
  ena[516] = HAVE_clzv16qi2;
  ena[517] = HAVE_clzv8hi2;
  ena[518] = HAVE_clzv4si2;
  ena[519] = HAVE_ctzsi2;
  ena[520] = HAVE_popcountv8qi2;
  ena[521] = HAVE_popcountv16qi2;
  ena[522] = HAVE_sqrtsf2;
  ena[523] = HAVE_sqrtdf2;
  ena[524] = HAVE_movqi;
  ena[525] = HAVE_movhi;
  ena[526] = HAVE_movsi;
  ena[527] = HAVE_movdi;
  ena[528] = HAVE_movti;
  ena[529] = HAVE_movei;
  ena[530] = HAVE_movoi;
  ena[531] = HAVE_movci;
  ena[532] = HAVE_movxi;
  ena[533] = HAVE_movhf;
  ena[534] = HAVE_movbf;
  ena[535] = HAVE_movsf;
  ena[536] = HAVE_movdf;
  ena[537] = HAVE_movv16bi;
  ena[538] = HAVE_movv8bi;
  ena[539] = HAVE_movv4bi;
  ena[540] = HAVE_movv2qi;
  ena[541] = HAVE_movv8qi;
  ena[542] = HAVE_movv4hi;
  ena[543] = HAVE_movv2si;
  ena[544] = HAVE_movv16qi;
  ena[545] = HAVE_movv8hi;
  ena[546] = HAVE_movv4si;
  ena[547] = HAVE_movv2di;
  ena[548] = HAVE_movv4hf;
  ena[549] = HAVE_movv4bf;
  ena[550] = HAVE_movv2sf;
  ena[551] = HAVE_movv8hf;
  ena[552] = HAVE_movv8bf;
  ena[553] = HAVE_movv4sf;
  ena[554] = HAVE_movmisalignhi;
  ena[555] = HAVE_movmisalignsi;
  ena[556] = HAVE_movmisaligndi;
  ena[557] = HAVE_movmisalignv8qi;
  ena[558] = HAVE_movmisalignv4hi;
  ena[559] = HAVE_movmisalignv2si;
  ena[560] = HAVE_movmisalignv16qi;
  ena[561] = HAVE_movmisalignv8hi;
  ena[562] = HAVE_movmisalignv4si;
  ena[563] = HAVE_movmisalignv2di;
  ena[564] = HAVE_movmisalignv4hf;
  ena[565] = HAVE_movmisalignv2sf;
  ena[566] = HAVE_movmisalignv8hf;
  ena[567] = HAVE_movmisalignv4sf;
  ena[568] = HAVE_reload_inhi;
  ena[569] = HAVE_reload_outhi;
  ena[570] = HAVE_reload_outdf;
  ena[571] = HAVE_cbranchqi4;
  ena[572] = HAVE_cbranchsi4;
  ena[573] = HAVE_cbranchdi4;
  ena[574] = HAVE_cbranchsf4;
  ena[575] = HAVE_cbranchdf4;
  ena[576] = HAVE_movsicc;
  ena[577] = HAVE_movhfcc;
  ena[578] = HAVE_movsfcc;
  ena[579] = HAVE_movdfcc;
  ena[580] = HAVE_cstoresi4;
  ena[581] = HAVE_cstoredi4;
  ena[582] = HAVE_cstorehf4;
  ena[583] = HAVE_cstoresf4;
  ena[584] = HAVE_cstoredf4;
  ena[585] = HAVE_addvsi4;
  ena[586] = HAVE_addvdi4;
  ena[587] = HAVE_subvsi4;
  ena[588] = HAVE_subvdi4;
  ena[589] = HAVE_uaddvsi4;
  ena[590] = HAVE_uaddvdi4;
  ena[591] = HAVE_usubvsi4;
  ena[592] = HAVE_usubvdi4;
  ena[593] = HAVE_negvsi3;
  ena[594] = HAVE_negvdi3;
  ena[595] = HAVE_smulsi3_highpart;
  ena[596] = HAVE_smulv4hi3_highpart;
  ena[597] = HAVE_umulsi3_highpart;
  ena[598] = HAVE_umulv4hi3_highpart;
  ena[599] = HAVE_cpymemqi;
  ena[600] = HAVE_setmemsi;
  ena[601] = HAVE_fmahf4;
  ena[602] = HAVE_fmasf4;
  ena[603] = HAVE_fmadf4;
  ena[604] = HAVE_fmav4hf4;
  ena[605] = HAVE_fmav2sf4;
  ena[606] = HAVE_fmav8hf4;
  ena[607] = HAVE_fmav4sf4;
  ena[608] = HAVE_rintsf2;
  ena[609] = HAVE_rintdf2;
  ena[610] = HAVE_rintv2sf2;
  ena[611] = HAVE_rintv4sf2;
  ena[612] = HAVE_roundsf2;
  ena[613] = HAVE_rounddf2;
  ena[614] = HAVE_roundv2sf2;
  ena[615] = HAVE_roundv4sf2;
  ena[616] = HAVE_roundevenv2sf2;
  ena[617] = HAVE_roundevenv4sf2;
  ena[618] = HAVE_floorsf2;
  ena[619] = HAVE_floordf2;
  ena[620] = HAVE_floorv2sf2;
  ena[621] = HAVE_floorv4sf2;
  ena[622] = HAVE_ceilsf2;
  ena[623] = HAVE_ceildf2;
  ena[624] = HAVE_ceilv2sf2;
  ena[625] = HAVE_ceilv4sf2;
  ena[626] = HAVE_btruncsf2;
  ena[627] = HAVE_btruncdf2;
  ena[628] = HAVE_btruncv2sf2;
  ena[629] = HAVE_btruncv4sf2;
  ena[630] = HAVE_nearbyintsf2;
  ena[631] = HAVE_nearbyintdf2;
  ena[632] = HAVE_copysignsf3;
  ena[633] = HAVE_copysigndf3;
  ena[634] = HAVE_copysignv2sf3;
  ena[635] = HAVE_copysignv4sf3;
  ena[636] = HAVE_cadd90v16qi3;
  ena[637] = HAVE_cadd90v8hi3;
  ena[638] = HAVE_cadd90v4si3;
  ena[639] = HAVE_cadd90v4hf3;
  ena[640] = HAVE_cadd90v2sf3;
  ena[641] = HAVE_cadd90v8hf3;
  ena[642] = HAVE_cadd90v4sf3;
  ena[643] = HAVE_cadd270v16qi3;
  ena[644] = HAVE_cadd270v8hi3;
  ena[645] = HAVE_cadd270v4si3;
  ena[646] = HAVE_cadd270v4hf3;
  ena[647] = HAVE_cadd270v2sf3;
  ena[648] = HAVE_cadd270v8hf3;
  ena[649] = HAVE_cadd270v4sf3;
  ena[650] = HAVE_cmulv4hf3;
  ena[651] = HAVE_cmulv2sf3;
  ena[652] = HAVE_cmulv8hf3;
  ena[653] = HAVE_cmulv4sf3;
  ena[654] = HAVE_cmul_conjv4hf3;
  ena[655] = HAVE_cmul_conjv2sf3;
  ena[656] = HAVE_cmul_conjv8hf3;
  ena[657] = HAVE_cmul_conjv4sf3;
  ena[658] = HAVE_cmlav4hf4;
  ena[659] = HAVE_cmlav2sf4;
  ena[660] = HAVE_cmlav8hf4;
  ena[661] = HAVE_cmlav4sf4;
  ena[662] = HAVE_cmla_conjv4hf4;
  ena[663] = HAVE_cmla_conjv2sf4;
  ena[664] = HAVE_cmla_conjv8hf4;
  ena[665] = HAVE_cmla_conjv4sf4;
  ena[666] = HAVE_cmlsv4hf4;
  ena[667] = HAVE_cmlsv2sf4;
  ena[668] = HAVE_cmlsv8hf4;
  ena[669] = HAVE_cmlsv4sf4;
  ena[670] = HAVE_cmls_conjv4hf4;
  ena[671] = HAVE_cmls_conjv2sf4;
  ena[672] = HAVE_cmls_conjv8hf4;
  ena[673] = HAVE_cmls_conjv4sf4;
  ena[674] = HAVE_fmaxsf3;
  ena[675] = HAVE_fmaxdf3;
  ena[676] = HAVE_fmaxv2sf3;
  ena[677] = HAVE_fmaxv4sf3;
  ena[678] = HAVE_fminsf3;
  ena[679] = HAVE_fmindf3;
  ena[680] = HAVE_fminv2sf3;
  ena[681] = HAVE_fminv4sf3;
  ena[682] = HAVE_reduc_smax_scal_v8qi;
  ena[683] = HAVE_reduc_smax_scal_v4hi;
  ena[684] = HAVE_reduc_smax_scal_v2si;
  ena[685] = HAVE_reduc_smax_scal_v16qi;
  ena[686] = HAVE_reduc_smax_scal_v8hi;
  ena[687] = HAVE_reduc_smax_scal_v4si;
  ena[688] = HAVE_reduc_smax_scal_v2sf;
  ena[689] = HAVE_reduc_smax_scal_v4sf;
  ena[690] = HAVE_reduc_smin_scal_v8qi;
  ena[691] = HAVE_reduc_smin_scal_v4hi;
  ena[692] = HAVE_reduc_smin_scal_v2si;
  ena[693] = HAVE_reduc_smin_scal_v16qi;
  ena[694] = HAVE_reduc_smin_scal_v8hi;
  ena[695] = HAVE_reduc_smin_scal_v4si;
  ena[696] = HAVE_reduc_smin_scal_v2sf;
  ena[697] = HAVE_reduc_smin_scal_v4sf;
  ena[698] = HAVE_reduc_plus_scal_v8qi;
  ena[699] = HAVE_reduc_plus_scal_v4hi;
  ena[700] = HAVE_reduc_plus_scal_v2si;
  ena[701] = HAVE_reduc_plus_scal_v16qi;
  ena[702] = HAVE_reduc_plus_scal_v8hi;
  ena[703] = HAVE_reduc_plus_scal_v4si;
  ena[704] = HAVE_reduc_plus_scal_v2di;
  ena[705] = HAVE_reduc_plus_scal_v2sf;
  ena[706] = HAVE_reduc_plus_scal_v4sf;
  ena[707] = HAVE_reduc_umax_scal_v8qi;
  ena[708] = HAVE_reduc_umax_scal_v4hi;
  ena[709] = HAVE_reduc_umax_scal_v2si;
  ena[710] = HAVE_reduc_umax_scal_v16qi;
  ena[711] = HAVE_reduc_umax_scal_v8hi;
  ena[712] = HAVE_reduc_umax_scal_v4si;
  ena[713] = HAVE_reduc_umin_scal_v8qi;
  ena[714] = HAVE_reduc_umin_scal_v4hi;
  ena[715] = HAVE_reduc_umin_scal_v2si;
  ena[716] = HAVE_reduc_umin_scal_v16qi;
  ena[717] = HAVE_reduc_umin_scal_v8hi;
  ena[718] = HAVE_reduc_umin_scal_v4si;
  ena[719] = HAVE_avgv16qi3_floor;
  ena[720] = HAVE_avgv8hi3_floor;
  ena[721] = HAVE_avgv4si3_floor;
  ena[722] = HAVE_uavgv16qi3_floor;
  ena[723] = HAVE_uavgv8hi3_floor;
  ena[724] = HAVE_uavgv4si3_floor;
  ena[725] = HAVE_avgv16qi3_ceil;
  ena[726] = HAVE_avgv8hi3_ceil;
  ena[727] = HAVE_avgv4si3_ceil;
  ena[728] = HAVE_uavgv16qi3_ceil;
  ena[729] = HAVE_uavgv8hi3_ceil;
  ena[730] = HAVE_uavgv4si3_ceil;
  ena[731] = HAVE_sdot_prodv8qi;
  ena[732] = HAVE_sdot_prodv16qi;
  ena[733] = HAVE_widen_ssumv8qi3;
  ena[734] = HAVE_widen_ssumv4hi3;
  ena[735] = HAVE_widen_ssumv2si3;
  ena[736] = HAVE_widen_ssumv16qi3;
  ena[737] = HAVE_widen_ssumv8hi3;
  ena[738] = HAVE_widen_ssumv4si3;
  ena[739] = HAVE_udot_prodv8qi;
  ena[740] = HAVE_udot_prodv16qi;
  ena[741] = HAVE_usdot_prodv8qi;
  ena[742] = HAVE_usdot_prodv16qi;
  ena[743] = HAVE_widen_usumv8qi3;
  ena[744] = HAVE_widen_usumv4hi3;
  ena[745] = HAVE_widen_usumv2si3;
  ena[746] = HAVE_widen_usumv16qi3;
  ena[747] = HAVE_widen_usumv8hi3;
  ena[748] = HAVE_widen_usumv4si3;
  ena[749] = HAVE_usadv16qi;
  ena[750] = HAVE_ssadv16qi;
  ena[751] = HAVE_vec_pack_trunc_di;
  ena[752] = HAVE_vec_pack_trunc_v4hi;
  ena[753] = HAVE_vec_pack_trunc_v2si;
  ena[754] = HAVE_vec_pack_trunc_v8hi;
  ena[755] = HAVE_vec_pack_trunc_v4si;
  ena[756] = HAVE_vec_pack_trunc_v2di;
  ena[757] = HAVE_vec_permv8qi;
  ena[758] = HAVE_vec_permv16qi;
  ena[759] = HAVE_vec_setv16qi;
  ena[760] = HAVE_vec_setv8hi;
  ena[761] = HAVE_vec_setv4si;
  ena[762] = HAVE_vec_setv2di;
  ena[763] = HAVE_vec_setv8hf;
  ena[764] = HAVE_vec_setv4sf;
  ena[765] = HAVE_vec_unpacks_hi_v8qi;
  ena[766] = HAVE_vec_unpacks_hi_v4hi;
  ena[767] = HAVE_vec_unpacks_hi_v2si;
  ena[768] = HAVE_vec_unpacks_hi_v16qi;
  ena[769] = HAVE_vec_unpacks_hi_v8hi;
  ena[770] = HAVE_vec_unpacks_hi_v4si;
  ena[771] = HAVE_vec_unpacks_lo_v8qi;
  ena[772] = HAVE_vec_unpacks_lo_v4hi;
  ena[773] = HAVE_vec_unpacks_lo_v2si;
  ena[774] = HAVE_vec_unpacks_lo_v16qi;
  ena[775] = HAVE_vec_unpacks_lo_v8hi;
  ena[776] = HAVE_vec_unpacks_lo_v4si;
  ena[777] = HAVE_vec_unpacku_hi_v8qi;
  ena[778] = HAVE_vec_unpacku_hi_v4hi;
  ena[779] = HAVE_vec_unpacku_hi_v2si;
  ena[780] = HAVE_vec_unpacku_hi_v16qi;
  ena[781] = HAVE_vec_unpacku_hi_v8hi;
  ena[782] = HAVE_vec_unpacku_hi_v4si;
  ena[783] = HAVE_vec_unpacku_lo_v8qi;
  ena[784] = HAVE_vec_unpacku_lo_v4hi;
  ena[785] = HAVE_vec_unpacku_lo_v2si;
  ena[786] = HAVE_vec_unpacku_lo_v16qi;
  ena[787] = HAVE_vec_unpacku_lo_v8hi;
  ena[788] = HAVE_vec_unpacku_lo_v4si;
  ena[789] = HAVE_vec_widen_smult_hi_v8qi;
  ena[790] = HAVE_vec_widen_smult_hi_v4hi;
  ena[791] = HAVE_vec_widen_smult_hi_v2si;
  ena[792] = HAVE_vec_widen_smult_hi_v16qi;
  ena[793] = HAVE_vec_widen_smult_hi_v8hi;
  ena[794] = HAVE_vec_widen_smult_hi_v4si;
  ena[795] = HAVE_vec_widen_smult_lo_v8qi;
  ena[796] = HAVE_vec_widen_smult_lo_v4hi;
  ena[797] = HAVE_vec_widen_smult_lo_v2si;
  ena[798] = HAVE_vec_widen_smult_lo_v16qi;
  ena[799] = HAVE_vec_widen_smult_lo_v8hi;
  ena[800] = HAVE_vec_widen_smult_lo_v4si;
  ena[801] = HAVE_vec_widen_sshiftl_hi_v8qi;
  ena[802] = HAVE_vec_widen_sshiftl_hi_v4hi;
  ena[803] = HAVE_vec_widen_sshiftl_hi_v2si;
  ena[804] = HAVE_vec_widen_sshiftl_hi_v16qi;
  ena[805] = HAVE_vec_widen_sshiftl_hi_v8hi;
  ena[806] = HAVE_vec_widen_sshiftl_hi_v4si;
  ena[807] = HAVE_vec_widen_sshiftl_lo_v8qi;
  ena[808] = HAVE_vec_widen_sshiftl_lo_v4hi;
  ena[809] = HAVE_vec_widen_sshiftl_lo_v2si;
  ena[810] = HAVE_vec_widen_sshiftl_lo_v16qi;
  ena[811] = HAVE_vec_widen_sshiftl_lo_v8hi;
  ena[812] = HAVE_vec_widen_sshiftl_lo_v4si;
  ena[813] = HAVE_vec_widen_umult_hi_v8qi;
  ena[814] = HAVE_vec_widen_umult_hi_v4hi;
  ena[815] = HAVE_vec_widen_umult_hi_v2si;
  ena[816] = HAVE_vec_widen_umult_hi_v16qi;
  ena[817] = HAVE_vec_widen_umult_hi_v8hi;
  ena[818] = HAVE_vec_widen_umult_hi_v4si;
  ena[819] = HAVE_vec_widen_umult_lo_v8qi;
  ena[820] = HAVE_vec_widen_umult_lo_v4hi;
  ena[821] = HAVE_vec_widen_umult_lo_v2si;
  ena[822] = HAVE_vec_widen_umult_lo_v16qi;
  ena[823] = HAVE_vec_widen_umult_lo_v8hi;
  ena[824] = HAVE_vec_widen_umult_lo_v4si;
  ena[825] = HAVE_vec_widen_ushiftl_hi_v8qi;
  ena[826] = HAVE_vec_widen_ushiftl_hi_v4hi;
  ena[827] = HAVE_vec_widen_ushiftl_hi_v2si;
  ena[828] = HAVE_vec_widen_ushiftl_hi_v16qi;
  ena[829] = HAVE_vec_widen_ushiftl_hi_v8hi;
  ena[830] = HAVE_vec_widen_ushiftl_hi_v4si;
  ena[831] = HAVE_vec_widen_ushiftl_lo_v8qi;
  ena[832] = HAVE_vec_widen_ushiftl_lo_v4hi;
  ena[833] = HAVE_vec_widen_ushiftl_lo_v2si;
  ena[834] = HAVE_vec_widen_ushiftl_lo_v16qi;
  ena[835] = HAVE_vec_widen_ushiftl_lo_v8hi;
  ena[836] = HAVE_vec_widen_ushiftl_lo_v4si;
  ena[837] = HAVE_atomic_add_fetchqi;
  ena[838] = HAVE_atomic_add_fetchhi;
  ena[839] = HAVE_atomic_add_fetchsi;
  ena[840] = HAVE_atomic_add_fetchdi;
  ena[841] = HAVE_atomic_addqi;
  ena[842] = HAVE_atomic_addhi;
  ena[843] = HAVE_atomic_addsi;
  ena[844] = HAVE_atomic_adddi;
  ena[845] = HAVE_atomic_and_fetchqi;
  ena[846] = HAVE_atomic_and_fetchhi;
  ena[847] = HAVE_atomic_and_fetchsi;
  ena[848] = HAVE_atomic_and_fetchdi;
  ena[849] = HAVE_atomic_andqi;
  ena[850] = HAVE_atomic_andhi;
  ena[851] = HAVE_atomic_andsi;
  ena[852] = HAVE_atomic_anddi;
  ena[853] = HAVE_atomic_compare_and_swapqi;
  ena[854] = HAVE_atomic_compare_and_swaphi;
  ena[855] = HAVE_atomic_compare_and_swapsi;
  ena[856] = HAVE_atomic_compare_and_swapdi;
  ena[857] = HAVE_atomic_exchangeqi;
  ena[858] = HAVE_atomic_exchangehi;
  ena[859] = HAVE_atomic_exchangesi;
  ena[860] = HAVE_atomic_exchangedi;
  ena[861] = HAVE_atomic_fetch_addqi;
  ena[862] = HAVE_atomic_fetch_addhi;
  ena[863] = HAVE_atomic_fetch_addsi;
  ena[864] = HAVE_atomic_fetch_adddi;
  ena[865] = HAVE_atomic_fetch_andqi;
  ena[866] = HAVE_atomic_fetch_andhi;
  ena[867] = HAVE_atomic_fetch_andsi;
  ena[868] = HAVE_atomic_fetch_anddi;
  ena[869] = HAVE_atomic_fetch_nandqi;
  ena[870] = HAVE_atomic_fetch_nandhi;
  ena[871] = HAVE_atomic_fetch_nandsi;
  ena[872] = HAVE_atomic_fetch_nanddi;
  ena[873] = HAVE_atomic_fetch_orqi;
  ena[874] = HAVE_atomic_fetch_orhi;
  ena[875] = HAVE_atomic_fetch_orsi;
  ena[876] = HAVE_atomic_fetch_ordi;
  ena[877] = HAVE_atomic_fetch_subqi;
  ena[878] = HAVE_atomic_fetch_subhi;
  ena[879] = HAVE_atomic_fetch_subsi;
  ena[880] = HAVE_atomic_fetch_subdi;
  ena[881] = HAVE_atomic_fetch_xorqi;
  ena[882] = HAVE_atomic_fetch_xorhi;
  ena[883] = HAVE_atomic_fetch_xorsi;
  ena[884] = HAVE_atomic_fetch_xordi;
  ena[885] = HAVE_atomic_loadqi;
  ena[886] = HAVE_atomic_loadhi;
  ena[887] = HAVE_atomic_loadsi;
  ena[888] = HAVE_atomic_loaddi;
  ena[889] = HAVE_atomic_nand_fetchqi;
  ena[890] = HAVE_atomic_nand_fetchhi;
  ena[891] = HAVE_atomic_nand_fetchsi;
  ena[892] = HAVE_atomic_nand_fetchdi;
  ena[893] = HAVE_atomic_nandqi;
  ena[894] = HAVE_atomic_nandhi;
  ena[895] = HAVE_atomic_nandsi;
  ena[896] = HAVE_atomic_nanddi;
  ena[897] = HAVE_atomic_or_fetchqi;
  ena[898] = HAVE_atomic_or_fetchhi;
  ena[899] = HAVE_atomic_or_fetchsi;
  ena[900] = HAVE_atomic_or_fetchdi;
  ena[901] = HAVE_atomic_orqi;
  ena[902] = HAVE_atomic_orhi;
  ena[903] = HAVE_atomic_orsi;
  ena[904] = HAVE_atomic_ordi;
  ena[905] = HAVE_atomic_storeqi;
  ena[906] = HAVE_atomic_storehi;
  ena[907] = HAVE_atomic_storesi;
  ena[908] = HAVE_atomic_sub_fetchqi;
  ena[909] = HAVE_atomic_sub_fetchhi;
  ena[910] = HAVE_atomic_sub_fetchsi;
  ena[911] = HAVE_atomic_sub_fetchdi;
  ena[912] = HAVE_atomic_subqi;
  ena[913] = HAVE_atomic_subhi;
  ena[914] = HAVE_atomic_subsi;
  ena[915] = HAVE_atomic_subdi;
  ena[916] = HAVE_atomic_xor_fetchqi;
  ena[917] = HAVE_atomic_xor_fetchhi;
  ena[918] = HAVE_atomic_xor_fetchsi;
  ena[919] = HAVE_atomic_xor_fetchdi;
  ena[920] = HAVE_atomic_xorqi;
  ena[921] = HAVE_atomic_xorhi;
  ena[922] = HAVE_atomic_xorsi;
  ena[923] = HAVE_atomic_xordi;
  ena[924] = HAVE_get_thread_pointersi;
}

/* Returns TRUE if the target supports any of the partial vector
   optabs: while_ult_optab, len_load_optab or len_store_optab,
   for any mode.  */
bool
partial_vectors_supported_p (void)
{
	return false;
}
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,
  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,
  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,
  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,
  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,
  VEC_DUPLICATE,
  VEC_SERIES,
  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,
  unknown_optab,
  movstrict_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,
  unknown_optab,
  unknown_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,
  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,
  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,
  vec_duplicate_optab,
  vec_series_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,
  unknown_optab,
};

