================
@@ -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
----------------
s-barannikov wrote:
IIUC the generated call returns the value in registers, which is already wrong?
https://github.com/llvm/llvm-project/pull/162226
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits