================
@@ -1057,85 +1051,67 @@ define void @test_sincos_f128(ptr sret({ fp128, fp128 
}) %ret, ptr %in) #0 {
 define void @test_sincos_v2f128(ptr sret({ <2 x fp128>, <2 x fp128> }) %ret, 
ptr %in) #0 {
 ; SPARC32-LABEL: test_sincos_v2f128:
 ; SPARC32:       ! %bb.0:
-; SPARC32-NEXT:    save %sp, -248, %sp
+; SPARC32-NEXT:    save %sp, -256, %sp
 ; SPARC32-NEXT:    mov %i0, %i1
 ; SPARC32-NEXT:    ld [%fp+64], %i0
-; SPARC32-NEXT:    ldd [%i1], %f0
+; SPARC32-NEXT:    ldd [%i1+16], %f0
 ; SPARC32-NEXT:    std %f0, [%fp+-80]
 ; SPARC32-NEXT:    std %f2, [%fp+-72] ! 16-byte Folded Spill
-; SPARC32-NEXT:    ldd [%i1+8], %f0
+; SPARC32-NEXT:    ldd [%i1+24], %f0
 ; SPARC32-NEXT:    std %f0, [%fp+-88] ! 8-byte Folded Spill
-; SPARC32-NEXT:    ldd [%i1+16], %f0
-; SPARC32-NEXT:    std %f0, [%fp+-120]
-; SPARC32-NEXT:    std %f2, [%fp+-112] ! 16-byte Folded Spill
-; SPARC32-NEXT:    ldd [%i1+24], %f4
-; SPARC32-NEXT:    std %f4, [%fp+-104] ! 8-byte Folded Spill
-; SPARC32-NEXT:    add %fp, -64, %i1
-; SPARC32-NEXT:    st %i1, [%sp+64]
-; SPARC32-NEXT:    std %f4, [%sp+100]
+; SPARC32-NEXT:    ldd [%i1], %f0
+; SPARC32-NEXT:    std %f0, [%fp+-152]
+; SPARC32-NEXT:    std %f2, [%fp+-144] ! 16-byte Folded Spill
+; SPARC32-NEXT:    ldd [%i1+8], %f4
+; SPARC32-NEXT:    std %f4, [%fp+-136] ! 8-byte Folded Spill
+; SPARC32-NEXT:    add %fp, -32, %i1
+; SPARC32-NEXT:    st %i1, [%sp+92]
+; SPARC32-NEXT:    std %f4, [%fp+-24]
 ; SPARC32-NEXT:    call sinl
----------------
koachan wrote:

Yeah, that too.
`sinl` here is a C function but LLVM seems to be calling it using its own 
calling convention, instead of following the C one.

https://github.com/llvm/llvm-project/pull/162226
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to