@@ -2903,6 +2903,61 @@ entry:
29032903 %cond = select i1 %cmp , fp128 %c , fp128 %d
29042904 ret fp128 %cond
29052905}
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+ }
29062961;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
29072962; ALL: {{.*}}
29082963; PRER6: {{.*}}
0 commit comments