blob: 6dfb466047abb9b37947b8c11b19264aecef86eb [file] [log] [blame] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=arm-eabihf -mattr=+neon < %s | FileCheck -check-prefixes=CHECK-NO_NEON %s
; RUN: llc -mtriple=arm-eabihf -mattr=+neon,+neonfp < %s | FileCheck -check-prefixes=CHECK-NEON %s
define float @max_f32(float, float) {
; CHECK-NO_NEON-LABEL: max_f32:
; CHECK-NO_NEON: @ %bb.0:
; CHECK-NO_NEON-NEXT: vmov.f32 s2, s1
; CHECK-NO_NEON-NEXT: @ kill: def $s0 killed $s0 def $d0
; CHECK-NO_NEON-NEXT: vmax.f32 d0, d1, d0
; CHECK-NO_NEON-NEXT: @ kill: def $s0 killed $s0 killed $d0
; CHECK-NO_NEON-NEXT: mov pc, lr
;
; CHECK-NEON-LABEL: max_f32:
; CHECK-NEON: @ %bb.0:
; CHECK-NEON-NEXT: vmov.f32 s2, s1
; CHECK-NEON-NEXT: @ kill: def $s0 killed $s0 def $d0
; CHECK-NEON-NEXT: vmax.f32 d0, d1, d0
; CHECK-NEON-NEXT: @ kill: def $s0 killed $s0 killed $d0
; CHECK-NEON-NEXT: mov pc, lr
%3 = call nnan float @llvm.maxnum.f32(float %1, float %0)
ret float %3
}
declare float @llvm.maxnum.f32(float, float) #1
define float @min_f32(float, float) {
; CHECK-NO_NEON-LABEL: min_f32:
; CHECK-NO_NEON: @ %bb.0:
; CHECK-NO_NEON-NEXT: vmov.f32 s2, s1
; CHECK-NO_NEON-NEXT: @ kill: def $s0 killed $s0 def $d0
; CHECK-NO_NEON-NEXT: vmin.f32 d0, d1, d0
; CHECK-NO_NEON-NEXT: @ kill: def $s0 killed $s0 killed $d0
; CHECK-NO_NEON-NEXT: mov pc, lr
;
; CHECK-NEON-LABEL: min_f32:
; CHECK-NEON: @ %bb.0:
; CHECK-NEON-NEXT: vmov.f32 s2, s1
; CHECK-NEON-NEXT: @ kill: def $s0 killed $s0 def $d0
; CHECK-NEON-NEXT: vmin.f32 d0, d1, d0
; CHECK-NEON-NEXT: @ kill: def $s0 killed $s0 killed $d0
; CHECK-NEON-NEXT: mov pc, lr
%3 = call nnan float @llvm.minnum.f32(float %1, float %0)
ret float %3
}
declare float @llvm.minnum.f32(float, float) #1