Skip to content

Commit

Permalink
helperrvv.h: add vcreate macros for older toolchains
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon Hosie committed Feb 2, 2024
1 parent 6adc07a commit dbb413b
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/arch/helperrvv.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,34 @@
//@#endif
#endif

#if __riscv_v_intrinsic < 12000
#define __riscv_vcreate_v_f32m1_f32m2(x, y) __riscv_vset(__riscv_vlmul_ext_v_f32m1_f32m2(x), 1, y)
#define __riscv_vcreate_v_f32m2_f32m4(x, y) __riscv_vset(__riscv_vlmul_ext_v_f32m2_f32m4(x), 1, y)
#define __riscv_vcreate_v_f32m4_f32m8(x, y) __riscv_vset(__riscv_vlmul_ext_v_f32m4_f32m8(x), 1, y)
#define __riscv_vcreate_v_f64m1_f64m2(x, y) __riscv_vset(__riscv_vlmul_ext_v_f64m1_f64m2(x), 1, y)
#define __riscv_vcreate_v_f64m2_f64m4(x, y) __riscv_vset(__riscv_vlmul_ext_v_f64m2_f64m4(x), 1, y)
#define __riscv_vcreate_v_f64m4_f64m8(x, y) __riscv_vset(__riscv_vlmul_ext_v_f64m4_f64m8(x), 1, y)
#define __riscv_vcreate_v_i32m1_i32m2(x, y) __riscv_vset(__riscv_vlmul_ext_v_i32m1_i32m2(x), 1, y)
#define __riscv_vcreate_v_i32m2_i32m4(x, y) __riscv_vset(__riscv_vlmul_ext_v_i32m2_i32m4(x), 1, y)
#define __riscv_vcreate_v_i32m4_i32m8(x, y) __riscv_vset(__riscv_vlmul_ext_v_i32m4_i32m8(x), 1, y)
#define __riscv_vcreate_v_u64m1_u64m2(x, y) __riscv_vset(__riscv_vlmul_ext_v_u64m1_u64m2(x), 1, y)
#define __riscv_vcreate_v_u64m2_u64m4(x, y) __riscv_vset(__riscv_vlmul_ext_v_u64m2_u64m4(x), 1, y)

#define UNINITIALISED(T) __extension__({ \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
T tmp; \
tmp; \
_Pragma("GCC diagnostic pop") \
})
#define __riscv_vcreate_v_f64m1x4(x, y, z, w) \
__riscv_vset(__riscv_vset(__riscv_vset(__riscv_vset( \
UNINITIALISED(vfloat64m1x4_t), 0, x), 1, y), 2, z), 3, w)
#define __riscv_vcreate_v_f64m2x4(x, y, z, w) \
__riscv_vset(__riscv_vset(__riscv_vset(__riscv_vset( \
UNINITIALISED(vfloat64m2x4_t), 0, x), 1, y), 2, z), 3, w)
#endif

////////////////////////////////////////////////////////////////////////////////
// RISC-V Vector Types
////////////////////////////////////////////////////////////////////////////////
Expand Down

0 comments on commit dbb413b

Please sign in to comment.