insn-flags.h 128 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014
  1. /* Generated automatically by the program `genflags'
  2. from the machine description file `md'. */
  3. #ifndef GCC_INSN_FLAGS_H
  4. #define GCC_INSN_FLAGS_H
  5. #define HAVE_ls2_alu1_turn_enabled_insn (TUNE_LOONGSON_2EF)
  6. #define HAVE_ls2_alu2_turn_enabled_insn (TUNE_LOONGSON_2EF)
  7. #define HAVE_ls2_falu1_turn_enabled_insn (TUNE_LOONGSON_2EF)
  8. #define HAVE_ls2_falu2_turn_enabled_insn (TUNE_LOONGSON_2EF)
  9. #define HAVE_trap 1
  10. #define HAVE_addsf3 (TARGET_HARD_FLOAT)
  11. #define HAVE_adddf3 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  12. #define HAVE_addv2sf3 (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  13. #define HAVE_subsf3 (TARGET_HARD_FLOAT)
  14. #define HAVE_subdf3 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  15. #define HAVE_subv2sf3 (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  16. #define HAVE_subsi3 1
  17. #define HAVE_subdi3 (TARGET_64BIT)
  18. #define HAVE_mulv2sf3 (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  19. #define HAVE_mulsi3_mul3_nohilo (TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6MUL)
  20. #define HAVE_muldi3_mul3_nohilo ((TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DMUL) && (TARGET_64BIT))
  21. #define HAVE_mulsi3_mul3 (ISA_HAS_MUL3)
  22. #define HAVE_muldi3_mul3 ((ISA_HAS_DMUL3) && (TARGET_64BIT))
  23. #define HAVE_mulsi3_internal (ISA_HAS_MULT && !TARGET_FIX_R4000)
  24. #define HAVE_muldi3_internal ((ISA_HAS_DMULT && !TARGET_FIX_R4000) && (TARGET_64BIT))
  25. #define HAVE_mulsi3_r4000 (ISA_HAS_MULT && TARGET_FIX_R4000)
  26. #define HAVE_muldi3_r4000 ((ISA_HAS_DMULT && TARGET_FIX_R4000) && (TARGET_64BIT))
  27. #define HAVE_mulsidi3_32bit (!TARGET_64BIT && (!TARGET_FIX_R4000 || ISA_HAS_DSP) && ISA_HAS_MULT)
  28. #define HAVE_umulsidi3_32bit (!TARGET_64BIT && (!TARGET_FIX_R4000 || ISA_HAS_DSP) && ISA_HAS_MULT)
  29. #define HAVE_mulsidi3_32bit_r4000 (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)
  30. #define HAVE_umulsidi3_32bit_r4000 (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)
  31. #define HAVE_mulsidi3_64bit (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 \
  32. && !TARGET_MIPS16 && ISA_HAS_MULT)
  33. #define HAVE_umulsidi3_64bit (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 \
  34. && !TARGET_MIPS16 && ISA_HAS_MULT)
  35. #define HAVE_mulsidi3_64bit_hilo (TARGET_64BIT && !TARGET_FIX_R4000)
  36. #define HAVE_umulsidi3_64bit_hilo (TARGET_64BIT && !TARGET_FIX_R4000)
  37. #define HAVE_mulsidi3_64bit_dmul (ISA_HAS_DMUL3)
  38. #define HAVE_mulsidi3_64bit_r6dmul (ISA_HAS_R6DMUL)
  39. #define HAVE_msubsidi4 (!TARGET_64BIT && (ISA_HAS_MSAC || GENERATE_MADD_MSUB || ISA_HAS_DSP))
  40. #define HAVE_umsubsidi4 (!TARGET_64BIT && (ISA_HAS_MSAC || GENERATE_MADD_MSUB || ISA_HAS_DSP))
  41. #define HAVE_smulsi3_highpart_r6 (ISA_HAS_R6MUL)
  42. #define HAVE_umulsi3_highpart_r6 (ISA_HAS_R6MUL)
  43. #define HAVE_smulsi3_highpart_internal (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)
  44. #define HAVE_umulsi3_highpart_internal (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)
  45. #define HAVE_smulsi3_highpart_mulhi_internal (ISA_HAS_MULHI)
  46. #define HAVE_umulsi3_highpart_mulhi_internal (ISA_HAS_MULHI)
  47. #define HAVE_smuldi3_highpart_r6 (ISA_HAS_R6DMUL)
  48. #define HAVE_umuldi3_highpart_r6 (ISA_HAS_R6DMUL)
  49. #define HAVE_smuldi3_highpart_internal (ISA_HAS_DMULT \
  50. && !TARGET_MIPS16 \
  51. && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  52. #define HAVE_umuldi3_highpart_internal (ISA_HAS_DMULT \
  53. && !TARGET_MIPS16 \
  54. && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  55. #define HAVE_mulditi3_internal (ISA_HAS_DMULT \
  56. && !TARGET_FIX_R4000 \
  57. && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  58. #define HAVE_umulditi3_internal (ISA_HAS_DMULT \
  59. && !TARGET_FIX_R4000 \
  60. && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  61. #define HAVE_mulditi3_r4000 (ISA_HAS_DMULT \
  62. && TARGET_FIX_R4000 \
  63. && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  64. #define HAVE_umulditi3_r4000 (ISA_HAS_DMULT \
  65. && TARGET_FIX_R4000 \
  66. && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  67. #define HAVE_madsi (TARGET_MAD)
  68. #define HAVE_maddsidi4 ((TARGET_MAD || ISA_HAS_MACC || GENERATE_MADD_MSUB || ISA_HAS_DSP) \
  69. && !TARGET_64BIT)
  70. #define HAVE_umaddsidi4 ((TARGET_MAD || ISA_HAS_MACC || GENERATE_MADD_MSUB || ISA_HAS_DSP) \
  71. && !TARGET_64BIT)
  72. #define HAVE_fmasf4 ((ISA_HAS_FP_MADDF_MSUBF) && (TARGET_HARD_FLOAT))
  73. #define HAVE_fmadf4 ((ISA_HAS_FP_MADDF_MSUBF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  74. #define HAVE_fmav2sf4 ((ISA_HAS_FP_MADDF_MSUBF) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  75. #define HAVE_divmodsi4_mips16 (ISA_HAS_DIV && !TARGET_FIX_VR4120 && TARGET_MIPS16)
  76. #define HAVE_divmoddi4_mips16 ((ISA_HAS_DDIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && (TARGET_64BIT))
  77. #define HAVE_udivmodsi4_mips16 (ISA_HAS_DIV && TARGET_MIPS16)
  78. #define HAVE_udivmoddi4_mips16 ((ISA_HAS_DDIV && TARGET_MIPS16) && (TARGET_64BIT))
  79. #define HAVE_divmodsi4_hilo_di ((ISA_HAS_DIV) && (!TARGET_64BIT))
  80. #define HAVE_udivmodsi4_hilo_di ((ISA_HAS_DIV) && (!TARGET_64BIT))
  81. #define HAVE_divmodsi4_hilo_ti ((ISA_HAS_DIV) && (TARGET_64BIT))
  82. #define HAVE_udivmodsi4_hilo_ti ((ISA_HAS_DIV) && (TARGET_64BIT))
  83. #define HAVE_divmoddi4_hilo_ti ((ISA_HAS_DDIV) && (TARGET_64BIT))
  84. #define HAVE_udivmoddi4_hilo_ti ((ISA_HAS_DDIV) && (TARGET_64BIT))
  85. #define HAVE_divsi3 (TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DIV)
  86. #define HAVE_udivsi3 (TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DIV)
  87. #define HAVE_divdi3 ((TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DDIV) && (TARGET_64BIT))
  88. #define HAVE_udivdi3 ((TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DDIV) && (TARGET_64BIT))
  89. #define HAVE_modsi3 (TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DIV)
  90. #define HAVE_umodsi3 (TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DIV)
  91. #define HAVE_moddi3 ((TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DDIV) && (TARGET_64BIT))
  92. #define HAVE_umoddi3 ((TARGET_LOONGSON_2EF || TARGET_LOONGSON_3A || ISA_HAS_R6DDIV) && (TARGET_64BIT))
  93. #define HAVE_sqrtsf2 ((!ISA_MIPS1) && (TARGET_HARD_FLOAT))
  94. #define HAVE_sqrtdf2 ((!ISA_MIPS1) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  95. #define HAVE_sqrtv2sf2 ((TARGET_SB1) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  96. #define HAVE_abssf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && (TARGET_HARD_FLOAT))
  97. #define HAVE_absdf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  98. #define HAVE_absv2sf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  99. #define HAVE_clzsi2 (ISA_HAS_CLZ_CLO)
  100. #define HAVE_clzdi2 ((ISA_HAS_CLZ_CLO) && (TARGET_64BIT))
  101. #define HAVE_popcountsi2 (ISA_HAS_POP)
  102. #define HAVE_popcountdi2 ((ISA_HAS_POP) && (TARGET_64BIT))
  103. #define HAVE_negsi2 1
  104. #define HAVE_negdi2 (TARGET_64BIT && !TARGET_MIPS16)
  105. #define HAVE_negsf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && (TARGET_HARD_FLOAT))
  106. #define HAVE_negdf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  107. #define HAVE_negv2sf2 ((mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  108. #define HAVE_one_cmplsi2 1
  109. #define HAVE_one_cmpldi2 (TARGET_64BIT)
  110. #define HAVE_truncdfsf2 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  111. #define HAVE_truncdiqi2 (TARGET_64BIT)
  112. #define HAVE_truncdihi2 (TARGET_64BIT)
  113. #define HAVE_truncdisi2 (TARGET_64BIT)
  114. #define HAVE_extendsidi2 (TARGET_64BIT)
  115. #define HAVE_extendsfdf2 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  116. #define HAVE_fix_truncdfsi2_insn (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && ISA_HAS_TRUNC_W)
  117. #define HAVE_fix_truncdfsi2_macro (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !ISA_HAS_TRUNC_W)
  118. #define HAVE_fix_truncsfsi2_insn (TARGET_HARD_FLOAT && ISA_HAS_TRUNC_W)
  119. #define HAVE_fix_truncsfsi2_macro (TARGET_HARD_FLOAT && !ISA_HAS_TRUNC_W)
  120. #define HAVE_fix_truncdfdi2 (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)
  121. #define HAVE_fix_truncsfdi2 (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)
  122. #define HAVE_floatsidf2 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  123. #define HAVE_floatdidf2 (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)
  124. #define HAVE_floatsisf2 (TARGET_HARD_FLOAT)
  125. #define HAVE_floatdisf2 (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)
  126. #define HAVE_mov_lwl (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))
  127. #define HAVE_mov_ldl ((!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && (TARGET_64BIT))
  128. #define HAVE_mov_lwr (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))
  129. #define HAVE_mov_ldr ((!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && (TARGET_64BIT))
  130. #define HAVE_mov_swl (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))
  131. #define HAVE_mov_sdl ((!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && (TARGET_64BIT))
  132. #define HAVE_mov_swr (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))
  133. #define HAVE_mov_sdr ((!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && (TARGET_64BIT))
  134. #define HAVE_load_gotsi (Pmode == SImode)
  135. #define HAVE_load_gotdi (Pmode == DImode)
  136. #define HAVE_movccf (ISA_HAS_CCF)
  137. #define HAVE_mfhisi_di (!TARGET_64BIT)
  138. #define HAVE_mfhisi_ti (TARGET_64BIT)
  139. #define HAVE_mfhidi_ti (TARGET_64BIT)
  140. #define HAVE_mthisi_di (!TARGET_64BIT)
  141. #define HAVE_mthisi_ti (TARGET_64BIT)
  142. #define HAVE_mthidi_ti (TARGET_64BIT)
  143. #define HAVE_load_lowdf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  144. #define HAVE_load_lowdi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  145. #define HAVE_load_lowv2sf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))
  146. #define HAVE_load_lowv2si ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  147. #define HAVE_load_lowv4hi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  148. #define HAVE_load_lowv8qi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  149. #define HAVE_load_lowtf ((TARGET_HARD_FLOAT) && (TARGET_64BIT && TARGET_FLOAT64))
  150. #define HAVE_load_highdf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  151. #define HAVE_load_highdi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  152. #define HAVE_load_highv2sf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))
  153. #define HAVE_load_highv2si ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  154. #define HAVE_load_highv4hi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  155. #define HAVE_load_highv8qi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  156. #define HAVE_load_hightf ((TARGET_HARD_FLOAT) && (TARGET_64BIT && TARGET_FLOAT64))
  157. #define HAVE_store_worddf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  158. #define HAVE_store_worddi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  159. #define HAVE_store_wordv2sf ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))
  160. #define HAVE_store_wordv2si ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  161. #define HAVE_store_wordv4hi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  162. #define HAVE_store_wordv8qi ((TARGET_HARD_FLOAT) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  163. #define HAVE_store_wordtf ((TARGET_HARD_FLOAT) && (TARGET_64BIT && TARGET_FLOAT64))
  164. #define HAVE_mthc1df ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  165. #define HAVE_mthc1di ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  166. #define HAVE_mthc1v2sf ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))
  167. #define HAVE_mthc1v2si ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  168. #define HAVE_mthc1v4hi ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  169. #define HAVE_mthc1v8qi ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  170. #define HAVE_mthc1tf ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (TARGET_64BIT && TARGET_FLOAT64))
  171. #define HAVE_mfhc1df ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  172. #define HAVE_mfhc1di ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))
  173. #define HAVE_mfhc1v2sf ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))
  174. #define HAVE_mfhc1v2si ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  175. #define HAVE_mfhc1v4hi ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  176. #define HAVE_mfhc1v8qi ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (!TARGET_64BIT && TARGET_LOONGSON_VECTORS))
  177. #define HAVE_mfhc1tf ((TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && (TARGET_64BIT && TARGET_FLOAT64))
  178. #define HAVE_loadgp_newabi_si ((mips_current_loadgp_style () == LOADGP_NEWABI) && (Pmode == SImode))
  179. #define HAVE_loadgp_newabi_di ((mips_current_loadgp_style () == LOADGP_NEWABI) && (Pmode == DImode))
  180. #define HAVE_loadgp_absolute_si ((mips_current_loadgp_style () == LOADGP_ABSOLUTE) && (Pmode == SImode))
  181. #define HAVE_loadgp_absolute_di ((mips_current_loadgp_style () == LOADGP_ABSOLUTE) && (Pmode == DImode))
  182. #define HAVE_loadgp_blockage 1
  183. #define HAVE_loadgp_rtp_si ((mips_current_loadgp_style () == LOADGP_RTP) && (Pmode == SImode))
  184. #define HAVE_loadgp_rtp_di ((mips_current_loadgp_style () == LOADGP_RTP) && (Pmode == DImode))
  185. #define HAVE_copygp_mips16_si ((TARGET_MIPS16) && (Pmode == SImode))
  186. #define HAVE_copygp_mips16_di ((TARGET_MIPS16) && (Pmode == DImode))
  187. #define HAVE_potential_cprestore_si ((!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && (Pmode == SImode))
  188. #define HAVE_potential_cprestore_di ((!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && (Pmode == DImode))
  189. #define HAVE_cprestore_si ((TARGET_CPRESTORE_DIRECTIVE) && (Pmode == SImode))
  190. #define HAVE_cprestore_di ((TARGET_CPRESTORE_DIRECTIVE) && (Pmode == DImode))
  191. #define HAVE_use_cprestore_si (Pmode == SImode)
  192. #define HAVE_use_cprestore_di (Pmode == DImode)
  193. #define HAVE_sync (GENERATE_SYNC)
  194. #define HAVE_synci (TARGET_SYNCI)
  195. #define HAVE_rdhwr_synci_step_si ((ISA_HAS_SYNCI) && (Pmode == SImode))
  196. #define HAVE_rdhwr_synci_step_di ((ISA_HAS_SYNCI) && (Pmode == DImode))
  197. #define HAVE_clear_hazard_si ((ISA_HAS_SYNCI) && (Pmode == SImode))
  198. #define HAVE_clear_hazard_di ((ISA_HAS_SYNCI) && (Pmode == DImode))
  199. #define HAVE_mips_cache (ISA_HAS_CACHE)
  200. #define HAVE_r10k_cache_barrier (ISA_HAS_CACHE)
  201. #define HAVE_lsa (ISA_HAS_LSA)
  202. #define HAVE_dlsa ((ISA_HAS_DLSA) && (TARGET_64BIT))
  203. #define HAVE_rotrsi3 (ISA_HAS_ROR)
  204. #define HAVE_rotrdi3 ((ISA_HAS_ROR) && (TARGET_64BIT))
  205. #define HAVE_bswaphi2 (ISA_HAS_WSBH)
  206. #define HAVE_bswapsi2 (ISA_HAS_WSBH && ISA_HAS_ROR)
  207. #define HAVE_bswapdi2 (TARGET_64BIT && ISA_HAS_WSBH)
  208. #define HAVE_wsbh (ISA_HAS_WSBH)
  209. #define HAVE_dsbh (TARGET_64BIT && ISA_HAS_WSBH)
  210. #define HAVE_dshd (TARGET_64BIT && ISA_HAS_WSBH)
  211. #define HAVE_sunordered_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  212. #define HAVE_suneq_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  213. #define HAVE_sunlt_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  214. #define HAVE_sunle_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  215. #define HAVE_seq_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  216. #define HAVE_slt_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  217. #define HAVE_sle_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  218. #define HAVE_sunordered_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  219. #define HAVE_suneq_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  220. #define HAVE_sunlt_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  221. #define HAVE_sunle_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  222. #define HAVE_seq_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  223. #define HAVE_slt_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  224. #define HAVE_sle_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  225. #define HAVE_sunordered_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  226. #define HAVE_suneq_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  227. #define HAVE_sunlt_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  228. #define HAVE_sunle_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  229. #define HAVE_seq_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  230. #define HAVE_slt_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  231. #define HAVE_sle_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  232. #define HAVE_sordered_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  233. #define HAVE_sltgt_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  234. #define HAVE_sne_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  235. #define HAVE_sunordered_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  236. #define HAVE_suneq_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  237. #define HAVE_sunlt_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  238. #define HAVE_sunle_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  239. #define HAVE_seq_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  240. #define HAVE_slt_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  241. #define HAVE_sle_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  242. #define HAVE_sordered_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  243. #define HAVE_sltgt_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  244. #define HAVE_sne_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  245. #define HAVE_sge_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  246. #define HAVE_sgt_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  247. #define HAVE_sunge_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  248. #define HAVE_sungt_sf_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  249. #define HAVE_sge_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  250. #define HAVE_sgt_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  251. #define HAVE_sunge_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  252. #define HAVE_sungt_df_using_cc (((!ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  253. #define HAVE_sge_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  254. #define HAVE_sgt_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  255. #define HAVE_sunge_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  256. #define HAVE_sungt_sf_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT)) && (TARGET_HARD_FLOAT))
  257. #define HAVE_sge_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  258. #define HAVE_sgt_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  259. #define HAVE_sunge_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  260. #define HAVE_sungt_df_using_ccf (((ISA_HAS_CCF) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  261. #define HAVE_indirect_jump_si (Pmode == SImode)
  262. #define HAVE_indirect_jump_di (Pmode == DImode)
  263. #define HAVE_indirect_jump_and_restore_si (Pmode == SImode)
  264. #define HAVE_indirect_jump_and_restore_di (Pmode == DImode)
  265. #define HAVE_tablejump_si (Pmode == SImode)
  266. #define HAVE_tablejump_di (Pmode == DImode)
  267. #define HAVE_casesi_internal_mips16_si ((TARGET_MIPS16_SHORT_JUMP_TABLES) && (Pmode == SImode))
  268. #define HAVE_casesi_internal_mips16_di ((TARGET_MIPS16_SHORT_JUMP_TABLES) && (Pmode == DImode))
  269. #define HAVE_blockage 1
  270. #define HAVE_probe_stack_range_si (Pmode == SImode)
  271. #define HAVE_probe_stack_range_di (Pmode == DImode)
  272. #define HAVE_return_internal 1
  273. #define HAVE_simple_return_internal 1
  274. #define HAVE_mips_eret 1
  275. #define HAVE_mips_deret 1
  276. #define HAVE_mips_di 1
  277. #define HAVE_mips_ehb 1
  278. #define HAVE_mips_rdpgpr 1
  279. #define HAVE_cop0_move 1
  280. #define HAVE_eh_set_lr_si (! TARGET_64BIT)
  281. #define HAVE_eh_set_lr_di (TARGET_64BIT)
  282. #define HAVE_restore_gp_si ((TARGET_CALL_CLOBBERED_GP) && (Pmode == SImode))
  283. #define HAVE_restore_gp_di ((TARGET_CALL_CLOBBERED_GP) && (Pmode == DImode))
  284. #define HAVE_move_gpsi 1
  285. #define HAVE_move_gpdi (TARGET_64BIT)
  286. #define HAVE_load_callsi ((TARGET_USE_GOT) && (Pmode == SImode))
  287. #define HAVE_load_calldi ((TARGET_USE_GOT) && (Pmode == DImode))
  288. #define HAVE_set_got_version (TARGET_USE_GOT)
  289. #define HAVE_update_got_version (TARGET_USE_GOT)
  290. #define HAVE_sibcall_internal (TARGET_SIBCALLS && SIBLING_CALL_P (insn))
  291. #define HAVE_sibcall_value_internal (TARGET_SIBCALLS && SIBLING_CALL_P (insn))
  292. #define HAVE_sibcall_value_multiple_internal (TARGET_SIBCALLS && SIBLING_CALL_P (insn))
  293. #define HAVE_call_internal 1
  294. #define HAVE_call_split (TARGET_SPLIT_CALLS)
  295. #define HAVE_call_internal_direct 1
  296. #define HAVE_call_direct_split (TARGET_SPLIT_CALLS)
  297. #define HAVE_call_value_internal 1
  298. #define HAVE_call_value_split (TARGET_SPLIT_CALLS)
  299. #define HAVE_call_value_internal_direct 1
  300. #define HAVE_call_value_direct_split (TARGET_SPLIT_CALLS)
  301. #define HAVE_call_value_multiple_internal 1
  302. #define HAVE_call_value_multiple_split (TARGET_SPLIT_CALLS)
  303. #define HAVE_prefetch (ISA_HAS_PREFETCH && TARGET_EXPLICIT_RELOCS)
  304. #define HAVE_nop 1
  305. #define HAVE_hazard_nop 1
  306. #define HAVE_consttable_tls_reloc (TARGET_MIPS16_PCREL_LOADS)
  307. #define HAVE_consttable_int (TARGET_MIPS16)
  308. #define HAVE_consttable_float (TARGET_MIPS16)
  309. #define HAVE_align 1
  310. #define HAVE_tls_get_tp_si ((HAVE_AS_TLS && !TARGET_MIPS16) && (Pmode == SImode))
  311. #define HAVE_tls_get_tp_di ((HAVE_AS_TLS && !TARGET_MIPS16) && (Pmode == DImode))
  312. #define HAVE_tls_get_tp_mips16_si ((HAVE_AS_TLS && TARGET_MIPS16) && (Pmode == SImode))
  313. #define HAVE_tls_get_tp_mips16_di ((HAVE_AS_TLS && TARGET_MIPS16) && (Pmode == DImode))
  314. #define HAVE_mips_get_fcsr_mips16_si ((TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && (Pmode == SImode))
  315. #define HAVE_mips_get_fcsr_mips16_di ((TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && (Pmode == DImode))
  316. #define HAVE_mips_set_fcsr_mips16_si ((TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && (Pmode == SImode))
  317. #define HAVE_mips_set_fcsr_mips16_di ((TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && (Pmode == DImode))
  318. #define HAVE_sync_compare_and_swapsi (GENERATE_LL_SC)
  319. #define HAVE_sync_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  320. #define HAVE_compare_and_swap_12 (GENERATE_LL_SC)
  321. #define HAVE_sync_addsi (GENERATE_LL_SC)
  322. #define HAVE_sync_adddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  323. #define HAVE_sync_add_12 (GENERATE_LL_SC)
  324. #define HAVE_sync_sub_12 (GENERATE_LL_SC)
  325. #define HAVE_sync_ior_12 (GENERATE_LL_SC)
  326. #define HAVE_sync_xor_12 (GENERATE_LL_SC)
  327. #define HAVE_sync_and_12 (GENERATE_LL_SC)
  328. #define HAVE_sync_old_add_12 (GENERATE_LL_SC)
  329. #define HAVE_sync_old_sub_12 (GENERATE_LL_SC)
  330. #define HAVE_sync_old_ior_12 (GENERATE_LL_SC)
  331. #define HAVE_sync_old_xor_12 (GENERATE_LL_SC)
  332. #define HAVE_sync_old_and_12 (GENERATE_LL_SC)
  333. #define HAVE_sync_new_add_12 (GENERATE_LL_SC)
  334. #define HAVE_sync_new_sub_12 (GENERATE_LL_SC)
  335. #define HAVE_sync_new_ior_12 (GENERATE_LL_SC)
  336. #define HAVE_sync_new_xor_12 (GENERATE_LL_SC)
  337. #define HAVE_sync_new_and_12 (GENERATE_LL_SC)
  338. #define HAVE_sync_nand_12 (GENERATE_LL_SC)
  339. #define HAVE_sync_old_nand_12 (GENERATE_LL_SC)
  340. #define HAVE_sync_new_nand_12 (GENERATE_LL_SC)
  341. #define HAVE_sync_subsi (GENERATE_LL_SC)
  342. #define HAVE_sync_subdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  343. #define HAVE_sync_old_addsi (GENERATE_LL_SC)
  344. #define HAVE_sync_old_adddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  345. #define HAVE_sync_old_subsi (GENERATE_LL_SC)
  346. #define HAVE_sync_old_subdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  347. #define HAVE_sync_new_addsi (GENERATE_LL_SC)
  348. #define HAVE_sync_new_adddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  349. #define HAVE_sync_new_subsi (GENERATE_LL_SC)
  350. #define HAVE_sync_new_subdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  351. #define HAVE_sync_iorsi (GENERATE_LL_SC)
  352. #define HAVE_sync_xorsi (GENERATE_LL_SC)
  353. #define HAVE_sync_andsi (GENERATE_LL_SC)
  354. #define HAVE_sync_iordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  355. #define HAVE_sync_xordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  356. #define HAVE_sync_anddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  357. #define HAVE_sync_old_iorsi (GENERATE_LL_SC)
  358. #define HAVE_sync_old_xorsi (GENERATE_LL_SC)
  359. #define HAVE_sync_old_andsi (GENERATE_LL_SC)
  360. #define HAVE_sync_old_iordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  361. #define HAVE_sync_old_xordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  362. #define HAVE_sync_old_anddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  363. #define HAVE_sync_new_iorsi (GENERATE_LL_SC)
  364. #define HAVE_sync_new_xorsi (GENERATE_LL_SC)
  365. #define HAVE_sync_new_andsi (GENERATE_LL_SC)
  366. #define HAVE_sync_new_iordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  367. #define HAVE_sync_new_xordi ((GENERATE_LL_SC) && (TARGET_64BIT))
  368. #define HAVE_sync_new_anddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  369. #define HAVE_sync_nandsi (GENERATE_LL_SC)
  370. #define HAVE_sync_nanddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  371. #define HAVE_sync_old_nandsi (GENERATE_LL_SC)
  372. #define HAVE_sync_old_nanddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  373. #define HAVE_sync_new_nandsi (GENERATE_LL_SC)
  374. #define HAVE_sync_new_nanddi ((GENERATE_LL_SC) && (TARGET_64BIT))
  375. #define HAVE_sync_lock_test_and_setsi (GENERATE_LL_SC)
  376. #define HAVE_sync_lock_test_and_setdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  377. #define HAVE_test_and_set_12 (GENERATE_LL_SC)
  378. #define HAVE_atomic_compare_and_swapsi (GENERATE_LL_SC)
  379. #define HAVE_atomic_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
  380. #define HAVE_atomic_exchangesi_llsc (GENERATE_LL_SC && !ISA_HAS_SWAP)
  381. #define HAVE_atomic_exchangedi_llsc ((GENERATE_LL_SC && !ISA_HAS_SWAP) && (TARGET_64BIT))
  382. #define HAVE_atomic_exchangesi_swap (ISA_HAS_SWAP)
  383. #define HAVE_atomic_exchangedi_swap ((ISA_HAS_SWAP) && (TARGET_64BIT))
  384. #define HAVE_atomic_fetch_addsi_llsc (GENERATE_LL_SC && !ISA_HAS_LDADD)
  385. #define HAVE_atomic_fetch_adddi_llsc ((GENERATE_LL_SC && !ISA_HAS_LDADD) && (TARGET_64BIT))
  386. #define HAVE_atomic_fetch_addsi_ldadd (ISA_HAS_LDADD)
  387. #define HAVE_atomic_fetch_adddi_ldadd ((ISA_HAS_LDADD) && (TARGET_64BIT))
  388. #define HAVE_mips_cond_move_tf_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  389. #define HAVE_vec_perm_const_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  390. #define HAVE_vec_concatv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  391. #define HAVE_vec_extractv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  392. #define HAVE_mips_alnv_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  393. #define HAVE_mips_addr_ps (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  394. #define HAVE_reduc_splus_v2sf (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  395. #define HAVE_mips_cvt_pw_ps (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  396. #define HAVE_mips_cvt_ps_pw (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  397. #define HAVE_mips_mulr_ps (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  398. #define HAVE_mips_cabs_cond_s ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT))
  399. #define HAVE_mips_cabs_cond_d ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  400. #define HAVE_mips_c_cond_4s (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  401. #define HAVE_mips_cabs_cond_4s (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  402. #define HAVE_mips_c_cond_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  403. #define HAVE_mips_cabs_cond_ps (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  404. #define HAVE_sunordered_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  405. #define HAVE_suneq_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  406. #define HAVE_sunlt_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  407. #define HAVE_sunle_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  408. #define HAVE_seq_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  409. #define HAVE_slt_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  410. #define HAVE_sle_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  411. #define HAVE_sordered_ps ((TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && (ISA_HAS_CCF))
  412. #define HAVE_sltgt_ps ((TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && (ISA_HAS_CCF))
  413. #define HAVE_sne_ps ((TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && (ISA_HAS_CCF))
  414. #define HAVE_sge_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  415. #define HAVE_sgt_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  416. #define HAVE_sunge_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  417. #define HAVE_sungt_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  418. #define HAVE_bc1any4t (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  419. #define HAVE_bc1any4f (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  420. #define HAVE_bc1any2t (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  421. #define HAVE_bc1any2f (TARGET_HARD_FLOAT && TARGET_MIPS3D)
  422. #define HAVE_mips_rsqrt1_s ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT))
  423. #define HAVE_mips_rsqrt1_d ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  424. #define HAVE_mips_rsqrt1_ps ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  425. #define HAVE_mips_rsqrt2_s ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT))
  426. #define HAVE_mips_rsqrt2_d ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  427. #define HAVE_mips_rsqrt2_ps ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  428. #define HAVE_mips_recip1_s ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT))
  429. #define HAVE_mips_recip1_d ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  430. #define HAVE_mips_recip1_ps ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  431. #define HAVE_mips_recip2_s ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT))
  432. #define HAVE_mips_recip2_d ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  433. #define HAVE_mips_recip2_ps ((TARGET_HARD_FLOAT && TARGET_MIPS3D) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  434. #define HAVE_addv2hi3 (ISA_HAS_DSP)
  435. #define HAVE_addv4qi3 (ISA_HAS_DSP)
  436. #define HAVE_mips_addq_s_w (ISA_HAS_DSP)
  437. #define HAVE_mips_addq_s_ph (ISA_HAS_DSP)
  438. #define HAVE_mips_addu_s_qb (ISA_HAS_DSP)
  439. #define HAVE_subv2hi3 (ISA_HAS_DSP)
  440. #define HAVE_subv4qi3 (ISA_HAS_DSP)
  441. #define HAVE_mips_subq_s_w (ISA_HAS_DSP)
  442. #define HAVE_mips_subq_s_ph (ISA_HAS_DSP)
  443. #define HAVE_mips_subu_s_qb (ISA_HAS_DSP)
  444. #define HAVE_mips_addsc (ISA_HAS_DSP)
  445. #define HAVE_mips_addwc (ISA_HAS_DSP)
  446. #define HAVE_mips_modsub (ISA_HAS_DSP)
  447. #define HAVE_mips_raddu_w_qb (ISA_HAS_DSP)
  448. #define HAVE_mips_absq_s_w (ISA_HAS_DSP)
  449. #define HAVE_mips_absq_s_ph (ISA_HAS_DSP)
  450. #define HAVE_mips_precrq_qb_ph (ISA_HAS_DSP)
  451. #define HAVE_mips_precrq_ph_w (ISA_HAS_DSP)
  452. #define HAVE_mips_precrq_rs_ph_w (ISA_HAS_DSP)
  453. #define HAVE_mips_precrqu_s_qb_ph (ISA_HAS_DSP)
  454. #define HAVE_mips_preceq_w_phl (ISA_HAS_DSP)
  455. #define HAVE_mips_preceq_w_phr (ISA_HAS_DSP)
  456. #define HAVE_mips_precequ_ph_qbl (ISA_HAS_DSP)
  457. #define HAVE_mips_precequ_ph_qbr (ISA_HAS_DSP)
  458. #define HAVE_mips_precequ_ph_qbla (ISA_HAS_DSP)
  459. #define HAVE_mips_precequ_ph_qbra (ISA_HAS_DSP)
  460. #define HAVE_mips_preceu_ph_qbl (ISA_HAS_DSP)
  461. #define HAVE_mips_preceu_ph_qbr (ISA_HAS_DSP)
  462. #define HAVE_mips_preceu_ph_qbla (ISA_HAS_DSP)
  463. #define HAVE_mips_preceu_ph_qbra (ISA_HAS_DSP)
  464. #define HAVE_mips_shll_ph (ISA_HAS_DSP)
  465. #define HAVE_mips_shll_qb (ISA_HAS_DSP)
  466. #define HAVE_mips_shll_s_w (ISA_HAS_DSP)
  467. #define HAVE_mips_shll_s_ph (ISA_HAS_DSP)
  468. #define HAVE_mips_shrl_qb (ISA_HAS_DSP)
  469. #define HAVE_mips_shra_ph (ISA_HAS_DSP)
  470. #define HAVE_mips_shra_r_w (ISA_HAS_DSP)
  471. #define HAVE_mips_shra_r_ph (ISA_HAS_DSP)
  472. #define HAVE_mips_muleu_s_ph_qbl (ISA_HAS_DSP)
  473. #define HAVE_mips_muleu_s_ph_qbr (ISA_HAS_DSP)
  474. #define HAVE_mips_mulq_rs_ph (ISA_HAS_DSP)
  475. #define HAVE_mips_muleq_s_w_phl (ISA_HAS_DSP)
  476. #define HAVE_mips_muleq_s_w_phr (ISA_HAS_DSP)
  477. #define HAVE_mips_dpau_h_qbl (ISA_HAS_DSP && !TARGET_64BIT)
  478. #define HAVE_mips_dpau_h_qbr (ISA_HAS_DSP && !TARGET_64BIT)
  479. #define HAVE_mips_dpsu_h_qbl (ISA_HAS_DSP && !TARGET_64BIT)
  480. #define HAVE_mips_dpsu_h_qbr (ISA_HAS_DSP && !TARGET_64BIT)
  481. #define HAVE_mips_dpaq_s_w_ph (ISA_HAS_DSP && !TARGET_64BIT)
  482. #define HAVE_mips_dpsq_s_w_ph (ISA_HAS_DSP && !TARGET_64BIT)
  483. #define HAVE_mips_mulsaq_s_w_ph (ISA_HAS_DSP && !TARGET_64BIT)
  484. #define HAVE_mips_dpaq_sa_l_w (ISA_HAS_DSP && !TARGET_64BIT)
  485. #define HAVE_mips_dpsq_sa_l_w (ISA_HAS_DSP && !TARGET_64BIT)
  486. #define HAVE_mips_maq_s_w_phl (ISA_HAS_DSP && !TARGET_64BIT)
  487. #define HAVE_mips_maq_s_w_phr (ISA_HAS_DSP && !TARGET_64BIT)
  488. #define HAVE_mips_maq_sa_w_phl (ISA_HAS_DSP && !TARGET_64BIT)
  489. #define HAVE_mips_maq_sa_w_phr (ISA_HAS_DSP && !TARGET_64BIT)
  490. #define HAVE_mips_bitrev (ISA_HAS_DSP)
  491. #define HAVE_mips_insv (ISA_HAS_DSP)
  492. #define HAVE_mips_repl_qb (ISA_HAS_DSP)
  493. #define HAVE_mips_repl_ph (ISA_HAS_DSP)
  494. #define HAVE_mips_cmp_eq_ph (ISA_HAS_DSP)
  495. #define HAVE_mips_cmpu_eq_qb (ISA_HAS_DSP)
  496. #define HAVE_mips_cmp_lt_ph (ISA_HAS_DSP)
  497. #define HAVE_mips_cmpu_lt_qb (ISA_HAS_DSP)
  498. #define HAVE_mips_cmp_le_ph (ISA_HAS_DSP)
  499. #define HAVE_mips_cmpu_le_qb (ISA_HAS_DSP)
  500. #define HAVE_mips_cmpgu_eq_qb (ISA_HAS_DSP)
  501. #define HAVE_mips_cmpgu_lt_qb (ISA_HAS_DSP)
  502. #define HAVE_mips_cmpgu_le_qb (ISA_HAS_DSP)
  503. #define HAVE_mips_pick_ph (ISA_HAS_DSP)
  504. #define HAVE_mips_pick_qb (ISA_HAS_DSP)
  505. #define HAVE_mips_packrl_ph (ISA_HAS_DSP)
  506. #define HAVE_mips_extr_w (ISA_HAS_DSP && !TARGET_64BIT)
  507. #define HAVE_mips_extr_r_w (ISA_HAS_DSP && !TARGET_64BIT)
  508. #define HAVE_mips_extr_rs_w (ISA_HAS_DSP && !TARGET_64BIT)
  509. #define HAVE_mips_extr_s_h (ISA_HAS_DSP && !TARGET_64BIT)
  510. #define HAVE_mips_extp (ISA_HAS_DSP && !TARGET_64BIT)
  511. #define HAVE_mips_extpdp (ISA_HAS_DSP && !TARGET_64BIT)
  512. #define HAVE_mips_shilo (ISA_HAS_DSP && !TARGET_64BIT)
  513. #define HAVE_mips_mthlip (ISA_HAS_DSP && !TARGET_64BIT)
  514. #define HAVE_mips_wrdsp (ISA_HAS_DSP)
  515. #define HAVE_mips_rddsp (ISA_HAS_DSP)
  516. #define HAVE_mips_lbx_extsi_si ((ISA_HAS_LBX) && (Pmode == SImode))
  517. #define HAVE_mips_lbux_extsi_si ((ISA_HAS_LBUX) && (Pmode == SImode))
  518. #define HAVE_mips_lbx_extdi_si ((ISA_HAS_LBX) && ((((TARGET_64BIT) && (Pmode == SImode)) && (Pmode == SImode)) && (Pmode == SImode)))
  519. #define HAVE_mips_lbux_extdi_si ((ISA_HAS_LBUX) && ((((TARGET_64BIT) && (Pmode == SImode)) && (Pmode == SImode)) && (Pmode == SImode)))
  520. #define HAVE_mips_lhx_extsi_si ((ISA_HAS_LHX) && (Pmode == SImode))
  521. #define HAVE_mips_lhux_extsi_si ((ISA_HAS_LHUX) && (Pmode == SImode))
  522. #define HAVE_mips_lhx_extdi_si ((ISA_HAS_LHX) && ((((TARGET_64BIT) && (Pmode == SImode)) && (Pmode == SImode)) && (Pmode == SImode)))
  523. #define HAVE_mips_lhux_extdi_si ((ISA_HAS_LHUX) && ((((TARGET_64BIT) && (Pmode == SImode)) && (Pmode == SImode)) && (Pmode == SImode)))
  524. #define HAVE_mips_lbx_extsi_di ((ISA_HAS_LBX) && (Pmode == DImode))
  525. #define HAVE_mips_lbux_extsi_di ((ISA_HAS_LBUX) && (Pmode == DImode))
  526. #define HAVE_mips_lbx_extdi_di ((ISA_HAS_LBX) && ((((TARGET_64BIT) && (Pmode == DImode)) && (Pmode == DImode)) && (Pmode == DImode)))
  527. #define HAVE_mips_lbux_extdi_di ((ISA_HAS_LBUX) && ((((TARGET_64BIT) && (Pmode == DImode)) && (Pmode == DImode)) && (Pmode == DImode)))
  528. #define HAVE_mips_lhx_extsi_di ((ISA_HAS_LHX) && (Pmode == DImode))
  529. #define HAVE_mips_lhux_extsi_di ((ISA_HAS_LHUX) && (Pmode == DImode))
  530. #define HAVE_mips_lhx_extdi_di ((ISA_HAS_LHX) && ((((TARGET_64BIT) && (Pmode == DImode)) && (Pmode == DImode)) && (Pmode == DImode)))
  531. #define HAVE_mips_lhux_extdi_di ((ISA_HAS_LHUX) && ((((TARGET_64BIT) && (Pmode == DImode)) && (Pmode == DImode)) && (Pmode == DImode)))
  532. #define HAVE_mips_lwx_si ((ISA_HAS_LWX) && (Pmode == SImode))
  533. #define HAVE_mips_ldx_si ((ISA_HAS_LDX) && ((((TARGET_64BIT) && (Pmode == SImode)) && (Pmode == SImode)) && (Pmode == SImode)))
  534. #define HAVE_mips_lwx_di ((ISA_HAS_LWX) && (Pmode == DImode))
  535. #define HAVE_mips_ldx_di ((ISA_HAS_LDX) && ((((TARGET_64BIT) && (Pmode == DImode)) && (Pmode == DImode)) && (Pmode == DImode)))
  536. #define HAVE_mips_bposge (ISA_HAS_DSP)
  537. #define HAVE_mips_absq_s_qb (ISA_HAS_DSPR2)
  538. #define HAVE_mips_addu_ph (ISA_HAS_DSPR2)
  539. #define HAVE_mips_addu_s_ph (ISA_HAS_DSPR2)
  540. #define HAVE_mips_adduh_qb (ISA_HAS_DSPR2)
  541. #define HAVE_mips_adduh_r_qb (ISA_HAS_DSPR2)
  542. #define HAVE_mips_append (ISA_HAS_DSPR2)
  543. #define HAVE_mips_balign (ISA_HAS_DSPR2)
  544. #define HAVE_mips_cmpgdu_eq_qb (ISA_HAS_DSPR2)
  545. #define HAVE_mips_cmpgdu_lt_qb (ISA_HAS_DSPR2)
  546. #define HAVE_mips_cmpgdu_le_qb (ISA_HAS_DSPR2)
  547. #define HAVE_mips_dpa_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  548. #define HAVE_mips_dps_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  549. #define HAVE_mulv2hi3 (ISA_HAS_DSPR2)
  550. #define HAVE_mips_mul_s_ph (ISA_HAS_DSPR2)
  551. #define HAVE_mips_mulq_rs_w (ISA_HAS_DSPR2)
  552. #define HAVE_mips_mulq_s_ph (ISA_HAS_DSPR2)
  553. #define HAVE_mips_mulq_s_w (ISA_HAS_DSPR2)
  554. #define HAVE_mips_mulsa_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  555. #define HAVE_mips_precr_qb_ph (ISA_HAS_DSPR2)
  556. #define HAVE_mips_precr_sra_ph_w (ISA_HAS_DSPR2)
  557. #define HAVE_mips_precr_sra_r_ph_w (ISA_HAS_DSPR2)
  558. #define HAVE_mips_prepend (ISA_HAS_DSPR2)
  559. #define HAVE_mips_shra_qb (ISA_HAS_DSPR2)
  560. #define HAVE_mips_shra_r_qb (ISA_HAS_DSPR2)
  561. #define HAVE_mips_shrl_ph (ISA_HAS_DSPR2)
  562. #define HAVE_mips_subu_ph (ISA_HAS_DSPR2)
  563. #define HAVE_mips_subu_s_ph (ISA_HAS_DSPR2)
  564. #define HAVE_mips_subuh_qb (ISA_HAS_DSPR2)
  565. #define HAVE_mips_subuh_r_qb (ISA_HAS_DSPR2)
  566. #define HAVE_mips_addqh_ph (ISA_HAS_DSPR2)
  567. #define HAVE_mips_addqh_r_ph (ISA_HAS_DSPR2)
  568. #define HAVE_mips_addqh_w (ISA_HAS_DSPR2)
  569. #define HAVE_mips_addqh_r_w (ISA_HAS_DSPR2)
  570. #define HAVE_mips_subqh_ph (ISA_HAS_DSPR2)
  571. #define HAVE_mips_subqh_r_ph (ISA_HAS_DSPR2)
  572. #define HAVE_mips_subqh_w (ISA_HAS_DSPR2)
  573. #define HAVE_mips_subqh_r_w (ISA_HAS_DSPR2)
  574. #define HAVE_mips_dpax_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  575. #define HAVE_mips_dpsx_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  576. #define HAVE_mips_dpaqx_s_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  577. #define HAVE_mips_dpaqx_sa_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  578. #define HAVE_mips_dpsqx_s_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  579. #define HAVE_mips_dpsqx_sa_w_ph (ISA_HAS_DSPR2 && !TARGET_64BIT)
  580. #define HAVE_addqq3 1
  581. #define HAVE_addhq3 1
  582. #define HAVE_addsq3 1
  583. #define HAVE_adddq3 (TARGET_64BIT)
  584. #define HAVE_adduqq3 1
  585. #define HAVE_adduhq3 1
  586. #define HAVE_addusq3 1
  587. #define HAVE_addudq3 (TARGET_64BIT)
  588. #define HAVE_addha3 1
  589. #define HAVE_addsa3 1
  590. #define HAVE_addda3 (TARGET_64BIT)
  591. #define HAVE_adduha3 1
  592. #define HAVE_addusa3 1
  593. #define HAVE_adduda3 (TARGET_64BIT)
  594. #define HAVE_usadduqq3 (ISA_HAS_DSP)
  595. #define HAVE_usadduhq3 (ISA_HAS_DSPR2)
  596. #define HAVE_usadduha3 (ISA_HAS_DSPR2)
  597. #define HAVE_usaddv4uqq3 (ISA_HAS_DSP)
  598. #define HAVE_usaddv2uhq3 (ISA_HAS_DSPR2)
  599. #define HAVE_usaddv2uha3 (ISA_HAS_DSPR2)
  600. #define HAVE_ssaddhq3 (ISA_HAS_DSP)
  601. #define HAVE_ssaddsq3 (ISA_HAS_DSP)
  602. #define HAVE_ssaddha3 (ISA_HAS_DSP)
  603. #define HAVE_ssaddsa3 (ISA_HAS_DSP)
  604. #define HAVE_ssaddv2hq3 (ISA_HAS_DSP)
  605. #define HAVE_ssaddv2ha3 (ISA_HAS_DSP)
  606. #define HAVE_subqq3 1
  607. #define HAVE_subhq3 1
  608. #define HAVE_subsq3 1
  609. #define HAVE_subdq3 (TARGET_64BIT)
  610. #define HAVE_subuqq3 1
  611. #define HAVE_subuhq3 1
  612. #define HAVE_subusq3 1
  613. #define HAVE_subudq3 (TARGET_64BIT)
  614. #define HAVE_subha3 1
  615. #define HAVE_subsa3 1
  616. #define HAVE_subda3 (TARGET_64BIT)
  617. #define HAVE_subuha3 1
  618. #define HAVE_subusa3 1
  619. #define HAVE_subuda3 (TARGET_64BIT)
  620. #define HAVE_ussubuqq3 (ISA_HAS_DSP)
  621. #define HAVE_ussubuhq3 (ISA_HAS_DSPR2)
  622. #define HAVE_ussubuha3 (ISA_HAS_DSPR2)
  623. #define HAVE_ussubv4uqq3 (ISA_HAS_DSP)
  624. #define HAVE_ussubv2uhq3 (ISA_HAS_DSPR2)
  625. #define HAVE_ussubv2uha3 (ISA_HAS_DSPR2)
  626. #define HAVE_sssubhq3 (ISA_HAS_DSP)
  627. #define HAVE_sssubsq3 (ISA_HAS_DSP)
  628. #define HAVE_sssubha3 (ISA_HAS_DSP)
  629. #define HAVE_sssubsa3 (ISA_HAS_DSP)
  630. #define HAVE_sssubv2hq3 (ISA_HAS_DSP)
  631. #define HAVE_sssubv2ha3 (ISA_HAS_DSP)
  632. #define HAVE_ssmulv2hq3 (ISA_HAS_DSP)
  633. #define HAVE_ssmulhq3 (ISA_HAS_DSP)
  634. #define HAVE_ssmulsq3 (ISA_HAS_DSPR2)
  635. #define HAVE_ssmaddsqdq4 (ISA_HAS_DSP && !TARGET_64BIT)
  636. #define HAVE_ssmsubsqdq4 (ISA_HAS_DSP && !TARGET_64BIT)
  637. #define HAVE_jraddiusp (TARGET_MICROMIPS)
  638. #define HAVE_movv2si_internal (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  639. #define HAVE_movv4hi_internal (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  640. #define HAVE_movv8qi_internal (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  641. #define HAVE_loongson_vec_init1_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  642. #define HAVE_loongson_vec_init1_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  643. #define HAVE_vec_pack_ssat_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  644. #define HAVE_vec_pack_ssat_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  645. #define HAVE_vec_pack_usat_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  646. #define HAVE_addv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  647. #define HAVE_addv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  648. #define HAVE_addv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  649. #define HAVE_loongson_paddd (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  650. #define HAVE_ssaddv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  651. #define HAVE_ssaddv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  652. #define HAVE_usaddv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  653. #define HAVE_usaddv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  654. #define HAVE_loongson_pandn_w (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  655. #define HAVE_loongson_pandn_h (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  656. #define HAVE_loongson_pandn_b (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  657. #define HAVE_loongson_pandn_d (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  658. #define HAVE_andv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  659. #define HAVE_andv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  660. #define HAVE_andv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  661. #define HAVE_iorv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  662. #define HAVE_iorv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  663. #define HAVE_iorv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  664. #define HAVE_xorv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  665. #define HAVE_xorv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  666. #define HAVE_xorv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  667. #define HAVE_one_cmplv2si2 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  668. #define HAVE_one_cmplv4hi2 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  669. #define HAVE_one_cmplv8qi2 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  670. #define HAVE_loongson_pavgh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  671. #define HAVE_loongson_pavgb (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  672. #define HAVE_loongson_pcmpeqw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  673. #define HAVE_loongson_pcmpeqh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  674. #define HAVE_loongson_pcmpeqb (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  675. #define HAVE_loongson_pcmpgtw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  676. #define HAVE_loongson_pcmpgth (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  677. #define HAVE_loongson_pcmpgtb (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  678. #define HAVE_loongson_pextrh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  679. #define HAVE_loongson_pinsrh_0 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  680. #define HAVE_loongson_pinsrh_1 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  681. #define HAVE_loongson_pinsrh_2 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  682. #define HAVE_loongson_pinsrh_3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  683. #define HAVE_loongson_pmaddhw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  684. #define HAVE_smaxv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  685. #define HAVE_umaxv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  686. #define HAVE_sminv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  687. #define HAVE_uminv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  688. #define HAVE_loongson_pmovmskb (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  689. #define HAVE_umulv4hi3_highpart (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  690. #define HAVE_smulv4hi3_highpart (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  691. #define HAVE_mulv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  692. #define HAVE_loongson_pmuluw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  693. #define HAVE_loongson_pasubub (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  694. #define HAVE_loongson_biadd (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  695. #define HAVE_reduc_uplus_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  696. #define HAVE_loongson_psadbh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  697. #define HAVE_loongson_pshufh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  698. #define HAVE_ashlv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  699. #define HAVE_ashlv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  700. #define HAVE_ashrv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  701. #define HAVE_ashrv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  702. #define HAVE_lshrv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  703. #define HAVE_lshrv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  704. #define HAVE_subv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  705. #define HAVE_subv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  706. #define HAVE_subv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  707. #define HAVE_loongson_psubd (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  708. #define HAVE_sssubv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  709. #define HAVE_sssubv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  710. #define HAVE_ussubv4hi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  711. #define HAVE_ussubv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  712. #define HAVE_loongson_punpckhbh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  713. #define HAVE_loongson_punpckhhw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  714. #define HAVE_loongson_punpckhhw_qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  715. #define HAVE_loongson_punpckhwd (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  716. #define HAVE_loongson_punpckhwd_qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  717. #define HAVE_loongson_punpckhwd_hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  718. #define HAVE_loongson_punpcklbh (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  719. #define HAVE_loongson_punpcklhw (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  720. #define HAVE_loongson_punpcklwd (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  721. #define HAVE_vec_shl_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  722. #define HAVE_vec_shl_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  723. #define HAVE_vec_shl_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  724. #define HAVE_vec_shl_di (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  725. #define HAVE_vec_shr_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  726. #define HAVE_vec_shr_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  727. #define HAVE_vec_shr_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  728. #define HAVE_vec_shr_di (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  729. #define HAVE_ctrapsi4 (ISA_HAS_COND_TRAPI || ISA_HAS_COND_TRAP)
  730. #define HAVE_ctrapdi4 ((ISA_HAS_COND_TRAPI || ISA_HAS_COND_TRAP) && (TARGET_64BIT))
  731. #define HAVE_addsi3 1
  732. #define HAVE_adddi3 (TARGET_64BIT)
  733. #define HAVE_mulsf3 (TARGET_HARD_FLOAT)
  734. #define HAVE_muldf3 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  735. #define HAVE_mulsi3 1
  736. #define HAVE_muldi3 ((ISA_HAS_DMULT || ISA_HAS_R6DMUL) && (TARGET_64BIT))
  737. #define HAVE_mulsidi3 (mips_mulsidi3_gen_fn (SIGN_EXTEND) != NULL)
  738. #define HAVE_umulsidi3 (mips_mulsidi3_gen_fn (ZERO_EXTEND) != NULL)
  739. #define HAVE_mulsidi3_32bit_r6 (!TARGET_64BIT && ISA_HAS_R6MUL)
  740. #define HAVE_umulsidi3_32bit_r6 (!TARGET_64BIT && ISA_HAS_R6MUL)
  741. #define HAVE_mulsidi3_32bit_mips16 (!TARGET_64BIT && TARGET_MIPS16)
  742. #define HAVE_umulsidi3_32bit_mips16 (!TARGET_64BIT && TARGET_MIPS16)
  743. #define HAVE_mulsidi3_64bit_mips16 (TARGET_64BIT && TARGET_MIPS16)
  744. #define HAVE_umulsidi3_64bit_mips16 (TARGET_64BIT && TARGET_MIPS16)
  745. #define HAVE_mulsidi3_64bit_split 1
  746. #define HAVE_umulsidi3_64bit_split 1
  747. #define HAVE_smulsi3_highpart 1
  748. #define HAVE_umulsi3_highpart 1
  749. #define HAVE_smulsi3_highpart_split 1
  750. #define HAVE_umulsi3_highpart_split 1
  751. #define HAVE_smuldi3_highpart (ISA_HAS_R6DMUL \
  752. || (ISA_HAS_DMULT \
  753. && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)))
  754. #define HAVE_umuldi3_highpart (ISA_HAS_R6DMUL \
  755. || (ISA_HAS_DMULT \
  756. && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)))
  757. #define HAVE_smuldi3_highpart_split 1
  758. #define HAVE_umuldi3_highpart_split 1
  759. #define HAVE_mulditi3 (ISA_HAS_DMULT && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  760. #define HAVE_umulditi3 (ISA_HAS_DMULT && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))
  761. #define HAVE_divsf3 ((!TARGET_FIX_SB1 || flag_unsafe_math_optimizations) && (TARGET_HARD_FLOAT))
  762. #define HAVE_divdf3 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  763. #define HAVE_divv2sf3 ((TARGET_SB1 && (!TARGET_FIX_SB1 || flag_unsafe_math_optimizations)) && (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))
  764. #define HAVE_divmodsi4 (ISA_HAS_DIV && !TARGET_FIX_VR4120)
  765. #define HAVE_divmoddi4 ((ISA_HAS_DDIV && !TARGET_FIX_VR4120) && (TARGET_64BIT))
  766. #define HAVE_udivmodsi4 (ISA_HAS_DIV && !TARGET_FIX_VR4120)
  767. #define HAVE_udivmoddi4 ((ISA_HAS_DDIV && !TARGET_FIX_VR4120) && (TARGET_64BIT))
  768. #define HAVE_divmodsi4_split 1
  769. #define HAVE_udivmodsi4_split 1
  770. #define HAVE_divmoddi4_split (TARGET_64BIT)
  771. #define HAVE_udivmoddi4_split (TARGET_64BIT)
  772. #define HAVE_andsi3 1
  773. #define HAVE_anddi3 (TARGET_64BIT)
  774. #define HAVE_iorsi3 1
  775. #define HAVE_iordi3 (TARGET_64BIT)
  776. #define HAVE_xorsi3 1
  777. #define HAVE_xordi3 (TARGET_64BIT)
  778. #define HAVE_zero_extendsidi2 (TARGET_64BIT)
  779. #define HAVE_zero_extendqisi2 1
  780. #define HAVE_zero_extendqidi2 (TARGET_64BIT)
  781. #define HAVE_zero_extendhisi2 1
  782. #define HAVE_zero_extendhidi2 (TARGET_64BIT)
  783. #define HAVE_zero_extendqihi2 1
  784. #define HAVE_extendqisi2 1
  785. #define HAVE_extendqidi2 (TARGET_64BIT)
  786. #define HAVE_extendhisi2 1
  787. #define HAVE_extendhidi2 (TARGET_64BIT)
  788. #define HAVE_extendqihi2 1
  789. #define HAVE_fix_truncdfsi2 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  790. #define HAVE_fix_truncsfsi2 (TARGET_HARD_FLOAT)
  791. #define HAVE_fixuns_truncdfsi2 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  792. #define HAVE_fixuns_truncdfdi2 (TARGET_HARD_FLOAT && TARGET_64BIT && TARGET_DOUBLE_FLOAT)
  793. #define HAVE_fixuns_truncsfsi2 (TARGET_HARD_FLOAT)
  794. #define HAVE_fixuns_truncsfdi2 (TARGET_HARD_FLOAT && TARGET_64BIT && TARGET_DOUBLE_FLOAT)
  795. #define HAVE_extvmisalignsi (ISA_HAS_LWL_LWR)
  796. #define HAVE_extvmisaligndi ((ISA_HAS_LWL_LWR) && (TARGET_64BIT))
  797. #define HAVE_extvsi (ISA_HAS_EXTS)
  798. #define HAVE_extvdi ((ISA_HAS_EXTS) && (TARGET_64BIT))
  799. #define HAVE_extzvmisalignsi (ISA_HAS_LWL_LWR)
  800. #define HAVE_extzvmisaligndi ((ISA_HAS_LWL_LWR) && (TARGET_64BIT))
  801. #define HAVE_extzvsi 1
  802. #define HAVE_extzvdi (TARGET_64BIT)
  803. #define HAVE_insvmisalignsi (ISA_HAS_LWL_LWR)
  804. #define HAVE_insvmisaligndi ((ISA_HAS_LWL_LWR) && (TARGET_64BIT))
  805. #define HAVE_insvsi 1
  806. #define HAVE_insvdi (TARGET_64BIT)
  807. #define HAVE_unspec_got_si (Pmode == SImode)
  808. #define HAVE_unspec_got_di (Pmode == DImode)
  809. #define HAVE_movdi 1
  810. #define HAVE_movsi 1
  811. #define HAVE_movv2hi (TARGET_DSP)
  812. #define HAVE_movv4qi (TARGET_DSP)
  813. #define HAVE_movv2hq (TARGET_DSP)
  814. #define HAVE_movv2uhq (TARGET_DSP)
  815. #define HAVE_movv2ha (TARGET_DSP)
  816. #define HAVE_movv2uha (TARGET_DSP)
  817. #define HAVE_movv4qq (TARGET_DSP)
  818. #define HAVE_movv4uqq (TARGET_DSP)
  819. #define HAVE_movhi 1
  820. #define HAVE_movqi 1
  821. #define HAVE_movsf 1
  822. #define HAVE_movdf 1
  823. #define HAVE_movti (TARGET_64BIT)
  824. #define HAVE_movtf (TARGET_64BIT)
  825. #define HAVE_movv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  826. #define HAVE_move_doubleword_fprdf (!TARGET_64BIT && TARGET_DOUBLE_FLOAT)
  827. #define HAVE_move_doubleword_fprdi (!TARGET_64BIT && TARGET_DOUBLE_FLOAT)
  828. #define HAVE_move_doubleword_fprv2sf (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT)
  829. #define HAVE_move_doubleword_fprv2si (!TARGET_64BIT && TARGET_LOONGSON_VECTORS)
  830. #define HAVE_move_doubleword_fprv4hi (!TARGET_64BIT && TARGET_LOONGSON_VECTORS)
  831. #define HAVE_move_doubleword_fprv8qi (!TARGET_64BIT && TARGET_LOONGSON_VECTORS)
  832. #define HAVE_move_doubleword_fprtf (TARGET_64BIT && TARGET_FLOAT64)
  833. #define HAVE_load_const_gp_si (Pmode == SImode)
  834. #define HAVE_load_const_gp_di (Pmode == DImode)
  835. #define HAVE_clear_cache 1
  836. #define HAVE_movmemsi (!TARGET_MIPS16 && !TARGET_MEMCPY)
  837. #define HAVE_ashlsi3 1
  838. #define HAVE_ashrsi3 1
  839. #define HAVE_lshrsi3 1
  840. #define HAVE_ashldi3 (TARGET_64BIT)
  841. #define HAVE_ashrdi3 (TARGET_64BIT)
  842. #define HAVE_lshrdi3 (TARGET_64BIT)
  843. #define HAVE_cbranchsi4 1
  844. #define HAVE_cbranchdi4 (TARGET_64BIT)
  845. #define HAVE_cbranchsf4 (TARGET_HARD_FLOAT)
  846. #define HAVE_cbranchdf4 (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)
  847. #define HAVE_condjump 1
  848. #define HAVE_cstoresi4 1
  849. #define HAVE_cstoredi4 (TARGET_64BIT)
  850. #define HAVE_jump 1
  851. #define HAVE_indirect_jump 1
  852. #define HAVE_tablejump (!TARGET_MIPS16_SHORT_JUMP_TABLES)
  853. #define HAVE_casesi (TARGET_MIPS16_SHORT_JUMP_TABLES)
  854. #define HAVE_builtin_setjmp_setup (TARGET_USE_GOT)
  855. #define HAVE_builtin_longjmp (TARGET_USE_GOT)
  856. #define HAVE_prologue 1
  857. #define HAVE_epilogue 1
  858. #define HAVE_sibcall_epilogue 1
  859. #define HAVE_return (mips_can_use_return_insn ())
  860. #define HAVE_simple_return 1
  861. #define HAVE_eh_return 1
  862. #define HAVE_exception_receiver (TARGET_USE_GOT)
  863. #define HAVE_nonlocal_goto_receiver (TARGET_USE_GOT)
  864. #define HAVE_sibcall (TARGET_SIBCALLS)
  865. #define HAVE_sibcall_value (TARGET_SIBCALLS)
  866. #define HAVE_call 1
  867. #define HAVE_call_value 1
  868. #define HAVE_untyped_call 1
  869. #define HAVE_movsicc (ISA_HAS_CONDMOVE || ISA_HAS_SEL)
  870. #define HAVE_movdicc ((ISA_HAS_CONDMOVE || ISA_HAS_SEL) && (TARGET_64BIT))
  871. #define HAVE_movsfcc ((ISA_HAS_FP_CONDMOVE \
  872. || (ISA_HAS_SEL && ISA_HAS_CCF)) && (TARGET_HARD_FLOAT))
  873. #define HAVE_movdfcc ((ISA_HAS_FP_CONDMOVE \
  874. || (ISA_HAS_SEL && ISA_HAS_CCF)) && (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))
  875. #define HAVE_get_thread_pointersi ((HAVE_AS_TLS) && (Pmode == SImode))
  876. #define HAVE_get_thread_pointerdi ((HAVE_AS_TLS) && (Pmode == DImode))
  877. #define HAVE_mips_get_fcsr (TARGET_HARD_FLOAT_ABI)
  878. #define HAVE_mips_set_fcsr (TARGET_HARD_FLOAT_ABI)
  879. #define HAVE_memory_barrier (GENERATE_SYNC)
  880. #define HAVE_sync_compare_and_swapqi (GENERATE_LL_SC)
  881. #define HAVE_sync_compare_and_swaphi (GENERATE_LL_SC)
  882. #define HAVE_sync_addqi (GENERATE_LL_SC)
  883. #define HAVE_sync_subqi (GENERATE_LL_SC)
  884. #define HAVE_sync_iorqi (GENERATE_LL_SC)
  885. #define HAVE_sync_xorqi (GENERATE_LL_SC)
  886. #define HAVE_sync_andqi (GENERATE_LL_SC)
  887. #define HAVE_sync_addhi (GENERATE_LL_SC)
  888. #define HAVE_sync_subhi (GENERATE_LL_SC)
  889. #define HAVE_sync_iorhi (GENERATE_LL_SC)
  890. #define HAVE_sync_xorhi (GENERATE_LL_SC)
  891. #define HAVE_sync_andhi (GENERATE_LL_SC)
  892. #define HAVE_sync_old_addqi (GENERATE_LL_SC)
  893. #define HAVE_sync_old_subqi (GENERATE_LL_SC)
  894. #define HAVE_sync_old_iorqi (GENERATE_LL_SC)
  895. #define HAVE_sync_old_xorqi (GENERATE_LL_SC)
  896. #define HAVE_sync_old_andqi (GENERATE_LL_SC)
  897. #define HAVE_sync_old_addhi (GENERATE_LL_SC)
  898. #define HAVE_sync_old_subhi (GENERATE_LL_SC)
  899. #define HAVE_sync_old_iorhi (GENERATE_LL_SC)
  900. #define HAVE_sync_old_xorhi (GENERATE_LL_SC)
  901. #define HAVE_sync_old_andhi (GENERATE_LL_SC)
  902. #define HAVE_sync_new_addqi (GENERATE_LL_SC)
  903. #define HAVE_sync_new_subqi (GENERATE_LL_SC)
  904. #define HAVE_sync_new_iorqi (GENERATE_LL_SC)
  905. #define HAVE_sync_new_xorqi (GENERATE_LL_SC)
  906. #define HAVE_sync_new_andqi (GENERATE_LL_SC)
  907. #define HAVE_sync_new_addhi (GENERATE_LL_SC)
  908. #define HAVE_sync_new_subhi (GENERATE_LL_SC)
  909. #define HAVE_sync_new_iorhi (GENERATE_LL_SC)
  910. #define HAVE_sync_new_xorhi (GENERATE_LL_SC)
  911. #define HAVE_sync_new_andhi (GENERATE_LL_SC)
  912. #define HAVE_sync_nandqi (GENERATE_LL_SC)
  913. #define HAVE_sync_nandhi (GENERATE_LL_SC)
  914. #define HAVE_sync_old_nandqi (GENERATE_LL_SC)
  915. #define HAVE_sync_old_nandhi (GENERATE_LL_SC)
  916. #define HAVE_sync_new_nandqi (GENERATE_LL_SC)
  917. #define HAVE_sync_new_nandhi (GENERATE_LL_SC)
  918. #define HAVE_sync_lock_test_and_setqi (GENERATE_LL_SC)
  919. #define HAVE_sync_lock_test_and_sethi (GENERATE_LL_SC)
  920. #define HAVE_atomic_exchangesi (GENERATE_LL_SC || ISA_HAS_SWAP)
  921. #define HAVE_atomic_exchangedi ((GENERATE_LL_SC || ISA_HAS_SWAP) && (TARGET_64BIT))
  922. #define HAVE_atomic_fetch_addsi (GENERATE_LL_SC || ISA_HAS_LDADD)
  923. #define HAVE_atomic_fetch_adddi ((GENERATE_LL_SC || ISA_HAS_LDADD) && (TARGET_64BIT))
  924. #define HAVE_movv2sfcc (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  925. #define HAVE_vec_perm_constv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  926. #define HAVE_mips_puu_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  927. #define HAVE_mips_pul_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  928. #define HAVE_mips_plu_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  929. #define HAVE_mips_pll_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  930. #define HAVE_vec_initv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  931. #define HAVE_vec_setv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  932. #define HAVE_mips_cvt_ps_s (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  933. #define HAVE_mips_cvt_s_pl (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  934. #define HAVE_mips_cvt_s_pu (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  935. #define HAVE_mips_abs_ps (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  936. #define HAVE_scc_ps 1
  937. #define HAVE_single_cc 1
  938. #define HAVE_vcondv2sfv2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  939. #define HAVE_sminv2sf3 (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  940. #define HAVE_smaxv2sf3 (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  941. #define HAVE_reduc_smin_v2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  942. #define HAVE_reduc_smax_v2sf (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)
  943. #define HAVE_mips_lbux (ISA_HAS_DSP)
  944. #define HAVE_mips_lhx (ISA_HAS_DSP)
  945. #define HAVE_mips_lwx (ISA_HAS_DSP)
  946. #define HAVE_mips_ldx ((ISA_HAS_DSP) && (TARGET_64BIT))
  947. #define HAVE_mips_madd (ISA_HAS_DSP && !TARGET_64BIT)
  948. #define HAVE_mips_maddu (ISA_HAS_DSP && !TARGET_64BIT)
  949. #define HAVE_mips_msub (ISA_HAS_DSP && !TARGET_64BIT)
  950. #define HAVE_mips_msubu (ISA_HAS_DSP && !TARGET_64BIT)
  951. #define HAVE_movv2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  952. #define HAVE_movv4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  953. #define HAVE_movv8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  954. #define HAVE_vec_initv2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  955. #define HAVE_vec_initv4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  956. #define HAVE_vec_initv8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  957. #define HAVE_vec_setv4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  958. #define HAVE_sdot_prodv4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  959. #define HAVE_smaxv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  960. #define HAVE_smaxv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  961. #define HAVE_sminv2si3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  962. #define HAVE_sminv8qi3 (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  963. #define HAVE_vec_perm_constv2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  964. #define HAVE_vec_perm_constv4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  965. #define HAVE_vec_perm_constv8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  966. #define HAVE_vec_unpacks_lo_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  967. #define HAVE_vec_unpacks_lo_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  968. #define HAVE_vec_unpacks_hi_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  969. #define HAVE_vec_unpacks_hi_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  970. #define HAVE_vec_unpacku_lo_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  971. #define HAVE_vec_unpacku_lo_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  972. #define HAVE_vec_unpacku_hi_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  973. #define HAVE_vec_unpacku_hi_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  974. #define HAVE_reduc_uplus_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  975. #define HAVE_reduc_uplus_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  976. #define HAVE_reduc_splus_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  977. #define HAVE_reduc_splus_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  978. #define HAVE_reduc_splus_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  979. #define HAVE_reduc_smax_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  980. #define HAVE_reduc_smax_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  981. #define HAVE_reduc_smax_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  982. #define HAVE_reduc_smin_v2si (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  983. #define HAVE_reduc_smin_v4hi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  984. #define HAVE_reduc_smin_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  985. #define HAVE_reduc_umax_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  986. #define HAVE_reduc_umin_v8qi (TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS)
  987. extern rtx gen_ls2_alu1_turn_enabled_insn (void);
  988. extern rtx gen_ls2_alu2_turn_enabled_insn (void);
  989. extern rtx gen_ls2_falu1_turn_enabled_insn (void);
  990. extern rtx gen_ls2_falu2_turn_enabled_insn (void);
  991. extern rtx gen_trap (void);
  992. extern rtx gen_addsf3 (rtx, rtx, rtx);
  993. extern rtx gen_adddf3 (rtx, rtx, rtx);
  994. extern rtx gen_addv2sf3 (rtx, rtx, rtx);
  995. extern rtx gen_subsf3 (rtx, rtx, rtx);
  996. extern rtx gen_subdf3 (rtx, rtx, rtx);
  997. extern rtx gen_subv2sf3 (rtx, rtx, rtx);
  998. extern rtx gen_subsi3 (rtx, rtx, rtx);
  999. extern rtx gen_subdi3 (rtx, rtx, rtx);
  1000. extern rtx gen_mulv2sf3 (rtx, rtx, rtx);
  1001. extern rtx gen_mulsi3_mul3_nohilo (rtx, rtx, rtx);
  1002. extern rtx gen_muldi3_mul3_nohilo (rtx, rtx, rtx);
  1003. extern rtx gen_mulsi3_mul3 (rtx, rtx, rtx);
  1004. extern rtx gen_muldi3_mul3 (rtx, rtx, rtx);
  1005. extern rtx gen_mulsi3_internal (rtx, rtx, rtx);
  1006. extern rtx gen_muldi3_internal (rtx, rtx, rtx);
  1007. extern rtx gen_mulsi3_r4000 (rtx, rtx, rtx);
  1008. extern rtx gen_muldi3_r4000 (rtx, rtx, rtx);
  1009. extern rtx gen_mulsidi3_32bit (rtx, rtx, rtx);
  1010. extern rtx gen_umulsidi3_32bit (rtx, rtx, rtx);
  1011. extern rtx gen_mulsidi3_32bit_r4000 (rtx, rtx, rtx);
  1012. extern rtx gen_umulsidi3_32bit_r4000 (rtx, rtx, rtx);
  1013. extern rtx gen_mulsidi3_64bit (rtx, rtx, rtx);
  1014. extern rtx gen_umulsidi3_64bit (rtx, rtx, rtx);
  1015. extern rtx gen_mulsidi3_64bit_hilo (rtx, rtx, rtx);
  1016. extern rtx gen_umulsidi3_64bit_hilo (rtx, rtx, rtx);
  1017. extern rtx gen_mulsidi3_64bit_dmul (rtx, rtx, rtx);
  1018. extern rtx gen_mulsidi3_64bit_r6dmul (rtx, rtx, rtx);
  1019. extern rtx gen_msubsidi4 (rtx, rtx, rtx, rtx);
  1020. extern rtx gen_umsubsidi4 (rtx, rtx, rtx, rtx);
  1021. extern rtx gen_smulsi3_highpart_r6 (rtx, rtx, rtx);
  1022. extern rtx gen_umulsi3_highpart_r6 (rtx, rtx, rtx);
  1023. extern rtx gen_smulsi3_highpart_internal (rtx, rtx, rtx);
  1024. extern rtx gen_umulsi3_highpart_internal (rtx, rtx, rtx);
  1025. extern rtx gen_smulsi3_highpart_mulhi_internal (rtx, rtx, rtx);
  1026. extern rtx gen_umulsi3_highpart_mulhi_internal (rtx, rtx, rtx);
  1027. extern rtx gen_smuldi3_highpart_r6 (rtx, rtx, rtx);
  1028. extern rtx gen_umuldi3_highpart_r6 (rtx, rtx, rtx);
  1029. extern rtx gen_smuldi3_highpart_internal (rtx, rtx, rtx);
  1030. extern rtx gen_umuldi3_highpart_internal (rtx, rtx, rtx);
  1031. extern rtx gen_mulditi3_internal (rtx, rtx, rtx);
  1032. extern rtx gen_umulditi3_internal (rtx, rtx, rtx);
  1033. extern rtx gen_mulditi3_r4000 (rtx, rtx, rtx);
  1034. extern rtx gen_umulditi3_r4000 (rtx, rtx, rtx);
  1035. extern rtx gen_madsi (rtx, rtx, rtx);
  1036. extern rtx gen_maddsidi4 (rtx, rtx, rtx, rtx);
  1037. extern rtx gen_umaddsidi4 (rtx, rtx, rtx, rtx);
  1038. extern rtx gen_fmasf4 (rtx, rtx, rtx, rtx);
  1039. extern rtx gen_fmadf4 (rtx, rtx, rtx, rtx);
  1040. extern rtx gen_fmav2sf4 (rtx, rtx, rtx, rtx);
  1041. extern rtx gen_divmodsi4_mips16 (rtx, rtx, rtx, rtx, rtx);
  1042. extern rtx gen_divmoddi4_mips16 (rtx, rtx, rtx, rtx, rtx);
  1043. extern rtx gen_udivmodsi4_mips16 (rtx, rtx, rtx, rtx, rtx);
  1044. extern rtx gen_udivmoddi4_mips16 (rtx, rtx, rtx, rtx, rtx);
  1045. extern rtx gen_divmodsi4_hilo_di (rtx, rtx, rtx);
  1046. extern rtx gen_udivmodsi4_hilo_di (rtx, rtx, rtx);
  1047. static inline rtx gen_divmoddi4_hilo_di (rtx, rtx, rtx);
  1048. static inline rtx
  1049. gen_divmoddi4_hilo_di(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1050. {
  1051. return 0;
  1052. }
  1053. static inline rtx gen_udivmoddi4_hilo_di (rtx, rtx, rtx);
  1054. static inline rtx
  1055. gen_udivmoddi4_hilo_di(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1056. {
  1057. return 0;
  1058. }
  1059. extern rtx gen_divmodsi4_hilo_ti (rtx, rtx, rtx);
  1060. extern rtx gen_udivmodsi4_hilo_ti (rtx, rtx, rtx);
  1061. extern rtx gen_divmoddi4_hilo_ti (rtx, rtx, rtx);
  1062. extern rtx gen_udivmoddi4_hilo_ti (rtx, rtx, rtx);
  1063. extern rtx gen_divsi3 (rtx, rtx, rtx);
  1064. extern rtx gen_udivsi3 (rtx, rtx, rtx);
  1065. extern rtx gen_divdi3 (rtx, rtx, rtx);
  1066. extern rtx gen_udivdi3 (rtx, rtx, rtx);
  1067. extern rtx gen_modsi3 (rtx, rtx, rtx);
  1068. extern rtx gen_umodsi3 (rtx, rtx, rtx);
  1069. extern rtx gen_moddi3 (rtx, rtx, rtx);
  1070. extern rtx gen_umoddi3 (rtx, rtx, rtx);
  1071. extern rtx gen_sqrtsf2 (rtx, rtx);
  1072. extern rtx gen_sqrtdf2 (rtx, rtx);
  1073. extern rtx gen_sqrtv2sf2 (rtx, rtx);
  1074. extern rtx gen_abssf2 (rtx, rtx);
  1075. extern rtx gen_absdf2 (rtx, rtx);
  1076. extern rtx gen_absv2sf2 (rtx, rtx);
  1077. extern rtx gen_clzsi2 (rtx, rtx);
  1078. extern rtx gen_clzdi2 (rtx, rtx);
  1079. extern rtx gen_popcountsi2 (rtx, rtx);
  1080. extern rtx gen_popcountdi2 (rtx, rtx);
  1081. extern rtx gen_negsi2 (rtx, rtx);
  1082. extern rtx gen_negdi2 (rtx, rtx);
  1083. extern rtx gen_negsf2 (rtx, rtx);
  1084. extern rtx gen_negdf2 (rtx, rtx);
  1085. extern rtx gen_negv2sf2 (rtx, rtx);
  1086. extern rtx gen_one_cmplsi2 (rtx, rtx);
  1087. extern rtx gen_one_cmpldi2 (rtx, rtx);
  1088. extern rtx gen_truncdfsf2 (rtx, rtx);
  1089. extern rtx gen_truncdiqi2 (rtx, rtx);
  1090. extern rtx gen_truncdihi2 (rtx, rtx);
  1091. extern rtx gen_truncdisi2 (rtx, rtx);
  1092. extern rtx gen_extendsidi2 (rtx, rtx);
  1093. extern rtx gen_extendsfdf2 (rtx, rtx);
  1094. extern rtx gen_fix_truncdfsi2_insn (rtx, rtx);
  1095. extern rtx gen_fix_truncdfsi2_macro (rtx, rtx);
  1096. extern rtx gen_fix_truncsfsi2_insn (rtx, rtx);
  1097. extern rtx gen_fix_truncsfsi2_macro (rtx, rtx);
  1098. extern rtx gen_fix_truncdfdi2 (rtx, rtx);
  1099. extern rtx gen_fix_truncsfdi2 (rtx, rtx);
  1100. extern rtx gen_floatsidf2 (rtx, rtx);
  1101. extern rtx gen_floatdidf2 (rtx, rtx);
  1102. extern rtx gen_floatsisf2 (rtx, rtx);
  1103. extern rtx gen_floatdisf2 (rtx, rtx);
  1104. extern rtx gen_mov_lwl (rtx, rtx, rtx);
  1105. extern rtx gen_mov_ldl (rtx, rtx, rtx);
  1106. extern rtx gen_mov_lwr (rtx, rtx, rtx, rtx);
  1107. extern rtx gen_mov_ldr (rtx, rtx, rtx, rtx);
  1108. extern rtx gen_mov_swl (rtx, rtx, rtx);
  1109. extern rtx gen_mov_sdl (rtx, rtx, rtx);
  1110. extern rtx gen_mov_swr (rtx, rtx, rtx);
  1111. extern rtx gen_mov_sdr (rtx, rtx, rtx);
  1112. extern rtx gen_load_gotsi (rtx, rtx, rtx);
  1113. extern rtx gen_load_gotdi (rtx, rtx, rtx);
  1114. extern rtx gen_movccf (rtx, rtx);
  1115. extern rtx gen_mfhisi_di (rtx, rtx);
  1116. static inline rtx gen_mfhidi_di (rtx, rtx);
  1117. static inline rtx
  1118. gen_mfhidi_di(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b))
  1119. {
  1120. return 0;
  1121. }
  1122. extern rtx gen_mfhisi_ti (rtx, rtx);
  1123. extern rtx gen_mfhidi_ti (rtx, rtx);
  1124. extern rtx gen_mthisi_di (rtx, rtx, rtx);
  1125. static inline rtx gen_mthidi_di (rtx, rtx, rtx);
  1126. static inline rtx
  1127. gen_mthidi_di(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1128. {
  1129. return 0;
  1130. }
  1131. extern rtx gen_mthisi_ti (rtx, rtx, rtx);
  1132. extern rtx gen_mthidi_ti (rtx, rtx, rtx);
  1133. extern rtx gen_load_lowdf (rtx, rtx);
  1134. extern rtx gen_load_lowdi (rtx, rtx);
  1135. extern rtx gen_load_lowv2sf (rtx, rtx);
  1136. extern rtx gen_load_lowv2si (rtx, rtx);
  1137. extern rtx gen_load_lowv4hi (rtx, rtx);
  1138. extern rtx gen_load_lowv8qi (rtx, rtx);
  1139. extern rtx gen_load_lowtf (rtx, rtx);
  1140. extern rtx gen_load_highdf (rtx, rtx, rtx);
  1141. extern rtx gen_load_highdi (rtx, rtx, rtx);
  1142. extern rtx gen_load_highv2sf (rtx, rtx, rtx);
  1143. extern rtx gen_load_highv2si (rtx, rtx, rtx);
  1144. extern rtx gen_load_highv4hi (rtx, rtx, rtx);
  1145. extern rtx gen_load_highv8qi (rtx, rtx, rtx);
  1146. extern rtx gen_load_hightf (rtx, rtx, rtx);
  1147. extern rtx gen_store_worddf (rtx, rtx, rtx);
  1148. extern rtx gen_store_worddi (rtx, rtx, rtx);
  1149. extern rtx gen_store_wordv2sf (rtx, rtx, rtx);
  1150. extern rtx gen_store_wordv2si (rtx, rtx, rtx);
  1151. extern rtx gen_store_wordv4hi (rtx, rtx, rtx);
  1152. extern rtx gen_store_wordv8qi (rtx, rtx, rtx);
  1153. extern rtx gen_store_wordtf (rtx, rtx, rtx);
  1154. extern rtx gen_mthc1df (rtx, rtx, rtx);
  1155. extern rtx gen_mthc1di (rtx, rtx, rtx);
  1156. extern rtx gen_mthc1v2sf (rtx, rtx, rtx);
  1157. extern rtx gen_mthc1v2si (rtx, rtx, rtx);
  1158. extern rtx gen_mthc1v4hi (rtx, rtx, rtx);
  1159. extern rtx gen_mthc1v8qi (rtx, rtx, rtx);
  1160. extern rtx gen_mthc1tf (rtx, rtx, rtx);
  1161. extern rtx gen_mfhc1df (rtx, rtx);
  1162. extern rtx gen_mfhc1di (rtx, rtx);
  1163. extern rtx gen_mfhc1v2sf (rtx, rtx);
  1164. extern rtx gen_mfhc1v2si (rtx, rtx);
  1165. extern rtx gen_mfhc1v4hi (rtx, rtx);
  1166. extern rtx gen_mfhc1v8qi (rtx, rtx);
  1167. extern rtx gen_mfhc1tf (rtx, rtx);
  1168. extern rtx gen_loadgp_newabi_si (rtx, rtx, rtx);
  1169. extern rtx gen_loadgp_newabi_di (rtx, rtx, rtx);
  1170. extern rtx gen_loadgp_absolute_si (rtx, rtx);
  1171. extern rtx gen_loadgp_absolute_di (rtx, rtx);
  1172. extern rtx gen_loadgp_blockage (void);
  1173. extern rtx gen_loadgp_rtp_si (rtx, rtx, rtx);
  1174. extern rtx gen_loadgp_rtp_di (rtx, rtx, rtx);
  1175. extern rtx gen_copygp_mips16_si (rtx, rtx);
  1176. extern rtx gen_copygp_mips16_di (rtx, rtx);
  1177. extern rtx gen_potential_cprestore_si (rtx, rtx, rtx, rtx);
  1178. extern rtx gen_potential_cprestore_di (rtx, rtx, rtx, rtx);
  1179. extern rtx gen_cprestore_si (rtx, rtx);
  1180. extern rtx gen_cprestore_di (rtx, rtx);
  1181. extern rtx gen_use_cprestore_si (rtx);
  1182. extern rtx gen_use_cprestore_di (rtx);
  1183. extern rtx gen_sync (void);
  1184. extern rtx gen_synci (rtx);
  1185. extern rtx gen_rdhwr_synci_step_si (rtx);
  1186. extern rtx gen_rdhwr_synci_step_di (rtx);
  1187. extern rtx gen_clear_hazard_si (void);
  1188. extern rtx gen_clear_hazard_di (void);
  1189. extern rtx gen_mips_cache (rtx, rtx);
  1190. extern rtx gen_r10k_cache_barrier (void);
  1191. extern rtx gen_lsa (rtx, rtx, rtx, rtx);
  1192. extern rtx gen_dlsa (rtx, rtx, rtx, rtx);
  1193. extern rtx gen_rotrsi3 (rtx, rtx, rtx);
  1194. extern rtx gen_rotrdi3 (rtx, rtx, rtx);
  1195. extern rtx gen_bswaphi2 (rtx, rtx);
  1196. extern rtx gen_bswapsi2 (rtx, rtx);
  1197. extern rtx gen_bswapdi2 (rtx, rtx);
  1198. extern rtx gen_wsbh (rtx, rtx);
  1199. extern rtx gen_dsbh (rtx, rtx);
  1200. extern rtx gen_dshd (rtx, rtx);
  1201. extern rtx gen_sunordered_sf_using_cc (rtx, rtx, rtx);
  1202. extern rtx gen_suneq_sf_using_cc (rtx, rtx, rtx);
  1203. extern rtx gen_sunlt_sf_using_cc (rtx, rtx, rtx);
  1204. extern rtx gen_sunle_sf_using_cc (rtx, rtx, rtx);
  1205. extern rtx gen_seq_sf_using_cc (rtx, rtx, rtx);
  1206. extern rtx gen_slt_sf_using_cc (rtx, rtx, rtx);
  1207. extern rtx gen_sle_sf_using_cc (rtx, rtx, rtx);
  1208. static inline rtx gen_sordered_sf_using_cc (rtx, rtx, rtx);
  1209. static inline rtx
  1210. gen_sordered_sf_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1211. {
  1212. return 0;
  1213. }
  1214. static inline rtx gen_sltgt_sf_using_cc (rtx, rtx, rtx);
  1215. static inline rtx
  1216. gen_sltgt_sf_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1217. {
  1218. return 0;
  1219. }
  1220. static inline rtx gen_sne_sf_using_cc (rtx, rtx, rtx);
  1221. static inline rtx
  1222. gen_sne_sf_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1223. {
  1224. return 0;
  1225. }
  1226. extern rtx gen_sunordered_df_using_cc (rtx, rtx, rtx);
  1227. extern rtx gen_suneq_df_using_cc (rtx, rtx, rtx);
  1228. extern rtx gen_sunlt_df_using_cc (rtx, rtx, rtx);
  1229. extern rtx gen_sunle_df_using_cc (rtx, rtx, rtx);
  1230. extern rtx gen_seq_df_using_cc (rtx, rtx, rtx);
  1231. extern rtx gen_slt_df_using_cc (rtx, rtx, rtx);
  1232. extern rtx gen_sle_df_using_cc (rtx, rtx, rtx);
  1233. static inline rtx gen_sordered_df_using_cc (rtx, rtx, rtx);
  1234. static inline rtx
  1235. gen_sordered_df_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1236. {
  1237. return 0;
  1238. }
  1239. static inline rtx gen_sltgt_df_using_cc (rtx, rtx, rtx);
  1240. static inline rtx
  1241. gen_sltgt_df_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1242. {
  1243. return 0;
  1244. }
  1245. static inline rtx gen_sne_df_using_cc (rtx, rtx, rtx);
  1246. static inline rtx
  1247. gen_sne_df_using_cc(rtx ARG_UNUSED (a), rtx ARG_UNUSED (b), rtx ARG_UNUSED (c))
  1248. {
  1249. return 0;
  1250. }
  1251. extern rtx gen_sunordered_sf_using_ccf (rtx, rtx, rtx);
  1252. extern rtx gen_suneq_sf_using_ccf (rtx, rtx, rtx);
  1253. extern rtx gen_sunlt_sf_using_ccf (rtx, rtx, rtx);
  1254. extern rtx gen_sunle_sf_using_ccf (rtx, rtx, rtx);
  1255. extern rtx gen_seq_sf_using_ccf (rtx, rtx, rtx);
  1256. extern rtx gen_slt_sf_using_ccf (rtx, rtx, rtx);
  1257. extern rtx gen_sle_sf_using_ccf (rtx, rtx, rtx);
  1258. extern rtx gen_sordered_sf_using_ccf (rtx, rtx, rtx);
  1259. extern rtx gen_sltgt_sf_using_ccf (rtx, rtx, rtx);
  1260. extern rtx gen_sne_sf_using_ccf (rtx, rtx, rtx);
  1261. extern rtx gen_sunordered_df_using_ccf (rtx, rtx, rtx);
  1262. extern rtx gen_suneq_df_using_ccf (rtx, rtx, rtx);
  1263. extern rtx gen_sunlt_df_using_ccf (rtx, rtx, rtx);
  1264. extern rtx gen_sunle_df_using_ccf (rtx, rtx, rtx);
  1265. extern rtx gen_seq_df_using_ccf (rtx, rtx, rtx);
  1266. extern rtx gen_slt_df_using_ccf (rtx, rtx, rtx);
  1267. extern rtx gen_sle_df_using_ccf (rtx, rtx, rtx);
  1268. extern rtx gen_sordered_df_using_ccf (rtx, rtx, rtx);
  1269. extern rtx gen_sltgt_df_using_ccf (rtx, rtx, rtx);
  1270. extern rtx gen_sne_df_using_ccf (rtx, rtx, rtx);
  1271. extern rtx gen_sge_sf_using_cc (rtx, rtx, rtx);
  1272. extern rtx gen_sgt_sf_using_cc (rtx, rtx, rtx);
  1273. extern rtx gen_sunge_sf_using_cc (rtx, rtx, rtx);
  1274. extern rtx gen_sungt_sf_using_cc (rtx, rtx, rtx);
  1275. extern rtx gen_sge_df_using_cc (rtx, rtx, rtx);
  1276. extern rtx gen_sgt_df_using_cc (rtx, rtx, rtx);
  1277. extern rtx gen_sunge_df_using_cc (rtx, rtx, rtx);
  1278. extern rtx gen_sungt_df_using_cc (rtx, rtx, rtx);
  1279. extern rtx gen_sge_sf_using_ccf (rtx, rtx, rtx);
  1280. extern rtx gen_sgt_sf_using_ccf (rtx, rtx, rtx);
  1281. extern rtx gen_sunge_sf_using_ccf (rtx, rtx, rtx);
  1282. extern rtx gen_sungt_sf_using_ccf (rtx, rtx, rtx);
  1283. extern rtx gen_sge_df_using_ccf (rtx, rtx, rtx);
  1284. extern rtx gen_sgt_df_using_ccf (rtx, rtx, rtx);
  1285. extern rtx gen_sunge_df_using_ccf (rtx, rtx, rtx);
  1286. extern rtx gen_sungt_df_using_ccf (rtx, rtx, rtx);
  1287. extern rtx gen_indirect_jump_si (rtx);
  1288. extern rtx gen_indirect_jump_di (rtx);
  1289. extern rtx gen_indirect_jump_and_restore_si (rtx, rtx, rtx);
  1290. extern rtx gen_indirect_jump_and_restore_di (rtx, rtx, rtx);
  1291. extern rtx gen_tablejump_si (rtx, rtx);
  1292. extern rtx gen_tablejump_di (rtx, rtx);
  1293. extern rtx gen_casesi_internal_mips16_si (rtx, rtx, rtx, rtx);
  1294. extern rtx gen_casesi_internal_mips16_di (rtx, rtx, rtx, rtx);
  1295. extern rtx gen_blockage (void);
  1296. extern rtx gen_probe_stack_range_si (rtx, rtx, rtx);
  1297. extern rtx gen_probe_stack_range_di (rtx, rtx, rtx);
  1298. extern rtx gen_return_internal (rtx);
  1299. extern rtx gen_simple_return_internal (rtx);
  1300. extern rtx gen_mips_eret (void);
  1301. extern rtx gen_mips_deret (void);
  1302. extern rtx gen_mips_di (void);
  1303. extern rtx gen_mips_ehb (void);
  1304. extern rtx gen_mips_rdpgpr (rtx, rtx);
  1305. extern rtx gen_cop0_move (rtx, rtx);
  1306. extern rtx gen_eh_set_lr_si (rtx);
  1307. extern rtx gen_eh_set_lr_di (rtx);
  1308. extern rtx gen_restore_gp_si (void);
  1309. extern rtx gen_restore_gp_di (void);
  1310. extern rtx gen_move_gpsi (rtx, rtx);
  1311. extern rtx gen_move_gpdi (rtx, rtx);
  1312. extern rtx gen_load_callsi (rtx, rtx, rtx);
  1313. extern rtx gen_load_calldi (rtx, rtx, rtx);
  1314. extern rtx gen_set_got_version (void);
  1315. extern rtx gen_update_got_version (void);
  1316. extern rtx gen_sibcall_internal (rtx, rtx);
  1317. extern rtx gen_sibcall_value_internal (rtx, rtx, rtx);
  1318. extern rtx gen_sibcall_value_multiple_internal (rtx, rtx, rtx, rtx);
  1319. extern rtx gen_call_internal (rtx, rtx);
  1320. extern rtx gen_call_split (rtx, rtx);
  1321. extern rtx gen_call_internal_direct (rtx, rtx);
  1322. extern rtx gen_call_direct_split (rtx, rtx);
  1323. extern rtx gen_call_value_internal (rtx, rtx, rtx);
  1324. extern rtx gen_call_value_split (rtx, rtx, rtx);
  1325. extern rtx gen_call_value_internal_direct (rtx, rtx, rtx);
  1326. extern rtx gen_call_value_direct_split (rtx, rtx, rtx);
  1327. extern rtx gen_call_value_multiple_internal (rtx, rtx, rtx, rtx);
  1328. extern rtx gen_call_value_multiple_split (rtx, rtx, rtx, rtx);
  1329. extern rtx gen_prefetch (rtx, rtx, rtx);
  1330. extern rtx gen_nop (void);
  1331. extern rtx gen_hazard_nop (void);
  1332. extern rtx gen_consttable_tls_reloc (rtx, rtx);
  1333. extern rtx gen_consttable_int (rtx, rtx);
  1334. extern rtx gen_consttable_float (rtx);
  1335. extern rtx gen_align (rtx);
  1336. extern rtx gen_tls_get_tp_si (rtx);
  1337. extern rtx gen_tls_get_tp_di (rtx);
  1338. extern rtx gen_tls_get_tp_mips16_si (rtx, rtx);
  1339. extern rtx gen_tls_get_tp_mips16_di (rtx, rtx);
  1340. extern rtx gen_mips_get_fcsr_mips16_si (rtx);
  1341. extern rtx gen_mips_get_fcsr_mips16_di (rtx);
  1342. extern rtx gen_mips_set_fcsr_mips16_si (rtx);
  1343. extern rtx gen_mips_set_fcsr_mips16_di (rtx);
  1344. extern rtx gen_sync_compare_and_swapsi (rtx, rtx, rtx, rtx);
  1345. extern rtx gen_sync_compare_and_swapdi (rtx, rtx, rtx, rtx);
  1346. extern rtx gen_compare_and_swap_12 (rtx, rtx, rtx, rtx, rtx, rtx);
  1347. extern rtx gen_sync_addsi (rtx, rtx);
  1348. extern rtx gen_sync_adddi (rtx, rtx);
  1349. extern rtx gen_sync_add_12 (rtx, rtx, rtx, rtx);
  1350. extern rtx gen_sync_sub_12 (rtx, rtx, rtx, rtx);
  1351. extern rtx gen_sync_ior_12 (rtx, rtx, rtx, rtx);
  1352. extern rtx gen_sync_xor_12 (rtx, rtx, rtx, rtx);
  1353. extern rtx gen_sync_and_12 (rtx, rtx, rtx, rtx);
  1354. extern rtx gen_sync_old_add_12 (rtx, rtx, rtx, rtx, rtx);
  1355. extern rtx gen_sync_old_sub_12 (rtx, rtx, rtx, rtx, rtx);
  1356. extern rtx gen_sync_old_ior_12 (rtx, rtx, rtx, rtx, rtx);
  1357. extern rtx gen_sync_old_xor_12 (rtx, rtx, rtx, rtx, rtx);
  1358. extern rtx gen_sync_old_and_12 (rtx, rtx, rtx, rtx, rtx);
  1359. extern rtx gen_sync_new_add_12 (rtx, rtx, rtx, rtx, rtx);
  1360. extern rtx gen_sync_new_sub_12 (rtx, rtx, rtx, rtx, rtx);
  1361. extern rtx gen_sync_new_ior_12 (rtx, rtx, rtx, rtx, rtx);
  1362. extern rtx gen_sync_new_xor_12 (rtx, rtx, rtx, rtx, rtx);
  1363. extern rtx gen_sync_new_and_12 (rtx, rtx, rtx, rtx, rtx);
  1364. extern rtx gen_sync_nand_12 (rtx, rtx, rtx, rtx);
  1365. extern rtx gen_sync_old_nand_12 (rtx, rtx, rtx, rtx, rtx);
  1366. extern rtx gen_sync_new_nand_12 (rtx, rtx, rtx, rtx, rtx);
  1367. extern rtx gen_sync_subsi (rtx, rtx);
  1368. extern rtx gen_sync_subdi (rtx, rtx);
  1369. extern rtx gen_sync_old_addsi (rtx, rtx, rtx);
  1370. extern rtx gen_sync_old_adddi (rtx, rtx, rtx);
  1371. extern rtx gen_sync_old_subsi (rtx, rtx, rtx);
  1372. extern rtx gen_sync_old_subdi (rtx, rtx, rtx);
  1373. extern rtx gen_sync_new_addsi (rtx, rtx, rtx);
  1374. extern rtx gen_sync_new_adddi (rtx, rtx, rtx);
  1375. extern rtx gen_sync_new_subsi (rtx, rtx, rtx);
  1376. extern rtx gen_sync_new_subdi (rtx, rtx, rtx);
  1377. extern rtx gen_sync_iorsi (rtx, rtx);
  1378. extern rtx gen_sync_xorsi (rtx, rtx);
  1379. extern rtx gen_sync_andsi (rtx, rtx);
  1380. extern rtx gen_sync_iordi (rtx, rtx);
  1381. extern rtx gen_sync_xordi (rtx, rtx);
  1382. extern rtx gen_sync_anddi (rtx, rtx);
  1383. extern rtx gen_sync_old_iorsi (rtx, rtx, rtx);
  1384. extern rtx gen_sync_old_xorsi (rtx, rtx, rtx);
  1385. extern rtx gen_sync_old_andsi (rtx, rtx, rtx);
  1386. extern rtx gen_sync_old_iordi (rtx, rtx, rtx);
  1387. extern rtx gen_sync_old_xordi (rtx, rtx, rtx);
  1388. extern rtx gen_sync_old_anddi (rtx, rtx, rtx);
  1389. extern rtx gen_sync_new_iorsi (rtx, rtx, rtx);
  1390. extern rtx gen_sync_new_xorsi (rtx, rtx, rtx);
  1391. extern rtx gen_sync_new_andsi (rtx, rtx, rtx);
  1392. extern rtx gen_sync_new_iordi (rtx, rtx, rtx);
  1393. extern rtx gen_sync_new_xordi (rtx, rtx, rtx);
  1394. extern rtx gen_sync_new_anddi (rtx, rtx, rtx);
  1395. extern rtx gen_sync_nandsi (rtx, rtx);
  1396. extern rtx gen_sync_nanddi (rtx, rtx);
  1397. extern rtx gen_sync_old_nandsi (rtx, rtx, rtx);
  1398. extern rtx gen_sync_old_nanddi (rtx, rtx, rtx);
  1399. extern rtx gen_sync_new_nandsi (rtx, rtx, rtx);
  1400. extern rtx gen_sync_new_nanddi (rtx, rtx, rtx);
  1401. extern rtx gen_sync_lock_test_and_setsi (rtx, rtx, rtx);
  1402. extern rtx gen_sync_lock_test_and_setdi (rtx, rtx, rtx);
  1403. extern rtx gen_test_and_set_12 (rtx, rtx, rtx, rtx, rtx);
  1404. extern rtx gen_atomic_compare_and_swapsi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
  1405. extern rtx gen_atomic_compare_and_swapdi (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
  1406. extern rtx gen_atomic_exchangesi_llsc (rtx, rtx, rtx, rtx);
  1407. extern rtx gen_atomic_exchangedi_llsc (rtx, rtx, rtx, rtx);
  1408. extern rtx gen_atomic_exchangesi_swap (rtx, rtx, rtx);
  1409. extern rtx gen_atomic_exchangedi_swap (rtx, rtx, rtx);
  1410. extern rtx gen_atomic_fetch_addsi_llsc (rtx, rtx, rtx, rtx);
  1411. extern rtx gen_atomic_fetch_adddi_llsc (rtx, rtx, rtx, rtx);
  1412. extern rtx gen_atomic_fetch_addsi_ldadd (rtx, rtx, rtx);
  1413. extern rtx gen_atomic_fetch_adddi_ldadd (rtx, rtx, rtx);
  1414. extern rtx gen_mips_cond_move_tf_ps (rtx, rtx, rtx, rtx);
  1415. extern rtx gen_vec_perm_const_ps (rtx, rtx, rtx, rtx, rtx);
  1416. extern rtx gen_vec_concatv2sf (rtx, rtx, rtx);
  1417. extern rtx gen_vec_extractv2sf (rtx, rtx, rtx);
  1418. extern rtx gen_mips_alnv_ps (rtx, rtx, rtx, rtx);
  1419. extern rtx gen_mips_addr_ps (rtx, rtx, rtx);
  1420. extern rtx gen_reduc_splus_v2sf (rtx, rtx);
  1421. extern rtx gen_mips_cvt_pw_ps (rtx, rtx);
  1422. extern rtx gen_mips_cvt_ps_pw (rtx, rtx);
  1423. extern rtx gen_mips_mulr_ps (rtx, rtx, rtx);
  1424. extern rtx gen_mips_cabs_cond_s (rtx, rtx, rtx, rtx);
  1425. extern rtx gen_mips_cabs_cond_d (rtx, rtx, rtx, rtx);
  1426. extern rtx gen_mips_c_cond_4s (rtx, rtx, rtx, rtx, rtx, rtx);
  1427. extern rtx gen_mips_cabs_cond_4s (rtx, rtx, rtx, rtx, rtx, rtx);
  1428. extern rtx gen_mips_c_cond_ps (rtx, rtx, rtx, rtx);
  1429. extern rtx gen_mips_cabs_cond_ps (rtx, rtx, rtx, rtx);
  1430. extern rtx gen_sunordered_ps (rtx, rtx, rtx);
  1431. extern rtx gen_suneq_ps (rtx, rtx, rtx);
  1432. extern rtx gen_sunlt_ps (rtx, rtx, rtx);
  1433. extern rtx gen_sunle_ps (rtx, rtx, rtx);
  1434. extern rtx gen_seq_ps (rtx, rtx, rtx);
  1435. extern rtx gen_slt_ps (rtx, rtx, rtx);
  1436. extern rtx gen_sle_ps (rtx, rtx, rtx);
  1437. extern rtx gen_sordered_ps (rtx, rtx, rtx);
  1438. extern rtx gen_sltgt_ps (rtx, rtx, rtx);
  1439. extern rtx gen_sne_ps (rtx, rtx, rtx);
  1440. extern rtx gen_sge_ps (rtx, rtx, rtx);
  1441. extern rtx gen_sgt_ps (rtx, rtx, rtx);
  1442. extern rtx gen_sunge_ps (rtx, rtx, rtx);
  1443. extern rtx gen_sungt_ps (rtx, rtx, rtx);
  1444. extern rtx gen_bc1any4t (rtx, rtx);
  1445. extern rtx gen_bc1any4f (rtx, rtx);
  1446. extern rtx gen_bc1any2t (rtx, rtx);
  1447. extern rtx gen_bc1any2f (rtx, rtx);
  1448. extern rtx gen_mips_rsqrt1_s (rtx, rtx);
  1449. extern rtx gen_mips_rsqrt1_d (rtx, rtx);
  1450. extern rtx gen_mips_rsqrt1_ps (rtx, rtx);
  1451. extern rtx gen_mips_rsqrt2_s (rtx, rtx, rtx);
  1452. extern rtx gen_mips_rsqrt2_d (rtx, rtx, rtx);
  1453. extern rtx gen_mips_rsqrt2_ps (rtx, rtx, rtx);
  1454. extern rtx gen_mips_recip1_s (rtx, rtx);
  1455. extern rtx gen_mips_recip1_d (rtx, rtx);
  1456. extern rtx gen_mips_recip1_ps (rtx, rtx);
  1457. extern rtx gen_mips_recip2_s (rtx, rtx, rtx);
  1458. extern rtx gen_mips_recip2_d (rtx, rtx, rtx);
  1459. extern rtx gen_mips_recip2_ps (rtx, rtx, rtx);
  1460. extern rtx gen_addv2hi3 (rtx, rtx, rtx);
  1461. extern rtx gen_addv4qi3 (rtx, rtx, rtx);
  1462. extern rtx gen_mips_addq_s_w (rtx, rtx, rtx);
  1463. extern rtx gen_mips_addq_s_ph (rtx, rtx, rtx);
  1464. extern rtx gen_mips_addu_s_qb (rtx, rtx, rtx);
  1465. extern rtx gen_subv2hi3 (rtx, rtx, rtx);
  1466. extern rtx gen_subv4qi3 (rtx, rtx, rtx);
  1467. extern rtx gen_mips_subq_s_w (rtx, rtx, rtx);
  1468. extern rtx gen_mips_subq_s_ph (rtx, rtx, rtx);
  1469. extern rtx gen_mips_subu_s_qb (rtx, rtx, rtx);
  1470. extern rtx gen_mips_addsc (rtx, rtx, rtx);
  1471. extern rtx gen_mips_addwc (rtx, rtx, rtx);
  1472. extern rtx gen_mips_modsub (rtx, rtx, rtx);
  1473. extern rtx gen_mips_raddu_w_qb (rtx, rtx);
  1474. extern rtx gen_mips_absq_s_w (rtx, rtx);
  1475. extern rtx gen_mips_absq_s_ph (rtx, rtx);
  1476. extern rtx gen_mips_precrq_qb_ph (rtx, rtx, rtx);
  1477. extern rtx gen_mips_precrq_ph_w (rtx, rtx, rtx);
  1478. extern rtx gen_mips_precrq_rs_ph_w (rtx, rtx, rtx);
  1479. extern rtx gen_mips_precrqu_s_qb_ph (rtx, rtx, rtx);
  1480. extern rtx gen_mips_preceq_w_phl (rtx, rtx);
  1481. extern rtx gen_mips_preceq_w_phr (rtx, rtx);
  1482. extern rtx gen_mips_precequ_ph_qbl (rtx, rtx);
  1483. extern rtx gen_mips_precequ_ph_qbr (rtx, rtx);
  1484. extern rtx gen_mips_precequ_ph_qbla (rtx, rtx);
  1485. extern rtx gen_mips_precequ_ph_qbra (rtx, rtx);
  1486. extern rtx gen_mips_preceu_ph_qbl (rtx, rtx);
  1487. extern rtx gen_mips_preceu_ph_qbr (rtx, rtx);
  1488. extern rtx gen_mips_preceu_ph_qbla (rtx, rtx);
  1489. extern rtx gen_mips_preceu_ph_qbra (rtx, rtx);
  1490. extern rtx gen_mips_shll_ph (rtx, rtx, rtx);
  1491. extern rtx gen_mips_shll_qb (rtx, rtx, rtx);
  1492. extern rtx gen_mips_shll_s_w (rtx, rtx, rtx);
  1493. extern rtx gen_mips_shll_s_ph (rtx, rtx, rtx);
  1494. extern rtx gen_mips_shrl_qb (rtx, rtx, rtx);
  1495. extern rtx gen_mips_shra_ph (rtx, rtx, rtx);
  1496. extern rtx gen_mips_shra_r_w (rtx, rtx, rtx);
  1497. extern rtx gen_mips_shra_r_ph (rtx, rtx, rtx);
  1498. extern rtx gen_mips_muleu_s_ph_qbl (rtx, rtx, rtx);
  1499. extern rtx gen_mips_muleu_s_ph_qbr (rtx, rtx, rtx);
  1500. extern rtx gen_mips_mulq_rs_ph (rtx, rtx, rtx);
  1501. extern rtx gen_mips_muleq_s_w_phl (rtx, rtx, rtx);
  1502. extern rtx gen_mips_muleq_s_w_phr (rtx, rtx, rtx);
  1503. extern rtx gen_mips_dpau_h_qbl (rtx, rtx, rtx, rtx);
  1504. extern rtx gen_mips_dpau_h_qbr (rtx, rtx, rtx, rtx);
  1505. extern rtx gen_mips_dpsu_h_qbl (rtx, rtx, rtx, rtx);
  1506. extern rtx gen_mips_dpsu_h_qbr (rtx, rtx, rtx, rtx);
  1507. extern rtx gen_mips_dpaq_s_w_ph (rtx, rtx, rtx, rtx);
  1508. extern rtx gen_mips_dpsq_s_w_ph (rtx, rtx, rtx, rtx);
  1509. extern rtx gen_mips_mulsaq_s_w_ph (rtx, rtx, rtx, rtx);
  1510. extern rtx gen_mips_dpaq_sa_l_w (rtx, rtx, rtx, rtx);
  1511. extern rtx gen_mips_dpsq_sa_l_w (rtx, rtx, rtx, rtx);
  1512. extern rtx gen_mips_maq_s_w_phl (rtx, rtx, rtx, rtx);
  1513. extern rtx gen_mips_maq_s_w_phr (rtx, rtx, rtx, rtx);
  1514. extern rtx gen_mips_maq_sa_w_phl (rtx, rtx, rtx, rtx);
  1515. extern rtx gen_mips_maq_sa_w_phr (rtx, rtx, rtx, rtx);
  1516. extern rtx gen_mips_bitrev (rtx, rtx);
  1517. extern rtx gen_mips_insv (rtx, rtx, rtx);
  1518. extern rtx gen_mips_repl_qb (rtx, rtx);
  1519. extern rtx gen_mips_repl_ph (rtx, rtx);
  1520. extern rtx gen_mips_cmp_eq_ph (rtx, rtx);
  1521. extern rtx gen_mips_cmpu_eq_qb (rtx, rtx);
  1522. extern rtx gen_mips_cmp_lt_ph (rtx, rtx);
  1523. extern rtx gen_mips_cmpu_lt_qb (rtx, rtx);
  1524. extern rtx gen_mips_cmp_le_ph (rtx, rtx);
  1525. extern rtx gen_mips_cmpu_le_qb (rtx, rtx);
  1526. extern rtx gen_mips_cmpgu_eq_qb (rtx, rtx, rtx);
  1527. extern rtx gen_mips_cmpgu_lt_qb (rtx, rtx, rtx);
  1528. extern rtx gen_mips_cmpgu_le_qb (rtx, rtx, rtx);
  1529. extern rtx gen_mips_pick_ph (rtx, rtx, rtx);
  1530. extern rtx gen_mips_pick_qb (rtx, rtx, rtx);
  1531. extern rtx gen_mips_packrl_ph (rtx, rtx, rtx);
  1532. extern rtx gen_mips_extr_w (rtx, rtx, rtx);
  1533. extern rtx gen_mips_extr_r_w (rtx, rtx, rtx);
  1534. extern rtx gen_mips_extr_rs_w (rtx, rtx, rtx);
  1535. extern rtx gen_mips_extr_s_h (rtx, rtx, rtx);
  1536. extern rtx gen_mips_extp (rtx, rtx, rtx);
  1537. extern rtx gen_mips_extpdp (rtx, rtx, rtx);
  1538. extern rtx gen_mips_shilo (rtx, rtx, rtx);
  1539. extern rtx gen_mips_mthlip (rtx, rtx, rtx);
  1540. extern rtx gen_mips_wrdsp (rtx, rtx);
  1541. extern rtx gen_mips_rddsp (rtx, rtx);
  1542. extern rtx gen_mips_lbx_extsi_si (rtx, rtx, rtx);
  1543. extern rtx gen_mips_lbux_extsi_si (rtx, rtx, rtx);
  1544. extern rtx gen_mips_lbx_extdi_si (rtx, rtx, rtx);
  1545. extern rtx gen_mips_lbux_extdi_si (rtx, rtx, rtx);
  1546. extern rtx gen_mips_lhx_extsi_si (rtx, rtx, rtx);
  1547. extern rtx gen_mips_lhux_extsi_si (rtx, rtx, rtx);
  1548. extern rtx gen_mips_lhx_extdi_si (rtx, rtx, rtx);
  1549. extern rtx gen_mips_lhux_extdi_si (rtx, rtx, rtx);
  1550. extern rtx gen_mips_lbx_extsi_di (rtx, rtx, rtx);
  1551. extern rtx gen_mips_lbux_extsi_di (rtx, rtx, rtx);
  1552. extern rtx gen_mips_lbx_extdi_di (rtx, rtx, rtx);
  1553. extern rtx gen_mips_lbux_extdi_di (rtx, rtx, rtx);
  1554. extern rtx gen_mips_lhx_extsi_di (rtx, rtx, rtx);
  1555. extern rtx gen_mips_lhux_extsi_di (rtx, rtx, rtx);
  1556. extern rtx gen_mips_lhx_extdi_di (rtx, rtx, rtx);
  1557. extern rtx gen_mips_lhux_extdi_di (rtx, rtx, rtx);
  1558. extern rtx gen_mips_lwx_si (rtx, rtx, rtx);
  1559. extern rtx gen_mips_ldx_si (rtx, rtx, rtx);
  1560. extern rtx gen_mips_lwx_di (rtx, rtx, rtx);
  1561. extern rtx gen_mips_ldx_di (rtx, rtx, rtx);
  1562. extern rtx gen_mips_bposge (rtx, rtx);
  1563. extern rtx gen_mips_absq_s_qb (rtx, rtx);
  1564. extern rtx gen_mips_addu_ph (rtx, rtx, rtx);
  1565. extern rtx gen_mips_addu_s_ph (rtx, rtx, rtx);
  1566. extern rtx gen_mips_adduh_qb (rtx, rtx, rtx);
  1567. extern rtx gen_mips_adduh_r_qb (rtx, rtx, rtx);
  1568. extern rtx gen_mips_append (rtx, rtx, rtx, rtx);
  1569. extern rtx gen_mips_balign (rtx, rtx, rtx, rtx);
  1570. extern rtx gen_mips_cmpgdu_eq_qb (rtx, rtx, rtx);
  1571. extern rtx gen_mips_cmpgdu_lt_qb (rtx, rtx, rtx);
  1572. extern rtx gen_mips_cmpgdu_le_qb (rtx, rtx, rtx);
  1573. extern rtx gen_mips_dpa_w_ph (rtx, rtx, rtx, rtx);
  1574. extern rtx gen_mips_dps_w_ph (rtx, rtx, rtx, rtx);
  1575. extern rtx gen_mulv2hi3 (rtx, rtx, rtx);
  1576. extern rtx gen_mips_mul_s_ph (rtx, rtx, rtx);
  1577. extern rtx gen_mips_mulq_rs_w (rtx, rtx, rtx);
  1578. extern rtx gen_mips_mulq_s_ph (rtx, rtx, rtx);
  1579. extern rtx gen_mips_mulq_s_w (rtx, rtx, rtx);
  1580. extern rtx gen_mips_mulsa_w_ph (rtx, rtx, rtx, rtx);
  1581. extern rtx gen_mips_precr_qb_ph (rtx, rtx, rtx);
  1582. extern rtx gen_mips_precr_sra_ph_w (rtx, rtx, rtx, rtx);
  1583. extern rtx gen_mips_precr_sra_r_ph_w (rtx, rtx, rtx, rtx);
  1584. extern rtx gen_mips_prepend (rtx, rtx, rtx, rtx);
  1585. extern rtx gen_mips_shra_qb (rtx, rtx, rtx);
  1586. extern rtx gen_mips_shra_r_qb (rtx, rtx, rtx);
  1587. extern rtx gen_mips_shrl_ph (rtx, rtx, rtx);
  1588. extern rtx gen_mips_subu_ph (rtx, rtx, rtx);
  1589. extern rtx gen_mips_subu_s_ph (rtx, rtx, rtx);
  1590. extern rtx gen_mips_subuh_qb (rtx, rtx, rtx);
  1591. extern rtx gen_mips_subuh_r_qb (rtx, rtx, rtx);
  1592. extern rtx gen_mips_addqh_ph (rtx, rtx, rtx);
  1593. extern rtx gen_mips_addqh_r_ph (rtx, rtx, rtx);
  1594. extern rtx gen_mips_addqh_w (rtx, rtx, rtx);
  1595. extern rtx gen_mips_addqh_r_w (rtx, rtx, rtx);
  1596. extern rtx gen_mips_subqh_ph (rtx, rtx, rtx);
  1597. extern rtx gen_mips_subqh_r_ph (rtx, rtx, rtx);
  1598. extern rtx gen_mips_subqh_w (rtx, rtx, rtx);
  1599. extern rtx gen_mips_subqh_r_w (rtx, rtx, rtx);
  1600. extern rtx gen_mips_dpax_w_ph (rtx, rtx, rtx, rtx);
  1601. extern rtx gen_mips_dpsx_w_ph (rtx, rtx, rtx, rtx);
  1602. extern rtx gen_mips_dpaqx_s_w_ph (rtx, rtx, rtx, rtx);
  1603. extern rtx gen_mips_dpaqx_sa_w_ph (rtx, rtx, rtx, rtx);
  1604. extern rtx gen_mips_dpsqx_s_w_ph (rtx, rtx, rtx, rtx);
  1605. extern rtx gen_mips_dpsqx_sa_w_ph (rtx, rtx, rtx, rtx);
  1606. extern rtx gen_addqq3 (rtx, rtx, rtx);
  1607. extern rtx gen_addhq3 (rtx, rtx, rtx);
  1608. extern rtx gen_addsq3 (rtx, rtx, rtx);
  1609. extern rtx gen_adddq3 (rtx, rtx, rtx);
  1610. extern rtx gen_adduqq3 (rtx, rtx, rtx);
  1611. extern rtx gen_adduhq3 (rtx, rtx, rtx);
  1612. extern rtx gen_addusq3 (rtx, rtx, rtx);
  1613. extern rtx gen_addudq3 (rtx, rtx, rtx);
  1614. extern rtx gen_addha3 (rtx, rtx, rtx);
  1615. extern rtx gen_addsa3 (rtx, rtx, rtx);
  1616. extern rtx gen_addda3 (rtx, rtx, rtx);
  1617. extern rtx gen_adduha3 (rtx, rtx, rtx);
  1618. extern rtx gen_addusa3 (rtx, rtx, rtx);
  1619. extern rtx gen_adduda3 (rtx, rtx, rtx);
  1620. extern rtx gen_usadduqq3 (rtx, rtx, rtx);
  1621. extern rtx gen_usadduhq3 (rtx, rtx, rtx);
  1622. extern rtx gen_usadduha3 (rtx, rtx, rtx);
  1623. extern rtx gen_usaddv4uqq3 (rtx, rtx, rtx);
  1624. extern rtx gen_usaddv2uhq3 (rtx, rtx, rtx);
  1625. extern rtx gen_usaddv2uha3 (rtx, rtx, rtx);
  1626. extern rtx gen_ssaddhq3 (rtx, rtx, rtx);
  1627. extern rtx gen_ssaddsq3 (rtx, rtx, rtx);
  1628. extern rtx gen_ssaddha3 (rtx, rtx, rtx);
  1629. extern rtx gen_ssaddsa3 (rtx, rtx, rtx);
  1630. extern rtx gen_ssaddv2hq3 (rtx, rtx, rtx);
  1631. extern rtx gen_ssaddv2ha3 (rtx, rtx, rtx);
  1632. extern rtx gen_subqq3 (rtx, rtx, rtx);
  1633. extern rtx gen_subhq3 (rtx, rtx, rtx);
  1634. extern rtx gen_subsq3 (rtx, rtx, rtx);
  1635. extern rtx gen_subdq3 (rtx, rtx, rtx);
  1636. extern rtx gen_subuqq3 (rtx, rtx, rtx);
  1637. extern rtx gen_subuhq3 (rtx, rtx, rtx);
  1638. extern rtx gen_subusq3 (rtx, rtx, rtx);
  1639. extern rtx gen_subudq3 (rtx, rtx, rtx);
  1640. extern rtx gen_subha3 (rtx, rtx, rtx);
  1641. extern rtx gen_subsa3 (rtx, rtx, rtx);
  1642. extern rtx gen_subda3 (rtx, rtx, rtx);
  1643. extern rtx gen_subuha3 (rtx, rtx, rtx);
  1644. extern rtx gen_subusa3 (rtx, rtx, rtx);
  1645. extern rtx gen_subuda3 (rtx, rtx, rtx);
  1646. extern rtx gen_ussubuqq3 (rtx, rtx, rtx);
  1647. extern rtx gen_ussubuhq3 (rtx, rtx, rtx);
  1648. extern rtx gen_ussubuha3 (rtx, rtx, rtx);
  1649. extern rtx gen_ussubv4uqq3 (rtx, rtx, rtx);
  1650. extern rtx gen_ussubv2uhq3 (rtx, rtx, rtx);
  1651. extern rtx gen_ussubv2uha3 (rtx, rtx, rtx);
  1652. extern rtx gen_sssubhq3 (rtx, rtx, rtx);
  1653. extern rtx gen_sssubsq3 (rtx, rtx, rtx);
  1654. extern rtx gen_sssubha3 (rtx, rtx, rtx);
  1655. extern rtx gen_sssubsa3 (rtx, rtx, rtx);
  1656. extern rtx gen_sssubv2hq3 (rtx, rtx, rtx);
  1657. extern rtx gen_sssubv2ha3 (rtx, rtx, rtx);
  1658. extern rtx gen_ssmulv2hq3 (rtx, rtx, rtx);
  1659. extern rtx gen_ssmulhq3 (rtx, rtx, rtx);
  1660. extern rtx gen_ssmulsq3 (rtx, rtx, rtx);
  1661. extern rtx gen_ssmaddsqdq4 (rtx, rtx, rtx, rtx);
  1662. extern rtx gen_ssmsubsqdq4 (rtx, rtx, rtx, rtx);
  1663. extern rtx gen_jraddiusp (rtx);
  1664. extern rtx gen_movv2si_internal (rtx, rtx);
  1665. extern rtx gen_movv4hi_internal (rtx, rtx);
  1666. extern rtx gen_movv8qi_internal (rtx, rtx);
  1667. extern rtx gen_loongson_vec_init1_v4hi (rtx, rtx);
  1668. extern rtx gen_loongson_vec_init1_v8qi (rtx, rtx);
  1669. extern rtx gen_vec_pack_ssat_v2si (rtx, rtx, rtx);
  1670. extern rtx gen_vec_pack_ssat_v4hi (rtx, rtx, rtx);
  1671. extern rtx gen_vec_pack_usat_v4hi (rtx, rtx, rtx);
  1672. extern rtx gen_addv2si3 (rtx, rtx, rtx);
  1673. extern rtx gen_addv4hi3 (rtx, rtx, rtx);
  1674. extern rtx gen_addv8qi3 (rtx, rtx, rtx);
  1675. extern rtx gen_loongson_paddd (rtx, rtx, rtx);
  1676. extern rtx gen_ssaddv4hi3 (rtx, rtx, rtx);
  1677. extern rtx gen_ssaddv8qi3 (rtx, rtx, rtx);
  1678. extern rtx gen_usaddv4hi3 (rtx, rtx, rtx);
  1679. extern rtx gen_usaddv8qi3 (rtx, rtx, rtx);
  1680. extern rtx gen_loongson_pandn_w (rtx, rtx, rtx);
  1681. extern rtx gen_loongson_pandn_h (rtx, rtx, rtx);
  1682. extern rtx gen_loongson_pandn_b (rtx, rtx, rtx);
  1683. extern rtx gen_loongson_pandn_d (rtx, rtx, rtx);
  1684. extern rtx gen_andv2si3 (rtx, rtx, rtx);
  1685. extern rtx gen_andv4hi3 (rtx, rtx, rtx);
  1686. extern rtx gen_andv8qi3 (rtx, rtx, rtx);
  1687. extern rtx gen_iorv2si3 (rtx, rtx, rtx);
  1688. extern rtx gen_iorv4hi3 (rtx, rtx, rtx);
  1689. extern rtx gen_iorv8qi3 (rtx, rtx, rtx);
  1690. extern rtx gen_xorv2si3 (rtx, rtx, rtx);
  1691. extern rtx gen_xorv4hi3 (rtx, rtx, rtx);
  1692. extern rtx gen_xorv8qi3 (rtx, rtx, rtx);
  1693. extern rtx gen_one_cmplv2si2 (rtx, rtx);
  1694. extern rtx gen_one_cmplv4hi2 (rtx, rtx);
  1695. extern rtx gen_one_cmplv8qi2 (rtx, rtx);
  1696. extern rtx gen_loongson_pavgh (rtx, rtx, rtx);
  1697. extern rtx gen_loongson_pavgb (rtx, rtx, rtx);
  1698. extern rtx gen_loongson_pcmpeqw (rtx, rtx, rtx);
  1699. extern rtx gen_loongson_pcmpeqh (rtx, rtx, rtx);
  1700. extern rtx gen_loongson_pcmpeqb (rtx, rtx, rtx);
  1701. extern rtx gen_loongson_pcmpgtw (rtx, rtx, rtx);
  1702. extern rtx gen_loongson_pcmpgth (rtx, rtx, rtx);
  1703. extern rtx gen_loongson_pcmpgtb (rtx, rtx, rtx);
  1704. extern rtx gen_loongson_pextrh (rtx, rtx, rtx);
  1705. extern rtx gen_loongson_pinsrh_0 (rtx, rtx, rtx);
  1706. extern rtx gen_loongson_pinsrh_1 (rtx, rtx, rtx);
  1707. extern rtx gen_loongson_pinsrh_2 (rtx, rtx, rtx);
  1708. extern rtx gen_loongson_pinsrh_3 (rtx, rtx, rtx);
  1709. extern rtx gen_loongson_pmaddhw (rtx, rtx, rtx);
  1710. extern rtx gen_smaxv4hi3 (rtx, rtx, rtx);
  1711. extern rtx gen_umaxv8qi3 (rtx, rtx, rtx);
  1712. extern rtx gen_sminv4hi3 (rtx, rtx, rtx);
  1713. extern rtx gen_uminv8qi3 (rtx, rtx, rtx);
  1714. extern rtx gen_loongson_pmovmskb (rtx, rtx);
  1715. extern rtx gen_umulv4hi3_highpart (rtx, rtx, rtx);
  1716. extern rtx gen_smulv4hi3_highpart (rtx, rtx, rtx);
  1717. extern rtx gen_mulv4hi3 (rtx, rtx, rtx);
  1718. extern rtx gen_loongson_pmuluw (rtx, rtx, rtx);
  1719. extern rtx gen_loongson_pasubub (rtx, rtx, rtx);
  1720. extern rtx gen_loongson_biadd (rtx, rtx);
  1721. extern rtx gen_reduc_uplus_v8qi (rtx, rtx);
  1722. extern rtx gen_loongson_psadbh (rtx, rtx, rtx);
  1723. extern rtx gen_loongson_pshufh (rtx, rtx, rtx);
  1724. extern rtx gen_ashlv2si3 (rtx, rtx, rtx);
  1725. extern rtx gen_ashlv4hi3 (rtx, rtx, rtx);
  1726. extern rtx gen_ashrv2si3 (rtx, rtx, rtx);
  1727. extern rtx gen_ashrv4hi3 (rtx, rtx, rtx);
  1728. extern rtx gen_lshrv2si3 (rtx, rtx, rtx);
  1729. extern rtx gen_lshrv4hi3 (rtx, rtx, rtx);
  1730. extern rtx gen_subv2si3 (rtx, rtx, rtx);
  1731. extern rtx gen_subv4hi3 (rtx, rtx, rtx);
  1732. extern rtx gen_subv8qi3 (rtx, rtx, rtx);
  1733. extern rtx gen_loongson_psubd (rtx, rtx, rtx);
  1734. extern rtx gen_sssubv4hi3 (rtx, rtx, rtx);
  1735. extern rtx gen_sssubv8qi3 (rtx, rtx, rtx);
  1736. extern rtx gen_ussubv4hi3 (rtx, rtx, rtx);
  1737. extern rtx gen_ussubv8qi3 (rtx, rtx, rtx);
  1738. extern rtx gen_loongson_punpckhbh (rtx, rtx, rtx);
  1739. extern rtx gen_loongson_punpckhhw (rtx, rtx, rtx);
  1740. extern rtx gen_loongson_punpckhhw_qi (rtx, rtx, rtx);
  1741. extern rtx gen_loongson_punpckhwd (rtx, rtx, rtx);
  1742. extern rtx gen_loongson_punpckhwd_qi (rtx, rtx, rtx);
  1743. extern rtx gen_loongson_punpckhwd_hi (rtx, rtx, rtx);
  1744. extern rtx gen_loongson_punpcklbh (rtx, rtx, rtx);
  1745. extern rtx gen_loongson_punpcklhw (rtx, rtx, rtx);
  1746. extern rtx gen_loongson_punpcklwd (rtx, rtx, rtx);
  1747. extern rtx gen_vec_shl_v2si (rtx, rtx, rtx);
  1748. extern rtx gen_vec_shl_v4hi (rtx, rtx, rtx);
  1749. extern rtx gen_vec_shl_v8qi (rtx, rtx, rtx);
  1750. extern rtx gen_vec_shl_di (rtx, rtx, rtx);
  1751. extern rtx gen_vec_shr_v2si (rtx, rtx, rtx);
  1752. extern rtx gen_vec_shr_v4hi (rtx, rtx, rtx);
  1753. extern rtx gen_vec_shr_v8qi (rtx, rtx, rtx);
  1754. extern rtx gen_vec_shr_di (rtx, rtx, rtx);
  1755. extern rtx gen_ctrapsi4 (rtx, rtx, rtx, rtx);
  1756. extern rtx gen_ctrapdi4 (rtx, rtx, rtx, rtx);
  1757. extern rtx gen_addsi3 (rtx, rtx, rtx);
  1758. extern rtx gen_adddi3 (rtx, rtx, rtx);
  1759. extern rtx gen_mulsf3 (rtx, rtx, rtx);
  1760. extern rtx gen_muldf3 (rtx, rtx, rtx);
  1761. extern rtx gen_mulsi3 (rtx, rtx, rtx);
  1762. extern rtx gen_muldi3 (rtx, rtx, rtx);
  1763. extern rtx gen_mulsidi3 (rtx, rtx, rtx);
  1764. extern rtx gen_umulsidi3 (rtx, rtx, rtx);
  1765. extern rtx gen_mulsidi3_32bit_r6 (rtx, rtx, rtx);
  1766. extern rtx gen_umulsidi3_32bit_r6 (rtx, rtx, rtx);
  1767. extern rtx gen_mulsidi3_32bit_mips16 (rtx, rtx, rtx);
  1768. extern rtx gen_umulsidi3_32bit_mips16 (rtx, rtx, rtx);
  1769. extern rtx gen_mulsidi3_64bit_mips16 (rtx, rtx, rtx);
  1770. extern rtx gen_umulsidi3_64bit_mips16 (rtx, rtx, rtx);
  1771. extern rtx gen_mulsidi3_64bit_split (rtx, rtx, rtx, rtx);
  1772. extern rtx gen_umulsidi3_64bit_split (rtx, rtx, rtx, rtx);
  1773. extern rtx gen_smulsi3_highpart (rtx, rtx, rtx);
  1774. extern rtx gen_umulsi3_highpart (rtx, rtx, rtx);
  1775. extern rtx gen_smulsi3_highpart_split (rtx, rtx, rtx);
  1776. extern rtx gen_umulsi3_highpart_split (rtx, rtx, rtx);
  1777. extern rtx gen_smuldi3_highpart (rtx, rtx, rtx);
  1778. extern rtx gen_umuldi3_highpart (rtx, rtx, rtx);
  1779. extern rtx gen_smuldi3_highpart_split (rtx, rtx, rtx);
  1780. extern rtx gen_umuldi3_highpart_split (rtx, rtx, rtx);
  1781. extern rtx gen_mulditi3 (rtx, rtx, rtx);
  1782. extern rtx gen_umulditi3 (rtx, rtx, rtx);
  1783. extern rtx gen_divsf3 (rtx, rtx, rtx);
  1784. extern rtx gen_divdf3 (rtx, rtx, rtx);
  1785. extern rtx gen_divv2sf3 (rtx, rtx, rtx);
  1786. extern rtx gen_divmodsi4 (rtx, rtx, rtx, rtx);
  1787. extern rtx gen_divmoddi4 (rtx, rtx, rtx, rtx);
  1788. extern rtx gen_udivmodsi4 (rtx, rtx, rtx, rtx);
  1789. extern rtx gen_udivmoddi4 (rtx, rtx, rtx, rtx);
  1790. extern rtx gen_divmodsi4_split (rtx, rtx, rtx);
  1791. extern rtx gen_udivmodsi4_split (rtx, rtx, rtx);
  1792. extern rtx gen_divmoddi4_split (rtx, rtx, rtx);
  1793. extern rtx gen_udivmoddi4_split (rtx, rtx, rtx);
  1794. extern rtx gen_andsi3 (rtx, rtx, rtx);
  1795. extern rtx gen_anddi3 (rtx, rtx, rtx);
  1796. extern rtx gen_iorsi3 (rtx, rtx, rtx);
  1797. extern rtx gen_iordi3 (rtx, rtx, rtx);
  1798. extern rtx gen_xorsi3 (rtx, rtx, rtx);
  1799. extern rtx gen_xordi3 (rtx, rtx, rtx);
  1800. extern rtx gen_zero_extendsidi2 (rtx, rtx);
  1801. extern rtx gen_zero_extendqisi2 (rtx, rtx);
  1802. extern rtx gen_zero_extendqidi2 (rtx, rtx);
  1803. extern rtx gen_zero_extendhisi2 (rtx, rtx);
  1804. extern rtx gen_zero_extendhidi2 (rtx, rtx);
  1805. extern rtx gen_zero_extendqihi2 (rtx, rtx);
  1806. extern rtx gen_extendqisi2 (rtx, rtx);
  1807. extern rtx gen_extendqidi2 (rtx, rtx);
  1808. extern rtx gen_extendhisi2 (rtx, rtx);
  1809. extern rtx gen_extendhidi2 (rtx, rtx);
  1810. extern rtx gen_extendqihi2 (rtx, rtx);
  1811. extern rtx gen_fix_truncdfsi2 (rtx, rtx);
  1812. extern rtx gen_fix_truncsfsi2 (rtx, rtx);
  1813. extern rtx gen_fixuns_truncdfsi2 (rtx, rtx);
  1814. extern rtx gen_fixuns_truncdfdi2 (rtx, rtx);
  1815. extern rtx gen_fixuns_truncsfsi2 (rtx, rtx);
  1816. extern rtx gen_fixuns_truncsfdi2 (rtx, rtx);
  1817. extern rtx gen_extvmisalignsi (rtx, rtx, rtx, rtx);
  1818. extern rtx gen_extvmisaligndi (rtx, rtx, rtx, rtx);
  1819. extern rtx gen_extvsi (rtx, rtx, rtx, rtx);
  1820. extern rtx gen_extvdi (rtx, rtx, rtx, rtx);
  1821. extern rtx gen_extzvmisalignsi (rtx, rtx, rtx, rtx);
  1822. extern rtx gen_extzvmisaligndi (rtx, rtx, rtx, rtx);
  1823. extern rtx gen_extzvsi (rtx, rtx, rtx, rtx);
  1824. extern rtx gen_extzvdi (rtx, rtx, rtx, rtx);
  1825. extern rtx gen_insvmisalignsi (rtx, rtx, rtx, rtx);
  1826. extern rtx gen_insvmisaligndi (rtx, rtx, rtx, rtx);
  1827. extern rtx gen_insvsi (rtx, rtx, rtx, rtx);
  1828. extern rtx gen_insvdi (rtx, rtx, rtx, rtx);
  1829. extern rtx gen_unspec_got_si (rtx, rtx);
  1830. extern rtx gen_unspec_got_di (rtx, rtx);
  1831. extern rtx gen_movdi (rtx, rtx);
  1832. extern rtx gen_movsi (rtx, rtx);
  1833. extern rtx gen_movv2hi (rtx, rtx);
  1834. extern rtx gen_movv4qi (rtx, rtx);
  1835. extern rtx gen_movv2hq (rtx, rtx);
  1836. extern rtx gen_movv2uhq (rtx, rtx);
  1837. extern rtx gen_movv2ha (rtx, rtx);
  1838. extern rtx gen_movv2uha (rtx, rtx);
  1839. extern rtx gen_movv4qq (rtx, rtx);
  1840. extern rtx gen_movv4uqq (rtx, rtx);
  1841. extern rtx gen_movhi (rtx, rtx);
  1842. extern rtx gen_movqi (rtx, rtx);
  1843. extern rtx gen_movsf (rtx, rtx);
  1844. extern rtx gen_movdf (rtx, rtx);
  1845. extern rtx gen_movti (rtx, rtx);
  1846. extern rtx gen_movtf (rtx, rtx);
  1847. extern rtx gen_movv2sf (rtx, rtx);
  1848. extern rtx gen_move_doubleword_fprdf (rtx, rtx);
  1849. extern rtx gen_move_doubleword_fprdi (rtx, rtx);
  1850. extern rtx gen_move_doubleword_fprv2sf (rtx, rtx);
  1851. extern rtx gen_move_doubleword_fprv2si (rtx, rtx);
  1852. extern rtx gen_move_doubleword_fprv4hi (rtx, rtx);
  1853. extern rtx gen_move_doubleword_fprv8qi (rtx, rtx);
  1854. extern rtx gen_move_doubleword_fprtf (rtx, rtx);
  1855. extern rtx gen_load_const_gp_si (rtx);
  1856. extern rtx gen_load_const_gp_di (rtx);
  1857. extern rtx gen_clear_cache (rtx, rtx);
  1858. extern rtx gen_movmemsi (rtx, rtx, rtx, rtx);
  1859. extern rtx gen_ashlsi3 (rtx, rtx, rtx);
  1860. extern rtx gen_ashrsi3 (rtx, rtx, rtx);
  1861. extern rtx gen_lshrsi3 (rtx, rtx, rtx);
  1862. extern rtx gen_ashldi3 (rtx, rtx, rtx);
  1863. extern rtx gen_ashrdi3 (rtx, rtx, rtx);
  1864. extern rtx gen_lshrdi3 (rtx, rtx, rtx);
  1865. extern rtx gen_cbranchsi4 (rtx, rtx, rtx, rtx);
  1866. extern rtx gen_cbranchdi4 (rtx, rtx, rtx, rtx);
  1867. extern rtx gen_cbranchsf4 (rtx, rtx, rtx, rtx);
  1868. extern rtx gen_cbranchdf4 (rtx, rtx, rtx, rtx);
  1869. extern rtx gen_condjump (rtx, rtx);
  1870. extern rtx gen_cstoresi4 (rtx, rtx, rtx, rtx);
  1871. extern rtx gen_cstoredi4 (rtx, rtx, rtx, rtx);
  1872. extern rtx gen_jump (rtx);
  1873. extern rtx gen_indirect_jump (rtx);
  1874. extern rtx gen_tablejump (rtx, rtx);
  1875. extern rtx gen_casesi (rtx, rtx, rtx, rtx, rtx);
  1876. extern rtx gen_builtin_setjmp_setup (rtx);
  1877. extern rtx gen_builtin_longjmp (rtx);
  1878. extern rtx gen_prologue (void);
  1879. extern rtx gen_epilogue (void);
  1880. extern rtx gen_sibcall_epilogue (void);
  1881. extern rtx gen_return (void);
  1882. extern rtx gen_simple_return (void);
  1883. extern rtx gen_eh_return (rtx);
  1884. extern rtx gen_exception_receiver (void);
  1885. extern rtx gen_nonlocal_goto_receiver (void);
  1886. #define GEN_SIBCALL(A, B, C, D) gen_sibcall ((A), (B), (C), (D))
  1887. extern rtx gen_sibcall (rtx, rtx, rtx, rtx);
  1888. #define GEN_SIBCALL_VALUE(A, B, C, D, E) gen_sibcall_value ((A), (B), (C), (D))
  1889. extern rtx gen_sibcall_value (rtx, rtx, rtx, rtx);
  1890. #define GEN_CALL(A, B, C, D) gen_call ((A), (B), (C), (D))
  1891. extern rtx gen_call (rtx, rtx, rtx, rtx);
  1892. #define GEN_CALL_VALUE(A, B, C, D, E) gen_call_value ((A), (B), (C), (D))
  1893. extern rtx gen_call_value (rtx, rtx, rtx, rtx);
  1894. extern rtx gen_untyped_call (rtx, rtx, rtx);
  1895. extern rtx gen_movsicc (rtx, rtx, rtx, rtx);
  1896. extern rtx gen_movdicc (rtx, rtx, rtx, rtx);
  1897. extern rtx gen_movsfcc (rtx, rtx, rtx, rtx);
  1898. extern rtx gen_movdfcc (rtx, rtx, rtx, rtx);
  1899. extern rtx gen_get_thread_pointersi (rtx);
  1900. extern rtx gen_get_thread_pointerdi (rtx);
  1901. extern rtx gen_mips_get_fcsr (rtx);
  1902. extern rtx gen_mips_set_fcsr (rtx);
  1903. extern rtx gen_memory_barrier (void);
  1904. extern rtx gen_sync_compare_and_swapqi (rtx, rtx, rtx, rtx);
  1905. extern rtx gen_sync_compare_and_swaphi (rtx, rtx, rtx, rtx);
  1906. extern rtx gen_sync_addqi (rtx, rtx);
  1907. extern rtx gen_sync_subqi (rtx, rtx);
  1908. extern rtx gen_sync_iorqi (rtx, rtx);
  1909. extern rtx gen_sync_xorqi (rtx, rtx);
  1910. extern rtx gen_sync_andqi (rtx, rtx);
  1911. extern rtx gen_sync_addhi (rtx, rtx);
  1912. extern rtx gen_sync_subhi (rtx, rtx);
  1913. extern rtx gen_sync_iorhi (rtx, rtx);
  1914. extern rtx gen_sync_xorhi (rtx, rtx);
  1915. extern rtx gen_sync_andhi (rtx, rtx);
  1916. extern rtx gen_sync_old_addqi (rtx, rtx, rtx);
  1917. extern rtx gen_sync_old_subqi (rtx, rtx, rtx);
  1918. extern rtx gen_sync_old_iorqi (rtx, rtx, rtx);
  1919. extern rtx gen_sync_old_xorqi (rtx, rtx, rtx);
  1920. extern rtx gen_sync_old_andqi (rtx, rtx, rtx);
  1921. extern rtx gen_sync_old_addhi (rtx, rtx, rtx);
  1922. extern rtx gen_sync_old_subhi (rtx, rtx, rtx);
  1923. extern rtx gen_sync_old_iorhi (rtx, rtx, rtx);
  1924. extern rtx gen_sync_old_xorhi (rtx, rtx, rtx);
  1925. extern rtx gen_sync_old_andhi (rtx, rtx, rtx);
  1926. extern rtx gen_sync_new_addqi (rtx, rtx, rtx);
  1927. extern rtx gen_sync_new_subqi (rtx, rtx, rtx);
  1928. extern rtx gen_sync_new_iorqi (rtx, rtx, rtx);
  1929. extern rtx gen_sync_new_xorqi (rtx, rtx, rtx);
  1930. extern rtx gen_sync_new_andqi (rtx, rtx, rtx);
  1931. extern rtx gen_sync_new_addhi (rtx, rtx, rtx);
  1932. extern rtx gen_sync_new_subhi (rtx, rtx, rtx);
  1933. extern rtx gen_sync_new_iorhi (rtx, rtx, rtx);
  1934. extern rtx gen_sync_new_xorhi (rtx, rtx, rtx);
  1935. extern rtx gen_sync_new_andhi (rtx, rtx, rtx);
  1936. extern rtx gen_sync_nandqi (rtx, rtx);
  1937. extern rtx gen_sync_nandhi (rtx, rtx);
  1938. extern rtx gen_sync_old_nandqi (rtx, rtx, rtx);
  1939. extern rtx gen_sync_old_nandhi (rtx, rtx, rtx);
  1940. extern rtx gen_sync_new_nandqi (rtx, rtx, rtx);
  1941. extern rtx gen_sync_new_nandhi (rtx, rtx, rtx);
  1942. extern rtx gen_sync_lock_test_and_setqi (rtx, rtx, rtx);
  1943. extern rtx gen_sync_lock_test_and_sethi (rtx, rtx, rtx);
  1944. extern rtx gen_atomic_exchangesi (rtx, rtx, rtx, rtx);
  1945. extern rtx gen_atomic_exchangedi (rtx, rtx, rtx, rtx);
  1946. extern rtx gen_atomic_fetch_addsi (rtx, rtx, rtx, rtx);
  1947. extern rtx gen_atomic_fetch_adddi (rtx, rtx, rtx, rtx);
  1948. extern rtx gen_movv2sfcc (rtx, rtx, rtx, rtx);
  1949. extern rtx gen_vec_perm_constv2sf (rtx, rtx, rtx, rtx);
  1950. extern rtx gen_mips_puu_ps (rtx, rtx, rtx);
  1951. extern rtx gen_mips_pul_ps (rtx, rtx, rtx);
  1952. extern rtx gen_mips_plu_ps (rtx, rtx, rtx);
  1953. extern rtx gen_mips_pll_ps (rtx, rtx, rtx);
  1954. extern rtx gen_vec_initv2sf (rtx, rtx);
  1955. extern rtx gen_vec_setv2sf (rtx, rtx, rtx);
  1956. extern rtx gen_mips_cvt_ps_s (rtx, rtx, rtx);
  1957. extern rtx gen_mips_cvt_s_pl (rtx, rtx);
  1958. extern rtx gen_mips_cvt_s_pu (rtx, rtx);
  1959. extern rtx gen_mips_abs_ps (rtx, rtx);
  1960. extern rtx gen_scc_ps (rtx, rtx);
  1961. extern rtx gen_single_cc (rtx, rtx);
  1962. extern rtx gen_vcondv2sfv2sf (rtx, rtx, rtx, rtx, rtx, rtx);
  1963. extern rtx gen_sminv2sf3 (rtx, rtx, rtx);
  1964. extern rtx gen_smaxv2sf3 (rtx, rtx, rtx);
  1965. extern rtx gen_reduc_smin_v2sf (rtx, rtx);
  1966. extern rtx gen_reduc_smax_v2sf (rtx, rtx);
  1967. extern rtx gen_mips_lbux (rtx, rtx, rtx);
  1968. extern rtx gen_mips_lhx (rtx, rtx, rtx);
  1969. extern rtx gen_mips_lwx (rtx, rtx, rtx);
  1970. extern rtx gen_mips_ldx (rtx, rtx, rtx);
  1971. extern rtx gen_mips_madd (rtx, rtx, rtx, rtx);
  1972. extern rtx gen_mips_maddu (rtx, rtx, rtx, rtx);
  1973. extern rtx gen_mips_msub (rtx, rtx, rtx, rtx);
  1974. extern rtx gen_mips_msubu (rtx, rtx, rtx, rtx);
  1975. extern rtx gen_movv2si (rtx, rtx);
  1976. extern rtx gen_movv4hi (rtx, rtx);
  1977. extern rtx gen_movv8qi (rtx, rtx);
  1978. extern rtx gen_vec_initv2si (rtx, rtx);
  1979. extern rtx gen_vec_initv4hi (rtx, rtx);
  1980. extern rtx gen_vec_initv8qi (rtx, rtx);
  1981. extern rtx gen_vec_setv4hi (rtx, rtx, rtx, rtx);
  1982. extern rtx gen_sdot_prodv4hi (rtx, rtx, rtx, rtx);
  1983. extern rtx gen_smaxv2si3 (rtx, rtx, rtx);
  1984. extern rtx gen_smaxv8qi3 (rtx, rtx, rtx);
  1985. extern rtx gen_sminv2si3 (rtx, rtx, rtx);
  1986. extern rtx gen_sminv8qi3 (rtx, rtx, rtx);
  1987. extern rtx gen_vec_perm_constv2si (rtx, rtx, rtx, rtx);
  1988. extern rtx gen_vec_perm_constv4hi (rtx, rtx, rtx, rtx);
  1989. extern rtx gen_vec_perm_constv8qi (rtx, rtx, rtx, rtx);
  1990. extern rtx gen_vec_unpacks_lo_v4hi (rtx, rtx);
  1991. extern rtx gen_vec_unpacks_lo_v8qi (rtx, rtx);
  1992. extern rtx gen_vec_unpacks_hi_v4hi (rtx, rtx);
  1993. extern rtx gen_vec_unpacks_hi_v8qi (rtx, rtx);
  1994. extern rtx gen_vec_unpacku_lo_v4hi (rtx, rtx);
  1995. extern rtx gen_vec_unpacku_lo_v8qi (rtx, rtx);
  1996. extern rtx gen_vec_unpacku_hi_v4hi (rtx, rtx);
  1997. extern rtx gen_vec_unpacku_hi_v8qi (rtx, rtx);
  1998. extern rtx gen_reduc_uplus_v2si (rtx, rtx);
  1999. extern rtx gen_reduc_uplus_v4hi (rtx, rtx);
  2000. extern rtx gen_reduc_splus_v2si (rtx, rtx);
  2001. extern rtx gen_reduc_splus_v4hi (rtx, rtx);
  2002. extern rtx gen_reduc_splus_v8qi (rtx, rtx);
  2003. extern rtx gen_reduc_smax_v2si (rtx, rtx);
  2004. extern rtx gen_reduc_smax_v4hi (rtx, rtx);
  2005. extern rtx gen_reduc_smax_v8qi (rtx, rtx);
  2006. extern rtx gen_reduc_smin_v2si (rtx, rtx);
  2007. extern rtx gen_reduc_smin_v4hi (rtx, rtx);
  2008. extern rtx gen_reduc_smin_v8qi (rtx, rtx);
  2009. extern rtx gen_reduc_umax_v8qi (rtx, rtx);
  2010. extern rtx gen_reduc_umin_v8qi (rtx, rtx);
  2011. #endif /* GCC_INSN_FLAGS_H */