godot/thirdparty/embree/common/math/vec3ba.h

// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "../sys/alloc.h"
#include "emath.h"

#if defined(EMBREE_SYCL_SUPPORT) && defined(__SYCL_DEVICE_ONLY__)
#  include "vec3ba_sycl.h"
#else

#include "../simd/sse.h"

namespace embree
{
  ////////////////////////////////////////////////////////////////////////////////
  /// SSE Vec3ba Type
  ////////////////////////////////////////////////////////////////////////////////

  struct __aligned(16) Vec3ba
  {};


  ////////////////////////////////////////////////////////////////////////////////
  /// Unary Operators
  ////////////////////////////////////////////////////////////////////////////////

  __forceinline Vec3ba operator !( const Vec3ba& a ) {}

  ////////////////////////////////////////////////////////////////////////////////
  /// Binary Operators
  ////////////////////////////////////////////////////////////////////////////////

  __forceinline Vec3ba operator &( const Vec3ba& a, const Vec3ba& b ) {}
  __forceinline Vec3ba operator |( const Vec3ba& a, const Vec3ba& b ) {}
  __forceinline Vec3ba operator ^( const Vec3ba& a, const Vec3ba& b ) {}
  
  ////////////////////////////////////////////////////////////////////////////////
  /// Assignment Operators
  ////////////////////////////////////////////////////////////////////////////////
  
  __forceinline Vec3ba& operator &=( Vec3ba& a, const Vec3ba& b ) {}
  __forceinline Vec3ba& operator |=( Vec3ba& a, const Vec3ba& b ) {}
  __forceinline Vec3ba& operator ^=( Vec3ba& a, const Vec3ba& b ) {}
  
  ////////////////////////////////////////////////////////////////////////////////
  /// Comparison Operators + Select
  ////////////////////////////////////////////////////////////////////////////////
  
  __forceinline bool operator ==( const Vec3ba& a, const Vec3ba& b ) {}
  __forceinline bool operator !=( const Vec3ba& a, const Vec3ba& b ) {}
  __forceinline bool operator < ( const Vec3ba& a, const Vec3ba& b ) {}

  ////////////////////////////////////////////////////////////////////////////////
  /// Reduction Operations
  ////////////////////////////////////////////////////////////////////////////////
    
  __forceinline bool reduce_and( const Vec3ba& a ) {}
  __forceinline bool reduce_or ( const Vec3ba& a ) {}

  __forceinline bool all       ( const Vec3ba& b ) {}
  __forceinline bool any       ( const Vec3ba& b ) {}
  __forceinline bool none      ( const Vec3ba& b ) {}

  __forceinline size_t movemask(const Vec3ba& a) {}

  ////////////////////////////////////////////////////////////////////////////////
  /// Output Operators
  ////////////////////////////////////////////////////////////////////////////////

  __forceinline embree_ostream operator<<(embree_ostream cout, const Vec3ba& a) {}
}

#endif