1194179Sed//===--- BuiltinsPPC.def - PowerPC Builtin function database ----*- C++ -*-===// 2194179Sed// 3194179Sed// The LLVM Compiler Infrastructure 4194179Sed// 5194179Sed// This file is distributed under the University of Illinois Open Source 6194179Sed// License. See LICENSE.TXT for details. 7194179Sed// 8194179Sed//===----------------------------------------------------------------------===// 9194179Sed// 10194179Sed// This file defines the PowerPC-specific builtin function database. Users of 11194179Sed// this file must define the BUILTIN macro to make use of this information. 12194179Sed// 13194179Sed//===----------------------------------------------------------------------===// 14194179Sed 15194179Sed// FIXME: this needs to be the full list supported by GCC. Right now, I'm just 16194179Sed// adding stuff on demand. 17194179Sed 18194179Sed// The format of this database matches clang/Basic/Builtins.def. 19194179Sed 20194179Sed// This is just a placeholder, the types and attributes are wrong. 21207619SrdivackyBUILTIN(__builtin_altivec_vaddcuw, "V4UiV4UiV4Ui", "") 22207619Srdivacky 23207619SrdivackyBUILTIN(__builtin_altivec_vaddsbs, "V16ScV16ScV16Sc", "") 24207619SrdivackyBUILTIN(__builtin_altivec_vaddubs, "V16UcV16UcV16Uc", "") 25207619SrdivackyBUILTIN(__builtin_altivec_vaddshs, "V8SsV8SsV8Ss", "") 26207619SrdivackyBUILTIN(__builtin_altivec_vadduhs, "V8UsV8UsV8Us", "") 27207619SrdivackyBUILTIN(__builtin_altivec_vaddsws, "V4SiV4SiV4Si", "") 28207619SrdivackyBUILTIN(__builtin_altivec_vadduws, "V4UiV4UiV4Ui", "") 29207619Srdivacky 30207619SrdivackyBUILTIN(__builtin_altivec_vsubsbs, "V16ScV16ScV16Sc", "") 31207619SrdivackyBUILTIN(__builtin_altivec_vsububs, "V16UcV16UcV16Uc", "") 32207619SrdivackyBUILTIN(__builtin_altivec_vsubshs, "V8SsV8SsV8Ss", "") 33207619SrdivackyBUILTIN(__builtin_altivec_vsubuhs, "V8UsV8UsV8Us", "") 34207619SrdivackyBUILTIN(__builtin_altivec_vsubsws, "V4SiV4SiV4Si", "") 35207619SrdivackyBUILTIN(__builtin_altivec_vsubuws, "V4UiV4UiV4Ui", "") 36207619Srdivacky 37207619SrdivackyBUILTIN(__builtin_altivec_vavgsb, "V16ScV16ScV16Sc", "") 38207619SrdivackyBUILTIN(__builtin_altivec_vavgub, "V16UcV16UcV16Uc", "") 39207619SrdivackyBUILTIN(__builtin_altivec_vavgsh, "V8SsV8SsV8Ss", "") 40207619SrdivackyBUILTIN(__builtin_altivec_vavguh, "V8UsV8UsV8Us", "") 41207619SrdivackyBUILTIN(__builtin_altivec_vavgsw, "V4SiV4SiV4Si", "") 42207619SrdivackyBUILTIN(__builtin_altivec_vavguw, "V4UiV4UiV4Ui", "") 43207619Srdivacky 44210299SedBUILTIN(__builtin_altivec_vrfip, "V4fV4f", "") 45210299Sed 46210299SedBUILTIN(__builtin_altivec_vcfsx, "V4fV4ii", "") 47210299SedBUILTIN(__builtin_altivec_vcfux, "V4fV4ii", "") 48210299SedBUILTIN(__builtin_altivec_vctsxs, "V4SiV4fi", "") 49210299SedBUILTIN(__builtin_altivec_vctuxs, "V4UiV4fi", "") 50210299Sed 51210299SedBUILTIN(__builtin_altivec_dss, "vUi", "") 52210299SedBUILTIN(__builtin_altivec_dssall, "v", "") 53218893SdimBUILTIN(__builtin_altivec_dst, "vvC*iUi", "") 54218893SdimBUILTIN(__builtin_altivec_dstt, "vvC*iUi", "") 55218893SdimBUILTIN(__builtin_altivec_dstst, "vvC*iUi", "") 56218893SdimBUILTIN(__builtin_altivec_dststt, "vvC*iUi", "") 57210299Sed 58210299SedBUILTIN(__builtin_altivec_vexptefp, "V4fV4f", "") 59210299Sed 60210299SedBUILTIN(__builtin_altivec_vrfim, "V4fV4f", "") 61210299Sed 62218893SdimBUILTIN(__builtin_altivec_lvx, "V4iivC*", "") 63218893SdimBUILTIN(__builtin_altivec_lvxl, "V4iivC*", "") 64218893SdimBUILTIN(__builtin_altivec_lvebx, "V16civC*", "") 65218893SdimBUILTIN(__builtin_altivec_lvehx, "V8sivC*", "") 66218893SdimBUILTIN(__builtin_altivec_lvewx, "V4iivC*", "") 67210299Sed 68210299SedBUILTIN(__builtin_altivec_vlogefp, "V4fV4f", "") 69210299Sed 70218893SdimBUILTIN(__builtin_altivec_lvsl, "V16cUcvC*", "") 71218893SdimBUILTIN(__builtin_altivec_lvsr, "V16cUcvC*", "") 72210299Sed 73210299SedBUILTIN(__builtin_altivec_vmaddfp, "V4fV4fV4fV4f", "") 74210299SedBUILTIN(__builtin_altivec_vmhaddshs, "V8sV8sV8sV8s", "") 75210299SedBUILTIN(__builtin_altivec_vmhraddshs, "V8sV8sV8sV8s", "") 76210299Sed 77210299SedBUILTIN(__builtin_altivec_vmsumubm, "V4UiV16UcV16UcV4Ui", "") 78210299SedBUILTIN(__builtin_altivec_vmsummbm, "V4SiV16ScV16UcV4Si", "") 79210299SedBUILTIN(__builtin_altivec_vmsumuhm, "V4UiV8UsV8UsV4Ui", "") 80210299SedBUILTIN(__builtin_altivec_vmsumshm, "V4SiV8SsV8SsV4Si", "") 81210299SedBUILTIN(__builtin_altivec_vmsumuhs, "V4UiV8UsV8UsV4Ui", "") 82210299SedBUILTIN(__builtin_altivec_vmsumshs, "V4SiV8SsV8SsV4Si", "") 83210299Sed 84210299SedBUILTIN(__builtin_altivec_vmuleub, "V8UsV16UcV16Uc", "") 85210299SedBUILTIN(__builtin_altivec_vmulesb, "V8SsV16ScV16Sc", "") 86210299SedBUILTIN(__builtin_altivec_vmuleuh, "V4UiV8UsV8Us", "") 87210299SedBUILTIN(__builtin_altivec_vmulesh, "V4SiV8SsV8Ss", "") 88210299SedBUILTIN(__builtin_altivec_vmuloub, "V8UsV16UcV16Uc", "") 89210299SedBUILTIN(__builtin_altivec_vmulosb, "V8SsV16ScV16Sc", "") 90210299SedBUILTIN(__builtin_altivec_vmulouh, "V4UiV8UsV8Us", "") 91210299SedBUILTIN(__builtin_altivec_vmulosh, "V4SiV8SsV8Ss", "") 92210299Sed 93210299SedBUILTIN(__builtin_altivec_vnmsubfp, "V4fV4fV4fV4f", "") 94210299Sed 95210299SedBUILTIN(__builtin_altivec_vpkpx, "V8sV4UiV4Ui", "") 96210299SedBUILTIN(__builtin_altivec_vpkuhus, "V16UcV8UsV8Us", "") 97210299SedBUILTIN(__builtin_altivec_vpkshss, "V16ScV8SsV8Ss", "") 98210299SedBUILTIN(__builtin_altivec_vpkuwus, "V8UsV4UiV4Ui", "") 99210299SedBUILTIN(__builtin_altivec_vpkswss, "V8SsV4SiV4Si", "") 100210299SedBUILTIN(__builtin_altivec_vpkshus, "V16UcV8SsV8Ss", "") 101210299SedBUILTIN(__builtin_altivec_vpkswus, "V8UsV4SiV4Si", "") 102210299Sed 103210299SedBUILTIN(__builtin_altivec_vperm_4si, "V4iV4iV4iV16Uc", "") 104210299Sed 105207619SrdivackyBUILTIN(__builtin_altivec_stvx, "vV4iiv*", "") 106207619SrdivackyBUILTIN(__builtin_altivec_stvxl, "vV4iiv*", "") 107207619SrdivackyBUILTIN(__builtin_altivec_stvebx, "vV16civ*", "") 108207619SrdivackyBUILTIN(__builtin_altivec_stvehx, "vV8siv*", "") 109207619SrdivackyBUILTIN(__builtin_altivec_stvewx, "vV4iiv*", "") 110207619Srdivacky 111207619SrdivackyBUILTIN(__builtin_altivec_vcmpbfp, "V4iV4fV4f", "") 112207619Srdivacky 113207619SrdivackyBUILTIN(__builtin_altivec_vcmpgefp, "V4iV4fV4f", "") 114207619Srdivacky 115207619SrdivackyBUILTIN(__builtin_altivec_vcmpequb, "V16cV16cV16c", "") 116207619SrdivackyBUILTIN(__builtin_altivec_vcmpequh, "V8sV8sV8s", "") 117207619SrdivackyBUILTIN(__builtin_altivec_vcmpequw, "V4iV4iV4i", "") 118207619SrdivackyBUILTIN(__builtin_altivec_vcmpeqfp, "V4iV4fV4f", "") 119207619Srdivacky 120207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsb, "V16cV16ScV16Sc", "") 121207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtub, "V16cV16UcV16Uc", "") 122207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsh, "V8sV8SsV8Ss", "") 123207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtuh, "V8sV8UsV8Us", "") 124207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsw, "V4iV4SiV4Si", "") 125207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtuw, "V4iV4UiV4Ui", "") 126207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtfp, "V4iV4fV4f", "") 127207619Srdivacky 128207619SrdivackyBUILTIN(__builtin_altivec_vmaxsb, "V16ScV16ScV16Sc", "") 129207619SrdivackyBUILTIN(__builtin_altivec_vmaxub, "V16UcV16UcV16Uc", "") 130207619SrdivackyBUILTIN(__builtin_altivec_vmaxsh, "V8SsV8SsV8Ss", "") 131207619SrdivackyBUILTIN(__builtin_altivec_vmaxuh, "V8UsV8UsV8Us", "") 132207619SrdivackyBUILTIN(__builtin_altivec_vmaxsw, "V4SiV4SiV4Si", "") 133207619SrdivackyBUILTIN(__builtin_altivec_vmaxuw, "V4UiV4UiV4Ui", "") 134207619SrdivackyBUILTIN(__builtin_altivec_vmaxfp, "V4fV4fV4f", "") 135207619Srdivacky 136207619SrdivackyBUILTIN(__builtin_altivec_mfvscr, "V8Us", "") 137207619Srdivacky 138207619SrdivackyBUILTIN(__builtin_altivec_vminsb, "V16ScV16ScV16Sc", "") 139207619SrdivackyBUILTIN(__builtin_altivec_vminub, "V16UcV16UcV16Uc", "") 140207619SrdivackyBUILTIN(__builtin_altivec_vminsh, "V8SsV8SsV8Ss", "") 141207619SrdivackyBUILTIN(__builtin_altivec_vminuh, "V8UsV8UsV8Us", "") 142207619SrdivackyBUILTIN(__builtin_altivec_vminsw, "V4SiV4SiV4Si", "") 143207619SrdivackyBUILTIN(__builtin_altivec_vminuw, "V4UiV4UiV4Ui", "") 144207619SrdivackyBUILTIN(__builtin_altivec_vminfp, "V4fV4fV4f", "") 145207619Srdivacky 146207619SrdivackyBUILTIN(__builtin_altivec_mtvscr, "vV4i", "") 147207619Srdivacky 148210299SedBUILTIN(__builtin_altivec_vrefp, "V4fV4f", "") 149210299Sed 150210299SedBUILTIN(__builtin_altivec_vrlb, "V16cV16cV16Uc", "") 151210299SedBUILTIN(__builtin_altivec_vrlh, "V8sV8sV8Us", "") 152210299SedBUILTIN(__builtin_altivec_vrlw, "V4iV4iV4Ui", "") 153210299Sed 154210299SedBUILTIN(__builtin_altivec_vsel_4si, "V4iV4iV4iV4Ui", "") 155210299Sed 156210299SedBUILTIN(__builtin_altivec_vsl, "V4iV4iV4i", "") 157210299SedBUILTIN(__builtin_altivec_vslo, "V4iV4iV4i", "") 158210299Sed 159210299SedBUILTIN(__builtin_altivec_vsrab, "V16cV16cV16Uc", "") 160210299SedBUILTIN(__builtin_altivec_vsrah, "V8sV8sV8Us", "") 161210299SedBUILTIN(__builtin_altivec_vsraw, "V4iV4iV4Ui", "") 162210299Sed 163210299SedBUILTIN(__builtin_altivec_vsr, "V4iV4iV4i", "") 164210299SedBUILTIN(__builtin_altivec_vsro, "V4iV4iV4i", "") 165210299Sed 166210299SedBUILTIN(__builtin_altivec_vrfin, "V4fV4f", "") 167210299Sed 168210299SedBUILTIN(__builtin_altivec_vrsqrtefp, "V4fV4f", "") 169210299Sed 170210299SedBUILTIN(__builtin_altivec_vsubcuw, "V4UiV4UiV4Ui", "") 171210299Sed 172210299SedBUILTIN(__builtin_altivec_vsum4sbs, "V4SiV16ScV4Si", "") 173210299SedBUILTIN(__builtin_altivec_vsum4ubs, "V4UiV16UcV4Ui", "") 174210299SedBUILTIN(__builtin_altivec_vsum4shs, "V4SiV8SsV4Si", "") 175210299Sed 176210299SedBUILTIN(__builtin_altivec_vsum2sws, "V4SiV4SiV4Si", "") 177210299Sed 178210299SedBUILTIN(__builtin_altivec_vsumsws, "V4SiV4SiV4Si", "") 179210299Sed 180210299SedBUILTIN(__builtin_altivec_vrfiz, "V4fV4f", "") 181210299Sed 182210299SedBUILTIN(__builtin_altivec_vupkhsb, "V8sV16c", "") 183210299SedBUILTIN(__builtin_altivec_vupkhpx, "V4UiV8s", "") 184210299SedBUILTIN(__builtin_altivec_vupkhsh, "V4iV8s", "") 185210299Sed 186210299SedBUILTIN(__builtin_altivec_vupklsb, "V8sV16c", "") 187210299SedBUILTIN(__builtin_altivec_vupklpx, "V4UiV8s", "") 188210299SedBUILTIN(__builtin_altivec_vupklsh, "V4iV8s", "") 189210299Sed 190207619SrdivackyBUILTIN(__builtin_altivec_vcmpbfp_p, "iiV4fV4f", "") 191207619Srdivacky 192207619SrdivackyBUILTIN(__builtin_altivec_vcmpgefp_p, "iiV4fV4f", "") 193207619Srdivacky 194207619SrdivackyBUILTIN(__builtin_altivec_vcmpequb_p, "iiV16cV16c", "") 195207619SrdivackyBUILTIN(__builtin_altivec_vcmpequh_p, "iiV8sV8s", "") 196207619SrdivackyBUILTIN(__builtin_altivec_vcmpequw_p, "iiV4iV4i", "") 197207619SrdivackyBUILTIN(__builtin_altivec_vcmpeqfp_p, "iiV4fV4f", "") 198207619Srdivacky 199207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsb_p, "iiV16ScV16Sc", "") 200207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtub_p, "iiV16UcV16Uc", "") 201207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsh_p, "iiV8SsV8Ss", "") 202207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtuh_p, "iiV8UsV8Us", "") 203207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtsw_p, "iiV4SiV4Si", "") 204207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtuw_p, "iiV4UiV4Ui", "") 205207619SrdivackyBUILTIN(__builtin_altivec_vcmpgtfp_p, "iiV4fV4f", "") 206207619Srdivacky 207194179Sed// FIXME: Obviously incomplete. 208194179Sed 209194179Sed#undef BUILTIN 210