My working unpac space for OCaml projects in development
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #4502 from zijianli1234/dev

- Modify the GCC version used for CI testing of the RISCV architecture

authored by

Yann Collet and committed by
GitHub
08af53f4 27d09469

+32 -29
+1 -1
vendor/git/zstd-c/.github/workflows/dev-short-tests.yml
··· 403 403 { name: PPC64LE, xcc_pkg: gcc-powerpc64le-linux-gnu, xcc: powerpc64le-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc64le-static }, 404 404 { name: S390X, xcc_pkg: gcc-s390x-linux-gnu, xcc: s390x-linux-gnu-gcc, xemu_pkg: qemu-system-s390x, xemu: qemu-s390x-static }, 405 405 { name: MIPS, xcc_pkg: gcc-mips-linux-gnu, xcc: mips-linux-gnu-gcc, xemu_pkg: qemu-system-mips, xemu: qemu-mips-static }, 406 - { name: RISC-V, xcc_pkg: gcc-riscv64-linux-gnu, xcc: riscv64-linux-gnu-gcc, xemu_pkg: qemu-system-riscv64,xemu: qemu-riscv64-static }, 406 + { name: RISC-V, xcc_pkg: gcc-14-riscv64-linux-gnu, xcc: riscv64-linux-gnu-gcc-14, xemu_pkg: qemu-system-riscv64,xemu: qemu-riscv64-static }, 407 407 { name: M68K, xcc_pkg: gcc-m68k-linux-gnu, xcc: m68k-linux-gnu-gcc, xemu_pkg: qemu-system-m68k, xemu: qemu-m68k-static }, 408 408 { name: SPARC, xcc_pkg: gcc-sparc64-linux-gnu, xcc: sparc64-linux-gnu-gcc, xemu_pkg: qemu-system-sparc, xemu: qemu-sparc64-static }, 409 409 ]
+5 -10
vendor/git/zstd-c/lib/common/compiler.h
··· 224 224 # if defined(__ARM_FEATURE_SVE2) 225 225 # define ZSTD_ARCH_ARM_SVE2 226 226 # endif 227 - #if defined(__riscv) && defined(__riscv_vector) 228 - #if defined(__GNUC__) 229 - #if (__GNUC__ > 14 || (__GNUC__ == 14 && __GNUC_MINOR__ >= 1)) 230 - #define ZSTD_ARCH_RISCV_RVV 231 - #endif 232 - #elif defined(__clang__) 233 - #if __clang_major__ > 18 || (__clang_major__ == 18 && __clang_minor__ >= 1) 234 - #define ZSTD_ARCH_RISCV_RVV 235 - #endif 236 - #endif 227 + # if defined(__riscv) && defined(__riscv_vector) 228 + # if ((defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 14) || \ 229 + (defined(__clang__) && __clang_major__ >= 19)) 230 + #define ZSTD_ARCH_RISCV_RVV 231 + # endif 237 232 #endif 238 233 # 239 234 # if defined(ZSTD_ARCH_X86_AVX2)
+2
vendor/git/zstd-c/lib/common/zstd_internal.h
··· 185 185 vst1q_u8((uint8_t*)dst, vld1q_u8((const uint8_t*)src)); 186 186 #elif defined(ZSTD_ARCH_X86_SSE2) 187 187 _mm_storeu_si128((__m128i*)dst, _mm_loadu_si128((const __m128i*)src)); 188 + #elif defined(ZSTD_ARCH_RISCV_RVV) 189 + __riscv_vse8_v_u8m1((uint8_t*)dst, __riscv_vle8_v_u8m1((const uint8_t*)src, 16), 16); 188 190 #elif defined(__clang__) 189 191 ZSTD_memmove(dst, src, 16); 190 192 #else
+2 -2
vendor/git/zstd-c/lib/compress/zstd_compress.c
··· 7292 7292 return longLen; 7293 7293 } 7294 7294 7295 - #elif defined ZSTD_ARCH_RISCV_RVV 7295 + #elif defined (ZSTD_ARCH_RISCV_RVV) 7296 7296 #include <riscv_vector.h> 7297 7297 /* 7298 7298 * Convert `vl` sequences per iteration, using RVV intrinsics: ··· 7824 7824 } 7825 7825 } 7826 7826 7827 - #elif defined ZSTD_ARCH_RISCV_RVV 7827 + #elif defined (ZSTD_ARCH_RISCV_RVV) 7828 7828 7829 7829 BlockSummary ZSTD_get1BlockSummary(const ZSTD_Sequence* seqs, size_t nbSeqs) 7830 7830 {
+22 -16
vendor/git/zstd-c/lib/compress/zstd_lazy.c
··· 1052 1052 #endif 1053 1053 #if defined(ZSTD_ARCH_RISCV_RVV) && (__riscv_xlen == 64) 1054 1054 FORCE_INLINE_TEMPLATE ZSTD_VecMask 1055 - ZSTD_row_getRVVMask(int nbChunks, const BYTE* const src, const BYTE tag, const U32 head) 1055 + ZSTD_row_getRVVMask(int rowEntries, const BYTE* const src, const BYTE tag, const U32 head) 1056 1056 { 1057 1057 ZSTD_VecMask matches; 1058 1058 size_t vl; 1059 1059 1060 1060 if (rowEntries == 16) { 1061 1061 vl = __riscv_vsetvl_e8m1(16); 1062 - vuint8m1_t chunk = __riscv_vle8_v_u8m1(src, vl); 1063 - vbool8_t mask = __riscv_vmseq_vx_u8m1_b8(chunk, tag, vl); 1064 - vuint16m1_t mask_u16 = __riscv_vreinterpret_v_b8_u16m1(mask); 1065 - matches = __riscv_vmv_x_s_u16m1_u16(mask_u16); 1066 - return ZSTD_rotateRight_U16((U16)matches, head); 1062 + { 1063 + vuint8m1_t chunk = __riscv_vle8_v_u8m1(src, vl); 1064 + vbool8_t mask = __riscv_vmseq_vx_u8m1_b8(chunk, tag, vl); 1065 + vuint16m1_t mask_u16 = __riscv_vreinterpret_v_b8_u16m1(mask); 1066 + matches = __riscv_vmv_x_s_u16m1_u16(mask_u16); 1067 + return ZSTD_rotateRight_U16((U16)matches, head); 1068 + } 1067 1069 1068 1070 } else if (rowEntries == 32) { 1069 1071 vl = __riscv_vsetvl_e8m2(32); 1070 - vuint8m2_t chunk = __riscv_vle8_v_u8m2(src, vl); 1071 - vbool4_t mask = __riscv_vmseq_vx_u8m2_b4(chunk, tag, vl); 1072 - vuint32m1_t mask_u32 = __riscv_vreinterpret_v_b4_u32m1(mask); 1073 - matches = __riscv_vmv_x_s_u32m1_u32(mask_u32); 1074 - return ZSTD_rotateRight_U32((U32)matches, head); 1072 + { 1073 + vuint8m2_t chunk = __riscv_vle8_v_u8m2(src, vl); 1074 + vbool4_t mask = __riscv_vmseq_vx_u8m2_b4(chunk, tag, vl); 1075 + vuint32m1_t mask_u32 = __riscv_vreinterpret_v_b4_u32m1(mask); 1076 + matches = __riscv_vmv_x_s_u32m1_u32(mask_u32); 1077 + return ZSTD_rotateRight_U32((U32)matches, head); 1078 + } 1075 1079 } else { // rowEntries = 64 1076 1080 vl = __riscv_vsetvl_e8m4(64); 1077 - vuint8m4_t chunk = __riscv_vle8_v_u8m4(src, vl); 1078 - vbool2_t mask = __riscv_vmseq_vx_u8m4_b2(chunk, tag, vl); 1079 - vuint64m1_t mask_u64 = __riscv_vreinterpret_v_b2_u64m1(mask); 1080 - matches = __riscv_vmv_x_s_u64m1_u64(mask_u64); 1081 - return ZSTD_rotateRight_U64(matches, head); 1081 + { 1082 + vuint8m4_t chunk = __riscv_vle8_v_u8m4(src, vl); 1083 + vbool2_t mask = __riscv_vmseq_vx_u8m4_b2(chunk, tag, vl); 1084 + vuint64m1_t mask_u64 = __riscv_vreinterpret_v_b2_u64m1(mask); 1085 + matches = __riscv_vmv_x_s_u64m1_u64(mask_u64); 1086 + return ZSTD_rotateRight_U64(matches, head); 1087 + } 1082 1088 } 1083 1089 } 1084 1090 #endif