Home | History | Annotate | Download | only in Basic

Lines Matching refs:Case

268     case llvm::Triple::x86:
269 case llvm::Triple::x86_64:
311 case llvm::Triple::x86:
312 case llvm::Triple::x86_64:
315 case llvm::Triple::mips:
316 case llvm::Triple::mipsel:
317 case llvm::Triple::ppc:
318 case llvm::Triple::ppc64:
319 case llvm::Triple::ppc64le:
322 case llvm::Triple::arm:
408 case llvm::Triple::ppc:
409 case llvm::Triple::ppc64:
410 case llvm::Triple::ppc64le:
437 case llvm::Triple::arm:
438 case llvm::Triple::armeb:
439 case llvm::Triple::thumb:
440 case llvm::Triple::thumbeb:
473 case llvm::Triple::x86:
474 case llvm::Triple::x86_64:
475 case llvm::Triple::arm:
476 case llvm::Triple::sparc:
479 case llvm::Triple::mips64:
480 case llvm::Triple::mips64el:
481 case llvm::Triple::ppc:
482 case llvm::Triple::sparcv9:
506 case llvm::Triple::arm:
507 case llvm::Triple::armeb:
508 case llvm::Triple::thumb:
509 case llvm::Triple::thumbeb:
586 case llvm::Triple::x86_64:
791 .Case("generic", true)
792 .Case("440", true)
793 .Case("450", true)
794 .Case("601", true)
795 .Case("602", true)
796 .Case("603", true)
797 .Case("603e", true)
798 .Case("603ev", true)
799 .Case("604", true)
800 .Case("604e", true)
801 .Case("620", true)
802 .Case("630", true)
803 .Case("g3", true)
804 .Case("7400", true)
805 .Case("g4", true)
806 .Case("7450", true)
807 .Case("g4+", true)
808 .Case("750", true)
809 .Case("970", true)
810 .Case("g5", true)
811 .Case("a2", true)
812 .Case("a2q", true)
813 .Case("e500mc", true)
814 .Case("e5500", true)
815 .Case("power3", true)
816 .Case("pwr3", true)
817 .Case("power4", true)
818 .Case("pwr4", true)
819 .Case("power5", true)
820 .Case("pwr5", true)
821 .Case("power5x", true)
822 .Case("pwr5x", true)
823 .Case("power6", true)
824 .Case("pwr6", true)
825 .Case("power6x", true)
826 .Case("pwr6x", true)
827 .Case("power7", true)
828 .Case("pwr7", true)
829 .Case("power8", true)
830 .Case("pwr8", true)
831 .Case("powerpc", true)
832 .Case("ppc", true)
833 .Case("powerpc64", true)
834 .Case("ppc64", true)
835 .Case("powerpc64le", true)
836 .Case("ppc64le", true)
873 case 'O': // Zero
875 case 'b': // Base register
876 case 'f': // Floating point register
882 case 'd': // Floating point register (containing 64-bit value)
883 case 'v': // Altivec vector register
886 case 'w':
888 case 'd':// VSX vector register to hold vector double data
889 case 'f':// VSX vector register to hold vector float data
890 case 's':// VSX vector register to hold scalar float data
891 case 'a':// Any VSX register
892 case 'c':// An individual CR bit
900 case 'h': // `MQ', `CTR', or `LINK' register
901 case 'q': // `MQ' register
902 case 'c': // `CTR' register
903 case 'l': // `LINK' register
904 case 'x': // `CR' register (condition register) number 0
905 case 'y': // `CR' register (condition register)
906 case 'z': // `XER[CA]' carry bit (part of the XER register)
909 case 'I': // Signed 16-bit constant
910 case 'J': // Unsigned 16-bit constant shifted left 16 bits
912 case 'K': // Unsigned 16-bit constant
913 case 'L': // Signed 16-bit constant shifted left 16 bits
914 case 'M': // Constant larger than 31
915 case 'N': // Exact power of 2
916 case 'P': // Constant whose negation is a signed 16-bit constant
917 case 'G': // Floating point constant that can be loaded into a
919 case 'H': // Integer/Floating point constant that can be loaded
922 case 'm': // Memory operand. Note that on PowerPC targets, m can
934 case 'e':
945 case 'Q': // Memory operand that is an offset from a register (it is
947 case 'Z': // Memory operand that is an indexed or indirect from a
953 case 'R': // AIX TOC entry
954 case 'a': // Address operand that is an indexed or indirect from a
956 case 'S': // Constant suitable as a 64-bit mask operand
957 case 'T': // Constant suitable as a 32-bit mask operand
958 case 'U': // System V Release 4 small data area reference
959 case 't': // AND masks that can be performed by two rldic{l, r}
961 case 'W': // Vector constant that does not require memory
962 case
971 case 'e':
972 case 'w':
1108 .Case("440", ArchDefineName)
1109 .Case("450", ArchDefineName | ArchDefine440)
1110 .Case("601", ArchDefineName)
1111 .Case("602", ArchDefineName | ArchDefinePpcgr)
1112 .Case("603", ArchDefineName | ArchDefinePpcgr)
1113 .Case("603e", ArchDefineName | ArchDefine603 | ArchDefinePpcgr)
1114 .Case("603ev", ArchDefineName | ArchDefine603 | ArchDefinePpcgr)
1115 .Case("604", ArchDefineName | ArchDefinePpcgr)
1116 .Case("604e", ArchDefineName | ArchDefine604 | ArchDefinePpcgr)
1117 .Case("620", ArchDefineName | ArchDefinePpcgr)
1118 .Case("630", ArchDefineName | ArchDefinePpcgr)
1119 .Case("7400", ArchDefineName | ArchDefinePpcgr)
1120 .Case("7450", ArchDefineName | ArchDefinePpcgr)
1121 .Case("750", ArchDefineName | ArchDefinePpcgr)
1122 .Case("970", ArchDefineName | ArchDefinePwr4 | ArchDefinePpcgr
1124 .Case("a2", ArchDefineA2)
1125 .Case("a2q", ArchDefineName | ArchDefineA2 | ArchDefineA2q)
1126 .Case("pwr3", ArchDefinePpcgr)
1127 .Case("pwr4", ArchDefineName | ArchDefinePpcgr | ArchDefinePpcsq)
1128 .Case("pwr5", ArchDefineName | ArchDefinePwr4 | ArchDefinePpcgr
1130 .Case("pwr5x", ArchDefineName | ArchDefinePwr5 | ArchDefinePwr4
1132 .Case("pwr6", ArchDefineName | ArchDefinePwr5x | ArchDefinePwr5
1134 .Case("pwr6x", ArchDefineName | ArchDefinePwr6 | ArchDefinePwr5x
1137 .Case("pwr7", ArchDefineName | ArchDefinePwr6x | ArchDefinePwr6
1140 .Case("pwr8", ArchDefineName | ArchDefinePwr7 | ArchDefinePwr6x
1143 .Case("power3", ArchDefinePpcgr)
1144 .Case("power4", ArchDefinePwr4 | ArchDefinePpcgr | ArchDefinePpcsq)
1145 .Case("power5", ArchDefinePwr5 | ArchDefinePwr4 | ArchDefinePpcgr
1147 .Case("power5x", ArchDefinePwr5x | ArchDefinePwr5 | ArchDefinePwr4
1149 .Case("power6", ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5
1151 .Case("power6x", ArchDefinePwr6x | ArchDefinePwr6 | ArchDefinePwr5x
1154 .Case("power7", ArchDefinePwr7 | ArchDefinePwr6x | ArchDefinePwr6
1157 .Case("power8", ArchDefinePwr8 | ArchDefinePwr7 | ArchDefinePwr6x
1234 .Case("7400", true)
1235 .Case("g4", true)
1236 .Case("7450", true)
1237 .Case("g4+", true)
1238 .Case("970", true)
1239 .Case("g5", true)
1240 .Case("pwr6", true)
1241 .Case("pwr7", true)
1242 .Case("pwr8", true)
1243 .Case("ppc64", true)
1244 .Case("ppc64le", true)
1249 .Case("ppc64le", true)
1250 .Case("pwr8", true)
1253 .Case("ppc64le", true)
1254 .Case("pwr8", true)
1257 .Case("ppc64le", true)
1258 .Case("pwr8", true)
1259 .Case("pwr7", true)
1262 .Case("ppc64le", true)
1263 .Case("pwr8", true)
1264 .Case("pwr7", true)
1267 .Case("ppc64le", true)
1268 .Case("pwr8", true)
1274 .Case("powerpc", true)
1275 .Case("vsx", HasVSX)
1276 .Case("power8-vector", HasP8Vector)
1277 .Case("crypto", HasP8Crypto)
1278 .Case("direct-move", HasDirectMove)
1279 .Case("qpx", HasQPX)
1280 .Case("htm", HasHTM)
1281 .Case("bpermd", HasBPERMD)
1282 .Case("extdiv", HasExtDiv)
1395 case llvm::Triple::Linux:
1396 case llvm::Triple::FreeBSD:
1397 case llvm::Triple::NetBSD:
1439 case llvm::Triple::FreeBSD:
1443 case llvm::Triple::NetBSD:
1540 case GK_SM20:
1543 case GK_SM21:
1546 case GK_SM30:
1549 case GK_SM35:
1552 case GK_SM37:
1583 case 'c':
1584 case 'h':
1585 case 'r':
1586 case 'l':
1587 case 'f':
1588 case 'd':
1603 .Case("sm_20", GK_SM20)
1604 .Case("sm_21", GK_SM21)
1605 .Case("sm_30", GK_SM30)
1606 .Case("sm_35", GK_SM35)
1607 .Case("sm_37", GK_SM37)
1720 case 0:
1721 case 3:
1722 case 5:
1764 .Case("r600" , GK_R600)
1765 .Case("rv610", GK_R600)
1766 .Case("rv620", GK_R600)
1767 .Case("rv630", GK_R600)
1768 .Case("rv635", GK_R600)
1769 .Case("rs780", GK_R600)
1770 .Case("rs880", GK_R600)
1771 .Case("rv670", GK_R600_DOUBLE_OPS)
1772 .Case("rv710", GK_R700)
1773 .Case("rv730", GK_R700)
1774 .Case("rv740", GK_R700_DOUBLE_OPS)
1775 .Case("rv770", GK_R700_DOUBLE_OPS)
1776 .Case("palm", GK_EVERGREEN)
1777 .Case("cedar", GK_EVERGREEN)
1778 .Case("sumo", GK_EVERGREEN)
1779 .Case("sumo2", GK_EVERGREEN)
1780 .Case("redwood", GK_EVERGREEN)
1781 .Case("juniper", GK_EVERGREEN)
1782 .Case("hemlock", GK_EVERGREEN_DOUBLE_OPS)
1783 .Case("cypress", GK_EVERGREEN_DOUBLE_OPS)
1784 .Case("barts", GK_NORTHERN_ISLANDS)
1785 .Case("turks", GK_NORTHERN_ISLANDS)
1786 .Case("caicos", GK_NORTHERN_ISLANDS)
1787 .Case("cayman", GK_CAYMAN)
1788 .Case("aruba", GK_CAYMAN)
1789 .Case("tahiti", GK_SOUTHERN_ISLANDS)
1790 .Case("pitcairn", GK_SOUTHERN_ISLANDS)
1791 .Case("verde", GK_SOUTHERN_ISLANDS)
1792 .Case("oland", GK_SOUTHERN_ISLANDS)
1793 .Case("hainan", GK_SOUTHERN_ISLANDS)
1794 .Case("bonaire", GK_SEA_ISLANDS)
1795 .Case("kabini", GK_SEA_ISLANDS)
1796 .Case("kaveri", GK_SEA_ISLANDS)
1797 .Case("hawaii", GK_SEA_ISLANDS)
1798 .Case("mullins", GK_SEA_ISLANDS)
1807 case GK_NONE:
1808 case GK_R600:
1809 case GK_R700:
1810 case GK_EVERGREEN:
1811 case GK_NORTHERN_ISLANDS:
1814 case GK_R600_DOUBLE_OPS:
1815 case GK_R700_DOUBLE_OPS:
1816 case GK_EVERGREEN_DOUBLE_OPS:
1817 case GK_CAYMAN:
1820 case GK_SOUTHERN_ISLANDS:
1821 case GK_SEA_ISLANDS:
2215 .Case("i386", CK_i386)
2216 .Case("i486", CK_i486)
2217 .Case("winchip-c6", CK_WinChipC6)
2218 .Case("winchip2", CK_WinChip2)
2219 .Case("c3", CK_C3)
2220 .Case("i586", CK_i586)
2221 .Case("pentium", CK_Pentium)
2222 .Case("pentium-mmx", CK_PentiumMMX)
2223 .Case("i686", CK_i686)
2224 .Case("pentiumpro", CK_PentiumPro)
2225 .Case("pentium2", CK_Pentium2)
2226 .Case("pentium3", CK_Pentium3)
2227 .Case("pentium3m", CK_Pentium3M)
2228 .Case("pentium-m", CK_PentiumM)
2229 .Case("c3-2", CK_C3_2)
2230 .Case("yonah", CK_Yonah)
2231 .Case("pentium4", CK_Pentium4)
2232 .Case("pentium4m", CK_Pentium4M)
2233 .Case("prescott", CK_Prescott)
2234 .Case("nocona", CK_Nocona)
2235 .Case("core2", CK_Core2)
2236 .Case("penryn", CK_Penryn)
2237 .Case("bonnell", CK_Bonnell)
2238 .Case("atom", CK_Bonnell) // Legacy name.
2239 .Case("silvermont", CK_Silvermont)
2240 .Case("slm", CK_Silvermont) // Legacy name.
2241 .Case("nehalem", CK_Nehalem)
2242 .Case("corei7", CK_Nehalem) // Legacy name.
2243 .Case("westmere", CK_Westmere)
2244 .Case("sandybridge", CK_SandyBridge)
2245 .Case("corei7-avx", CK_SandyBridge) // Legacy name.
2246 .Case("ivybridge", CK_IvyBridge)
2247 .Case("core-avx-i", CK_IvyBridge) // Legacy name.
2248 .Case("haswell", CK_Haswell)
2249 .Case("core-avx2", CK_Haswell) // Legacy name.
2250 .Case("broadwell", CK_Broadwell)
2251 .Case("skylake", CK_Skylake)
2252 .Case("skx", CK_Skylake) // Legacy name.
2253 .Case("knl", CK_KNL)
2254 .Case("k6", CK_K6)
2255 .Case("k6-2", CK_K6_2)
2256 .Case("k6-3", CK_K6_3)
2257 .Case("athlon", CK_Athlon)
2258 .Case("athlon-tbird", CK_AthlonThunderbird)
2259 .Case("athlon-4", CK_Athlon4)
2260 .Case("athlon-xp", CK_AthlonXP)
2261 .Case("athlon-mp", CK_AthlonMP)
2262 .Case("athlon64", CK_Athlon64)
2263 .Case("athlon64-sse3", CK_Athlon64SSE3)
2264 .Case("athlon-fx", CK_AthlonFX)
2265 .Case("k8", CK_K8)
2266 .Case("k8-sse3", CK_K8SSE3)
2267 .Case("opteron", CK_Opteron)
2268 .Case("opteron-sse3", CK_OpteronSSE3)
2269 .Case("barcelona", CK_AMDFAM10)
2270 .Case("amdfam10", CK_AMDFAM10)
2271 .Case("btver1", CK_BTVER1)
2272 .Case("btver2", CK_BTVER2)
2273 .Case("bdver1", CK_BDVER1)
2274 .Case("bdver2", CK_BDVER2)
2275 .Case("bdver3", CK_BDVER3)
2276 .Case("bdver4", CK_BDVER4)
2277 .Case("x86-64", CK_x86_64)
2278 .Case("geode", CK_Geode)
2286 case CK_Generic:
2290 case CK_i386:
2291 case CK_i486:
2292 case CK_WinChipC6:
2293 case CK_WinChip2:
2294 case CK_C3:
2295 case CK_i586:
2296 case CK_Pentium:
2297 case CK_PentiumMMX:
2298 case CK_i686:
2299 case CK_PentiumPro:
2300 case CK_Pentium2:
2301 case CK_Pentium3:
2302 case CK_Pentium3M:
2303 case CK_PentiumM:
2304 case CK_Yonah:
2305 case CK_C3_2:
2306 case CK_Pentium4:
2307 case CK_Pentium4M:
2308 case CK_Prescott:
2309 case CK_K6:
2310 case CK_K6_2:
2311 case CK_K6_3:
2312 case CK_Athlon:
2313 case CK_AthlonThunderbird:
2314 case CK_Athlon4:
2315 case CK_AthlonXP:
2316 case CK_AthlonMP:
2317 case CK_Geode:
2323 case CK_Nocona:
2324 case CK_Core2:
2325 case CK_Penryn:
2326 case CK_Bonnell:
2327 case CK_Silvermont:
2328 case CK_Nehalem:
2329 case CK_Westmere:
2330 case CK_SandyBridge:
2331 case CK_IvyBridge:
2332 case CK_Haswell:
2333 case CK_Broadwell:
2334 case CK_Skylake:
2335 case CK_KNL:
2336 case CK_Athlon64:
2337 case CK_Athlon64SSE3:
2338 case CK_AthlonFX:
2339 case CK_K8:
2340 case CK_K8SSE3:
2341 case CK_Opteron:
2342 case CK_OpteronSSE3:
2343 case CK_AMDFAM10:
2344 case CK_BTVER1:
2345 case CK_BTVER2:
2346 case CK_BDVER1:
2347 case CK_BDVER2:
2348 case CK_BDVER3:
2349 case CK_BDVER4:
2350 case CK_x86_64:
2398 case CK_Generic:
2399 case CK_i386:
2400 case CK_i486:
2401 case CK_i586:
2402 case CK_Pentium:
2403 case CK_i686:
2404 case CK_PentiumPro:
2406 case CK_PentiumMMX:
2407 case CK_Pentium2:
2408 case CK_K6:
2409 case CK_WinChipC6:
2412 case CK_Pentium3:
2413 case CK_Pentium3M:
2414 case CK_C3_2:
2417 case CK_PentiumM:
2418 case CK_Pentium4:
2419 case CK_Pentium4M:
2420 case CK_x86_64:
2423 case CK_Yonah:
2424 case CK_Prescott:
2425 case CK_Nocona:
2429 case CK_Core2:
2430 case CK_Bonnell:
2434 case CK_Penryn:
2438 case CK_Skylake:
2445 case CK_Broadwell:
2449 case CK_Haswell:
2457 case CK_IvyBridge:
2462 case CK_SandyBridge:
2465 case CK_Westmere:
2466 case CK_Silvermont:
2470 case CK_Nehalem:
2474 case CK_KNL:
2493 case CK_K6_2:
2494 case CK_K6_3:
2495 case CK_WinChip2:
2496 case CK_C3:
2499 case CK_Athlon:
2500 case CK_AthlonThunderbird:
2501 case CK_Geode:
2504 case CK_Athlon4:
2505 case CK_AthlonXP:
2506 case CK_AthlonMP:
2510 case CK_K8:
2511 case CK_Opteron:
2512 case CK_Athlon64:
2513 case CK_AthlonFX:
2517 case CK_AMDFAM10:
2522 case CK_K8SSE3:
2523 case CK_OpteronSSE3:
2524 case CK_Athlon64SSE3:
2528 case CK_BTVER2:
2535 case CK_BTVER1:
2543 case CK_BDVER4:
2547 case CK_BDVER3:
2550 case CK_BDVER2:
2556 case CK_BDVER1:
2572 case AVX512F:
2574 case AVX2:
2576 case AVX:
2578 case SSE42:
2580 case SSE41:
2582 case SSSE3:
2584 case SSE3:
2586 case SSE2:
2588 case SSE1:
2590 case NoSSE:
2597 case NoSSE:
2598 case SSE1:
2600 case SSE2:
2603 case SSE3:
2606 case SSSE3:
2608 case SSE41:
2610 case SSE42:
2612 case AVX:
2615 case AVX2:
2617 case AVX512F:
2628 case AMD3DNowAthlon:
2630 case AMD3DNow:
2632 case MMX:
2634 case NoMMX3DNow:
2641 case NoMMX3DNow:
2642 case MMX:
2644 case AMD3DNow:
2646 case AMD3DNowAthlon:
2655 case XOP:
2657 case FMA4:
2660 case SSE4A:
2663 case NoXOP:
2670 case NoXOP:
2671 case SSE4A:
2673 case FMA4:
2675 case XOP:
2865 .Case("avx512f", AVX512F)
2866 .Case("avx2", AVX2)
2867 .Case("avx", AVX)
2868 .Case("sse4.2", SSE42)
2869 .Case("sse4.1", SSE41)
2870 .Case("ssse3", SSSE3)
2871 .Case("sse3", SSE3)
2872 .Case("sse2", SSE2)
2873 .Case("sse", SSE1)
2879 .Case("3dnowa", AMD3DNowAthlon)
2880 .Case("3dnow", AMD3DNow)
2881 .Case("mmx", MMX)
2886 .Case("xop", XOP)
2887 .Case("fma4", FMA4)
2888 .Case("sse4a", SSE4A)
2954 case CK_Generic:
2956 case CK_i386:
2960 case CK_i486:
2961 case CK_WinChipC6:
2962 case CK_WinChip2:
2963 case CK_C3:
2966 case CK_PentiumMMX:
2970 case CK_i586:
2971 case CK_Pentium:
2975 case CK_Pentium3:
2976 case CK_Pentium3M:
2977 case CK_PentiumM:
2980 case CK_Pentium2:
2981 case CK_C3_2:
2984 case CK_PentiumPro:
2988 case CK_i686:
2995 case CK_Pentium4:
2996 case CK_Pentium4M:
2999 case CK_Yonah:
3000 case CK_Prescott:
3001 case CK_Nocona:
3004 case CK_Core2:
3005 case CK_Penryn:
3008 case CK_Bonnell:
3011 case CK_Silvermont:
3014 case CK_Nehalem:
3015 case CK_Westmere:
3016 case CK_SandyBridge:
3017 case CK_IvyBridge:
3018 case CK_Haswell:
3019 case CK_Broadwell:
3025 case CK_Skylake:
3032 case CK_KNL:
3035 case CK_K6_2:
3039 case CK_K6_3:
3040 if (CPU != CK_K6_2) { // In case of fallthrough
3048 case CK_K6:
3051 case CK_Athlon:
3052 case CK_AthlonThunderbird:
3053 case CK_Athlon4:
3054 case CK_AthlonXP:
3055 case CK_AthlonMP:
3062 case CK_K8:
3063 case CK_K8SSE3:
3064 case CK_x86_64:
3065 case CK_Opteron:
3066 case CK_OpteronSSE3:
3067 case CK_Athlon64:
3068 case CK_Athlon64SSE3:
3069 case CK_AthlonFX:
3072 case CK_AMDFAM10:
3075 case CK_BTVER1:
3078 case CK_BTVER2:
3081 case CK_BDVER1:
3084 case CK_BDVER2:
3087 case CK_BDVER3:
3090 case CK_BDVER4:
3093 case CK_Geode:
3146 case XOP:
3148 case FMA4:
3150 case SSE4A:
3152 case NoXOP:
3181 // Each case falls through to the previous one here.
3183 case AVX512F:
3185 case AVX2:
3187 case AVX:
3189 case SSE42:
3191 case SSE41:
3193 case SSSE3:
3195 case SSE3:
3197 case SSE2:
3200 case SSE1:
3203 case NoSSE:
3209 case AVX512F:
3210 case AVX2:
3211 case AVX:
3212 case SSE42:
3213 case SSE41:
3214 case SSSE3:
3215 case SSE3:
3216 case SSE2:
3219 case SSE1:
3227 // Each case falls through to the previous one here.
3229 case AMD3DNowAthlon:
3231 case AMD3DNow:
3233 case MMX:
3235 case NoMMX3DNow:
3250 .Case("aes", HasAES)
3251 .Case("avx", SSELevel >= AVX)
3252 .Case("avx2", SSELevel >= AVX2)
3253 .Case("avx512f", SSELevel >= AVX512F)
3254 .Case("avx512cd", HasAVX512CD)
3255 .Case("avx512er", HasAVX512ER)
3256 .Case("avx512pf", HasAVX512PF)
3257 .Case("avx512dq", HasAVX512DQ)
3258 .Case("avx512bw", HasAVX512BW)
3259 .Case("avx512vl", HasAVX512VL)
3260 .Case("bmi", HasBMI)
3261 .Case("bmi2", HasBMI2)
3262 .Case("cx16", HasCX16)
3263 .Case("f16c", HasF16C)
3264 .Case("fma", HasFMA)
3265 .Case("fma4", XOPLevel >= FMA4)
3266 .Case("fsgsbase", HasFSGSBASE)
3267 .Case("lzcnt", HasLZCNT)
3268 .Case("mm3dnow", MMX3DNowLevel >= AMD3DNow)
3269 .Case("mm3dnowa", MMX3DNowLevel >= AMD3DNowAthlon)
3270 .Case("mmx", MMX3DNowLevel >= MMX)
3271 .Case("pclmul", HasPCLMUL)
3272 .Case("popcnt", HasPOPCNT)
3273 .Case("prfchw", HasPRFCHW)
3274 .Case("rdrnd", HasRDRND)
3275 .Case("rdseed", HasRDSEED)
3276 .Case("rtm", HasRTM)
3277 .Case("sha", HasSHA)
3278 .Case("sse", SSELevel >= SSE1)
3279 .Case("sse2", SSELevel >= SSE2)
3280 .Case("sse3", SSELevel >= SSE3)
3281 .Case("ssse3", SSELevel >= SSSE3)
3282 .Case("sse4.1", SSELevel >= SSE41)
3283 .Case("sse4.2", SSELevel >= SSE42)
3284 .Case("sse4a", XOPLevel >= SSE4A)
3285 .Case("tbm", HasTBM)
3286 .Case("x86", true)
3287 .Case("x86_32", getTriple().getArch() == llvm::Triple::x86)
3288 .Case("x86_64", getTriple().getArch() == llvm::Triple::x86_64)
3289 .Case("xop", XOPLevel >= XOP)
3298 case 'I':
3301 case 'J':
3304 case 'K':
3307 case 'L':
3311 case 'M':
3314 case 'N':
3317 case 'O':
3320 case 'Y': // first letter of a pair:
3323 case '0': // First SSE register.
3324 case 't': // Any SSE register, when SSE2 is enabled.
3325 case 'i': // Any SSE register, when SSE2 and inter-unit moves enabled.
3326 case 'm': // any MMX register, when inter-unit moves enabled.
3329 case 'f': // any x87 floating point stack register.
3336 case 'a': // eax.
3337 case 'b': // ebx.
3338 case 'c': // ecx.
3339 case 'd': // edx.
3340 case 'S': // esi.
3341 case 'D': // edi.
3342 case 'A': // edx:eax.
3343 case 't': // top of floating point stack.
3344 case 'u': // second from top of floating point stack.
3345 case 'q': // Any register accessible as [r]l: a, b, c, and d.
3346 case 'y': // Any MMX register.
3347 case 'x': // Any SSE register.
3348 case 'Q': // Any register accessible as [r]h: a, b, c, and d.
3349 case 'R': // "Legacy" registers: ax, bx, cx, dx, di, si, sp, bp.
3350 case 'l': // "Index" registers: any general register that can be used as an
3354 case 'C': // SSE floating point constant.
3355 case 'G': // x87 floating point constant.
3356 case 'e': // 32-bit signed integer constant for use with zero-extending
3358 case 'Z': // 32-bit unsigned integer constant for use with zero-extending
3384 case 'y':
3386 case 'f':
3387 case 't':
3388 case 'u':
3390 case 'x':
3401 case 'a': return std::string("{ax}");
3402 case 'b': return std::string("{bx}");
3403 case 'c': return std::string("{cx}");
3404 case 'd': return std::string("{dx}");
3405 case 'S': return std::string("{si}");
3406 case 'D': return std::string("{di}");
3407 case 'p': // address
3409 case 't': // top of floating point stack.
3411 case 'u': // second from top of floating point stack.
3455 case 'R':
3456 case 'q':
3457 case 'Q':
3458 case 'a':
3459 case 'b':
3460 case 'c':
3461 case 'd':
3462 case 'S':
3463 case 'D':
3465 case 'A':
3665 case llvm::Triple::x86:
3668 case
3669 case llvm::Triple::mipsel:
3670 case llvm::Triple::ppc:
3671 case llvm::Triple::ppc64:
3672 case llvm::Triple::ppc64le:
3675 case llvm::Triple::arm:
3788 case CC_X86StdCall:
3789 case CC_X86ThisCall:
3790 case CC_X86FastCall:
3792 case CC_C:
3793 case CC_X86VectorCall:
3794 case CC_IntelOclBicc:
3795 case CC_X86_64SysV:
3969 case llvm::Triple::NetBSD:
3972 case llvm::Triple::Win32:
3975 case llvm::Triple::Linux:
4060 case llvm::Triple::NetBSD:
4094 case llvm::Triple::Android:
4095 case llvm::Triple::GNUEABI:
4096 case llvm::Triple::GNUEABIHF:
4099 case llvm::Triple::EABIHF:
4100 case llvm::Triple::EABI:
4103 case llvm::Triple::GNU:
4259 .Case("arm", true)
4260 .Case("softfloat", SoftFloat)
4261 .Case("thumb", IsThumb)
4262 .Case("neon", (FPU & NeonFPU) && !SoftFloat)
4263 .Case("hwdiv", HWDiv & HWDivThumb)
4264 .Case("hwdiv-arm", HWDiv & HWDivARM)
4275 .Case("ep9312", "4T")
4278 .Case("arm926ej-s", "5TEJ")
4281 .Case("arm1136j-s", "6J")
4282 .Case("arm1136jf-s", "6")
4290 .Case("swift", "7S")
4291 .Case("cyclone", "8A")
4492 case 'l': // r0-r7
4493 case 'h': // r8-r15
4494 case 'w': // VFP Floating point register single precision
4495 case 'P': // VFP Floating point register double precision
4498 case 'I':
4499 case 'J':
4500 case 'K':
4501 case 'L':
4502 case 'M':
4505 case 'Q': // A memory address that is a single base register.
4508 case 'U': // a memory reference...
4510 case 'q': // ...ARMV4 ldrsb
4511 case 'v': // ...VFP load/store (reg+constant offset)
4512 case 'y': // ...iWMMXt load/store
4513 case 't': // address valid for load/store opaque types wider
4515 case 'n': // valid address for Neon doubleword vector load/store
4516 case 'm': // valid address for Neon element and structure load/store
4517 case 's': // valid address for non-offset loads/stores of quad-word
4529 case 'U': // Two-character constraint; add "^" hint for later parsing.
4533 case 'p': // 'p' should be translated to 'r' by default.
4555 case 'r': {
4559 case 'q':
4845 .Case("generic", true)
4847 .Case("cyclone", true)
4959 case 'w': // Floating point and SIMD registers (V0-V31)
4962 case 'I': // Constant that can be used with an ADD instruction
4963 case 'J': // Constant that can be used with a SUB instruction
4964 case 'K': // Constant that can be used with a 32-bit logical instruction
4965 case 'L': // Constant that can be used with a 64-bit logical instruction
4966 case 'M': // Constant that can be used as a 32-bit MOV immediate
4967 case 'N': // Constant that can be used as a 64-bit MOV immediate
4968 case 'Y': // Floating point constant zero
4969 case 'Z': // Integer constant zero
4971 case 'Q': // A memory reference with base register and no offset
4974 case 'S': // A symbolic address
4977 case 'U':
4983 case 'z': // Zero register, wzr or xzr
4986 case 'x': // Floating point and SIMD registers (V0-V15)
5003 case 'z':
5004 case 'r': {
5006 case 'x':
5007 case 'w':
5211 .Case("hexagonv4", "4")
5212 .Case("hexagonv5", "5")
5340 .Case("softfloat", SoftFloat)
5341 .Case("sparc", true)
5360 case 'I': // Signed 13-bit constant
5361 case 'J': // Zero
5362 case 'K': // 32-bit constant with the low 12 bits clear
5363 case 'L': // A constant in the range supported by movcc (11-bit signed imm)
5364 case 'M': // A constant in the range supported by movrcc (19-bit signed imm)
5365 case 'N': // Same as 'K' but zext (required for SIMode)
5366 case 'O': // The constant 4096
5484 .Case("v9", true)
5485 .Case("ultrasparc", true)
5486 .Case("ultrasparc3", true)
5487 .Case("niagara", true)
5488 .Case("niagara2", true)
5489 .Case("niagara3", true)
5490 .Case("niagara4", true)
5565 .Case("z10", true)
5566 .Case("z196", true)
5567 .Case("zEC12", true)
5589 .Case("systemz", true)
5590 .Case("htm", HasTransactionalExecution)
5621 case 'a': // Address register
5622 case 'd': // Data register (equivalent to 'r')
5623 case 'f': // Floating-point register
5627 case 'I': // Unsigned 8-bit constant
5628 case 'J': // Unsigned 12-bit constant
5629 case 'K': // Signed 16-bit constant
5630 case 'L': // Signed 20-bit displacement (on all targets we support)
5631 case 'M': // 0x7fffffff
5634 case 'Q': // Memory with base and unsigned 12-bit displacement
5635 case 'R': // Likewise, plus an index
5636 case 'S': // Memory with base and signed 20-bit displacement
5637 case 'T': // Likewise, plus an index
5689 case 'K': // the constant 1
5690 case 'L': // constant -1^20 .. 1^19
5691 case 'M': // constant 1-4:
5843 .Case("mips1", IsMips32)
5844 .Case("mips2", IsMips32)
5845 .Case("mips3", true)
5846 .Case("mips4", true)
5847 .Case("mips5", true)
5848 .Case("mips32", IsMips32)
5849 .Case("mips32r2", IsMips32)
5850 .Case("mips32r3", IsMips32)
5851 .Case("mips32r5", IsMips32)
5852 .Case("mips32r6", IsMips32)
5853 .Case("mips64", true)
5854 .Case("mips64r2", true)
5855 .Case("mips64r3", true)
5856 .Case("mips64r5", true)
5857 .Case("mips64r6", true)
5858 .Case("octeon", true)
5879 case HardFloat:
5882 case SoftFloat:
5906 case DSP1:
5910 case DSP2:
5935 .Case("mips", true)
5936 .Case("fp64", HasFP64)
5978 case 'r': // CPU registers.
5979 case 'd': // Equivalent to "r" unless generating MIPS16 code.
5980 case 'y': // Equivalent to "r", backward compatibility only.
5981 case 'f': // floating-point registers.
5982 case 'c': // $25 for indirect jumps
5983 case 'l': // lo register
5984 case 'x': // hilo register pair
5987 case 'I': // Signed 16-bit constant
5988 case 'J': // Integer 0
5989 case 'K': // Unsigned 16-bit constant
5990 case 'L': // Signed 32-bit constant, lower 16-bit zeros (for lui)
5991 case 'M': // Constants not loadable via lui, addiu, or ori
5992 case 'N': // Constant -1 to -65535
5993 case 'O': // A signed 15-bit constant
5994 case 'P': // A constant between 1 go 65535
5996 case 'R': // An address that can be used in a non-macro load or store
5999 case 'Z':
6012 case 'Z': // Two-character constraint; add "^" hint for later parsing.
6709 case llvm::Triple::xcore:
6712 case llvm::Triple::hexagon:
6715 case llvm::Triple::aarch64:
6720 case llvm::Triple::FreeBSD:
6722 case llvm::Triple::Linux:
6724 case llvm::Triple::NetBSD:
6730 case llvm::Triple::aarch64_be:
6732 case llvm::Triple::FreeBSD:
6734 case llvm::Triple::Linux:
6736 case llvm::Triple::NetBSD:
6742 case llvm::Triple::arm:
6743 case llvm::Triple::thumb:
6748 case llvm::Triple::Linux:
6750 case llvm::Triple::FreeBSD:
6752 case llvm::Triple::NetBSD:
6754 case llvm::Triple::OpenBSD:
6756 case llvm::Triple::Bitrig:
6758 case llvm::Triple::RTEMS:
6760 case llvm::Triple::NaCl:
6762 case llvm::Triple::Win32:
6766 case llvm::Triple::Itanium:
6768 case llvm::Triple::MSVC:
6775 case llvm::Triple::armeb:
6776 case llvm::Triple::thumbeb:
6781 case llvm::Triple::Linux:
6783 case llvm::Triple::FreeBSD:
6785 case llvm::Triple::NetBSD:
6787 case llvm::Triple::OpenBSD:
6789 case llvm::Triple::Bitrig:
6791 case llvm::Triple::RTEMS:
6793 case llvm::Triple::NaCl:
6799 case llvm::Triple::msp430:
6802 case llvm::Triple::mips:
6804 case llvm::Triple::Linux:
6806 case llvm::Triple::RTEMS:
6808 case llvm::Triple::FreeBSD:
6810 case llvm::Triple::NetBSD:
6816 case llvm::Triple::mipsel:
6818 case llvm::Triple::Linux:
6820 case llvm::Triple::RTEMS:
6822 case llvm::Triple::FreeBSD:
6824 case llvm::Triple::NetBSD:
6826 case llvm::Triple::NaCl:
6832 case llvm::Triple::mips64:
6834 case llvm::Triple::Linux:
6836 case llvm::Triple::RTEMS:
6838 case llvm::Triple::FreeBSD:
6840 case llvm::Triple::NetBSD:
6842 case llvm::Triple::OpenBSD:
6848 case llvm::Triple::mips64el:
6850 case llvm::Triple::Linux:
6852 case llvm::Triple::RTEMS:
6854 case llvm::Triple::FreeBSD:
6856 case llvm::Triple::NetBSD:
6858 case llvm::Triple::OpenBSD:
6864 case llvm::Triple::le32:
6866 case llvm::Triple::NaCl:
6872 case llvm::Triple::le64:
6875 case llvm::Triple::ppc:
6879 case llvm::Triple::Linux:
6881 case llvm::Triple::FreeBSD:
6883 case llvm::Triple::NetBSD:
6885 case llvm::Triple::OpenBSD:
6887 case llvm::Triple::RTEMS:
6893 case llvm::Triple::ppc64:
6897 case llvm::Triple::Linux:
6899 case llvm::Triple::Lv2:
6901 case llvm::Triple::FreeBSD:
6903 case llvm::Triple::NetBSD:
6909 case llvm::Triple::ppc64le:
6911 case llvm::Triple::Linux:
6913 case llvm::Triple::NetBSD:
6919 case llvm::Triple::nvptx:
6921 case llvm::Triple::nvptx64:
6924 case llvm::Triple::amdgcn:
6925 case llvm::Triple::r600:
6928 case llvm::Triple::sparc:
6930 case llvm::Triple::Linux:
6932 case llvm::Triple::Solaris:
6934 case llvm::Triple::NetBSD:
6936 case llvm::Triple::OpenBSD:
6938 case llvm::Triple::RTEMS:
6944 case llvm::Triple::sparcv9:
6946 case llvm::Triple::Linux:
6948 case llvm::Triple::Solaris:
6950 case llvm::Triple::NetBSD:
6952 case llvm::Triple::OpenBSD:
6954 case llvm::Triple::FreeBSD:
6960 case llvm::Triple::systemz:
6962 case llvm::Triple::Linux:
6968 case llvm::Triple::tce:
6971 case llvm::Triple::x86:
6976 case llvm::Triple::Linux: {
6980 case llvm::Triple::Android:
6984 case llvm::Triple::DragonFly:
6986 case llvm::Triple::NetBSD:
6988 case llvm::Triple::OpenBSD:
6990 case llvm::Triple::Bitrig:
6992 case llvm::Triple::FreeBSD:
6994 case llvm::Triple::KFreeBSD:
6996 case llvm::Triple::Minix:
6998 case llvm::Triple::Solaris:
7000 case llvm::Triple::Win32: {
7004 case llvm::Triple::Cygnus:
7006 case llvm::Triple::GNU:
7008 case llvm::Triple::Itanium:
7009 case llvm::Triple::MSVC:
7013 case llvm::Triple::Haiku:
7015 case llvm::Triple::RTEMS:
7017 case llvm::Triple::NaCl:
7023 case llvm::Triple::x86_64:
7028 case llvm::Triple::CloudABI:
7030 case llvm::Triple::Linux: {
7034 case llvm::Triple::Android:
7038 case llvm::Triple::DragonFly:
7040 case llvm::Triple::NetBSD:
7042 case llvm::Triple::OpenBSD:
7044 case llvm::Triple::Bitrig:
7046 case llvm::Triple::FreeBSD:
7048 case llvm::Triple::KFreeBSD:
7050 case llvm::Triple::Solaris:
7052 case llvm::Triple::Win32: {
7056 case llvm::Triple::GNU:
7058 case llvm::Triple::MSVC:
7062 case llvm::Triple::NaCl:
7064 case llvm::Triple::PS4:
7070 case llvm::Triple::spir: {
7076 case llvm::Triple::spir64: {