JonPsson1 wrote:

> To clarify, the code is calling `__extendhfdf2` then `__truncdfhf2` from 
> either libgcc or from compiler-rt with your patches, and the compiler-rt 
> version is incorrect? Could you have it print the intermediate results as u16 
> hex (`Op0 + Op1`, `Res2`, `Res`)?

Yes, my test program is calling either libgcc or compiler-rt implementaions of 
the same function. Yes, on this branch.

```
                                      libgcc                    compiler-rt

vlreph  %v0, 0(%r1)                   0x3e00             (1.5)  0x3e00
brasl   %r14, __extendhfdf2@PLT       0x3ff8000000000000        
0x3fc0000000000000
ldr     %f8, %f0
vlreph  %v0, 0(%r13)                  0x3800             (0.5)  0x3800
brasl   %r14, __extendhfdf2@PLT       0x3fe0000000000000        
0x3f00000000000000
ldr     %f2, %f0
ldr     %f0, %f8
brasl   %r14, fun2@PLT                0x4000000000000000 (2.0)  
0x3fc0010000000000
brasl   %r14, __truncdfhf2@PLT        0x4000                    0x3000
brasl   %r14, __extendhfsf2@PLT       0x40000000                0x3e000000

```

> Not sure if you are testing only on s390x but there should probably be a unit 
> test at 
> https://github.com/llvm/llvm-project/tree/d90423e310482bdbc731242fa25dcb3dd44e69de/compiler-rt/test/builtins/Unit
>  to see if things work on other platforms.

I am testing on s390x, and I guess it's unfortunate that there is no such test 
for hfdf - this is the file that was missing and that I added. I guess it 
should be added once it is confirmed to work properly (or if someone would 
provide the right values). The tests that are already there have been passing 
always while working on this, even when building with gcc.


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