[Mips] Add frexpl and sincosl to f128 libcall list
diff --git a/llvm/lib/Target/Mips/MipsCCState.cpp b/llvm/lib/Target/Mips/MipsCCState.cpp index 13237c5..d600343 100644 --- a/llvm/lib/Target/Mips/MipsCCState.cpp +++ b/llvm/lib/Target/Mips/MipsCCState.cpp
@@ -23,9 +23,10 @@ "__subtf3", "__trunctfdf2", "__trunctfsf2", "__unordtf2", "ceill", "copysignl", "cosl", "exp2l", "expl", "floorl", "fmal", "fmaxl", - "fmodl", "log10l", "log2l", "logl", - "nearbyintl", "powl", "rintl", "roundl", - "sinl", "sqrtl", "truncl"}; + "fmodl", "frexpl", "log10l", "log2l", + "logl", "nearbyintl", "powl", "rintl", + "roundl", "sincosl", "sinl", "sqrtl", + "truncl"}; // Check that LibCalls is sorted alphabetically. auto Comp = [](const char *S1, const char *S2) { return strcmp(S1, S2) < 0; };
diff --git a/llvm/test/CodeGen/Mips/llvm.frexp.ll b/llvm/test/CodeGen/Mips/llvm.frexp.ll index 3226766..483a254 100644 --- a/llvm/test/CodeGen/Mips/llvm.frexp.ll +++ b/llvm/test/CodeGen/Mips/llvm.frexp.ll
@@ -493,10 +493,10 @@ ; SOFT-FLOAT-64: # %bb.0: ; SOFT-FLOAT-64-NEXT: daddiu $sp, $sp, -16 ; SOFT-FLOAT-64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill -; SOFT-FLOAT-64-NEXT: dmfc1 $4, $f12 -; SOFT-FLOAT-64-NEXT: dmfc1 $5, $f13 ; SOFT-FLOAT-64-NEXT: jal frexpl ; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 4 +; SOFT-FLOAT-64-NEXT: dmfc1 $2, $f0 +; SOFT-FLOAT-64-NEXT: dmfc1 $3, $f2 ; SOFT-FLOAT-64-NEXT: lw $4, 4($sp) ; SOFT-FLOAT-64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; SOFT-FLOAT-64-NEXT: jr $ra @@ -597,39 +597,39 @@ ; SOFT-FLOAT-64-LABEL: test_frexp_v2fp128_v2i32: ; SOFT-FLOAT-64: # %bb.0: ; SOFT-FLOAT-64-NEXT: daddiu $sp, $sp, -64 -; SOFT-FLOAT-64-NEXT: sd $ra, 56($sp) # 8-byte Folded Spill -; SOFT-FLOAT-64-NEXT: sd $20, 48($sp) # 8-byte Folded Spill -; SOFT-FLOAT-64-NEXT: sd $19, 40($sp) # 8-byte Folded Spill +; SOFT-FLOAT-64-NEXT: sdc1 $f25, 56($sp) # 8-byte Folded Spill +; SOFT-FLOAT-64-NEXT: sdc1 $f24, 48($sp) # 8-byte Folded Spill +; SOFT-FLOAT-64-NEXT: sd $ra, 40($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $18, 32($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $17, 24($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $16, 16($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: move $16, $6 ; SOFT-FLOAT-64-NEXT: move $17, $5 ; SOFT-FLOAT-64-NEXT: move $18, $4 -; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 12 -; SOFT-FLOAT-64-NEXT: move $4, $7 +; SOFT-FLOAT-64-NEXT: dmtc1 $7, $f12 +; SOFT-FLOAT-64-NEXT: dmtc1 $8, $f13 ; SOFT-FLOAT-64-NEXT: jal frexpl -; SOFT-FLOAT-64-NEXT: move $5, $8 -; SOFT-FLOAT-64-NEXT: move $19, $2 -; SOFT-FLOAT-64-NEXT: move $20, $3 +; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 12 +; SOFT-FLOAT-64-NEXT: mov.d $f24, $f0 +; SOFT-FLOAT-64-NEXT: mov.d $f25, $f2 +; SOFT-FLOAT-64-NEXT: dmtc1 $17, $f12 +; SOFT-FLOAT-64-NEXT: dmtc1 $16, $f13 ; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 8 ; SOFT-FLOAT-64-NEXT: lw $1, 12($sp) -; SOFT-FLOAT-64-NEXT: sw $1, 36($18) -; SOFT-FLOAT-64-NEXT: move $4, $17 ; SOFT-FLOAT-64-NEXT: jal frexpl -; SOFT-FLOAT-64-NEXT: move $5, $16 +; SOFT-FLOAT-64-NEXT: sw $1, 36($18) ; SOFT-FLOAT-64-NEXT: lw $1, 8($sp) ; SOFT-FLOAT-64-NEXT: sw $1, 32($18) -; SOFT-FLOAT-64-NEXT: sd $20, 24($18) -; SOFT-FLOAT-64-NEXT: sd $19, 16($18) -; SOFT-FLOAT-64-NEXT: sd $3, 8($18) -; SOFT-FLOAT-64-NEXT: sd $2, 0($18) +; SOFT-FLOAT-64-NEXT: sdc1 $f25, 24($18) +; SOFT-FLOAT-64-NEXT: sdc1 $f24, 16($18) +; SOFT-FLOAT-64-NEXT: sdc1 $f2, 8($18) +; SOFT-FLOAT-64-NEXT: sdc1 $f0, 0($18) ; SOFT-FLOAT-64-NEXT: ld $16, 16($sp) # 8-byte Folded Reload ; SOFT-FLOAT-64-NEXT: ld $17, 24($sp) # 8-byte Folded Reload ; SOFT-FLOAT-64-NEXT: ld $18, 32($sp) # 8-byte Folded Reload -; SOFT-FLOAT-64-NEXT: ld $19, 40($sp) # 8-byte Folded Reload -; SOFT-FLOAT-64-NEXT: ld $20, 48($sp) # 8-byte Folded Reload -; SOFT-FLOAT-64-NEXT: ld $ra, 56($sp) # 8-byte Folded Reload +; SOFT-FLOAT-64-NEXT: ld $ra, 40($sp) # 8-byte Folded Reload +; SOFT-FLOAT-64-NEXT: ldc1 $f24, 48($sp) # 8-byte Folded Reload +; SOFT-FLOAT-64-NEXT: ldc1 $f25, 56($sp) # 8-byte Folded Reload ; SOFT-FLOAT-64-NEXT: jr $ra ; SOFT-FLOAT-64-NEXT: daddiu $sp, $sp, 64 %result = call { <2 x fp128>, <2 x i32> } @llvm.frexp.v2fp128.v2i32(<2 x fp128> %a)
diff --git a/llvm/test/CodeGen/Mips/llvm.sincos.ll b/llvm/test/CodeGen/Mips/llvm.sincos.ll index 046be12..e0e6617 100644 --- a/llvm/test/CodeGen/Mips/llvm.sincos.ll +++ b/llvm/test/CodeGen/Mips/llvm.sincos.ll
@@ -845,12 +845,12 @@ ; SOFT-FLOAT-64-NEXT: daddiu $sp, $sp, -48 ; SOFT-FLOAT-64-NEXT: sd $ra, 40($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $16, 32($sp) # 8-byte Folded Spill +; SOFT-FLOAT-64-NEXT: mov.d $f12, $f13 ; SOFT-FLOAT-64-NEXT: move $16, $4 -; SOFT-FLOAT-64-NEXT: dmfc1 $4, $f13 -; SOFT-FLOAT-64-NEXT: dmfc1 $5, $f14 ; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 16 -; SOFT-FLOAT-64-NEXT: jal sincosl ; SOFT-FLOAT-64-NEXT: daddiu $7, $sp, 0 +; SOFT-FLOAT-64-NEXT: jal sincosl +; SOFT-FLOAT-64-NEXT: mov.d $f13, $f14 ; SOFT-FLOAT-64-NEXT: ld $1, 8($sp) ; SOFT-FLOAT-64-NEXT: sd $1, 24($16) ; SOFT-FLOAT-64-NEXT: ld $1, 0($sp) @@ -1001,20 +1001,19 @@ ; SOFT-FLOAT-64-NEXT: sd $18, 80($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $17, 72($sp) # 8-byte Folded Spill ; SOFT-FLOAT-64-NEXT: sd $16, 64($sp) # 8-byte Folded Spill -; SOFT-FLOAT-64-NEXT: move $1, $7 ; SOFT-FLOAT-64-NEXT: move $16, $6 ; SOFT-FLOAT-64-NEXT: move $17, $5 ; SOFT-FLOAT-64-NEXT: move $18, $4 +; SOFT-FLOAT-64-NEXT: dmtc1 $7, $f12 +; SOFT-FLOAT-64-NEXT: dmtc1 $8, $f13 ; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 48 +; SOFT-FLOAT-64-NEXT: jal sincosl ; SOFT-FLOAT-64-NEXT: daddiu $7, $sp, 32 -; SOFT-FLOAT-64-NEXT: move $4, $1 -; SOFT-FLOAT-64-NEXT: jal sincosl -; SOFT-FLOAT-64-NEXT: move $5, $8 +; SOFT-FLOAT-64-NEXT: dmtc1 $17, $f12 +; SOFT-FLOAT-64-NEXT: dmtc1 $16, $f13 ; SOFT-FLOAT-64-NEXT: daddiu $6, $sp, 16 -; SOFT-FLOAT-64-NEXT: daddiu $7, $sp, 0 -; SOFT-FLOAT-64-NEXT: move $4, $17 ; SOFT-FLOAT-64-NEXT: jal sincosl -; SOFT-FLOAT-64-NEXT: move $5, $16 +; SOFT-FLOAT-64-NEXT: daddiu $7, $sp, 0 ; SOFT-FLOAT-64-NEXT: ld $1, 56($sp) ; SOFT-FLOAT-64-NEXT: ld $2, 0($sp) ; SOFT-FLOAT-64-NEXT: ld $3, 8($sp)