simd_int_arith.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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_dot_i16x8(AOTCompContext *comp_ctx,
  59. AOTFuncContext *func_ctx);
  60. #ifdef __cplusplus
  61. } /* end of extern "C" */
  62. #endif
  63. #endif /* end of _SIMD_INT_ARITH_H_ */