Skip to content

Commit 4cb6c1c

Browse files
authored
[libc] Enable missing memory tests on the GPU (#68111)
Summary: There were a few tests that weren't enabled on the GPU. This is because the logic caused them to be skipped as we don't use CPU featured on the host. This also disables the logic making multiple versions of the memory functions.
1 parent 22f81b4 commit 4cb6c1c

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ list(SORT ALL_CPU_FEATURES)
2222
# <list of cpu features>
2323
# )
2424
function(cpu_supports output_var features)
25-
if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
26-
unset(${output_var} PARENT_SCOPE)
27-
return()
28-
endif()
2925
_intersection(var "${LIBC_CPU_FEATURES}" "${features}")
3026
if("${var}" STREQUAL "${features}")
3127
set(${output_var} TRUE PARENT_SCOPE)

libc/src/string/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,8 @@ if(${LIBC_TARGET_ARCHITECTURE_IS_X86})
498498
add_bcmp(bcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512BW)
499499
add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
500500
add_bcmp(bcmp)
501+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
502+
add_bcmp(bcmp)
501503
else()
502504
add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
503505
add_bcmp(bcmp)
@@ -525,6 +527,8 @@ if(${LIBC_TARGET_ARCHITECTURE_IS_X86})
525527
add_bzero(bzero_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512F)
526528
add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
527529
add_bzero(bzero)
530+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
531+
add_bzero(bzero)
528532
else()
529533
add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
530534
add_bzero(bzero)
@@ -555,6 +559,8 @@ if(${LIBC_TARGET_ARCHITECTURE_IS_X86})
555559
elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64})
556560
add_memcmp(memcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
557561
add_memcmp(memcmp)
562+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
563+
add_memcmp(memcmp)
558564
else()
559565
add_memcmp(memcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
560566
add_memcmp(memcmp)
@@ -589,6 +595,8 @@ elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64})
589595
add_memcpy(memcpy_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE}
590596
MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
591597
add_memcpy(memcpy MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
598+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
599+
add_memcpy(memcpy)
592600
else()
593601
add_memcpy(memcpy_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
594602
add_memcpy(memcpy)
@@ -621,6 +629,8 @@ elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64})
621629
add_memmove(memmove_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE}
622630
MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
623631
add_memmove(memmove MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
632+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
633+
add_memmove(memmove)
624634
else()
625635
add_memmove(memmove_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
626636
add_memmove(memmove)
@@ -653,6 +663,8 @@ elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64})
653663
add_memset(memset_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE}
654664
MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
655665
add_memset(memset MLLVM_COMPILE_OPTIONS "-tail-merge-threshold=0")
666+
elseif(LIBC_TARGET_ARCHITECTURE_IS_GPU)
667+
add_memset(memset)
656668
else()
657669
add_memset(memset_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
658670
add_memset(memset)

libc/test/src/string/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,11 @@ function(add_libc_multi_impl_test name)
425425
get_target_property(required_cpu_features ${fq_config_name} REQUIRE_CPU_FEATURES)
426426
cpu_supports(can_run "${required_cpu_features}")
427427
if(can_run)
428+
string(FIND ${fq_config_name} "." last_dot_loc REVERSE)
429+
math(EXPR name_loc "${last_dot_loc} + 1")
430+
string(SUBSTRING ${fq_config_name} ${name_loc} -1 target_name)
428431
add_libc_test(
429-
${fq_config_name}_test
432+
${target_name}_test
430433
SUITE
431434
libc-string-tests
432435
COMPILE_OPTIONS

0 commit comments

Comments
 (0)