@@ -2903,6 +2903,61 @@ entry:
2903
2903
%cond = select i1 %cmp , fp128 %c , fp128 %d
2904
2904
ret fp128 %cond
2905
2905
}
2906
+
2907
+ define { i8 , i128 } @bar () {
2908
+ ret { i8 , i128 } zeroinitializer
2909
+ }
2910
+
2911
+ define fp128 @call_retFP128 () {
2912
+ ; C_CC_FMT-LABEL: call_retFP128:
2913
+ ; C_CC_FMT: # %bb.0: # %entry
2914
+ ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16
2915
+ ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16
2916
+ ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill
2917
+ ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill
2918
+ ; C_CC_FMT-NEXT: .cfi_offset 31, -8
2919
+ ; C_CC_FMT-NEXT: .cfi_offset 28, -16
2920
+ ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(call_retFP128)))
2921
+ ; C_CC_FMT-NEXT: daddu $1, $1, $25
2922
+ ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(call_retFP128)))
2923
+ ; C_CC_FMT-NEXT: ld $25, %call16(bar)($gp)
2924
+ ; C_CC_FMT-NEXT: .reloc .Ltmp51, R_MIPS_JALR, bar
2925
+ ; C_CC_FMT-NEXT: .Ltmp51:
2926
+ ; C_CC_FMT-NEXT: jalr $25
2927
+ ; C_CC_FMT-NEXT: nop
2928
+ ; C_CC_FMT-NEXT: daddiu $2, $zero, 0
2929
+ ; C_CC_FMT-NEXT: daddiu $4, $zero, 0
2930
+ ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload
2931
+ ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload
2932
+ ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16
2933
+ ; C_CC_FMT-NEXT: jr $ra
2934
+ ; C_CC_FMT-NEXT: nop
2935
+ ;
2936
+ ; CMP_CC_FMT-LABEL: call_retFP128:
2937
+ ; CMP_CC_FMT: # %bb.0: # %entry
2938
+ ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16
2939
+ ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16
2940
+ ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill
2941
+ ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill
2942
+ ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8
2943
+ ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16
2944
+ ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(call_retFP128)))
2945
+ ; CMP_CC_FMT-NEXT: daddu $1, $1, $25
2946
+ ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(call_retFP128)))
2947
+ ; CMP_CC_FMT-NEXT: ld $25, %call16(bar)($gp)
2948
+ ; CMP_CC_FMT-NEXT: .reloc .Ltmp51, R_MIPS_JALR, bar
2949
+ ; CMP_CC_FMT-NEXT: .Ltmp51:
2950
+ ; CMP_CC_FMT-NEXT: jalrc $25
2951
+ ; CMP_CC_FMT-NEXT: daddiu $2, $zero, 0
2952
+ ; CMP_CC_FMT-NEXT: daddiu $4, $zero, 0
2953
+ ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload
2954
+ ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload
2955
+ ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16
2956
+ ; CMP_CC_FMT-NEXT: jrc $ra
2957
+ entry:
2958
+ call { i8 , i128 } @bar ()
2959
+ ret fp128 0xL00000000000000000000000000000000
2960
+ }
2906
2961
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
2907
2962
; ALL: {{.*}}
2908
2963
; PRER6: {{.*}}
0 commit comments