- Rename RVVBinBuiltin to RVVOutputOp1Builtin because it is not related
to the number of operand.
- Add RVV Integer instuctions which use RVVOutputOp1Builtin.
Paths
| Differential D99524
[RISCV][Clang] Add some RVV Integer intrinsic functions. ClosedPublic Authored by khchen on Mar 29 2021, 11:40 AM.
Details Summary
to the number of operand.
Diff Detail
Event TimelineHerald added subscribers: vkmr, frasercrmck, dexonsmith and 22 others. · View Herald TranscriptMar 29 2021, 11:40 AM khchen added child revisions: D99525: [RISCV][Clang] Add RVV vnsra, vnsrl and vwmul intrinsic functions., D99526: [RISCV][Clang] Add RVV Widening Integer Add/Subtract intrinsic functions., D99527: [RISCV][Clang] Add RVV Widening Integer Extension intrinsic functions., D99528: [RISCV][Clang] Add more RVV Integer intrinsic functions..Mar 29 2021, 11:42 AM Comment Actions So sorry.. those huge tests make the browser so slowly, should I split them in the different patch?
Comment Actions
other shift instruction which have the same argments. Does it make sense? This revision is now accepted and ready to land.Mar 30 2021, 11:32 AM khchen added a child revision: D99668: [RISCV][Clang] Add some RVV Floating-Point intrinsic functions..Mar 31 2021, 9:46 AM Closed by commit rG66c05609e0d5: [RISCV][Clang] Add some RVV Integer intrinsic functions. (authored by khchen). · Explain WhyApr 6 2021, 3:08 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 334164 clang/include/clang/Basic/riscv_vector.td
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vand.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vdiv.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmax.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmin.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmul.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vor.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrem.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsll.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsra.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsrl.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vxor.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vand.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vdiv.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmax.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmin.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmul.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vor.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vrem.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vrsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vsll.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vsra.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vsrl.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vxor.c
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Should we have a common class for vadd/vsub/vand/vxor/vor. They all have the same argments except for the name.
Or maybe a common class for signed binary ops and unsigned binary ops. And some can just instantiate both classes? That would allow us to pick up min/max and shifts as well.