aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>2023-08-08 11:06:24 +0800
committerLehua Ding <lehua.ding@rivai.ai>2023-08-08 11:38:11 +0800
commit8f4d2a4c984f168b8444672aa8f4a103e845dfbf (patch)
treea1aa27646421b537ef67fe8e344039348a2d09ef /gcc/tree-vectorizer.h
parent99e47791a901e71eb2475e3987c51d07f37430a5 (diff)
downloadgcc-8f4d2a4c984f168b8444672aa8f4a103e845dfbf.zip
gcc-8f4d2a4c984f168b8444672aa8f4a103e845dfbf.tar.gz
gcc-8f4d2a4c984f168b8444672aa8f4a103e845dfbf.tar.bz2
RISC-V: Support neg VLS auto-vectorization
#include "riscv_vector.h" #define DEF_OP_V(PREFIX, NUM, TYPE, OP) \ void __attribute__ ((noinline, noclone)) \ PREFIX##_##TYPE##NUM (TYPE *restrict a, TYPE *restrict b) \ { \ for (int i = 0; i < NUM; ++i) \ a[i] = OP b[i]; \ } DEF_OP_V (neg, 16, int32_t, -) After this patch: neg_int32_t16: vsetivli zero,16,e32,mf2,ta,ma vle32.v v1,0(a1) vneg.v v1,v1 vse32.v v1,0(a0) ret gcc/ChangeLog: * config/riscv/autovec-vls.md (<optab><mode>2): Add VLS neg. * config/riscv/vector.md: Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/vls/def.h: Ditto. * gcc.target/riscv/rvv/autovec/vls/neg-1.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions