/*===---- module.modulemap - intrinsics module map -------------------------===
 *
 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 * See https://llvm.org/LICENSE.txt for license information.
 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 *
 *===-----------------------------------------------------------------------===
 */

module _Builtin_intrinsics [system] [extern_c] {
  explicit module altivec {
    requires altivec
    header "altivec.h"
  }

  explicit module arm {
    requires arm

    explicit module acle {
      header "arm_acle.h"
      export *
    }

    explicit module neon {
      requires neon
      header "arm_neon.h"
      header "arm_fp16.h"
      export *
    }

    explicit module sve {
      requires sve
      header "arm_sve.h"
      export *
    }
  }

  explicit module intel {
    requires x86
    export *

    header "immintrin.h"
    textual header "f16cintrin.h"
    textual header "avxintrin.h"
    textual header "avx2intrin.h"
    textual header "avx512fintrin.h"
    textual header "avx512erintrin.h"
    textual header "fmaintrin.h"

    header "x86intrin.h"
    textual header "bmiintrin.h"
    textual header "bmi2intrin.h"
    textual header "lzcntintrin.h"
    textual header "xopintrin.h"
    textual header "fma4intrin.h"
    textual header "mwaitxintrin.h"
    textual header "clzerointrin.h"
    textual header "wbnoinvdintrin.h"
    textual header "cldemoteintrin.h"
    textual header "waitpkgintrin.h"
    textual header "movdirintrin.h"
    textual header "pconfigintrin.h"
    textual header "sgxintrin.h"
    textual header "ptwriteintrin.h"
    textual header "invpcidintrin.h"

    textual header "__wmmintrin_aes.h"
    textual header "__wmmintrin_pclmul.h"

    explicit module mm_malloc {
      requires !freestanding
      header "mm_malloc.h"
      export * // note: for <stdlib.h> dependency
    }

    explicit module cpuid {
      requires gnuinlineasm
      header "cpuid.h"
    }

    explicit module mmx {
      header "mmintrin.h"
    }

    explicit module sse {
      export mm_malloc
      export mmx
      export sse2 // note: for hackish <emmintrin.h> dependency
      header "xmmintrin.h"
    }

    explicit module sse2 {
      export sse
      header "emmintrin.h"
    }

    explicit module sse3 {
      export sse2
      header "pmmintrin.h"
    }

    explicit module ssse3 {
      export sse3
      header "tmmintrin.h"
    }

    explicit module sse4_1 {
      export ssse3
      header "smmintrin.h"
    }

    explicit module sse4_2 {
      export sse4_1
      header "nmmintrin.h"
    }

    explicit module sse4a {
      export sse3
      header "ammintrin.h"
    }

    explicit module popcnt {
      header "popcntintrin.h"
    }

    explicit module mm3dnow {
      header "mm3dnow.h"
    }

    explicit module aes_pclmul {
      header "wmmintrin.h"
      export aes
      export pclmul
    }
  }

  explicit module systemz {
    requires systemz
    export *

    header "s390intrin.h"

    explicit module htm {
      requires htm
      header "htmintrin.h"
      header "htmxlintrin.h"
    }

    explicit module zvector {
      requires zvector, vx
      header "vecintrin.h"
    }
  }
}

module _Builtin_stddef_max_align_t [system] [extern_c] {
  header "__stddef_max_align_t.h"
}

module opencl_c {
  requires opencl
  header "opencl-c.h"
  header "opencl-c-base.h"
}
