SimdUint8x16Operation.h 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation and contributors. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. namespace Js {
  7. struct SIMDUint8x16Operation
  8. {
  9. // following are operation wrappers for SIMDUint8x16 general implementation
  10. // input and output are typically SIMDValue
  11. static SIMDValue OpUint8x16(uint8 values[]);
  12. //// Unary Ops
  13. static SIMDValue OpMin(const SIMDValue& aValue, const SIMDValue& bValue);
  14. static SIMDValue OpMax(const SIMDValue& aValue, const SIMDValue& bValue);
  15. static SIMDValue OpLessThan(const SIMDValue& aValue, const SIMDValue& bValue);
  16. static SIMDValue OpLessThanOrEqual(const SIMDValue& aValue, const SIMDValue& bValue);
  17. static SIMDValue OpGreaterThan(const SIMDValue& aValue, const SIMDValue& bValue);
  18. static SIMDValue OpGreaterThanOrEqual(const SIMDValue& aValue, const SIMDValue& bValue);
  19. static SIMDValue OpShiftRightByScalar(const SIMDValue& value, int count);
  20. static SIMDValue OpAddSaturate(const SIMDValue& aValue, const SIMDValue& bValue);
  21. static SIMDValue OpSubSaturate(const SIMDValue& aValue, const SIMDValue& bValue);
  22. };
  23. } // namespace Js