1910ca0e4SSam Elliott; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2910ca0e4SSam Elliott; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs \ 384bacb18SShao-Ce SUN; RUN: < %s | FileCheck %s 4910ca0e4SSam Elliott; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs \ 584bacb18SShao-Ce SUN; RUN: < %s | FileCheck %s 6*fe558efeSShao-Ce SUN; RUN: llc -mtriple=riscv32 -mattr=+zfinx -target-abi ilp32 -verify-machineinstrs \ 7*fe558efeSShao-Ce SUN; RUN: < %s | FileCheck --check-prefix=CHECKZFINX %s 8*fe558efeSShao-Ce SUN; RUN: llc -mtriple=riscv64 -mattr=+zfinx -target-abi lp64 -verify-machineinstrs \ 9*fe558efeSShao-Ce SUN; RUN: < %s | FileCheck --check-prefix=CHECKZFINX %s 10910ca0e4SSam Elliott 11910ca0e4SSam Elliottdefine zeroext i1 @float_is_nan(float %a) nounwind { 1284bacb18SShao-Ce SUN; CHECK-LABEL: float_is_nan: 1384bacb18SShao-Ce SUN; CHECK: # %bb.0: 1484bacb18SShao-Ce SUN; CHECK-NEXT: feq.s a0, fa0, fa0 1584bacb18SShao-Ce SUN; CHECK-NEXT: xori a0, a0, 1 1684bacb18SShao-Ce SUN; CHECK-NEXT: ret 17*fe558efeSShao-Ce SUN; 18*fe558efeSShao-Ce SUN; CHECKZFINX-LABEL: float_is_nan: 19*fe558efeSShao-Ce SUN; CHECKZFINX: # %bb.0: 20*fe558efeSShao-Ce SUN; CHECKZFINX-NEXT: feq.s a0, a0, a0 21*fe558efeSShao-Ce SUN; CHECKZFINX-NEXT: xori a0, a0, 1 22*fe558efeSShao-Ce SUN; CHECKZFINX-NEXT: ret 23910ca0e4SSam Elliott %1 = fcmp uno float %a, 0.000000e+00 24910ca0e4SSam Elliott ret i1 %1 25910ca0e4SSam Elliott} 26910ca0e4SSam Elliott 27910ca0e4SSam Elliottdefine zeroext i1 @float_not_nan(float %a) nounwind { 2884bacb18SShao-Ce SUN; CHECK-LABEL: float_not_nan: 2984bacb18SShao-Ce SUN; CHECK: # %bb.0: 3084bacb18SShao-Ce SUN; CHECK-NEXT: feq.s a0, fa0, fa0 3184bacb18SShao-Ce SUN; CHECK-NEXT: ret 32*fe558efeSShao-Ce SUN; 33*fe558efeSShao-Ce SUN; CHECKZFINX-LABEL: float_not_nan: 34*fe558efeSShao-Ce SUN; CHECKZFINX: # %bb.0: 35*fe558efeSShao-Ce SUN; CHECKZFINX-NEXT: feq.s a0, a0, a0 36*fe558efeSShao-Ce SUN; CHECKZFINX-NEXT: ret 37910ca0e4SSam Elliott %1 = fcmp ord float %a, 0.000000e+00 38910ca0e4SSam Elliott ret i1 %1 39910ca0e4SSam Elliott} 40