; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips4 -mattr=+soft-float -O1 \ ; RUN: -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \ ; RUN: %s -check-prefixes=ALL,C_CC_FMT,PRER6,NOT-R2R6 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64 -mattr=+soft-float -O1 \ ; RUN: -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \ ; RUN: %s -check-prefixes=ALL,C_CC_FMT,PRER6,NOT-R2R6 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64r2 -mattr=+soft-float \ ; RUN: -O1 -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \ ; RUN: %s -check-prefixes=ALL,C_CC_FMT,PRER6,R2R6 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64r6 -mattr=+soft-float \ ; RUN: -O1 -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \ ; RUN: %s -check-prefixes=ALL,CMP_CC_FMT,R6,R2R6 @gld0 = external global fp128 @gld1 = external global fp128 @gld2 = external global fp128 @gf1 = external global float @gd1 = external global double define fp128 @addLD() { ; C_CC_FMT-LABEL: addLD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(addLD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(addLD))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__addtf3)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp0, R_MIPS_JALR, __addtf3 ; C_CC_FMT-NEXT: .Ltmp0: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: addLD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(addLD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(addLD))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__addtf3)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp0, R_MIPS_JALR, __addtf3 ; CMP_CC_FMT-NEXT: .Ltmp0: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %add = fadd fp128 %0, %1 ret fp128 %add } define fp128 @subLD() { ; C_CC_FMT-LABEL: subLD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(subLD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(subLD))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__subtf3)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp1, R_MIPS_JALR, __subtf3 ; C_CC_FMT-NEXT: .Ltmp1: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: subLD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(subLD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(subLD))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__subtf3)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp1, R_MIPS_JALR, __subtf3 ; CMP_CC_FMT-NEXT: .Ltmp1: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %sub = fsub fp128 %0, %1 ret fp128 %sub } define fp128 @mulLD() { ; C_CC_FMT-LABEL: mulLD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(mulLD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(mulLD))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__multf3)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp2, R_MIPS_JALR, __multf3 ; C_CC_FMT-NEXT: .Ltmp2: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: mulLD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(mulLD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(mulLD))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__multf3)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp2, R_MIPS_JALR, __multf3 ; CMP_CC_FMT-NEXT: .Ltmp2: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %mul = fmul fp128 %0, %1 ret fp128 %mul } define fp128 @divLD() { ; C_CC_FMT-LABEL: divLD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(divLD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(divLD))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__divtf3)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp3, R_MIPS_JALR, __divtf3 ; C_CC_FMT-NEXT: .Ltmp3: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: divLD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(divLD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(divLD))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__divtf3)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp3, R_MIPS_JALR, __divtf3 ; CMP_CC_FMT-NEXT: .Ltmp3: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %div = fdiv fp128 %0, %1 ret fp128 %div } define fp128 @conv_LD_char(i8 signext %a) { ; C_CC_FMT-LABEL: conv_LD_char: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_char))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_char))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp4, R_MIPS_JALR, __floatsitf ; C_CC_FMT-NEXT: .Ltmp4: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_char: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_char))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_char))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp4, R_MIPS_JALR, __floatsitf ; CMP_CC_FMT-NEXT: .Ltmp4: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = sitofp i8 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_short(i16 signext %a) { ; C_CC_FMT-LABEL: conv_LD_short: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_short))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_short))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp5, R_MIPS_JALR, __floatsitf ; C_CC_FMT-NEXT: .Ltmp5: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_short: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_short))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_short))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp5, R_MIPS_JALR, __floatsitf ; CMP_CC_FMT-NEXT: .Ltmp5: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = sitofp i16 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_int(i32 %a) { ; C_CC_FMT-LABEL: conv_LD_int: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_int))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_int))) ; C_CC_FMT-NEXT: sll $4, $4, 0 ; C_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp6, R_MIPS_JALR, __floatsitf ; C_CC_FMT-NEXT: .Ltmp6: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_int: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_int))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_int))) ; CMP_CC_FMT-NEXT: sll $4, $4, 0 ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp6, R_MIPS_JALR, __floatsitf ; CMP_CC_FMT-NEXT: .Ltmp6: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = sitofp i32 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_LL(i64 %a) { ; C_CC_FMT-LABEL: conv_LD_LL: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_LL))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_LL))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatditf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp7, R_MIPS_JALR, __floatditf ; C_CC_FMT-NEXT: .Ltmp7: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_LL: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_LL))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_LL))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatditf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp7, R_MIPS_JALR, __floatditf ; CMP_CC_FMT-NEXT: .Ltmp7: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = sitofp i64 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_UChar(i8 zeroext %a) { ; C_CC_FMT-LABEL: conv_LD_UChar: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UChar))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UChar))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp8, R_MIPS_JALR, __floatunsitf ; C_CC_FMT-NEXT: .Ltmp8: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_UChar: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UChar))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UChar))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp8, R_MIPS_JALR, __floatunsitf ; CMP_CC_FMT-NEXT: .Ltmp8: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = uitofp i8 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_UShort(i16 zeroext %a) { ; C_CC_FMT-LABEL: conv_LD_UShort: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UShort))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UShort))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp9, R_MIPS_JALR, __floatunsitf ; C_CC_FMT-NEXT: .Ltmp9: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_UShort: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UShort))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UShort))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp9, R_MIPS_JALR, __floatunsitf ; CMP_CC_FMT-NEXT: .Ltmp9: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = uitofp i16 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_UInt(i32 signext %a) { ; C_CC_FMT-LABEL: conv_LD_UInt: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UInt))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UInt))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp10, R_MIPS_JALR, __floatunsitf ; C_CC_FMT-NEXT: .Ltmp10: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_UInt: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_UInt))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UInt))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatunsitf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp10, R_MIPS_JALR, __floatunsitf ; CMP_CC_FMT-NEXT: .Ltmp10: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = uitofp i32 %a to fp128 ret fp128 %conv } define fp128 @conv_LD_ULL(i64 %a) { ; C_CC_FMT-LABEL: conv_LD_ULL: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_ULL))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_ULL))) ; C_CC_FMT-NEXT: ld $25, %call16(__floatunditf)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp11, R_MIPS_JALR, __floatunditf ; C_CC_FMT-NEXT: .Ltmp11: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_ULL: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_ULL))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_ULL))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__floatunditf)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp11, R_MIPS_JALR, __floatunditf ; CMP_CC_FMT-NEXT: .Ltmp11: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = uitofp i64 %a to fp128 ret fp128 %conv } define signext i8 @conv_char_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_char_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_char_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_char_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp12, R_MIPS_JALR, __fixtfsi ; C_CC_FMT-NEXT: .Ltmp12: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_char_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_char_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_char_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp12, R_MIPS_JALR, __fixtfsi ; CMP_CC_FMT-NEXT: .Ltmp12: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptosi fp128 %a to i8 ret i8 %conv } define signext i16 @conv_short_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_short_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_short_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_short_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp13, R_MIPS_JALR, __fixtfsi ; C_CC_FMT-NEXT: .Ltmp13: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_short_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_short_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_short_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp13, R_MIPS_JALR, __fixtfsi ; CMP_CC_FMT-NEXT: .Ltmp13: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptosi fp128 %a to i16 ret i16 %conv } define i32 @conv_int_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_int_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_int_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_int_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp14, R_MIPS_JALR, __fixtfsi ; C_CC_FMT-NEXT: .Ltmp14: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_int_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_int_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_int_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp14, R_MIPS_JALR, __fixtfsi ; CMP_CC_FMT-NEXT: .Ltmp14: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptosi fp128 %a to i32 ret i32 %conv } define i64 @conv_LL_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_LL_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LL_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LL_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfdi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp15, R_MIPS_JALR, __fixtfdi ; C_CC_FMT-NEXT: .Ltmp15: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LL_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LL_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LL_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfdi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp15, R_MIPS_JALR, __fixtfdi ; CMP_CC_FMT-NEXT: .Ltmp15: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptosi fp128 %a to i64 ret i64 %conv } define zeroext i8 @conv_UChar_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_UChar_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UChar_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UChar_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp16, R_MIPS_JALR, __fixtfsi ; C_CC_FMT-NEXT: .Ltmp16: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_UChar_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UChar_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UChar_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp16, R_MIPS_JALR, __fixtfsi ; CMP_CC_FMT-NEXT: .Ltmp16: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptoui fp128 %a to i8 ret i8 %conv } define zeroext i16 @conv_UShort_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_UShort_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UShort_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UShort_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp17, R_MIPS_JALR, __fixtfsi ; C_CC_FMT-NEXT: .Ltmp17: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_UShort_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UShort_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UShort_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixtfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp17, R_MIPS_JALR, __fixtfsi ; CMP_CC_FMT-NEXT: .Ltmp17: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptoui fp128 %a to i16 ret i16 %conv } define i32 @conv_UInt_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_UInt_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UInt_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UInt_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixunstfsi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp18, R_MIPS_JALR, __fixunstfsi ; C_CC_FMT-NEXT: .Ltmp18: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_UInt_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_UInt_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UInt_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixunstfsi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp18, R_MIPS_JALR, __fixunstfsi ; CMP_CC_FMT-NEXT: .Ltmp18: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptoui fp128 %a to i32 ret i32 %conv } define i64 @conv_ULL_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_ULL_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_ULL_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_ULL_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__fixunstfdi)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp19, R_MIPS_JALR, __fixunstfdi ; C_CC_FMT-NEXT: .Ltmp19: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_ULL_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_ULL_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_ULL_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__fixunstfdi)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp19, R_MIPS_JALR, __fixunstfdi ; CMP_CC_FMT-NEXT: .Ltmp19: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptoui fp128 %a to i64 ret i64 %conv } define fp128 @conv_LD_float(float %a) { ; C_CC_FMT-LABEL: conv_LD_float: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_float))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_float))) ; C_CC_FMT-NEXT: ld $25, %call16(__extendsftf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp20, R_MIPS_JALR, __extendsftf2 ; C_CC_FMT-NEXT: .Ltmp20: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_float: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_float))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_float))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__extendsftf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp20, R_MIPS_JALR, __extendsftf2 ; CMP_CC_FMT-NEXT: .Ltmp20: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fpext float %a to fp128 ret fp128 %conv } define fp128 @conv_LD_double(double %a) { ; C_CC_FMT-LABEL: conv_LD_double: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_double))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_double))) ; C_CC_FMT-NEXT: ld $25, %call16(__extenddftf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp21, R_MIPS_JALR, __extenddftf2 ; C_CC_FMT-NEXT: .Ltmp21: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_LD_double: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_LD_double))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_double))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__extenddftf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp21, R_MIPS_JALR, __extenddftf2 ; CMP_CC_FMT-NEXT: .Ltmp21: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fpext double %a to fp128 ret fp128 %conv } define float @conv_float_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_float_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_float_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_float_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__trunctfsf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp22, R_MIPS_JALR, __trunctfsf2 ; C_CC_FMT-NEXT: .Ltmp22: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_float_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_float_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_float_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__trunctfsf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp22, R_MIPS_JALR, __trunctfsf2 ; CMP_CC_FMT-NEXT: .Ltmp22: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptrunc fp128 %a to float ret float %conv } define double @conv_double_LD(fp128 %a) { ; C_CC_FMT-LABEL: conv_double_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_double_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_double_LD))) ; C_CC_FMT-NEXT: ld $25, %call16(__trunctfdf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp23, R_MIPS_JALR, __trunctfdf2 ; C_CC_FMT-NEXT: .Ltmp23: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: conv_double_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(conv_double_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(conv_double_LD))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__trunctfdf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp23, R_MIPS_JALR, __trunctfdf2 ; CMP_CC_FMT-NEXT: .Ltmp23: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %conv = fptrunc fp128 %a to double ret double %conv } define fp128 @libcall1_fabsl() { ; NOT-R2R6-LABEL: libcall1_fabsl: ; NOT-R2R6: # %bb.0: # %entry ; NOT-R2R6-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_fabsl))) ; NOT-R2R6-NEXT: daddu $1, $1, $25 ; NOT-R2R6-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(libcall1_fabsl))) ; NOT-R2R6-NEXT: ld $1, %got_disp(gld0)($1) ; NOT-R2R6-NEXT: ld $2, 8($1) ; NOT-R2R6-NEXT: daddiu $3, $zero, 1 ; NOT-R2R6-NEXT: dsll $3, $3, 63 ; NOT-R2R6-NEXT: daddiu $3, $3, -1 ; NOT-R2R6-NEXT: and $4, $2, $3 ; NOT-R2R6-NEXT: ld $2, 0($1) ; NOT-R2R6-NEXT: jr $ra ; NOT-R2R6-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_fabsl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_fabsl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(libcall1_fabsl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($1) ; CMP_CC_FMT-NEXT: ld $2, 0($1) ; CMP_CC_FMT-NEXT: ld $1, 8($1) ; CMP_CC_FMT-NEXT: dextm $4, $1, 0, 63 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @fabsl(fp128 %0) nounwind readnone ret fp128 %call } declare fp128 @fabsl(fp128) #1 define fp128 @libcall1_ceill() { ; C_CC_FMT-LABEL: libcall1_ceill: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_ceill))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_ceill))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(ceill)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp24, R_MIPS_JALR, ceill ; C_CC_FMT-NEXT: .Ltmp24: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_ceill: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_ceill))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_ceill))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(ceill)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp24, R_MIPS_JALR, ceill ; CMP_CC_FMT-NEXT: .Ltmp24: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @ceill(fp128 %0) nounwind readnone ret fp128 %call } declare fp128 @ceill(fp128) #1 define fp128 @libcall1_sinl() { ; C_CC_FMT-LABEL: libcall1_sinl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_sinl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sinl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(sinl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp25, R_MIPS_JALR, sinl ; C_CC_FMT-NEXT: .Ltmp25: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_sinl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_sinl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sinl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(sinl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp25, R_MIPS_JALR, sinl ; CMP_CC_FMT-NEXT: .Ltmp25: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @sinl(fp128 %0) nounwind ret fp128 %call } declare fp128 @sinl(fp128) #2 define fp128 @libcall1_cosl() { ; C_CC_FMT-LABEL: libcall1_cosl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_cosl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_cosl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(cosl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp26, R_MIPS_JALR, cosl ; C_CC_FMT-NEXT: .Ltmp26: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_cosl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_cosl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_cosl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(cosl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp26, R_MIPS_JALR, cosl ; CMP_CC_FMT-NEXT: .Ltmp26: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @cosl(fp128 %0) nounwind ret fp128 %call } declare fp128 @cosl(fp128) #2 define fp128 @libcall1_expl() { ; C_CC_FMT-LABEL: libcall1_expl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_expl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_expl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(expl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp27, R_MIPS_JALR, expl ; C_CC_FMT-NEXT: .Ltmp27: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_expl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_expl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_expl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(expl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp27, R_MIPS_JALR, expl ; CMP_CC_FMT-NEXT: .Ltmp27: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @expl(fp128 %0) nounwind ret fp128 %call } declare fp128 @expl(fp128) #2 define fp128 @libcall1_exp2l() { ; C_CC_FMT-LABEL: libcall1_exp2l: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_exp2l))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_exp2l))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(exp2l)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp28, R_MIPS_JALR, exp2l ; C_CC_FMT-NEXT: .Ltmp28: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_exp2l: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_exp2l))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_exp2l))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(exp2l)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp28, R_MIPS_JALR, exp2l ; CMP_CC_FMT-NEXT: .Ltmp28: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @exp2l(fp128 %0) nounwind ret fp128 %call } declare fp128 @exp2l(fp128) #2 define fp128 @libcall1_logl() { ; C_CC_FMT-LABEL: libcall1_logl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_logl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_logl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(logl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp29, R_MIPS_JALR, logl ; C_CC_FMT-NEXT: .Ltmp29: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_logl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_logl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_logl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(logl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp29, R_MIPS_JALR, logl ; CMP_CC_FMT-NEXT: .Ltmp29: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @logl(fp128 %0) nounwind ret fp128 %call } declare fp128 @logl(fp128) #2 define fp128 @libcall1_log2l() { ; C_CC_FMT-LABEL: libcall1_log2l: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_log2l))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log2l))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(log2l)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp30, R_MIPS_JALR, log2l ; C_CC_FMT-NEXT: .Ltmp30: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_log2l: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_log2l))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log2l))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(log2l)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp30, R_MIPS_JALR, log2l ; CMP_CC_FMT-NEXT: .Ltmp30: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @log2l(fp128 %0) nounwind ret fp128 %call } declare fp128 @log2l(fp128) #2 define fp128 @libcall1_log10l() { ; C_CC_FMT-LABEL: libcall1_log10l: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_log10l))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log10l))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(log10l)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp31, R_MIPS_JALR, log10l ; C_CC_FMT-NEXT: .Ltmp31: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_log10l: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_log10l))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log10l))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(log10l)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp31, R_MIPS_JALR, log10l ; CMP_CC_FMT-NEXT: .Ltmp31: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @log10l(fp128 %0) nounwind ret fp128 %call } declare fp128 @log10l(fp128) #2 define fp128 @libcall1_nearbyintl() { ; C_CC_FMT-LABEL: libcall1_nearbyintl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_nearbyintl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_nearbyintl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(nearbyintl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp32, R_MIPS_JALR, nearbyintl ; C_CC_FMT-NEXT: .Ltmp32: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_nearbyintl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_nearbyintl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_nearbyintl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(nearbyintl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp32, R_MIPS_JALR, nearbyintl ; CMP_CC_FMT-NEXT: .Ltmp32: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @nearbyintl(fp128 %0) nounwind readnone ret fp128 %call } declare fp128 @nearbyintl(fp128) #1 define fp128 @libcall1_floorl() { ; C_CC_FMT-LABEL: libcall1_floorl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_floorl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_floorl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(floorl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp33, R_MIPS_JALR, floorl ; C_CC_FMT-NEXT: .Ltmp33: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_floorl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_floorl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_floorl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(floorl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp33, R_MIPS_JALR, floorl ; CMP_CC_FMT-NEXT: .Ltmp33: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @floorl(fp128 %0) nounwind readnone ret fp128 %call } declare fp128 @floorl(fp128) #1 define fp128 @libcall1_sqrtl() { ; C_CC_FMT-LABEL: libcall1_sqrtl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_sqrtl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sqrtl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(sqrtl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp34, R_MIPS_JALR, sqrtl ; C_CC_FMT-NEXT: .Ltmp34: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_sqrtl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_sqrtl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sqrtl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(sqrtl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp34, R_MIPS_JALR, sqrtl ; CMP_CC_FMT-NEXT: .Ltmp34: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @sqrtl(fp128 %0) nounwind ret fp128 %call } declare fp128 @sqrtl(fp128) #2 define fp128 @libcall1_rintl() { ; C_CC_FMT-LABEL: libcall1_rintl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_rintl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_rintl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(rintl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp35, R_MIPS_JALR, rintl ; C_CC_FMT-NEXT: .Ltmp35: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall1_rintl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall1_rintl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_rintl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(rintl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp35, R_MIPS_JALR, rintl ; CMP_CC_FMT-NEXT: .Ltmp35: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %call = tail call fp128 @rintl(fp128 %0) nounwind readnone ret fp128 %call } declare fp128 @rintl(fp128) #1 define fp128 @libcall_powil(fp128 %a, i32 %b) { ; C_CC_FMT-LABEL: libcall_powil: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall_powil))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall_powil))) ; C_CC_FMT-NEXT: sll $6, $6, 0 ; C_CC_FMT-NEXT: ld $25, %call16(__powitf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp36, R_MIPS_JALR, __powitf2 ; C_CC_FMT-NEXT: .Ltmp36: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall_powil: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall_powil))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall_powil))) ; CMP_CC_FMT-NEXT: sll $6, $6, 0 ; CMP_CC_FMT-NEXT: ld $25, %call16(__powitf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp36, R_MIPS_JALR, __powitf2 ; CMP_CC_FMT-NEXT: .Ltmp36: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = tail call fp128 @llvm.powi.f128.i32(fp128 %a, i32 %b) ret fp128 %0 } declare fp128 @llvm.powi.f128.i32(fp128, i32) #3 define fp128 @libcall2_copysignl() { ; NOT-R2R6-LABEL: libcall2_copysignl: ; NOT-R2R6: # %bb.0: # %entry ; NOT-R2R6-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_copysignl))) ; NOT-R2R6-NEXT: daddu $1, $1, $25 ; NOT-R2R6-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(libcall2_copysignl))) ; NOT-R2R6-NEXT: daddiu $2, $zero, 1 ; NOT-R2R6-NEXT: dsll $2, $2, 63 ; NOT-R2R6-NEXT: ld $3, %got_disp(gld1)($1) ; NOT-R2R6-NEXT: ld $3, 8($3) ; NOT-R2R6-NEXT: and $3, $3, $2 ; NOT-R2R6-NEXT: ld $1, %got_disp(gld0)($1) ; NOT-R2R6-NEXT: ld $4, 8($1) ; NOT-R2R6-NEXT: daddiu $2, $2, -1 ; NOT-R2R6-NEXT: and $2, $4, $2 ; NOT-R2R6-NEXT: or $4, $2, $3 ; NOT-R2R6-NEXT: ld $2, 0($1) ; NOT-R2R6-NEXT: jr $ra ; NOT-R2R6-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall2_copysignl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_copysignl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(libcall2_copysignl))) ; CMP_CC_FMT-NEXT: ld $2, %got_disp(gld0)($1) ; CMP_CC_FMT-NEXT: ld $4, 8($2) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($1) ; CMP_CC_FMT-NEXT: ld $1, 8($1) ; CMP_CC_FMT-NEXT: dsrl $1, $1, 63 ; CMP_CC_FMT-NEXT: dinsu $4, $1, 63, 1 ; CMP_CC_FMT-NEXT: ld $2, 0($2) ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %call = tail call fp128 @copysignl(fp128 %0, fp128 %1) nounwind readnone ret fp128 %call } declare fp128 @copysignl(fp128, fp128) #1 define fp128 @libcall2_powl() { ; C_CC_FMT-LABEL: libcall2_powl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_powl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_powl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(powl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp37, R_MIPS_JALR, powl ; C_CC_FMT-NEXT: .Ltmp37: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall2_powl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_powl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_powl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(powl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp37, R_MIPS_JALR, powl ; CMP_CC_FMT-NEXT: .Ltmp37: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %call = tail call fp128 @powl(fp128 %0, fp128 %1) nounwind ret fp128 %call } declare fp128 @powl(fp128, fp128) #2 define fp128 @libcall2_fmodl() { ; C_CC_FMT-LABEL: libcall2_fmodl: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_fmodl))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_fmodl))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(fmodl)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp38, R_MIPS_JALR, fmodl ; C_CC_FMT-NEXT: .Ltmp38: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall2_fmodl: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall2_fmodl))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_fmodl))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(fmodl)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp38, R_MIPS_JALR, fmodl ; CMP_CC_FMT-NEXT: .Ltmp38: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld1, align 16 %call = tail call fp128 @fmodl(fp128 %0, fp128 %1) nounwind ret fp128 %call } declare fp128 @fmodl(fp128, fp128) #2 define fp128 @libcall3_fmal() { ; C_CC_FMT-LABEL: libcall3_fmal: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall3_fmal))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall3_fmal))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $6, 0($1) ; C_CC_FMT-NEXT: ld $7, 8($1) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld2)($gp) ; C_CC_FMT-NEXT: ld $8, 0($1) ; C_CC_FMT-NEXT: ld $9, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(fmal)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp39, R_MIPS_JALR, fmal ; C_CC_FMT-NEXT: .Ltmp39: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: libcall3_fmal: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(libcall3_fmal))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(libcall3_fmal))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $6, 0($1) ; CMP_CC_FMT-NEXT: ld $7, 8($1) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld2)($gp) ; CMP_CC_FMT-NEXT: ld $8, 0($1) ; CMP_CC_FMT-NEXT: ld $9, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(fmal)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp39, R_MIPS_JALR, fmal ; CMP_CC_FMT-NEXT: .Ltmp39: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld0, align 16 %1 = load fp128, ptr @gld2, align 16 %2 = load fp128, ptr @gld1, align 16 %3 = tail call fp128 @llvm.fma.f128(fp128 %0, fp128 %2, fp128 %1) ret fp128 %3 } declare fp128 @llvm.fma.f128(fp128, fp128, fp128) #4 define i32 @cmp_lt(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_lt: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_lt))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_lt))) ; C_CC_FMT-NEXT: ld $25, %call16(__lttf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp40, R_MIPS_JALR, __lttf2 ; C_CC_FMT-NEXT: .Ltmp40: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: slti $2, $2, 0 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_lt: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_lt))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_lt))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__lttf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp40, R_MIPS_JALR, __lttf2 ; CMP_CC_FMT-NEXT: .Ltmp40: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: slti $2, $2, 0 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp olt fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define i32 @cmp_le(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_le: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_le))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_le))) ; C_CC_FMT-NEXT: ld $25, %call16(__letf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp41, R_MIPS_JALR, __letf2 ; C_CC_FMT-NEXT: .Ltmp41: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: slti $2, $2, 1 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_le: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_le))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_le))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__letf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp41, R_MIPS_JALR, __letf2 ; CMP_CC_FMT-NEXT: .Ltmp41: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: slti $2, $2, 1 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp ole fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define i32 @cmp_gt(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_gt: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_gt))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_gt))) ; C_CC_FMT-NEXT: ld $25, %call16(__gttf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp42, R_MIPS_JALR, __gttf2 ; C_CC_FMT-NEXT: .Ltmp42: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: slt $2, $zero, $2 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_gt: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_gt))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_gt))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__gttf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp42, R_MIPS_JALR, __gttf2 ; CMP_CC_FMT-NEXT: .Ltmp42: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: slt $2, $zero, $2 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp ogt fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define i32 @cmp_ge(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_ge: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_ge))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ge))) ; C_CC_FMT-NEXT: ld $25, %call16(__getf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp43, R_MIPS_JALR, __getf2 ; C_CC_FMT-NEXT: .Ltmp43: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: addiu $1, $zero, -1 ; C_CC_FMT-NEXT: slt $2, $1, $2 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_ge: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_ge))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ge))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__getf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp43, R_MIPS_JALR, __getf2 ; CMP_CC_FMT-NEXT: .Ltmp43: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: addiu $1, $zero, -1 ; CMP_CC_FMT-NEXT: slt $2, $1, $2 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp oge fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define i32 @cmp_eq(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_eq: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_eq))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_eq))) ; C_CC_FMT-NEXT: ld $25, %call16(__eqtf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp44, R_MIPS_JALR, __eqtf2 ; C_CC_FMT-NEXT: .Ltmp44: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: sltiu $2, $2, 1 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_eq: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_eq))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_eq))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__eqtf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp44, R_MIPS_JALR, __eqtf2 ; CMP_CC_FMT-NEXT: .Ltmp44: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: sltiu $2, $2, 1 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp oeq fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define i32 @cmp_ne(fp128 %a, fp128 %b) { ; C_CC_FMT-LABEL: cmp_ne: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_ne))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ne))) ; C_CC_FMT-NEXT: ld $25, %call16(__netf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp45, R_MIPS_JALR, __netf2 ; C_CC_FMT-NEXT: .Ltmp45: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: sltu $2, $zero, $2 ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: cmp_ne: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(cmp_ne))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ne))) ; CMP_CC_FMT-NEXT: ld $25, %call16(__netf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp45, R_MIPS_JALR, __netf2 ; CMP_CC_FMT-NEXT: .Ltmp45: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: sltu $2, $zero, $2 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp une fp128 %a, %b %conv = zext i1 %cmp to i32 ret i32 %conv } define fp128 @load_LD_LD() { ; C_CC_FMT-LABEL: load_LD_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(load_LD_LD))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($1) ; C_CC_FMT-NEXT: ld $2, 0($1) ; C_CC_FMT-NEXT: ld $4, 8($1) ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: load_LD_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(load_LD_LD))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($1) ; CMP_CC_FMT-NEXT: ld $2, 0($1) ; CMP_CC_FMT-NEXT: ld $4, 8($1) ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld1, align 16 ret fp128 %0 } define fp128 @load_LD_float() { ; C_CC_FMT-LABEL: load_LD_float: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_float))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_float))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gf1)($gp) ; C_CC_FMT-NEXT: lw $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(__extendsftf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp46, R_MIPS_JALR, __extendsftf2 ; C_CC_FMT-NEXT: .Ltmp46: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: load_LD_float: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_float))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_float))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gf1)($gp) ; CMP_CC_FMT-NEXT: lw $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__extendsftf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp46, R_MIPS_JALR, __extendsftf2 ; CMP_CC_FMT-NEXT: .Ltmp46: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load float, ptr @gf1, align 4 %conv = fpext float %0 to fp128 ret fp128 %conv } define fp128 @load_LD_double() { ; C_CC_FMT-LABEL: load_LD_double: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_double))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_double))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gd1)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $25, %call16(__extenddftf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp47, R_MIPS_JALR, __extenddftf2 ; C_CC_FMT-NEXT: .Ltmp47: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: load_LD_double: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(load_LD_double))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_double))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gd1)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__extenddftf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp47, R_MIPS_JALR, __extenddftf2 ; CMP_CC_FMT-NEXT: .Ltmp47: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load double, ptr @gd1, align 8 %conv = fpext double %0 to fp128 ret fp128 %conv } define void @store_LD_LD() { ; C_CC_FMT-LABEL: store_LD_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(store_LD_LD))) ; C_CC_FMT-NEXT: ld $2, %got_disp(gld1)($1) ; C_CC_FMT-NEXT: ld $3, 8($2) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld0)($1) ; C_CC_FMT-NEXT: sd $3, 8($1) ; C_CC_FMT-NEXT: ld $2, 0($2) ; C_CC_FMT-NEXT: sd $2, 0($1) ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: store_LD_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $1, $1, %lo(%neg(%gp_rel(store_LD_LD))) ; CMP_CC_FMT-NEXT: ld $2, %got_disp(gld1)($1) ; CMP_CC_FMT-NEXT: ld $3, 8($2) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld0)($1) ; CMP_CC_FMT-NEXT: sd $3, 8($1) ; CMP_CC_FMT-NEXT: ld $2, 0($2) ; CMP_CC_FMT-NEXT: sd $2, 0($1) ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld1, align 16 store fp128 %0, ptr @gld0, align 16 ret void } define void @store_LD_float() { ; C_CC_FMT-LABEL: store_LD_float: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_float))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_float))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__trunctfsf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp48, R_MIPS_JALR, __trunctfsf2 ; C_CC_FMT-NEXT: .Ltmp48: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $1, %got_disp(gf1)($gp) ; C_CC_FMT-NEXT: sw $2, 0($1) ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: store_LD_float: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_float))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_float))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__trunctfsf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp48, R_MIPS_JALR, __trunctfsf2 ; CMP_CC_FMT-NEXT: .Ltmp48: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gf1)($gp) ; CMP_CC_FMT-NEXT: sw $2, 0($1) ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld1, align 16 %conv = fptrunc fp128 %0 to float store float %conv, ptr @gf1, align 4 ret void } ; FIXME: This sll works around an implementation detail in the code generator ; (setcc's result is i32 so bits 32-63 are undefined). It's not really ; needed. define void @store_LD_double() { ; C_CC_FMT-LABEL: store_LD_double: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; C_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_double))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_double))) ; C_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; C_CC_FMT-NEXT: ld $4, 0($1) ; C_CC_FMT-NEXT: ld $5, 8($1) ; C_CC_FMT-NEXT: ld $25, %call16(__trunctfdf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp49, R_MIPS_JALR, __trunctfdf2 ; C_CC_FMT-NEXT: .Ltmp49: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: ld $1, %got_disp(gd1)($gp) ; C_CC_FMT-NEXT: sd $2, 0($1) ; C_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: store_LD_double: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -16 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 16 ; CMP_CC_FMT-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(store_LD_double))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_double))) ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gld1)($gp) ; CMP_CC_FMT-NEXT: ld $4, 0($1) ; CMP_CC_FMT-NEXT: ld $5, 8($1) ; CMP_CC_FMT-NEXT: ld $25, %call16(__trunctfdf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp49, R_MIPS_JALR, __trunctfdf2 ; CMP_CC_FMT-NEXT: .Ltmp49: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: ld $1, %got_disp(gd1)($gp) ; CMP_CC_FMT-NEXT: sd $2, 0($1) ; CMP_CC_FMT-NEXT: ld $gp, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 16 ; CMP_CC_FMT-NEXT: jrc $ra entry: %0 = load fp128, ptr @gld1, align 16 %conv = fptrunc fp128 %0 to double store double %conv, ptr @gd1, align 8 ret void } define fp128 @select_LD(i32 signext %a, i64, fp128 %b, fp128 %c) { ; C_CC_FMT-LABEL: select_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: movn $8, $6, $4 ; C_CC_FMT-NEXT: movn $9, $7, $4 ; C_CC_FMT-NEXT: move $2, $8 ; C_CC_FMT-NEXT: move $4, $9 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: select_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: sll $1, $4, 0 ; CMP_CC_FMT-NEXT: seleqz $2, $8, $1 ; CMP_CC_FMT-NEXT: selnez $3, $6, $1 ; CMP_CC_FMT-NEXT: or $2, $3, $2 ; CMP_CC_FMT-NEXT: seleqz $3, $9, $1 ; CMP_CC_FMT-NEXT: selnez $1, $7, $1 ; CMP_CC_FMT-NEXT: or $4, $1, $3 ; CMP_CC_FMT-NEXT: jrc $ra entry: %tobool = icmp ne i32 %a, 0 %cond = select i1 %tobool, fp128 %b, fp128 %c ret fp128 %cond } define fp128 @selectCC_LD(fp128 %a, fp128 %b, fp128 %c, fp128 %d) { ; C_CC_FMT-LABEL: selectCC_LD: ; C_CC_FMT: # %bb.0: # %entry ; C_CC_FMT-NEXT: daddiu $sp, $sp, -48 ; C_CC_FMT-NEXT: .cfi_def_cfa_offset 48 ; C_CC_FMT-NEXT: sd $ra, 40($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $gp, 32($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $19, 24($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $18, 16($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $17, 8($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: sd $16, 0($sp) # 8-byte Folded Spill ; C_CC_FMT-NEXT: .cfi_offset 31, -8 ; C_CC_FMT-NEXT: .cfi_offset 28, -16 ; C_CC_FMT-NEXT: .cfi_offset 19, -24 ; C_CC_FMT-NEXT: .cfi_offset 18, -32 ; C_CC_FMT-NEXT: .cfi_offset 17, -40 ; C_CC_FMT-NEXT: .cfi_offset 16, -48 ; C_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(selectCC_LD))) ; C_CC_FMT-NEXT: daddu $1, $1, $25 ; C_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(selectCC_LD))) ; C_CC_FMT-NEXT: move $16, $11 ; C_CC_FMT-NEXT: move $17, $10 ; C_CC_FMT-NEXT: move $18, $9 ; C_CC_FMT-NEXT: move $19, $8 ; C_CC_FMT-NEXT: ld $25, %call16(__gttf2)($gp) ; C_CC_FMT-NEXT: .reloc .Ltmp50, R_MIPS_JALR, __gttf2 ; C_CC_FMT-NEXT: .Ltmp50: ; C_CC_FMT-NEXT: jalr $25 ; C_CC_FMT-NEXT: nop ; C_CC_FMT-NEXT: slti $1, $2, 1 ; C_CC_FMT-NEXT: movz $17, $19, $1 ; C_CC_FMT-NEXT: movz $16, $18, $1 ; C_CC_FMT-NEXT: move $2, $17 ; C_CC_FMT-NEXT: move $4, $16 ; C_CC_FMT-NEXT: ld $16, 0($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $17, 8($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $18, 16($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $19, 24($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $gp, 32($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: ld $ra, 40($sp) # 8-byte Folded Reload ; C_CC_FMT-NEXT: daddiu $sp, $sp, 48 ; C_CC_FMT-NEXT: jr $ra ; C_CC_FMT-NEXT: nop ; ; CMP_CC_FMT-LABEL: selectCC_LD: ; CMP_CC_FMT: # %bb.0: # %entry ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, -48 ; CMP_CC_FMT-NEXT: .cfi_def_cfa_offset 48 ; CMP_CC_FMT-NEXT: sd $ra, 40($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $gp, 32($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $19, 24($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $18, 16($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $17, 8($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: sd $16, 0($sp) # 8-byte Folded Spill ; CMP_CC_FMT-NEXT: .cfi_offset 31, -8 ; CMP_CC_FMT-NEXT: .cfi_offset 28, -16 ; CMP_CC_FMT-NEXT: .cfi_offset 19, -24 ; CMP_CC_FMT-NEXT: .cfi_offset 18, -32 ; CMP_CC_FMT-NEXT: .cfi_offset 17, -40 ; CMP_CC_FMT-NEXT: .cfi_offset 16, -48 ; CMP_CC_FMT-NEXT: lui $1, %hi(%neg(%gp_rel(selectCC_LD))) ; CMP_CC_FMT-NEXT: daddu $1, $1, $25 ; CMP_CC_FMT-NEXT: daddiu $gp, $1, %lo(%neg(%gp_rel(selectCC_LD))) ; CMP_CC_FMT-NEXT: move $16, $11 ; CMP_CC_FMT-NEXT: move $17, $10 ; CMP_CC_FMT-NEXT: move $18, $9 ; CMP_CC_FMT-NEXT: move $19, $8 ; CMP_CC_FMT-NEXT: ld $25, %call16(__gttf2)($gp) ; CMP_CC_FMT-NEXT: .reloc .Ltmp50, R_MIPS_JALR, __gttf2 ; CMP_CC_FMT-NEXT: .Ltmp50: ; CMP_CC_FMT-NEXT: jalrc $25 ; CMP_CC_FMT-NEXT: slt $1, $zero, $2 ; CMP_CC_FMT-NEXT: sll $1, $1, 0 ; CMP_CC_FMT-NEXT: seleqz $2, $17, $1 ; CMP_CC_FMT-NEXT: selnez $3, $19, $1 ; CMP_CC_FMT-NEXT: or $2, $3, $2 ; CMP_CC_FMT-NEXT: seleqz $3, $16, $1 ; CMP_CC_FMT-NEXT: selnez $1, $18, $1 ; CMP_CC_FMT-NEXT: or $4, $1, $3 ; CMP_CC_FMT-NEXT: ld $16, 0($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $17, 8($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $18, 16($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $19, 24($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $gp, 32($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: ld $ra, 40($sp) # 8-byte Folded Reload ; CMP_CC_FMT-NEXT: daddiu $sp, $sp, 48 ; CMP_CC_FMT-NEXT: jrc $ra entry: %cmp = fcmp ogt fp128 %a, %b %cond = select i1 %cmp, fp128 %c, fp128 %d ret fp128 %cond } ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: ; ALL: {{.*}} ; PRER6: {{.*}} ; R2R6: {{.*}} ; R6: {{.*}}