blob: fdea63a4d054e7196292f778159a78dc1793faeb [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -mtriple=armv7 | FileCheck %s
define double @maximum_double(double %x, double %y) nounwind {
; CHECK-LABEL: maximum_double:
; CHECK: @ %bb.0:
; CHECK-NEXT: vmov d16, r0, r1
; CHECK-NEXT: vmov d17, r2, r3
; CHECK-NEXT: vcvt.f32.f64 s0, d16
; CHECK-NEXT: vmov r0, s0
; CHECK-NEXT: vcmp.f64 d16, d17
; CHECK-NEXT: vorr d18, d17, d17
; CHECK-NEXT: clz r0, r0
; CHECK-NEXT: lsrs r0, r0, #5
; CHECK-NEXT: vmovne.f64 d18, d16
; CHECK-NEXT: vmrs APSR_nzcv, fpscr
; CHECK-NEXT: vmovgt.f64 d17, d16
; CHECK-NEXT: vldr d16, .LCPI0_0
; CHECK-NEXT: vmovvs.f64 d17, d16
; CHECK-NEXT: vmoveq.f64 d17, d18
; CHECK-NEXT: vmov r0, r1, d17
; CHECK-NEXT: bx lr
; CHECK-NEXT: .p2align 3
; CHECK-NEXT: @ %bb.1:
; CHECK-NEXT: .LCPI0_0:
; CHECK-NEXT: .long 0 @ double NaN
; CHECK-NEXT: .long 2146959360
%res = call double @llvm.maximum(double %x, double %y)
ret double %res
}