blob: aeea9ccb80b8d8e80cb5e734ec142aa7da3f3f0d [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc -mtriple=csky < %s | FileCheck %s
declare float @llvm.sqrt.f32(float)
declare double @llvm.sqrt.f64(double)
define float @sqrt_f32(float %a) {
; CHECK-LABEL: sqrt_f32:
; CHECK: # %bb.0:
; CHECK-NEXT: subi16 sp, sp, 4
; CHECK-NEXT: .cfi_def_cfa_offset 4
; CHECK-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill
; CHECK-NEXT: .cfi_offset lr, -4
; CHECK-NEXT: subi16 sp, sp, 4
; CHECK-NEXT: .cfi_def_cfa_offset 8
; CHECK-NEXT: lrw a1, [.LCPI0_0]
; CHECK-NEXT: jsr16 a1
; CHECK-NEXT: addi16 sp, sp, 4
; CHECK-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload
; CHECK-NEXT: addi16 sp, sp, 4
; CHECK-NEXT: rts16
; CHECK-NEXT: .p2align 1
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: .p2align 2, 0x0
; CHECK-NEXT: .LCPI0_0:
; CHECK-NEXT: .long sqrtf
%r = call float @llvm.sqrt.f32(float %a)
ret float %r
}
define double @sqrt_f64(double %a) {
; CHECK-LABEL: sqrt_f64:
; CHECK: # %bb.0:
; CHECK-NEXT: subi16 sp, sp, 4
; CHECK-NEXT: .cfi_def_cfa_offset 4
; CHECK-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill
; CHECK-NEXT: .cfi_offset lr, -4
; CHECK-NEXT: subi16 sp, sp, 4
; CHECK-NEXT: .cfi_def_cfa_offset 8
; CHECK-NEXT: lrw a2, [.LCPI1_0]
; CHECK-NEXT: jsr16 a2
; CHECK-NEXT: addi16 sp, sp, 4
; CHECK-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload
; CHECK-NEXT: addi16 sp, sp, 4
; CHECK-NEXT: rts16
; CHECK-NEXT: .p2align 1
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: .p2align 2, 0x0
; CHECK-NEXT: .LCPI1_0:
; CHECK-NEXT: .long sqrt
%r = call double @llvm.sqrt.f64(double %a)
ret double %r
}