Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
452 changes: 129 additions & 323 deletions llvm/test/CodeGen/AArch64/fsincos.ll

Large diffs are not rendered by default.

488 changes: 94 additions & 394 deletions llvm/test/CodeGen/AArch64/llvm.frexp.ll

Large diffs are not rendered by default.

106 changes: 24 additions & 82 deletions llvm/test/CodeGen/AArch64/llvm.sincos.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@
; RUN: llc -mtriple=aarch64-gnu-linux < %s | FileCheck -check-prefixes=CHECK %s
; RUN: llc -mtriple=aarch64-none-linux < %s | FileCheck -check-prefixes=NO-LIBCALL %s

define { half, half } @test_sincos_f16(half %a) {
define { half, half } @test_sincos_f16(half %a) nounwind {
; CHECK-LABEL: test_sincos_f16:
; CHECK: // %bb.0:
; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: fcvt s0, h0
; CHECK-NEXT: add x0, sp, #12
; CHECK-NEXT: add x1, sp, #8
Expand All @@ -21,12 +19,8 @@ define { half, half } @test_sincos_f16(half %a) {
; NO-LIBCALL-LABEL: test_sincos_f16:
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 32
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: .cfi_offset b8, -24
; NO-LIBCALL-NEXT: .cfi_offset b9, -32
; NO-LIBCALL-NEXT: fcvt s8, h0
; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: fmov s0, s8
; NO-LIBCALL-NEXT: bl sinf
; NO-LIBCALL-NEXT: fcvt h9, s0
Expand All @@ -42,12 +36,10 @@ define { half, half } @test_sincos_f16(half %a) {
ret { half, half } %result
}

define half @test_sincos_f16_only_use_sin(half %a) {
define half @test_sincos_f16_only_use_sin(half %a) nounwind {
; CHECK-LABEL: test_sincos_f16_only_use_sin:
; CHECK: // %bb.0:
; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: fcvt s0, h0
; CHECK-NEXT: add x0, sp, #12
; CHECK-NEXT: add x1, sp, #8
Expand All @@ -60,8 +52,6 @@ define half @test_sincos_f16_only_use_sin(half %a) {
; NO-LIBCALL-LABEL: test_sincos_f16_only_use_sin:
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 16
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: fcvt s0, h0
; NO-LIBCALL-NEXT: bl sinf
; NO-LIBCALL-NEXT: fcvt h0, s0
Expand All @@ -72,12 +62,10 @@ define half @test_sincos_f16_only_use_sin(half %a) {
ret half %result.0
}

define half @test_sincos_f16_only_use_cos(half %a) {
define half @test_sincos_f16_only_use_cos(half %a) nounwind {
; CHECK-LABEL: test_sincos_f16_only_use_cos:
; CHECK: // %bb.0:
; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: fcvt s0, h0
; CHECK-NEXT: add x0, sp, #12
; CHECK-NEXT: add x1, sp, #8
Expand All @@ -90,8 +78,6 @@ define half @test_sincos_f16_only_use_cos(half %a) {
; NO-LIBCALL-LABEL: test_sincos_f16_only_use_cos:
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 16
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: fcvt s0, h0
; NO-LIBCALL-NEXT: bl cosf
; NO-LIBCALL-NEXT: fcvt h0, s0
Expand All @@ -102,18 +88,16 @@ define half @test_sincos_f16_only_use_cos(half %a) {
ret half %result.1
}

define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) {
define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) nounwind {
; CHECK-LABEL: test_sincos_v2f16:
; CHECK: // %bb.0:
; CHECK-NEXT: sub sp, sp, #64
; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 64
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
; CHECK-NEXT: mov h1, v0.h[1]
; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill
; CHECK-NEXT: add x0, sp, #36
; CHECK-NEXT: add x1, sp, #32
; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill
; CHECK-NEXT: fcvt s0, h1
; CHECK-NEXT: bl sincosf
; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload
Expand Down Expand Up @@ -160,18 +144,12 @@ define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) {
; NO-LIBCALL-LABEL: test_sincos_v2f16:
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: sub sp, sp, #80
; NO-LIBCALL-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 80
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: .cfi_offset b8, -24
; NO-LIBCALL-NEXT: .cfi_offset b9, -32
; NO-LIBCALL-NEXT: .cfi_offset b10, -40
; NO-LIBCALL-NEXT: .cfi_offset b11, -48
; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0
; NO-LIBCALL-NEXT: mov h1, v0.h[1]
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: fcvt s8, h1
; NO-LIBCALL-NEXT: fmov s0, s8
; NO-LIBCALL-NEXT: bl sinf
Expand Down Expand Up @@ -237,12 +215,10 @@ define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) {
ret { <2 x half>, <2 x half> } %result
}

define { float, float } @test_sincos_f32(float %a) {
define { float, float } @test_sincos_f32(float %a) nounwind {
; CHECK-LABEL: test_sincos_f32:
; CHECK: // %bb.0:
; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: add x0, sp, #12
; CHECK-NEXT: add x1, sp, #8
; CHECK-NEXT: bl sincosf
Expand All @@ -254,10 +230,6 @@ define { float, float } @test_sincos_f32(float %a) {
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 32
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: .cfi_offset b8, -24
; NO-LIBCALL-NEXT: .cfi_offset b9, -32
; NO-LIBCALL-NEXT: fmov s8, s0
; NO-LIBCALL-NEXT: bl sinf
; NO-LIBCALL-NEXT: fmov s9, s0
Expand All @@ -272,21 +244,15 @@ define { float, float } @test_sincos_f32(float %a) {
ret { float, float } %result
}

define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) {
define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) nounwind {
; CHECK-LABEL: test_sincos_v3f32:
; CHECK: // %bb.0:
; CHECK-NEXT: sub sp, sp, #80
; CHECK-NEXT: add x0, sp, #20
; CHECK-NEXT: add x1, sp, #16
; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill
; CHECK-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill
; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 80
; CHECK-NEXT: .cfi_offset w19, -8
; CHECK-NEXT: .cfi_offset w20, -16
; CHECK-NEXT: .cfi_offset w21, -24
; CHECK-NEXT: .cfi_offset w22, -32
; CHECK-NEXT: .cfi_offset w30, -48
; CHECK-NEXT: add x0, sp, #20
; CHECK-NEXT: add x1, sp, #16
; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill
; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0
; CHECK-NEXT: bl sincosf
Expand Down Expand Up @@ -319,13 +285,9 @@ define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) {
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: sub sp, sp, #80
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 80
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: .cfi_offset b8, -24
; NO-LIBCALL-NEXT: .cfi_offset b9, -32
; NO-LIBCALL-NEXT: mov s8, v0.s[1]
; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: fmov s0, s8
; NO-LIBCALL-NEXT: bl sinf
; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0
Expand Down Expand Up @@ -369,19 +331,15 @@ define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) {
ret { <3 x float>, <3 x float> } %result
}

define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) {
define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) nounwind {
; CHECK-LABEL: test_sincos_v2f32:
; CHECK: // %bb.0:
; CHECK-NEXT: sub sp, sp, #64
; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill
; CHECK-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 64
; CHECK-NEXT: .cfi_offset w19, -8
; CHECK-NEXT: .cfi_offset w20, -16
; CHECK-NEXT: .cfi_offset w30, -32
; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
; CHECK-NEXT: add x0, sp, #44
; CHECK-NEXT: add x1, sp, #40
; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill
; CHECK-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill
; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill
; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0
; CHECK-NEXT: bl sincosf
Expand All @@ -406,13 +364,10 @@ define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) {
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: sub sp, sp, #64
; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 64
; NO-LIBCALL-NEXT: .cfi_offset w30, -8
; NO-LIBCALL-NEXT: .cfi_offset b8, -16
; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0
; NO-LIBCALL-NEXT: mov s8, v0.s[1]
; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: fmov s0, s8
; NO-LIBCALL-NEXT: bl sinf
; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0
Expand Down Expand Up @@ -444,15 +399,13 @@ define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) {
ret { <2 x float>, <2 x float> } %result
}

define { double, double } @test_sincos_f64(double %a) {
define { double, double } @test_sincos_f64(double %a) nounwind {
; CHECK-LABEL: test_sincos_f64:
; CHECK: // %bb.0:
; CHECK-NEXT: sub sp, sp, #32
; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 32
; CHECK-NEXT: .cfi_offset w30, -16
; CHECK-NEXT: add x0, sp, #24
; CHECK-NEXT: add x1, sp, #8
; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; CHECK-NEXT: bl sincos
; CHECK-NEXT: ldr d0, [sp, #24]
; CHECK-NEXT: ldr d1, [sp, #8]
Expand All @@ -464,10 +417,6 @@ define { double, double } @test_sincos_f64(double %a) {
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 32
; NO-LIBCALL-NEXT: .cfi_offset w30, -16
; NO-LIBCALL-NEXT: .cfi_offset b8, -24
; NO-LIBCALL-NEXT: .cfi_offset b9, -32
; NO-LIBCALL-NEXT: fmov d8, d0
; NO-LIBCALL-NEXT: bl sin
; NO-LIBCALL-NEXT: fmov d9, d0
Expand All @@ -482,18 +431,14 @@ define { double, double } @test_sincos_f64(double %a) {
ret { double, double } %result
}

define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) {
define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) nounwind {
; CHECK-LABEL: test_sincos_v2f64:
; CHECK: // %bb.0:
; CHECK-NEXT: sub sp, sp, #80
; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill
; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill
; CHECK-NEXT: .cfi_def_cfa_offset 80
; CHECK-NEXT: .cfi_offset w19, -8
; CHECK-NEXT: .cfi_offset w20, -16
; CHECK-NEXT: .cfi_offset w30, -32
; CHECK-NEXT: add x0, sp, #56
; CHECK-NEXT: add x1, sp, #40
; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill
; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill
; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill
; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0
; CHECK-NEXT: bl sincos
Expand All @@ -517,12 +462,9 @@ define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) {
; NO-LIBCALL: // %bb.0:
; NO-LIBCALL-NEXT: sub sp, sp, #64
; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: .cfi_def_cfa_offset 64
; NO-LIBCALL-NEXT: .cfi_offset w30, -8
; NO-LIBCALL-NEXT: .cfi_offset b8, -16
; NO-LIBCALL-NEXT: mov d8, v0.d[1]
; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill
; NO-LIBCALL-NEXT: fmov d0, d8
; NO-LIBCALL-NEXT: bl sin
; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0
Expand Down
32 changes: 6 additions & 26 deletions llvm/test/CodeGen/Mips/ldexp.ll
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
; RUN: llc -mtriple=mips-- -mattr=+soft-float < %s | FileCheck -check-prefix=SOFT %s

define float @ldexp_f32(i8 zeroext %x) {
define float @ldexp_f32(i8 zeroext %x) nounwind {
; SOFT-LABEL: ldexp_f32:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -24
; SOFT-NEXT: .cfi_def_cfa_offset 24
; SOFT-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: move $5, $4
; SOFT-NEXT: jal ldexpf
; SOFT-NEXT: lui $4, 16256
Expand All @@ -19,13 +17,11 @@ define float @ldexp_f32(i8 zeroext %x) {
ret float %ldexp
}

define double @ldexp_f64(i8 zeroext %x) {
define double @ldexp_f64(i8 zeroext %x) nounwind {
; SOFT-LABEL: ldexp_f64:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -24
; SOFT-NEXT: .cfi_def_cfa_offset 24
; SOFT-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: move $6, $4
; SOFT-NEXT: lui $4, 16368
; SOFT-NEXT: jal ldexp
Expand All @@ -38,17 +34,13 @@ define double @ldexp_f64(i8 zeroext %x) {
ret double %ldexp
}

define <2 x float> @ldexp_v2f32(<2 x float> %val, <2 x i32> %exp) {
define <2 x float> @ldexp_v2f32(<2 x float> %val, <2 x i32> %exp) nounwind {
; SOFT-LABEL: ldexp_v2f32:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -32
; SOFT-NEXT: .cfi_def_cfa_offset 32
; SOFT-NEXT: sw $ra, 28($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $17, 24($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $16, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: .cfi_offset 17, -8
; SOFT-NEXT: .cfi_offset 16, -12
; SOFT-NEXT: move $16, $6
; SOFT-NEXT: move $17, $4
; SOFT-NEXT: lw $5, 52($sp)
Expand All @@ -68,23 +60,16 @@ define <2 x float> @ldexp_v2f32(<2 x float> %val, <2 x i32> %exp) {
ret <2 x float> %1
}

define <4 x float> @ldexp_v4f32(<4 x float> %val, <4 x i32> %exp) {
define <4 x float> @ldexp_v4f32(<4 x float> %val, <4 x i32> %exp) nounwind {
; SOFT-LABEL: ldexp_v4f32:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -40
; SOFT-NEXT: .cfi_def_cfa_offset 40
; SOFT-NEXT: sw $ra, 36($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $20, 32($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $19, 28($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $18, 24($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $17, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $16, 16($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: .cfi_offset 20, -8
; SOFT-NEXT: .cfi_offset 19, -12
; SOFT-NEXT: .cfi_offset 18, -16
; SOFT-NEXT: .cfi_offset 17, -20
; SOFT-NEXT: .cfi_offset 16, -24
; SOFT-NEXT: move $16, $7
; SOFT-NEXT: move $18, $4
; SOFT-NEXT: lw $4, 60($sp)
Expand Down Expand Up @@ -118,15 +103,12 @@ define <4 x float> @ldexp_v4f32(<4 x float> %val, <4 x i32> %exp) {
ret <4 x float> %1
}

define half @ldexp_f16(half %arg0, i32 %arg1) {
define half @ldexp_f16(half %arg0, i32 %arg1) nounwind {
; SOFT-LABEL: ldexp_f16:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -24
; SOFT-NEXT: .cfi_def_cfa_offset 24
; SOFT-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: sw $16, 16($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: .cfi_offset 16, -8
; SOFT-NEXT: move $16, $5
; SOFT-NEXT: jal __extendhfsf2
; SOFT-NEXT: andi $4, $4, 65535
Expand All @@ -143,13 +125,11 @@ define half @ldexp_f16(half %arg0, i32 %arg1) {
ret half %ldexp
}

define x86_fp80 @ldexp_f80(x86_fp80 %arg0, i32 %arg1) {
define x86_fp80 @ldexp_f80(x86_fp80 %arg0, i32 %arg1) nounwind {
; SOFT-LABEL: ldexp_f80:
; SOFT: # %bb.0:
; SOFT-NEXT: addiu $sp, $sp, -24
; SOFT-NEXT: .cfi_def_cfa_offset 24
; SOFT-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
; SOFT-NEXT: .cfi_offset 31, -4
; SOFT-NEXT: jal ldexpl
; SOFT-NEXT: andi $4, $4, 65535
; SOFT-NEXT: move $4, $2
Expand Down
Loading
Loading