; 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: vcmp.f32 s1, s0 ; CHECK-NO_NEON-NEXT: vmrs APSR_nzcv, fpscr ; CHECK-NO_NEON-NEXT: vmovgt.f32 s0, s1 ; CHECK-NO_NEON-NEXT: mov pc, lr ; ; CHECK-NEON-LABEL: max_f32: ; CHECK-NEON: @ %bb.0: ; CHECK-NEON-NEXT: vcmp.f32 s1, s0 ; CHECK-NEON-NEXT: vmrs APSR_nzcv, fpscr ; CHECK-NEON-NEXT: vmovgt.f32 s0, s1 ; 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: vcmp.f32 s1, s0 ; CHECK-NO_NEON-NEXT: vmrs APSR_nzcv, fpscr ; CHECK-NO_NEON-NEXT: vmovlt.f32 s0, s1 ; CHECK-NO_NEON-NEXT: mov pc, lr ; ; CHECK-NEON-LABEL: min_f32: ; CHECK-NEON: @ %bb.0: ; CHECK-NEON-NEXT: vcmp.f32 s1, s0 ; CHECK-NEON-NEXT: vmrs APSR_nzcv, fpscr ; CHECK-NEON-NEXT: vmovlt.f32 s0, s1 ; 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