chromium/third_party/xnnpack/src/src/configs/binary-elementwise-config.c

// Copyright 2022 Google LLC
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.

#include <assert.h>
#include <stddef.h>

#ifdef _WIN32
  #include <windows.h>
#else
  #include <pthread.h>
#endif

#include "xnnpack/common.h"
#include "xnnpack/config.h"
#include "xnnpack/microfnptr.h"
#include "xnnpack/microparams-init.h"
#include "xnnpack/vbinary.h"

static struct xnn_binary_elementwise_config f16_vadd_config =;
static struct xnn_binary_elementwise_config f16_vdiv_config =;
static struct xnn_binary_elementwise_config f16_vmax_config =;
static struct xnn_binary_elementwise_config f16_vmin_config =;
static struct xnn_binary_elementwise_config f16_vmul_config =;
static struct xnn_binary_elementwise_config f16_vsub_config =;
static struct xnn_binary_elementwise_config f16_vsqrdiff_config =;

static struct xnn_binary_elementwise_config f32_vadd_config =;
static struct xnn_binary_elementwise_config f32_vcopysign_config =;
static struct xnn_binary_elementwise_config f32_vdiv_config =;
static struct xnn_binary_elementwise_config f32_vmax_config =;
static struct xnn_binary_elementwise_config f32_vmin_config =;
static struct xnn_binary_elementwise_config f32_vmul_config =;
static struct xnn_binary_elementwise_config f32_vsub_config =;
static struct xnn_binary_elementwise_config f32_vsqrdiff_config =;


static struct xnn_binary_elementwise_config s32_vmul_config =;

static struct xnn_binary_elementwise_config qs8_vadd_config =;
static struct xnn_binary_elementwise_config qs8_vmul_config =;

static struct xnn_binary_elementwise_config qu8_vadd_config =;
static struct xnn_binary_elementwise_config qu8_vmul_config =;

#if XNN_PLATFORM_WINDOWS
  static INIT_ONCE init_guard_f16_vadd = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vdiv = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vmax = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vmin = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vmul = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vsub = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f16_vsqrdiff = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vadd = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vcopysign = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vdiv = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vmax = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vmin = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vmul = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vsub = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_f32_vsqrdiff = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_s32_vmul = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_qs8_vadd = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_qs8_vmul = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_qu8_vadd = INIT_ONCE_STATIC_INIT;
  static INIT_ONCE init_guard_qu8_vmul = INIT_ONCE_STATIC_INIT;
#else
  static pthread_once_t init_guard_f16_vadd =;
  static pthread_once_t init_guard_f16_vdiv =;
  static pthread_once_t init_guard_f16_vmax =;
  static pthread_once_t init_guard_f16_vmin =;
  static pthread_once_t init_guard_f16_vmul =;
  static pthread_once_t init_guard_f16_vsub =;
  static pthread_once_t init_guard_f16_vsqrdiff =;
  static pthread_once_t init_guard_f32_vadd =;
  static pthread_once_t init_guard_f32_vcopysign =;
  static pthread_once_t init_guard_f32_vdiv =;
  static pthread_once_t init_guard_f32_vmax =;
  static pthread_once_t init_guard_f32_vmin =;
  static pthread_once_t init_guard_f32_vmul =;
  static pthread_once_t init_guard_f32_vsub =;
  static pthread_once_t init_guard_f32_vsqrdiff =;
  static pthread_once_t init_guard_s32_vmul =;
  static pthread_once_t init_guard_qs8_vadd =;
  static pthread_once_t init_guard_qs8_vmul =;
  static pthread_once_t init_guard_qu8_vadd =;
  static pthread_once_t init_guard_qu8_vmul =;
#endif


static void init_f16_vadd_config(void) {}

static void init_f16_vdiv_config(void) {}

static void init_f16_vmax_config(void) {}

static void init_f16_vmin_config(void) {}

static void init_f16_vmul_config(void) {}

static void init_f16_vsub_config(void) {}

static void init_f16_vsqrdiff_config(void) {}

static void init_f32_vadd_config(void) {}

static void init_f32_vcopysign_config(void) {}


static void init_s32_vmul_config(void) {}

static void init_f32_vdiv_config(void) {}

static void init_f32_vmax_config(void) {}

static void init_f32_vmin_config(void) {}

static void init_f32_vmul_config(void) {}

static void init_f32_vsub_config(void) {}

static void init_f32_vsqrdiff_config(void) {}

static void init_qs8_vadd_config(void) {}

static void init_qs8_vmul_config(void) {}

static void init_qu8_vadd_config(void) {}

static void init_qu8_vmul_config(void) {}

#if XNN_PLATFORM_WINDOWS
  static BOOL CALLBACK init_f16_vadd_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vadd_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vdiv_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vdiv_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vmax_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vmax_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vmin_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vmin_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vmul_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vmul_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vsub_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vsub_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f16_vsqrdiff_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f16_vsqrdiff_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vadd_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vadd_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vcopysign_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vcopysign_config();
    return TRUE;
  }

  static BOOL CALLBACK init_s32_vmul_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_s32_vmul_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vdiv_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vdiv_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vmax_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vmax_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vmin_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vmin_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vmul_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vmul_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vsub_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vsub_config();
    return TRUE;
  }

  static BOOL CALLBACK init_f32_vsqrdiff_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_f32_vsqrdiff_config();
    return TRUE;
  }

  static BOOL CALLBACK init_qs8_vadd_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_qs8_vadd_config();
    return TRUE;
  }

  static BOOL CALLBACK init_qs8_vmul_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_qs8_vmul_config();
    return TRUE;
  }

  static BOOL CALLBACK init_qu8_vadd_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_qu8_vadd_config();
    return TRUE;
  }

  static BOOL CALLBACK init_qu8_vmul_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
    init_qu8_vmul_config();
    return TRUE;
  }
#endif

const struct xnn_binary_elementwise_config* xnn_init_f16_vadd_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vdiv_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vmax_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vmin_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vmul_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vsub_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f16_vsqrdiff_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vadd_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vcopysign_config() {}

const struct xnn_binary_elementwise_config* xnn_init_s32_vmul_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vdiv_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vmax_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vmin_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vmul_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vsub_config() {}

const struct xnn_binary_elementwise_config* xnn_init_f32_vsqrdiff_config() {}

const struct xnn_binary_elementwise_config* xnn_init_qs8_vadd_config() {}

const struct xnn_binary_elementwise_config* xnn_init_qs8_vmul_config() {}

const struct xnn_binary_elementwise_config* xnn_init_qu8_vadd_config() {}

const struct xnn_binary_elementwise_config* xnn_init_qu8_vmul_config() {}