1
0

vector_encoding.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2022-10-10 RT-Thread the first version,
  9. * compatible to riscv-v-spec-1.0
  10. */
  11. #ifndef __VECTOR_ENCODING_H__
  12. #define __VECTOR_ENCODING_H__
  13. /**
  14. * assembler names used for vset{i}vli vtypei immediate
  15. */
  16. #define VEC_IMM_SEW_8 e8
  17. #define VEC_IMM_SEW_16 e16
  18. #define VEC_IMM_SEW_32 e32
  19. #define VEC_IMM_SEW_64 e64
  20. /* group setting, encoding by multiplier */
  21. #define VEC_IMM_LMUL_F8 mf8
  22. #define VEC_IMM_LMUL_F4 mf4
  23. #define VEC_IMM_LMUL_F2 mf2
  24. #define VEC_IMM_LMUL_1 m1
  25. #define VEC_IMM_LMUL_2 m2
  26. #define VEC_IMM_LMUL_4 m4
  27. #define VEC_IMM_LMUL_8 m8
  28. /* TAIL & MASK agnostic bits */
  29. #define VEC_IMM_TAIL_AGNOSTIC ta
  30. #define VEC_IMM_MASK_AGNOSTIC ma
  31. #define VEC_IMM_TAMA VEC_IMM_TAIL_AGNOSTIC, VEC_IMM_MASK_AGNOSTIC
  32. #define VEC_IMM_TAMU VEC_IMM_TAIL_AGNOSTIC
  33. #define VEC_IMM_TUMA VEC_IMM_MASK_AGNOSTIC
  34. /**
  35. * configuration setting instruction
  36. */
  37. #define VEC_CONFIG_SETVLI(xVl, xAvl, vtype...) vsetvli xVl, xAvl, ##vtype
  38. #define VEC_CONFIG_SET_VL_VTYPE(xVl, xVtype) vsetvl x0, xVl, xVtype
  39. #endif /* __VECTOR_ENCODING_H__ */