JonPsson1 wrote:

> 
> If this is not set, you need to figure out why it is not using the correct 
> host compiler. I think it should be using the clang built from the same 
> sources, which _should_ now support `_Float16` - if it doesn't, this may 
> cause other problems, potentially even explaining the wrong results you're 
> seeing.

It seems that with a completely new build with the new cmake config the test 
actually passes:
  
```
-- Performing Test COMPILER_RT_HAS_s390x_FLOAT16
-- Performing Test COMPILER_RT_HAS_s390x_FLOAT16 - Success
```

I previously got confused here after rerunning cmake in the same folder as I 
thought it was enough to see the newly built clang being used (ninja -v) with 
compiler-rt. It seems maybe cmake itself got confused and used system gcc for 
its checks while building with clang? Anyway, it works now, sorry.

I also found the problem with the miscompile (after some debugging, sigh), that 
the file I copied (extendhfsf.c) has float hard coded as return type, even 
though it defines DST_SINGLE. extendhftf2.c uses dst_t as return type, but I 
see other files using the type directly, so I will leave those files and 
extendhftf2.c as they were. I guess I have a motivating case to use dst_t and 
src_t everywhere, but that's another issue. So the miscompile was due to a 
final conversion from double to float before returning. My bad.

While adding the corresponding (to extendsfdf2_test.c) test I tried inserting 
an obvious error, but this did not cause it to fail, not even with ninja 
check-all, which I thought covered all tests (ninja check-compiler-rt did not 
report it either). How can I run these tests?

I tried building (same way as before) and running the existing 
extendhfsf2_test.c but got:

`error in test__extendhfsf2(0x7e00) = 0.000000, expected nan`

This was unexpected, and I get the same error with libgcc.

> By the way, these sites are pretty helpful for double checking float reprs 
> https://float.exposed https://weitz.de/ieee/.

I tried float.exposed but I couldn't really convert an f16 hex to a double hex. 
Is it supposed to be able to do this?



https://github.com/llvm/llvm-project/pull/109164
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to