Many libraries, such as OpenCV, FFmpeg, XNNPACK, and Eigen, utilize Arm or
x86 SIMD Intrinsics to optimize programs for performance. With the emergence of
RISC-V Vector Extensions (RVV), there is a need to migrate these performance
legacy codes for RVV. Currently, the migration of NEON code to RVV code
requires manual rewriting, which is a time-consuming and error-prone process.
In this work, we use the open source tool, "SIMD Everywhere" (SIMDe), to
automate the migration. Our primary task is to enhance SIMDe to enable the
conversion of ARM NEON Intrinsics types and functions to their corresponding
RVV Intrinsics types and functions. For type conversion, we devise strategies
to convert Neon Intrinsics types to RVV Intrinsics by considering the vector
length agnostic (vla) architectures. With function conversions, we analyze
commonly used conversion methods in SIMDe and develop customized conversions
for each function based on the results of RVV code generations. In our
experiments with Google XNNPACK library, our enhanced SIMDe achieves speedup
ranging from 1.51x to 5.13x compared to the original SIMDe, which does not
utilize customized RVV implementations for the conversions