LCOV - code coverage report
Current view: top level - include/llvm/Support - AArch64TargetParser.def (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 19 19 100.0 %
Date: 2017-09-14 15:23:50 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- AARCH64TargetParser.def - AARCH64 target parsing defines ---------*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This file provides defines to build up the AARCH64 target parser's logic.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : // NOTE: NO INCLUDE GUARD DESIRED!
      15             : 
      16             : #ifndef AARCH64_ARCH
      17             : #define AARCH64_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT)
      18             : #endif
      19             : AARCH64_ARCH("invalid", INVALID, "", "",
      20             :              ARMBuildAttrs::CPUArch::v8_A, FK_NONE, AArch64::AEK_NONE)
      21             : AARCH64_ARCH("armv8-a", ARMV8A, "8-A", "v8", ARMBuildAttrs::CPUArch::v8_A,
      22             :              FK_CRYPTO_NEON_FP_ARMV8,
      23             :              (AArch64::AEK_CRYPTO | AArch64::AEK_FP | AArch64::AEK_SIMD))
      24             : AARCH64_ARCH("armv8.1-a", ARMV8_1A, "8.1-A", "v8.1a",
      25             :              ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
      26             :              (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
      27             :               AArch64::AEK_SIMD | AArch64::AEK_LSE | AArch64::AEK_RDM))
      28             : AARCH64_ARCH("armv8.2-a", ARMV8_2A, "8.2-A", "v8.2a",
      29             :              ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
      30             :              (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
      31             :               AArch64::AEK_SIMD | AArch64::AEK_RAS | AArch64::AEK_LSE |
      32             :               AArch64::AEK_RDM))
      33             : AARCH64_ARCH("armv8.3-a", ARMV8_3A, "8.3-A", "v8.3a",
      34             :              ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
      35             :              (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
      36             :               AArch64::AEK_SIMD | AArch64::AEK_RAS | AArch64::AEK_LSE |
      37             :               AArch64::AEK_RDM | AArch64::AEK_RCPC))
      38             : #undef AARCH64_ARCH
      39             : 
      40             : #ifndef AARCH64_ARCH_EXT_NAME
      41             : #define AARCH64_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE)
      42             : #endif
      43             : // FIXME: This would be nicer were it tablegen
      44             : AARCH64_ARCH_EXT_NAME("invalid",  AArch64::AEK_INVALID,  nullptr,  nullptr)
      45             : AARCH64_ARCH_EXT_NAME("none",     AArch64::AEK_NONE,     nullptr,  nullptr)
      46             : AARCH64_ARCH_EXT_NAME("crc",      AArch64::AEK_CRC,      "+crc",   "-crc")
      47             : AARCH64_ARCH_EXT_NAME("lse",      AArch64::AEK_LSE,      "+lse",   "-lse")
      48             : AARCH64_ARCH_EXT_NAME("rdm",      AArch64::AEK_RDM,      "+rdm",   "-rdm")
      49             : AARCH64_ARCH_EXT_NAME("crypto",   AArch64::AEK_CRYPTO,   "+crypto","-crypto")
      50             : AARCH64_ARCH_EXT_NAME("dotprod",  AArch64::AEK_DOTPROD,  "+dotprod","-dotprod")
      51             : AARCH64_ARCH_EXT_NAME("fp",       AArch64::AEK_FP,       "+fp-armv8",  "-fp-armv8")
      52             : AARCH64_ARCH_EXT_NAME("simd",     AArch64::AEK_SIMD,     "+neon",  "-neon")
      53             : AARCH64_ARCH_EXT_NAME("fp16",     AArch64::AEK_FP16,     "+fullfp16",  "-fullfp16")
      54             : AARCH64_ARCH_EXT_NAME("profile",  AArch64::AEK_PROFILE,  "+spe",  "-spe")
      55             : AARCH64_ARCH_EXT_NAME("ras",      AArch64::AEK_RAS,      "+ras",  "-ras")
      56             : AARCH64_ARCH_EXT_NAME("sve",      AArch64::AEK_SVE,      "+sve",  "-sve")
      57             : AARCH64_ARCH_EXT_NAME("rcpc",     AArch64::AEK_RCPC,     "+rcpc", "-rcpc")
      58             : #undef AARCH64_ARCH_EXT_NAME
      59             : 
      60             : #ifndef AARCH64_CPU_NAME
      61             : #define AARCH64_CPU_NAME(NAME, ID, DEFAULT_FPU, IS_DEFAULT, DEFAULT_EXT)
      62             : #endif
      63        1071 : AARCH64_CPU_NAME("cortex-a35", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      64             :                 (AArch64::AEK_CRC))
      65        1071 : AARCH64_CPU_NAME("cortex-a53", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, true,
      66             :                 (AArch64::AEK_CRC))
      67        1071 : AARCH64_CPU_NAME("cortex-a55", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false,
      68             :                  (AArch64::AEK_FP16 | AArch64::AEK_DOTPROD | AArch64::AEK_RCPC))
      69        1071 : AARCH64_CPU_NAME("cortex-a57", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      70             :                 (AArch64::AEK_CRC))
      71        1071 : AARCH64_CPU_NAME("cortex-a72", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      72             :                 (AArch64::AEK_CRC))
      73        1071 : AARCH64_CPU_NAME("cortex-a73", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      74             :                 (AArch64::AEK_CRC))
      75        1071 : AARCH64_CPU_NAME("cortex-a75", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false,
      76             :                  (AArch64::AEK_FP16 | AArch64::AEK_DOTPROD | AArch64::AEK_RCPC))
      77        1071 : AARCH64_CPU_NAME("cyclone", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      78             :                 (AArch64::AEK_NONE))
      79        1071 : AARCH64_CPU_NAME("exynos-m1", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      80             :                 (AArch64::AEK_CRC))
      81        1071 : AARCH64_CPU_NAME("exynos-m2", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      82             :                 (AArch64::AEK_CRC))
      83        1071 : AARCH64_CPU_NAME("exynos-m3", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      84             :                 (AArch64::AEK_CRC))
      85        1071 : AARCH64_CPU_NAME("falkor", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      86             :                 (AArch64::AEK_CRC | AArch64::AEK_RDM))
      87        1071 : AARCH64_CPU_NAME("kryo", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      88             :                 (AArch64::AEK_CRC))
      89        1071 : AARCH64_CPU_NAME("thunderx2t99", ARMV8_1A, FK_CRYPTO_NEON_FP_ARMV8, false,
      90             :                 (AArch64::AEK_NONE))
      91        1071 : AARCH64_CPU_NAME("thunderx", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      92             :                 (AArch64::AEK_CRC | AArch64::AEK_PROFILE))
      93        1071 : AARCH64_CPU_NAME("thunderxt88", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      94             :                 (AArch64::AEK_CRC | AArch64::AEK_PROFILE))
      95        1071 : AARCH64_CPU_NAME("thunderxt81", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      96             :                 (AArch64::AEK_CRC | AArch64::AEK_PROFILE))
      97        1071 : AARCH64_CPU_NAME("thunderxt83", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
      98             :                 (AArch64::AEK_CRC | AArch64::AEK_PROFILE))
      99             : // Invalid CPU
     100        1071 : AARCH64_CPU_NAME("invalid", INVALID, FK_INVALID, true, AArch64::AEK_INVALID)
     101             : #undef AARCH64_CPU_NAME

Generated by: LCOV version 1.13