[PATCH] D107082: [X86][RFC] Enable `_Float16` type support on X86 following the psABI
Phoebe Wang via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Jul 2 04:38:27 PDT 2022
pengfei added a comment.
In D107082#3626632 <https://reviews.llvm.org/D107082#3626632>, @sylvestre.ledru wrote:
> Same as in https://reviews.llvm.org/D114099
> It breaks the build on ubuntu bionic, Hirsute, etc on amd64:
> "/build/llvm-toolchain-snapshot-15~++20220702091600+23ee84f43201/build-llvm/./bin/clang" --target=x86_64-pc-linux-gnu -DVISIBILITY_HIDDEN -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -m32 -DCOMPILER_RT_HAS_FLOAT16 -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -MD -MT CMakeFiles/clang_rt.builtins-i386.dir/extendhfsf2.c.o -MF CMakeFiles/clang_rt.builtins-i386.dir/extendhfsf2.c.o.d -o CMakeFiles/clang_rt.builtins-i386.dir/extendhfsf2.c.o -c '/build/llvm-toolchain-snapshot-15~++20220702091600+23ee84f43201/compiler-rt/lib/builtins/extendhfsf2.c'
> In file included from /build/llvm-toolchain-snapshot-15~++20220702091600+23ee84f43201/compiler-rt/lib/builtins/extendhfsf2.c:11:
> In file included from /build/llvm-toolchain-snapshot-15~++20220702091600+23ee84f43201/compiler-rt/lib/builtins/fp_extend_impl.inc:38:
> /build/llvm-toolchain-snapshot-15~++20220702091600+23ee84f43201/compiler-rt/lib/builtins/fp_extend.h:44:9: error: _Float16 is not supported on this target
> typedef _Float16 src_t;
> 1 error generated.
Hi @sylvestre.ledru , thanks for reporting this issue.
It looks to me a configuration (or option mismatch) problem in compiler-rt. We support the `_Float16` type on targets that have SSE2 and/or up features. A 32-bit target doesn't enable SSE2 feature by default. This should be fine because the cmake of compiler-rt will detect the buildable of `_Float16` first and set `COMPILER_RT_HAS_FLOAT16` accordingly. So this issue looks to me it passed the detection of `_Float16` with a SSE2 enabled option but built the compiler-rt with a different option (SSE2 disabled).
I'd suggest to add an extra `-msse2` when build it if possible. Otherwise, don't let `-DCOMPILER_RT_HAS_FLOAT16` been passed here.
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the cfe-commits