[compiler-rt][BF16] Provide __truncdfbf2 and __truncsfbf2 only when __bf16 is available

Differential Revision: https://reviews.llvm.org/D131147
This commit is contained in:
Phoebe Wang 2022-08-10 09:13:27 +08:00
parent 3d93885f7c
commit f061cfb317
3 changed files with 18 additions and 3 deletions

View File

@ -30,6 +30,14 @@ _Float16 foo(_Float16 x) {
"
)
builtin_check_c_compiler_source(COMPILER_RT_HAS_BFLOAT16
"
__bf16 foo(__bf16 x) {
return x;
}
"
)
builtin_check_c_compiler_source(COMPILER_RT_HAS_ASM_LSE
"
asm(\".arch armv8-a+lse\");

View File

@ -165,10 +165,8 @@ set(GENERIC_SOURCES
subvsi3.c
subvti3.c
trampoline_setup.c
truncdfbf2.c
truncdfhf2.c
truncdfsf2.c
truncsfbf2.c
truncsfhf2.c
ucmpdi2.c
ucmpti2.c
@ -183,6 +181,15 @@ set(GENERIC_SOURCES
umodti3.c
)
# Build BF16 files only when "__bf16" is available.
if(COMPILER_RT_HAS_BFLOAT16 AND NOT APPLE)
set(GENERIC_SOURCES
${GENERIC_SOURCES}
truncdfbf2.c
truncsfbf2.c
)
endif()
# TODO: Several "tf" files (and divtc3.c, but not multc3.c) are in
# GENERIC_SOURCES instead of here.
set(GENERIC_TF_SOURCES

View File

@ -60,7 +60,7 @@ typedef uint16_t dst_rep_t;
static const int dstSigBits = 10;
#elif defined DST_BFLOAT
typedef uint16_t dst_t;
typedef __bf16 dst_t;
typedef uint16_t dst_rep_t;
#define DST_REP_C UINT16_C
static const int dstSigBits = 7;