10#ifndef __RISCV_COREV_ALU_H
11#define __RISCV_COREV_ALU_H
15#if defined(__cplusplus)
19#define __riscv_intrinsic_xcvalu 1
21#if defined(__riscv_xcvalu)
23#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
26 return __builtin_abs(a);
30 return __builtin_riscv_cv_alu_sle(a, b);
34__riscv_cv_alu_sleu(
unsigned long a,
unsigned long b) {
35 return __builtin_riscv_cv_alu_sleu(a, b);
39 return __builtin_elementwise_min(a, b);
43__riscv_cv_alu_minu(
unsigned long a,
unsigned long b) {
44 return __builtin_elementwise_min(a, b);
48 return __builtin_elementwise_max(a, b);
52__riscv_cv_alu_maxu(
unsigned long a,
unsigned long b) {
53 return __builtin_elementwise_max(a, b);
57 return __builtin_riscv_cv_alu_exths(a);
62 return __builtin_riscv_cv_alu_exthz(a);
66 return __builtin_riscv_cv_alu_extbs(a);
70__riscv_cv_alu_extbz(
uint8_t a) {
71 return __builtin_riscv_cv_alu_extbz(a);
76 return __builtin_riscv_cv_alu_clip(a, b);
80__riscv_cv_alu_clipu(
unsigned long a,
unsigned long b) {
81 return __builtin_riscv_cv_alu_clipu(a, b);
86 return __builtin_riscv_cv_alu_addN(a, b, shft);
90__riscv_cv_alu_adduN(
unsigned long a,
unsigned long b,
uint8_t shft) {
91 return __builtin_riscv_cv_alu_adduN(a, b, shft);
96 return __builtin_riscv_cv_alu_addRN(a, b, shft);
100__riscv_cv_alu_adduRN(
unsigned long a,
unsigned long b,
uint8_t shft) {
101 return __builtin_riscv_cv_alu_adduRN(a, b, shft);
106 return __builtin_riscv_cv_alu_subN(a, b, shft);
110__riscv_cv_alu_subuN(
unsigned long a,
unsigned long b,
uint8_t shft) {
111 return __builtin_riscv_cv_alu_subuN(a, b, shft);
116 return __builtin_riscv_cv_alu_subRN(a, b, shft);
120__riscv_cv_alu_subuRN(
unsigned long a,
unsigned long b,
uint8_t shft) {
121 return __builtin_riscv_cv_alu_subuRN(a, b, shft);
126#if defined(__cplusplus)
#define __DEFAULT_FN_ATTRS
__packed_splat4 __packed_splat2 __packed_splat8 __packed_splat4 __packed_splat2 uint8_t
__packed_splat4 __packed_splat2 __packed_splat8 __packed_splat4 __packed_splat2 __packed_splat4 uint16_t