// CodeGen/RuntimeLibcallSignatures.cpp - R.T. Lib. Call Signatures -*- C++ -*--
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
///
/// \file
/// \brief This file contains signature information for runtime libcalls.
///
/// CodeGen uses external symbols, which it refers to by name. The WebAssembly
/// target needs type information for all functions. This file contains a big
/// table providing type signatures for all runtime library functions that LLVM
/// uses.
///
/// This is currently a fairly heavy-handed solution.
///
//===----------------------------------------------------------------------===//

#include "WebAssemblyRuntimeLibcallSignatures.h"
#include "WebAssemblySubtarget.h"
#include "llvm/CodeGen/RuntimeLibcalls.h"

using namespace llvm;

namespace {

enum RuntimeLibcallSignature {
  func,
  f32_func_f32,
  f32_func_f64,
  f32_func_i32,
  f32_func_i64,
  f32_func_i16,
  f64_func_f32,
  f64_func_f64,
  f64_func_i32,
  f64_func_i64,
  i32_func_f32,
  i32_func_f64,
  i32_func_i32,
  i64_func_f32,
  i64_func_f64,
  i64_func_i64,
  f32_func_f32_f32,
  f32_func_f32_i32,
  f32_func_i64_i64,
  f64_func_f64_f64,
  f64_func_f64_i32,
  f64_func_i64_i64,
  i16_func_f32,
  i8_func_i8_i8,
  func_f32_iPTR_iPTR,
  func_f64_iPTR_iPTR,
  i16_func_i16_i16,
  i32_func_f32_f32,
  i32_func_f64_f64,
  i32_func_i32_i32,
  i64_func_i64_i64,
  i64_i64_func_f32,
  i64_i64_func_f64,
  i16_i16_func_i16_i16,
  i32_i32_func_i32_i32,
  i64_i64_func_i64_i64,
  i64_i64_func_i64_i64_i64_i64,
  i64_i64_i64_i64_func_i64_i64_i64_i64,
  i64_i64_func_i64_i64_i32,
  iPTR_func_iPTR_i32_iPTR,
  iPTR_func_iPTR_iPTR_iPTR,
  f32_func_f32_f32_f32,
  f64_func_f64_f64_f64,
  func_i64_i64_iPTR_iPTR,
  func_iPTR_f32,
  func_iPTR_f64,
  func_iPTR_i32,
  func_iPTR_i64,
  func_iPTR_i64_i64,
  func_iPTR_i64_i64_i64_i64,
  func_iPTR_i64_i64_i64_i64_i64_i64,
  i32_func_i64_i64,
  i32_func_i64_i64_i64_i64,
  unsupported
};

} // end anonymous namespace

static const RuntimeLibcallSignature
RuntimeLibcallSignatures[RTLIB::UNKNOWN_LIBCALL] = {
// Integer
/* SHL_I16 */ i16_func_i16_i16,
/* SHL_I32 */ i32_func_i32_i32,
/* SHL_I64 */ i64_func_i64_i64,
/* SHL_I128 */ i64_i64_func_i64_i64_i32,
/* SRL_I16 */ i16_func_i16_i16,
/* SRL_I32 */ i32_func_i32_i32,
/* SRL_I64 */ i64_func_i64_i64,
/* SRL_I128 */ i64_i64_func_i64_i64_i32,
/* SRA_I16 */ i16_func_i16_i16,
/* SRA_I32 */ i32_func_i32_i32,
/* SRA_I64 */ i64_func_i64_i64,
/* SRA_I128 */ i64_i64_func_i64_i64_i32,
/* MUL_I8 */ i8_func_i8_i8,
/* MUL_I16 */ i16_func_i16_i16,
/* MUL_I32 */ i32_func_i32_i32,
/* MUL_I64 */ i64_func_i64_i64,
/* MUL_I128 */ i64_i64_func_i64_i64_i64_i64,
/* MULO_I32 */ i32_func_i32_i32,
/* MULO_I64 */ i64_func_i64_i64,
/* MULO_I128 */ i64_i64_func_i64_i64_i64_i64,
/* SDIV_I8 */ i8_func_i8_i8,
/* SDIV_I16 */ i16_func_i16_i16,
/* SDIV_I32 */ i32_func_i32_i32,
/* SDIV_I64 */ i64_func_i64_i64,
/* SDIV_I128 */ i64_i64_func_i64_i64_i64_i64,
/* UDIV_I8 */ i8_func_i8_i8,
/* UDIV_I16 */ i16_func_i16_i16,
/* UDIV_I32 */ i32_func_i32_i32,
/* UDIV_I64 */ i64_func_i64_i64,
/* UDIV_I128 */ i64_i64_func_i64_i64_i64_i64,
/* SREM_I8 */ i8_func_i8_i8,
/* SREM_I16 */ i16_func_i16_i16,
/* SREM_I32 */ i32_func_i32_i32,
/* SREM_I64 */ i64_func_i64_i64,
/* SREM_I128 */ i64_i64_func_i64_i64_i64_i64,
/* UREM_I8 */ i8_func_i8_i8,
/* UREM_I16 */ i16_func_i16_i16,
/* UREM_I32 */ i32_func_i32_i32,
/* UREM_I64 */ i64_func_i64_i64,
/* UREM_I128 */ i64_i64_func_i64_i64_i64_i64,
/* SDIVREM_I8 */ i8_func_i8_i8,
/* SDIVREM_I16 */ i16_i16_func_i16_i16,
/* SDIVREM_I32 */ i32_i32_func_i32_i32,
/* SDIVREM_I64 */ i64_func_i64_i64,
/* SDIVREM_I128 */ i64_i64_i64_i64_func_i64_i64_i64_i64,
/* UDIVREM_I8 */ i8_func_i8_i8,
/* UDIVREM_I16 */ i16_i16_func_i16_i16,
/* UDIVREM_I32 */ i32_i32_func_i32_i32,
/* UDIVREM_I64 */ i64_i64_func_i64_i64,
/* UDIVREM_I128 */ i64_i64_i64_i64_func_i64_i64_i64_i64,
/* NEG_I32 */ i32_func_i32,
/* NEG_I64 */ i64_func_i64,

// FLOATING POINT
/* ADD_F32 */ f32_func_f32_f32,
/* ADD_F64 */ f64_func_f64_f64,
/* ADD_F80 */ unsupported,
/* ADD_F128 */ func_iPTR_i64_i64_i64_i64,
/* ADD_PPCF128 */ unsupported,
/* SUB_F32 */ f32_func_f32_f32,
/* SUB_F64 */ f64_func_f64_f64,
/* SUB_F80 */ unsupported,
/* SUB_F128 */ func_iPTR_i64_i64_i64_i64,
/* SUB_PPCF128 */ unsupported,
/* MUL_F32 */ f32_func_f32_f32,
/* MUL_F64 */ f64_func_f64_f64,
/* MUL_F80 */ unsupported,
/* MUL_F128 */ func_iPTR_i64_i64_i64_i64,
/* MUL_PPCF128 */ unsupported,
/* DIV_F32 */ f32_func_f32_f32,
/* DIV_F64 */ f64_func_f64_f64,
/* DIV_F80 */ unsupported,
/* DIV_F128 */ func_iPTR_i64_i64_i64_i64,
/* DIV_PPCF128 */ unsupported,
/* REM_F32 */ f32_func_f32_f32,
/* REM_F64 */ f64_func_f64_f64,
/* REM_F80 */ unsupported,
/* REM_F128 */ func_iPTR_i64_i64_i64_i64,
/* REM_PPCF128 */ unsupported,
/* FMA_F32 */ f32_func_f32_f32_f32,
/* FMA_F64 */ f64_func_f64_f64_f64,
/* FMA_F80 */ unsupported,
/* FMA_F128 */ func_iPTR_i64_i64_i64_i64_i64_i64,
/* FMA_PPCF128 */ unsupported,
/* POWI_F32 */ f32_func_f32_i32,
/* POWI_F64 */ f64_func_f64_i32,
/* POWI_F80 */ unsupported,
/* POWI_F128 */ func_iPTR_i64_i64_i64_i64,
/* POWI_PPCF128 */ unsupported,
/* SQRT_F32 */ f32_func_f32,
/* SQRT_F64 */ f64_func_f64,
/* SQRT_F80 */ unsupported,
/* SQRT_F128 */ func_iPTR_i64_i64,
/* SQRT_PPCF128 */ unsupported,
/* LOG_F32 */ f32_func_f32,
/* LOG_F64 */ f64_func_f64,
/* LOG_F80 */ unsupported,
/* LOG_F128 */ func_iPTR_i64_i64,
/* LOG_PPCF128 */ unsupported,
/* LOG2_F32 */ f32_func_f32,
/* LOG2_F64 */ f64_func_f64,
/* LOG2_F80 */ unsupported,
/* LOG2_F128 */ func_iPTR_i64_i64,
/* LOG2_PPCF128 */ unsupported,
/* LOG10_F32 */ f32_func_f32,
/* LOG10_F64 */ f64_func_f64,
/* LOG10_F80 */ unsupported,
/* LOG10_F128 */ func_iPTR_i64_i64,
/* LOG10_PPCF128 */ unsupported,
/* EXP_F32 */ f32_func_f32,
/* EXP_F64 */ f64_func_f64,
/* EXP_F80 */ unsupported,
/* EXP_F128 */ func_iPTR_i64_i64,
/* EXP_PPCF128 */ unsupported,
/* EXP2_F32 */ f32_func_f32,
/* EXP2_F64 */ f64_func_f64,
/* EXP2_F80 */ unsupported,
/* EXP2_F128 */ func_iPTR_i64_i64,
/* EXP2_PPCF128 */ unsupported,
/* SIN_F32 */ f32_func_f32,
/* SIN_F64 */ f64_func_f64,
/* SIN_F80 */ unsupported,
/* SIN_F128 */ func_iPTR_i64_i64,
/* SIN_PPCF128 */ unsupported,
/* COS_F32 */ f32_func_f32,
/* COS_F64 */ f64_func_f64,
/* COS_F80 */ unsupported,
/* COS_F128 */ func_iPTR_i64_i64,
/* COS_PPCF128 */ unsupported,
/* SINCOS_F32 */ func_f32_iPTR_iPTR,
/* SINCOS_F64 */ func_f64_iPTR_iPTR,
/* SINCOS_F80 */ unsupported,
/* SINCOS_F128 */ func_i64_i64_iPTR_iPTR,
/* SINCOS_PPCF128 */ unsupported,
/* POW_F32 */ f32_func_f32_f32,
/* POW_F64 */ f64_func_f64_f64,
/* POW_F80 */ unsupported,
/* POW_F128 */ func_iPTR_i64_i64_i64_i64,
/* POW_PPCF128 */ unsupported,
/* CEIL_F32 */ f32_func_f32,
/* CEIL_F64 */ f64_func_f64,
/* CEIL_F80 */ unsupported,
/* CEIL_F128 */ func_iPTR_i64_i64,
/* CEIL_PPCF128 */ unsupported,
/* TRUNC_F32 */ f32_func_f32,
/* TRUNC_F64 */ f64_func_f64,
/* TRUNC_F80 */ unsupported,
/* TRUNC_F128 */ func_iPTR_i64_i64,
/* TRUNC_PPCF128 */ unsupported,
/* RINT_F32 */ f32_func_f32,
/* RINT_F64 */ f64_func_f64,
/* RINT_F80 */ unsupported,
/* RINT_F128 */ func_iPTR_i64_i64,
/* RINT_PPCF128 */ unsupported,
/* NEARBYINT_F32 */ f32_func_f32,
/* NEARBYINT_F64 */ f64_func_f64,
/* NEARBYINT_F80 */ unsupported,
/* NEARBYINT_F128 */ func_iPTR_i64_i64,
/* NEARBYINT_PPCF128 */ unsupported,
/* ROUND_F32 */ f32_func_f32,
/* ROUND_F64 */ f64_func_f64,
/* ROUND_F80 */ unsupported,
/* ROUND_F128 */ func_iPTR_i64_i64,
/* ROUND_PPCF128 */ unsupported,
/* FLOOR_F32 */ f32_func_f32,
/* FLOOR_F64 */ f64_func_f64,
/* FLOOR_F80 */ unsupported,
/* FLOOR_F128 */ func_iPTR_i64_i64,
/* FLOOR_PPCF128 */ unsupported,
/* COPYSIGN_F32 */ f32_func_f32_f32,
/* COPYSIGN_F64 */ f64_func_f64_f64,
/* COPYSIGN_F80 */ unsupported,
/* COPYSIGN_F128 */ func_iPTR_i64_i64_i64_i64,
/* COPYSIGN_PPCF128 */ unsupported,
/* FMIN_F32 */ f32_func_f32_f32,
/* FMIN_F64 */ f64_func_f64_f64,
/* FMIN_F80 */ unsupported,
/* FMIN_F128 */ func_iPTR_i64_i64_i64_i64,
/* FMIN_PPCF128 */ unsupported,
/* FMAX_F32 */ f32_func_f32_f32,
/* FMAX_F64 */ f64_func_f64_f64,
/* FMAX_F80 */ unsupported,
/* FMAX_F128 */ func_iPTR_i64_i64_i64_i64,
/* FMAX_PPCF128 */ unsupported,

// CONVERSION
/* FPEXT_F32_PPCF128 */ unsupported,
/* FPEXT_F64_PPCF128 */ unsupported,
/* FPEXT_F64_F128 */ func_iPTR_f64,
/* FPEXT_F32_F128 */ func_iPTR_f32,
/* FPEXT_F32_F64 */ f64_func_f32,
/* FPEXT_F16_F32 */ f32_func_i16,
/* FPROUND_F32_F16 */ i16_func_f32,
/* FPROUND_F64_F16 */ unsupported,
/* FPROUND_F80_F16 */ unsupported,
/* FPROUND_F128_F16 */ unsupported,
/* FPROUND_PPCF128_F16 */ unsupported,
/* FPROUND_F64_F32 */ f32_func_f64,
/* FPROUND_F80_F32 */ unsupported,
/* FPROUND_F128_F32 */ f32_func_i64_i64,
/* FPROUND_PPCF128_F32 */ unsupported,
/* FPROUND_F80_F64 */ unsupported,
/* FPROUND_F128_F64 */ f64_func_i64_i64,
/* FPROUND_PPCF128_F64 */ unsupported,
/* FPTOSINT_F32_I32 */ i32_func_f32,
/* FPTOSINT_F32_I64 */ i64_func_f32,
/* FPTOSINT_F32_I128 */ i64_i64_func_f32,
/* FPTOSINT_F64_I32 */ i32_func_f64,
/* FPTOSINT_F64_I64 */ i64_func_f64,
/* FPTOSINT_F64_I128 */ i64_i64_func_f64,
/* FPTOSINT_F80_I32 */ unsupported,
/* FPTOSINT_F80_I64 */ unsupported,
/* FPTOSINT_F80_I128 */ unsupported,
/* FPTOSINT_F128_I32 */ i32_func_i64_i64,
/* FPTOSINT_F128_I64 */ i64_func_i64_i64,
/* FPTOSINT_F128_I128 */ i64_i64_func_i64_i64,
/* FPTOSINT_PPCF128_I32 */ unsupported,
/* FPTOSINT_PPCF128_I64 */ unsupported,
/* FPTOSINT_PPCF128_I128 */ unsupported,
/* FPTOUINT_F32_I32 */ i32_func_f32,
/* FPTOUINT_F32_I64 */ i64_func_f32,
/* FPTOUINT_F32_I128 */ i64_i64_func_f32,
/* FPTOUINT_F64_I32 */ i32_func_f64,
/* FPTOUINT_F64_I64 */ i64_func_f64,
/* FPTOUINT_F64_I128 */ i64_i64_func_f64,
/* FPTOUINT_F80_I32 */ unsupported,
/* FPTOUINT_F80_I64 */ unsupported,
/* FPTOUINT_F80_I128 */ unsupported,
/* FPTOUINT_F128_I32 */ i32_func_i64_i64,
/* FPTOUINT_F128_I64 */ i64_func_i64_i64,
/* FPTOUINT_F128_I128 */ i64_i64_func_i64_i64,
/* FPTOUINT_PPCF128_I32 */ unsupported,
/* FPTOUINT_PPCF128_I64 */ unsupported,
/* FPTOUINT_PPCF128_I128 */ unsupported,
/* SINTTOFP_I32_F32 */ f32_func_i32,
/* SINTTOFP_I32_F64 */ f64_func_i32,
/* SINTTOFP_I32_F80 */ unsupported,
/* SINTTOFP_I32_F128 */ func_iPTR_i32,
/* SINTTOFP_I32_PPCF128 */ unsupported,
/* SINTTOFP_I64_F32 */ f32_func_i64,
/* SINTTOFP_I64_F64 */ f64_func_i64,
/* SINTTOFP_I64_F80 */ unsupported,
/* SINTTOFP_I64_F128 */ func_iPTR_i64,
/* SINTTOFP_I64_PPCF128 */ unsupported,
/* SINTTOFP_I128_F32 */ f32_func_i64_i64,
/* SINTTOFP_I128_F64 */ f64_func_i64_i64,
/* SINTTOFP_I128_F80 */ unsupported,
/* SINTTOFP_I128_F128 */ func_iPTR_i64_i64,
/* SINTTOFP_I128_PPCF128 */ unsupported,
/* UINTTOFP_I32_F32 */ f32_func_i32,
/* UINTTOFP_I32_F64 */ f64_func_i64,
/* UINTTOFP_I32_F80 */ unsupported,
/* UINTTOFP_I32_F128 */ func_iPTR_i32,
/* UINTTOFP_I32_PPCF128 */ unsupported,
/* UINTTOFP_I64_F32 */ f32_func_i64,
/* UINTTOFP_I64_F64 */ f64_func_i64,
/* UINTTOFP_I64_F80 */ unsupported,
/* UINTTOFP_I64_F128 */ func_iPTR_i64,
/* UINTTOFP_I64_PPCF128 */ unsupported,
/* UINTTOFP_I128_F32 */ f32_func_i64_i64,
/* UINTTOFP_I128_F64 */ f64_func_i64_i64,
/* UINTTOFP_I128_F80 */ unsupported,
/* UINTTOFP_I128_F128 */ func_iPTR_i64_i64,
/* UINTTOFP_I128_PPCF128 */ unsupported,

// COMPARISON
/* OEQ_F32 */ i32_func_f32_f32,
/* OEQ_F64 */ i32_func_f64_f64,
/* OEQ_F128 */ i32_func_i64_i64_i64_i64,
/* OEQ_PPCF128 */ unsupported,
/* UNE_F32 */ i32_func_f32_f32,
/* UNE_F64 */ i32_func_f64_f64,
/* UNE_F128 */ i32_func_i64_i64_i64_i64,
/* UNE_PPCF128 */ unsupported,
/* OGE_F32 */ i32_func_f32_f32,
/* OGE_F64 */ i32_func_f64_f64,
/* OGE_F128 */ i32_func_i64_i64_i64_i64,
/* OGE_PPCF128 */ unsupported,
/* OLT_F32 */ i32_func_f32_f32,
/* OLT_F64 */ i32_func_f64_f64,
/* OLT_F128 */ i32_func_i64_i64_i64_i64,
/* OLT_PPCF128 */ unsupported,
/* OLE_F32 */ i32_func_f32_f32,
/* OLE_F64 */ i32_func_f64_f64,
/* OLE_F128 */ i32_func_i64_i64_i64_i64,
/* OLE_PPCF128 */ unsupported,
/* OGT_F32 */ i32_func_f32_f32,
/* OGT_F64 */ i32_func_f64_f64,
/* OGT_F128 */ i32_func_i64_i64_i64_i64,
/* OGT_PPCF128 */ unsupported,
/* UO_F32 */ i32_func_f32_f32,
/* UO_F64 */ i32_func_f64_f64,
/* UO_F128 */ i32_func_i64_i64_i64_i64,
/* UO_PPCF128 */ unsupported,
/* O_F32 */ i32_func_f32_f32,
/* O_F64 */ i32_func_f64_f64,
/* O_F128 */ i32_func_i64_i64_i64_i64,
/* O_PPCF128 */ unsupported,

// MEMORY
/* MEMCPY */ iPTR_func_iPTR_iPTR_iPTR,
/* MEMSET */ iPTR_func_iPTR_i32_iPTR,
/* MEMMOVE */ iPTR_func_iPTR_iPTR_iPTR,

// ELEMENT-WISE ATOMIC MEMORY
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_1 */ unsupported,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_2 */ unsupported,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_4 */ unsupported,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_8 */ unsupported,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_16 */ unsupported,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_1 */ unsupported,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_2 */ unsupported,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_4 */ unsupported,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_8 */ unsupported,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_16 */ unsupported,

/* MEMSET_ELEMENT_UNORDERED_ATOMIC_1 */ unsupported,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_2 */ unsupported,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_4 */ unsupported,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_8 */ unsupported,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_16 */ unsupported,

// EXCEPTION HANDLING
/* UNWIND_RESUME */ unsupported,

// Note: there's two sets of atomics libcalls; see
// <http://llvm.org/docs/Atomics.html> for more info on the
// difference between them.

// Atomic '__sync_*' libcalls.
/* SYNC_VAL_COMPARE_AND_SWAP_1 */ unsupported,
/* SYNC_VAL_COMPARE_AND_SWAP_2 */ unsupported,
/* SYNC_VAL_COMPARE_AND_SWAP_4 */ unsupported,
/* SYNC_VAL_COMPARE_AND_SWAP_8 */ unsupported,
/* SYNC_VAL_COMPARE_AND_SWAP_16 */ unsupported,
/* SYNC_LOCK_TEST_AND_SET_1 */ unsupported,
/* SYNC_LOCK_TEST_AND_SET_2 */ unsupported,
/* SYNC_LOCK_TEST_AND_SET_4 */ unsupported,
/* SYNC_LOCK_TEST_AND_SET_8 */ unsupported,
/* SYNC_LOCK_TEST_AND_SET_16 */ unsupported,
/* SYNC_FETCH_AND_ADD_1 */ unsupported,
/* SYNC_FETCH_AND_ADD_2 */ unsupported,
/* SYNC_FETCH_AND_ADD_4 */ unsupported,
/* SYNC_FETCH_AND_ADD_8 */ unsupported,
/* SYNC_FETCH_AND_ADD_16 */ unsupported,
/* SYNC_FETCH_AND_SUB_1 */ unsupported,
/* SYNC_FETCH_AND_SUB_2 */ unsupported,
/* SYNC_FETCH_AND_SUB_4 */ unsupported,
/* SYNC_FETCH_AND_SUB_8 */ unsupported,
/* SYNC_FETCH_AND_SUB_16 */ unsupported,
/* SYNC_FETCH_AND_AND_1 */ unsupported,
/* SYNC_FETCH_AND_AND_2 */ unsupported,
/* SYNC_FETCH_AND_AND_4 */ unsupported,
/* SYNC_FETCH_AND_AND_8 */ unsupported,
/* SYNC_FETCH_AND_AND_16 */ unsupported,
/* SYNC_FETCH_AND_OR_1 */ unsupported,
/* SYNC_FETCH_AND_OR_2 */ unsupported,
/* SYNC_FETCH_AND_OR_4 */ unsupported,
/* SYNC_FETCH_AND_OR_8 */ unsupported,
/* SYNC_FETCH_AND_OR_16 */ unsupported,
/* SYNC_FETCH_AND_XOR_1 */ unsupported,
/* SYNC_FETCH_AND_XOR_2 */ unsupported,
/* SYNC_FETCH_AND_XOR_4 */ unsupported,
/* SYNC_FETCH_AND_XOR_8 */ unsupported,
/* SYNC_FETCH_AND_XOR_16 */ unsupported,
/* SYNC_FETCH_AND_NAND_1 */ unsupported,
/* SYNC_FETCH_AND_NAND_2 */ unsupported,
/* SYNC_FETCH_AND_NAND_4 */ unsupported,
/* SYNC_FETCH_AND_NAND_8 */ unsupported,
/* SYNC_FETCH_AND_NAND_16 */ unsupported,
/* SYNC_FETCH_AND_MAX_1 */ unsupported,
/* SYNC_FETCH_AND_MAX_2 */ unsupported,
/* SYNC_FETCH_AND_MAX_4 */ unsupported,
/* SYNC_FETCH_AND_MAX_8 */ unsupported,
/* SYNC_FETCH_AND_MAX_16 */ unsupported,
/* SYNC_FETCH_AND_UMAX_1 */ unsupported,
/* SYNC_FETCH_AND_UMAX_2 */ unsupported,
/* SYNC_FETCH_AND_UMAX_4 */ unsupported,
/* SYNC_FETCH_AND_UMAX_8 */ unsupported,
/* SYNC_FETCH_AND_UMAX_16 */ unsupported,
/* SYNC_FETCH_AND_MIN_1 */ unsupported,
/* SYNC_FETCH_AND_MIN_2 */ unsupported,
/* SYNC_FETCH_AND_MIN_4 */ unsupported,
/* SYNC_FETCH_AND_MIN_8 */ unsupported,
/* SYNC_FETCH_AND_MIN_16 */ unsupported,
/* SYNC_FETCH_AND_UMIN_1 */ unsupported,
/* SYNC_FETCH_AND_UMIN_2 */ unsupported,
/* SYNC_FETCH_AND_UMIN_4 */ unsupported,
/* SYNC_FETCH_AND_UMIN_8 */ unsupported,
/* SYNC_FETCH_AND_UMIN_16 */ unsupported,

// Atomic '__atomic_*' libcalls.
/* ATOMIC_LOAD */ unsupported,
/* ATOMIC_LOAD_1 */ unsupported,
/* ATOMIC_LOAD_2 */ unsupported,
/* ATOMIC_LOAD_4 */ unsupported,
/* ATOMIC_LOAD_8 */ unsupported,
/* ATOMIC_LOAD_16 */ unsupported,

/* ATOMIC_STORE */ unsupported,
/* ATOMIC_STORE_1 */ unsupported,
/* ATOMIC_STORE_2 */ unsupported,
/* ATOMIC_STORE_4 */ unsupported,
/* ATOMIC_STORE_8 */ unsupported,
/* ATOMIC_STORE_16 */ unsupported,

/* ATOMIC_EXCHANGE */ unsupported,
/* ATOMIC_EXCHANGE_1 */ unsupported,
/* ATOMIC_EXCHANGE_2 */ unsupported,
/* ATOMIC_EXCHANGE_4 */ unsupported,
/* ATOMIC_EXCHANGE_8 */ unsupported,
/* ATOMIC_EXCHANGE_16 */ unsupported,

/* ATOMIC_COMPARE_EXCHANGE */ unsupported,
/* ATOMIC_COMPARE_EXCHANGE_1 */ unsupported,
/* ATOMIC_COMPARE_EXCHANGE_2 */ unsupported,
/* ATOMIC_COMPARE_EXCHANGE_4 */ unsupported,
/* ATOMIC_COMPARE_EXCHANGE_8 */ unsupported,
/* ATOMIC_COMPARE_EXCHANGE_16 */ unsupported,

/* ATOMIC_FETCH_ADD_1 */ unsupported,
/* ATOMIC_FETCH_ADD_2 */ unsupported,
/* ATOMIC_FETCH_ADD_4 */ unsupported,
/* ATOMIC_FETCH_ADD_8 */ unsupported,
/* ATOMIC_FETCH_ADD_16 */ unsupported,

/* ATOMIC_FETCH_SUB_1 */ unsupported,
/* ATOMIC_FETCH_SUB_2 */ unsupported,
/* ATOMIC_FETCH_SUB_4 */ unsupported,
/* ATOMIC_FETCH_SUB_8 */ unsupported,
/* ATOMIC_FETCH_SUB_16 */ unsupported,

/* ATOMIC_FETCH_AND_1 */ unsupported,
/* ATOMIC_FETCH_AND_2 */ unsupported,
/* ATOMIC_FETCH_AND_4 */ unsupported,
/* ATOMIC_FETCH_AND_8 */ unsupported,
/* ATOMIC_FETCH_AND_16 */ unsupported,

/* ATOMIC_FETCH_OR_1 */ unsupported,
/* ATOMIC_FETCH_OR_2 */ unsupported,
/* ATOMIC_FETCH_OR_4 */ unsupported,
/* ATOMIC_FETCH_OR_8 */ unsupported,
/* ATOMIC_FETCH_OR_16 */ unsupported,

/* ATOMIC_FETCH_XOR_1 */ unsupported,
/* ATOMIC_FETCH_XOR_2 */ unsupported,
/* ATOMIC_FETCH_XOR_4 */ unsupported,
/* ATOMIC_FETCH_XOR_8 */ unsupported,
/* ATOMIC_FETCH_XOR_16 */ unsupported,

/* ATOMIC_FETCH_NAND_1 */ unsupported,
/* ATOMIC_FETCH_NAND_2 */ unsupported,
/* ATOMIC_FETCH_NAND_4 */ unsupported,
/* ATOMIC_FETCH_NAND_8 */ unsupported,
/* ATOMIC_FETCH_NAND_16 */ unsupported,

// Stack Protector Fail.
/* STACKPROTECTOR_CHECK_FAIL */ func,

// Deoptimization.
/* DEOPTIMIZE */ unsupported,

};

static const char *
RuntimeLibcallNames[RTLIB::UNKNOWN_LIBCALL] = {
/* SHL_I16 */ "__ashlhi3",
/* SHL_I32 */ "__ashlsi3",
/* SHL_I64 */ "__ashldi3",
/* SHL_I128 */ "__ashlti3",
/* SRL_I16 */ "__lshrhi3",
/* SRL_I32 */ "__lshrsi3",
/* SRL_I64 */ "__lshrdi3",
/* SRL_I128 */ "__lshrti3",
/* SRA_I16 */ "__ashrhi3",
/* SRA_I32 */ "__ashrsi3",
/* SRA_I64 */ "__ashrdi3",
/* SRA_I128 */ "__ashrti3",
/* MUL_I8 */ "__mulqi3",
/* MUL_I16 */ "__mulhi3",
/* MUL_I32 */ "__mulsi3",
/* MUL_I64 */ "__muldi3",
/* MUL_I128 */ "__multi3",
/* MULO_I32 */ "__mulosi4",
/* MULO_I64 */ "__mulodi4",
/* MULO_I128 */ "__muloti4",
/* SDIV_I8 */ "__divqi3",
/* SDIV_I16 */ "__divhi3",
/* SDIV_I32 */ "__divsi3",
/* SDIV_I64 */ "__divdi3",
/* SDIV_I128 */ "__divti3",
/* UDIV_I8 */ "__udivqi3",
/* UDIV_I16 */ "__udivhi3",
/* UDIV_I32 */ "__udivsi3",
/* UDIV_I64 */ "__udivdi3",
/* UDIV_I128 */ "__udivti3",
/* SREM_I8 */ "__modqi3",
/* SREM_I16 */ "__modhi3",
/* SREM_I32 */ "__modsi3",
/* SREM_I64 */ "__moddi3",
/* SREM_I128 */ "__modti3",
/* UREM_I8 */ "__umodqi3",
/* UREM_I16 */ "__umodhi3",
/* UREM_I32 */ "__umodsi3",
/* UREM_I64 */ "__umoddi3",
/* UREM_I128 */ "__umodti3",
/* SDIVREM_I8 */ nullptr,
/* SDIVREM_I16 */ nullptr,
/* SDIVREM_I32 */ nullptr,
/* SDIVREM_I64 */ nullptr,
/* SDIVREM_I128 */ nullptr,
/* UDIVREM_I8 */ nullptr,
/* UDIVREM_I16 */ nullptr,
/* UDIVREM_I32 */ nullptr,
/* UDIVREM_I64 */ nullptr,
/* UDIVREM_I128 */ nullptr,
/* NEG_I32 */ "__negsi2",
/* NEG_I64 */ "__negdi2",
/* ADD_F32 */ "__addsf3",
/* ADD_F64 */ "__adddf3",
/* ADD_F80 */ nullptr,
/* ADD_F128 */ "__addtf3",
/* ADD_PPCF128 */ nullptr,
/* SUB_F32 */ "__subsf3",
/* SUB_F64 */ "__subdf3",
/* SUB_F80 */ nullptr,
/* SUB_F128 */ "__subtf3",
/* SUB_PPCF128 */ nullptr,
/* MUL_F32 */ "__mulsf3",
/* MUL_F64 */ "__muldf3",
/* MUL_F80 */ nullptr,
/* MUL_F128 */ "__multf3",
/* MUL_PPCF128 */ nullptr,
/* DIV_F32 */ "__divsf3",
/* DIV_F64 */ "__divdf3",
/* DIV_F80 */ nullptr,
/* DIV_F128 */ "__divtf3",
/* DIV_PPCF128 */ nullptr,
/* REM_F32 */ "fmodf",
/* REM_F64 */ "fmod",
/* REM_F80 */ nullptr,
/* REM_F128 */ "fmodl",
/* REM_PPCF128 */ nullptr,
/* FMA_F32 */ "fmaf",
/* FMA_F64 */ "fma",
/* FMA_F80 */ nullptr,
/* FMA_F128 */ "fmal",
/* FMA_PPCF128 */ nullptr,
/* POWI_F32 */ "__powisf2",
/* POWI_F64 */ "__powidf2",
/* POWI_F80 */ nullptr,
/* POWI_F128 */ "__powitf2",
/* POWI_PPCF128 */ nullptr,
/* SQRT_F32 */ "sqrtf",
/* SQRT_F64 */ "sqrt",
/* SQRT_F80 */ nullptr,
/* SQRT_F128 */ "sqrtl",
/* SQRT_PPCF128 */ nullptr,
/* LOG_F32 */ "logf",
/* LOG_F64 */ "log",
/* LOG_F80 */ nullptr,
/* LOG_F128 */ "logl",
/* LOG_PPCF128 */ nullptr,
/* LOG2_F32 */ "log2f",
/* LOG2_F64 */ "log2",
/* LOG2_F80 */ nullptr,
/* LOG2_F128 */ "log2l",
/* LOG2_PPCF128 */ nullptr,
/* LOG10_F32 */ "log10f",
/* LOG10_F64 */ "log10",
/* LOG10_F80 */ nullptr,
/* LOG10_F128 */ "log10l",
/* LOG10_PPCF128 */ nullptr,
/* EXP_F32 */ "expf",
/* EXP_F64 */ "exp",
/* EXP_F80 */ nullptr,
/* EXP_F128 */ "expl",
/* EXP_PPCF128 */ nullptr,
/* EXP2_F32 */ "exp2f",
/* EXP2_F64 */ "exp2",
/* EXP2_F80 */ nullptr,
/* EXP2_F128 */ "exp2l",
/* EXP2_PPCF128 */ nullptr,
/* SIN_F32 */ "sinf",
/* SIN_F64 */ "sin",
/* SIN_F80 */ nullptr,
/* SIN_F128 */ "sinl",
/* SIN_PPCF128 */ nullptr,
/* COS_F32 */ "cosf",
/* COS_F64 */ "cos",
/* COS_F80 */ nullptr,
/* COS_F128 */ "cosl",
/* COS_PPCF128 */ nullptr,
/* SINCOS_F32 */ "sincosf",
/* SINCOS_F64 */ "sincos",
/* SINCOS_F80 */ nullptr,
/* SINCOS_F128 */ "sincosl",
/* SINCOS_PPCF128 */ nullptr,
/* POW_F32 */ "powf",
/* POW_F64 */ "pow",
/* POW_F80 */ nullptr,
/* POW_F128 */ "powl",
/* POW_PPCF128 */ nullptr,
/* CEIL_F32 */ "ceilf",
/* CEIL_F64 */ "ceil",
/* CEIL_F80 */ nullptr,
/* CEIL_F128 */ "ceill",
/* CEIL_PPCF128 */ nullptr,
/* TRUNC_F32 */ "truncf",
/* TRUNC_F64 */ "trunc",
/* TRUNC_F80 */ nullptr,
/* TRUNC_F128 */ "truncl",
/* TRUNC_PPCF128 */ nullptr,
/* RINT_F32 */ "rintf",
/* RINT_F64 */ "rint",
/* RINT_F80 */ nullptr,
/* RINT_F128 */ "rintl",
/* RINT_PPCF128 */ nullptr,
/* NEARBYINT_F32 */ "nearbyintf",
/* NEARBYINT_F64 */ "nearbyint",
/* NEARBYINT_F80 */ nullptr,
/* NEARBYINT_F128 */ "nearbyintl",
/* NEARBYINT_PPCF128 */ nullptr,
/* ROUND_F32 */ "roundf",
/* ROUND_F64 */ "round",
/* ROUND_F80 */ nullptr,
/* ROUND_F128 */ "roundl",
/* ROUND_PPCF128 */ nullptr,
/* FLOOR_F32 */ "floorf",
/* FLOOR_F64 */ "floor",
/* FLOOR_F80 */ nullptr,
/* FLOOR_F128 */ "floorl",
/* FLOOR_PPCF128 */ nullptr,
/* COPYSIGN_F32 */ "copysignf",
/* COPYSIGN_F64 */ "copysign",
/* COPYSIGN_F80 */ nullptr,
/* COPYSIGN_F128 */ "copysignl",
/* COPYSIGN_PPCF128 */ nullptr,
/* FMIN_F32 */ "fminf",
/* FMIN_F64 */ "fmin",
/* FMIN_F80 */ nullptr,
/* FMIN_F128 */ "fminl",
/* FMIN_PPCF128 */ nullptr,
/* FMAX_F32 */ "fmaxf",
/* FMAX_F64 */ "fmax",
/* FMAX_F80 */ nullptr,
/* FMAX_F128 */ "fmaxl",
/* FMAX_PPCF128 */ nullptr,
/* FPEXT_F32_PPCF128 */ nullptr,
/* FPEXT_F64_PPCF128 */ nullptr,
/* FPEXT_F64_F128 */ "__extenddftf2",
/* FPEXT_F32_F128 */ "__extendsftf2",
/* FPEXT_F32_F64 */ "__extendsfdf2",
/* FPEXT_F16_F32 */ "__gnu_h2f_ieee",
/* FPROUND_F32_F16 */ "__gnu_f2h_ieee",
/* FPROUND_F64_F16 */ nullptr,
/* FPROUND_F80_F16 */ nullptr,
/* FPROUND_F128_F16 */ nullptr,
/* FPROUND_PPCF128_F16 */ nullptr,
/* FPROUND_F64_F32 */ "__truncdfsf2",
/* FPROUND_F80_F32 */ "__truncxfsf2",
/* FPROUND_F128_F32 */ "__trunctfsf2",
/* FPROUND_PPCF128_F32 */ nullptr,
/* FPROUND_F80_F64 */ "__truncxfdf2",
/* FPROUND_F128_F64 */ "__trunctfdf2",
/* FPROUND_PPCF128_F64 */ nullptr,
/* FPTOSINT_F32_I32 */ "__fixsfsi",
/* FPTOSINT_F32_I64 */ "__fixsfdi",
/* FPTOSINT_F32_I128 */ "__fixsfti",
/* FPTOSINT_F64_I32 */ "__fixdfsi",
/* FPTOSINT_F64_I64 */ "__fixdfdi",
/* FPTOSINT_F64_I128 */ "__fixdfti",
/* FPTOSINT_F80_I32 */ "__fixxfsi",
/* FPTOSINT_F80_I64 */ "__fixxfdi",
/* FPTOSINT_F80_I128 */ "__fixxfti",
/* FPTOSINT_F128_I32 */ "__fixtfsi",
/* FPTOSINT_F128_I64 */ "__fixtfdi",
/* FPTOSINT_F128_I128 */ "__fixtfti",
/* FPTOSINT_PPCF128_I32 */ nullptr,
/* FPTOSINT_PPCF128_I64 */ nullptr,
/* FPTOSINT_PPCF128_I128 */ nullptr,
/* FPTOUINT_F32_I32 */ "__fixunssfsi",
/* FPTOUINT_F32_I64 */ "__fixunssfdi",
/* FPTOUINT_F32_I128 */ "__fixunssfti",
/* FPTOUINT_F64_I32 */ "__fixunsdfsi",
/* FPTOUINT_F64_I64 */ "__fixunsdfdi",
/* FPTOUINT_F64_I128 */ "__fixunsdfti",
/* FPTOUINT_F80_I32 */ "__fixunsxfsi",
/* FPTOUINT_F80_I64 */ "__fixunsxfdi",
/* FPTOUINT_F80_I128 */ "__fixunsxfti",
/* FPTOUINT_F128_I32 */ "__fixunstfsi",
/* FPTOUINT_F128_I64 */ "__fixunstfdi",
/* FPTOUINT_F128_I128 */ "__fixunstfti",
/* FPTOUINT_PPCF128_I32 */ nullptr,
/* FPTOUINT_PPCF128_I64 */ nullptr,
/* FPTOUINT_PPCF128_I128 */ nullptr,
/* SINTTOFP_I32_F32 */ "__floatsisf",
/* SINTTOFP_I32_F64 */ "__floatsidf",
/* SINTTOFP_I32_F80 */ nullptr,
/* SINTTOFP_I32_F128 */ "__floatsitf",
/* SINTTOFP_I32_PPCF128 */ nullptr,
/* SINTTOFP_I64_F32 */ "__floatdisf",
/* SINTTOFP_I64_F64 */ "__floatdidf",
/* SINTTOFP_I64_F80 */ nullptr,
/* SINTTOFP_I64_F128 */ "__floatditf",
/* SINTTOFP_I64_PPCF128 */ nullptr,
/* SINTTOFP_I128_F32 */ "__floattisf",
/* SINTTOFP_I128_F64 */ "__floattidf",
/* SINTTOFP_I128_F80 */ nullptr,
/* SINTTOFP_I128_F128 */ "__floattitf",
/* SINTTOFP_I128_PPCF128 */ nullptr,
/* UINTTOFP_I32_F32 */ "__floatunsisf",
/* UINTTOFP_I32_F64 */ "__floatunsidf",
/* UINTTOFP_I32_F80 */ nullptr,
/* UINTTOFP_I32_F128 */ "__floatunsitf",
/* UINTTOFP_I32_PPCF128 */ nullptr,
/* UINTTOFP_I64_F32 */ "__floatundisf",
/* UINTTOFP_I64_F64 */ "__floatundidf",
/* UINTTOFP_I64_F80 */ nullptr,
/* UINTTOFP_I64_F128 */ "__floatunditf",
/* UINTTOFP_I64_PPCF128 */ nullptr,
/* UINTTOFP_I128_F32 */ "__floatuntisf",
/* UINTTOFP_I128_F64 */ "__floatuntidf",
/* UINTTOFP_I128_F80 */ nullptr,
/* UINTTOFP_I128_F128 */ "__floatuntitf",
/* UINTTOFP_I128_PPCF128 */ nullptr,
/* OEQ_F32 */ "__eqsf2",
/* OEQ_F64 */ "__eqdf2",
/* OEQ_F128 */ "__eqtf2",
/* OEQ_PPCF128 */ nullptr,
/* UNE_F32 */ "__nesf2",
/* UNE_F64 */ "__nedf2",
/* UNE_F128 */ "__netf2",
/* UNE_PPCF128 */ nullptr,
/* OGE_F32 */ "__gesf2",
/* OGE_F64 */ "__gedf2",
/* OGE_F128 */ "__getf2",
/* OGE_PPCF128 */ nullptr,
/* OLT_F32 */ "__ltsf2",
/* OLT_F64 */ "__ltdf2",
/* OLT_F128 */ "__lttf2",
/* OLT_PPCF128 */ nullptr,
/* OLE_F32 */ "__lesf2",
/* OLE_F64 */ "__ledf2",
/* OLE_F128 */ "__letf2",
/* OLE_PPCF128 */ nullptr,
/* OGT_F32 */ "__gtsf2",
/* OGT_F64 */ "__gtdf2",
/* OGT_F128 */ "__gttf2",
/* OGT_PPCF128 */ nullptr,
/* UO_F32 */ "__unordsf2",
/* UO_F64 */ "__unorddf2",
/* UO_F128 */ "__unordtf2",
/* UO_PPCF128 */ nullptr,
/* O_F32 */ "__unordsf2",
/* O_F64 */ "__unorddf2",
/* O_F128 */ "__unordtf2",
/* O_PPCF128 */ nullptr,
/* MEMCPY */ "memcpy",
/* MEMMOVE */ "memset",
/* MEMSET */ "memmove",
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_1 */ nullptr,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_2 */ nullptr,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_4 */ nullptr,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_8 */ nullptr,
/* MEMCPY_ELEMENT_UNORDERED_ATOMIC_16 */ nullptr,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_1 */ nullptr,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_2 */ nullptr,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_4 */ nullptr,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_8 */ nullptr,
/* MEMMOVE_ELEMENT_UNORDERED_ATOMIC_16 */ nullptr,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_1 */ nullptr,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_2 */ nullptr,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_4 */ nullptr,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_8 */ nullptr,
/* MEMSET_ELEMENT_UNORDERED_ATOMIC_16 */ nullptr,
/* UNWIND_RESUME */ "_Unwind_Resume",
/* SYNC_VAL_COMPARE_AND_SWAP_1 */ "__sync_val_compare_and_swap_1",
/* SYNC_VAL_COMPARE_AND_SWAP_2 */ "__sync_val_compare_and_swap_2",
/* SYNC_VAL_COMPARE_AND_SWAP_4 */ "__sync_val_compare_and_swap_4",
/* SYNC_VAL_COMPARE_AND_SWAP_8 */ "__sync_val_compare_and_swap_8",
/* SYNC_VAL_COMPARE_AND_SWAP_16 */ "__sync_val_compare_and_swap_16",
/* SYNC_LOCK_TEST_AND_SET_1 */ "__sync_lock_test_and_set_1",
/* SYNC_LOCK_TEST_AND_SET_2 */ "__sync_lock_test_and_set_2",
/* SYNC_LOCK_TEST_AND_SET_4 */ "__sync_lock_test_and_set_4",
/* SYNC_LOCK_TEST_AND_SET_8 */ "__sync_lock_test_and_set_8",
/* SYNC_LOCK_TEST_AND_SET_16 */ "__sync_lock_test_and_set_16",
/* SYNC_FETCH_AND_ADD_1 */ "__sync_fetch_and_add_1",
/* SYNC_FETCH_AND_ADD_2 */ "__sync_fetch_and_add_2",
/* SYNC_FETCH_AND_ADD_4 */ "__sync_fetch_and_add_4",
/* SYNC_FETCH_AND_ADD_8 */ "__sync_fetch_and_add_8",
/* SYNC_FETCH_AND_ADD_16 */ "__sync_fetch_and_add_16",
/* SYNC_FETCH_AND_SUB_1 */ "__sync_fetch_and_sub_1",
/* SYNC_FETCH_AND_SUB_2 */ "__sync_fetch_and_sub_2",
/* SYNC_FETCH_AND_SUB_4 */ "__sync_fetch_and_sub_4",
/* SYNC_FETCH_AND_SUB_8 */ "__sync_fetch_and_sub_8",
/* SYNC_FETCH_AND_SUB_16 */ "__sync_fetch_and_sub_16",
/* SYNC_FETCH_AND_AND_1 */ "__sync_fetch_and_and_1",
/* SYNC_FETCH_AND_AND_2 */ "__sync_fetch_and_and_2",
/* SYNC_FETCH_AND_AND_4 */ "__sync_fetch_and_and_4",
/* SYNC_FETCH_AND_AND_8 */ "__sync_fetch_and_and_8",
/* SYNC_FETCH_AND_AND_16 */ "__sync_fetch_and_and_16",
/* SYNC_FETCH_AND_OR_1 */ "__sync_fetch_and_or_1",
/* SYNC_FETCH_AND_OR_2 */ "__sync_fetch_and_or_2",
/* SYNC_FETCH_AND_OR_4 */ "__sync_fetch_and_or_4",
/* SYNC_FETCH_AND_OR_8 */ "__sync_fetch_and_or_8",
/* SYNC_FETCH_AND_OR_16 */ "__sync_fetch_and_or_16",
/* SYNC_FETCH_AND_XOR_1 */ "__sync_fetch_and_xor_1",
/* SYNC_FETCH_AND_XOR_2 */ "__sync_fetch_and_xor_2",
/* SYNC_FETCH_AND_XOR_4 */ "__sync_fetch_and_xor_4",
/* SYNC_FETCH_AND_XOR_8 */ "__sync_fetch_and_xor_8",
/* SYNC_FETCH_AND_XOR_16 */ "__sync_fetch_and_xor_16",
/* SYNC_FETCH_AND_NAND_1 */ "__sync_fetch_and_nand_1",
/* SYNC_FETCH_AND_NAND_2 */ "__sync_fetch_and_nand_2",
/* SYNC_FETCH_AND_NAND_4 */ "__sync_fetch_and_nand_4",
/* SYNC_FETCH_AND_NAND_8 */ "__sync_fetch_and_nand_8",
/* SYNC_FETCH_AND_NAND_16 */ "__sync_fetch_and_nand_16",
/* SYNC_FETCH_AND_MAX_1 */ "__sync_fetch_and_max_1",
/* SYNC_FETCH_AND_MAX_2 */ "__sync_fetch_and_max_2",
/* SYNC_FETCH_AND_MAX_4 */ "__sync_fetch_and_max_4",
/* SYNC_FETCH_AND_MAX_8 */ "__sync_fetch_and_max_8",
/* SYNC_FETCH_AND_MAX_16 */ "__sync_fetch_and_max_16",
/* SYNC_FETCH_AND_UMAX_1 */ "__sync_fetch_and_umax_1",
/* SYNC_FETCH_AND_UMAX_2 */ "__sync_fetch_and_umax_2",
/* SYNC_FETCH_AND_UMAX_4 */ "__sync_fetch_and_umax_4",
/* SYNC_FETCH_AND_UMAX_8 */ "__sync_fetch_and_umax_8",
/* SYNC_FETCH_AND_UMAX_16 */ "__sync_fetch_and_umax_16",
/* SYNC_FETCH_AND_MIN_1 */ "__sync_fetch_and_min_1",
/* SYNC_FETCH_AND_MIN_2 */ "__sync_fetch_and_min_2",
/* SYNC_FETCH_AND_MIN_4 */ "__sync_fetch_and_min_4",
/* SYNC_FETCH_AND_MIN_8 */ "__sync_fetch_and_min_8",
/* SYNC_FETCH_AND_MIN_16 */ "__sync_fetch_and_min_16",
/* SYNC_FETCH_AND_UMIN_1 */ "__sync_fetch_and_umin_1",
/* SYNC_FETCH_AND_UMIN_2 */ "__sync_fetch_and_umin_2",
/* SYNC_FETCH_AND_UMIN_4 */ "__sync_fetch_and_umin_4",
/* SYNC_FETCH_AND_UMIN_8 */ "__sync_fetch_and_umin_8",
/* SYNC_FETCH_AND_UMIN_16 */ "__sync_fetch_and_umin_16",

/* ATOMIC_LOAD */ "__atomic_load",
/* ATOMIC_LOAD_1 */ "__atomic_load_1",
/* ATOMIC_LOAD_2 */ "__atomic_load_2",
/* ATOMIC_LOAD_4 */ "__atomic_load_4",
/* ATOMIC_LOAD_8 */ "__atomic_load_8",
/* ATOMIC_LOAD_16 */ "__atomic_load_16",

/* ATOMIC_STORE */ "__atomic_store",
/* ATOMIC_STORE_1 */ "__atomic_store_1",
/* ATOMIC_STORE_2 */ "__atomic_store_2",
/* ATOMIC_STORE_4 */ "__atomic_store_4",
/* ATOMIC_STORE_8 */ "__atomic_store_8",
/* ATOMIC_STORE_16 */ "__atomic_store_16",

/* ATOMIC_EXCHANGE */ "__atomic_exchange",
/* ATOMIC_EXCHANGE_1 */ "__atomic_exchange_1",
/* ATOMIC_EXCHANGE_2 */ "__atomic_exchange_2",
/* ATOMIC_EXCHANGE_4 */ "__atomic_exchange_4",
/* ATOMIC_EXCHANGE_8 */ "__atomic_exchange_8",
/* ATOMIC_EXCHANGE_16 */ "__atomic_exchange_16",

/* ATOMIC_COMPARE_EXCHANGE */ "__atomic_compare_exchange",
/* ATOMIC_COMPARE_EXCHANGE_1 */ "__atomic_compare_exchange_1",
/* ATOMIC_COMPARE_EXCHANGE_2 */ "__atomic_compare_exchange_2",
/* ATOMIC_COMPARE_EXCHANGE_4 */ "__atomic_compare_exchange_4",
/* ATOMIC_COMPARE_EXCHANGE_8 */ "__atomic_compare_exchange_8",
/* ATOMIC_COMPARE_EXCHANGE_16 */ "__atomic_compare_exchange_16",

/* ATOMIC_FETCH_ADD_1 */ "__atomic_fetch_add_1",
/* ATOMIC_FETCH_ADD_2 */ "__atomic_fetch_add_2",
/* ATOMIC_FETCH_ADD_4 */ "__atomic_fetch_add_4",
/* ATOMIC_FETCH_ADD_8 */ "__atomic_fetch_add_8",
/* ATOMIC_FETCH_ADD_16 */ "__atomic_fetch_add_16",
/* ATOMIC_FETCH_SUB_1 */ "__atomic_fetch_sub_1",
/* ATOMIC_FETCH_SUB_2 */ "__atomic_fetch_sub_2",
/* ATOMIC_FETCH_SUB_4 */ "__atomic_fetch_sub_4",
/* ATOMIC_FETCH_SUB_8 */ "__atomic_fetch_sub_8",
/* ATOMIC_FETCH_SUB_16 */ "__atomic_fetch_sub_16",
/* ATOMIC_FETCH_AND_1 */ "__atomic_fetch_and_1",
/* ATOMIC_FETCH_AND_2 */ "__atomic_fetch_and_2",
/* ATOMIC_FETCH_AND_4 */ "__atomic_fetch_and_4",
/* ATOMIC_FETCH_AND_8 */ "__atomic_fetch_and_8",
/* ATOMIC_FETCH_AND_16 */ "__atomic_fetch_and_16",
/* ATOMIC_FETCH_OR_1 */ "__atomic_fetch_or_1",
/* ATOMIC_FETCH_OR_2 */ "__atomic_fetch_or_2",
/* ATOMIC_FETCH_OR_4 */ "__atomic_fetch_or_4",
/* ATOMIC_FETCH_OR_8 */ "__atomic_fetch_or_8",
/* ATOMIC_FETCH_OR_16 */ "__atomic_fetch_or_16",
/* ATOMIC_FETCH_XOR_1 */ "__atomic_fetch_xor_1",
/* ATOMIC_FETCH_XOR_2 */ "__atomic_fetch_xor_2",
/* ATOMIC_FETCH_XOR_4 */ "__atomic_fetch_xor_4",
/* ATOMIC_FETCH_XOR_8 */ "__atomic_fetch_xor_8",
/* ATOMIC_FETCH_XOR_16 */ "__atomic_fetch_xor_16",
/* ATOMIC_FETCH_NAND_1 */ "__atomic_fetch_nand_1",
/* ATOMIC_FETCH_NAND_2 */ "__atomic_fetch_nand_2",
/* ATOMIC_FETCH_NAND_4 */ "__atomic_fetch_nand_4",
/* ATOMIC_FETCH_NAND_8 */ "__atomic_fetch_nand_8",
/* ATOMIC_FETCH_NAND_16 */ "__atomic_fetch_nand_16",

/* STACKPROTECTOR_CHECK_FAIL */ "__stack_chk_fail",

/* DEOPTIMIZE */ "__llvm_deoptimize",
};

void llvm::GetSignature(const WebAssemblySubtarget &Subtarget,
                        RTLIB::Libcall LC, SmallVectorImpl<wasm::ValType> &Rets,
                        SmallVectorImpl<wasm::ValType> &Params) {
  assert(Rets.empty());
  assert(Params.empty());

  WebAssembly::ExprType iPTR = Subtarget.hasAddr64() ?
                               WebAssembly::ExprType::I64 :
                               WebAssembly::ExprType::I32;

  switch (RuntimeLibcallSignatures[LC]) {
  case func:
    break;
  case f32_func_f32:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    break;
  case f32_func_f64:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F64);
    break;
  case f32_func_i32:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::I32);
    break;
  case f32_func_i64:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::I64);
    break;
  case f32_func_i16:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::I32);
    break;
  case f64_func_f32:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F32);
    break;
  case f64_func_f64:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    break;
  case f64_func_i32:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::I32);
    break;
  case f64_func_i64:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i32_func_f32:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::F32);
    break;
  case i32_func_f64:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::F64);
    break;
  case i32_func_i32:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case i64_func_f32:
    Rets.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::F32);
    break;
  case i64_func_f64:
    Rets.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::F64);
    break;
  case i64_func_i64:
    Rets.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case f32_func_f32_f32:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    break;
  case f32_func_f32_i32:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::I32);
    break;
  case f32_func_i64_i64:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case f64_func_f64_f64:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    break;
  case f64_func_f64_i32:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::I32);
    break;
  case f64_func_i64_i64:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i16_func_f32:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::F32);
    break;
  case i8_func_i8_i8:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case func_f32_iPTR_iPTR:
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    break;
  case func_f64_iPTR_iPTR:
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    break;
  case i16_func_i16_i16:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case i32_func_f32_f32:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    break;
  case i32_func_f64_f64:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    break;
  case i32_func_i32_i32:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case i64_func_i64_i64:
    Rets.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i64_i64_func_f32:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::F32);
    break;
  case i64_i64_func_f64:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::F64);
    break;
  case i16_i16_func_i16_i16:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I32);
    Rets.push_back(wasm::ValType::I32);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case i32_i32_func_i32_i32:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I32);
    Rets.push_back(wasm::ValType::I32);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I32);
    break;
  case i64_i64_func_i64_i64:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i64_i64_func_i64_i64_i64_i64:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i64_i64_i64_i64_func_i64_i64_i64_i64:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i64_i64_func_i64_i64_i32:
#if 0 // TODO: Enable this when wasm gets multiple-return-value support.
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
    Rets.push_back(wasm::ValType::I64);
#else
    Params.push_back(wasm::ValType(iPTR));
#endif
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I32);
    break;
  case iPTR_func_iPTR_i32_iPTR:
    Rets.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType(iPTR));
    break;
  case iPTR_func_iPTR_iPTR_iPTR:
    Rets.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    break;
  case f32_func_f32_f32_f32:
    Rets.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    Params.push_back(wasm::ValType::F32);
    break;
  case f64_func_f64_f64_f64:
    Rets.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    Params.push_back(wasm::ValType::F64);
    break;
  case func_i64_i64_iPTR_iPTR:
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType(iPTR));
    break;
  case func_iPTR_f32:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::F32);
    break;
  case func_iPTR_f64:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::F64);
    break;
  case func_iPTR_i32:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I32);
    break;
  case func_iPTR_i64:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I64);
    break;
  case func_iPTR_i64_i64:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case func_iPTR_i64_i64_i64_i64:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case func_iPTR_i64_i64_i64_i64_i64_i64:
    Params.push_back(wasm::ValType(iPTR));
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i32_func_i64_i64:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case i32_func_i64_i64_i64_i64:
    Rets.push_back(wasm::ValType::I32);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    Params.push_back(wasm::ValType::I64);
    break;
  case unsupported:
    llvm_unreachable("unsupported runtime library signature");
  }
}

void llvm::GetSignature(const WebAssemblySubtarget &Subtarget, const char *Name,
                        SmallVectorImpl<wasm::ValType> &Rets,
                        SmallVectorImpl<wasm::ValType> &Params) {
  assert(strcmp(RuntimeLibcallNames[RTLIB::DEOPTIMIZE], "__llvm_deoptimize") ==
         0);

  for (size_t i = 0, e = RTLIB::UNKNOWN_LIBCALL; i < e; ++i)
    if (RuntimeLibcallNames[i] && strcmp(RuntimeLibcallNames[i], Name) == 0)
      return GetSignature(Subtarget, RTLIB::Libcall(i), Rets, Params);

  llvm_unreachable("unexpected runtime library name");
}
