simd_int_arith.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * Copyright (C) 2019 Intel Corporation. All rights reserved.
  3. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. */
  5. #ifndef _SIMD_INT_ARITH_H_
  6. #define _SIMD_INT_ARITH_H_
  7. #include "../aot_compiler.h"
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. bool
  12. aot_compile_simd_i8x16_arith(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  13. V128Arithmetic cond);
  14. bool
  15. aot_compile_simd_i16x8_arith(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  16. V128Arithmetic cond);
  17. bool
  18. aot_compile_simd_i32x4_arith(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  19. V128Arithmetic cond);
  20. bool
  21. aot_compile_simd_i64x2_arith(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  22. V128Arithmetic cond);
  23. bool
  24. aot_compile_simd_i8x16_neg(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  25. bool
  26. aot_compile_simd_i16x8_neg(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  27. bool
  28. aot_compile_simd_i32x4_neg(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  29. bool
  30. aot_compile_simd_i64x2_neg(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  31. bool
  32. aot_compile_simd_i8x16_popcnt(AOTCompContext *comp_ctx,
  33. AOTFuncContext *func_ctx);
  34. bool
  35. aot_compile_simd_i8x16_cmp(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  36. V128Arithmetic arith_op, bool is_signed);
  37. bool
  38. aot_compile_simd_i16x8_cmp(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  39. V128Arithmetic arith_op, bool is_signed);
  40. bool
  41. aot_compile_simd_i32x4_cmp(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
  42. V128Arithmetic arith_op, bool is_signed);
  43. bool
  44. aot_compile_simd_i8x16_abs(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  45. bool
  46. aot_compile_simd_i16x8_abs(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  47. bool
  48. aot_compile_simd_i32x4_abs(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  49. bool
  50. aot_compile_simd_i64x2_abs(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx);
  51. bool
  52. aot_compile_simd_i8x16_avgr_u(AOTCompContext *comp_ctx,
  53. AOTFuncContext *func_ctx);
  54. bool
  55. aot_compile_simd_i16x8_avgr_u(AOTCompContext *comp_ctx,
  56. AOTFuncContext *func_ctx);
  57. bool
  58. aot_compile_simd_i32x4_avgr_u(AOTCompContext *comp_ctx,
  59. AOTFuncContext *func_ctx);
  60. bool
  61. aot_compile_simd_i32x4_dot_i16x8(AOTCompContext *comp_ctx,
  62. AOTFuncContext *func_ctx);
  63. #ifdef __cplusplus
  64. } /* end of extern "C" */
  65. #endif
  66. #endif /* end of _SIMD_INT_ARITH_H_ */