51 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs \3; RUN: < %s | FileCheck %s4; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs \5; RUN: < %s | FileCheck %s6; RUN: llc -mtriple=riscv32 -mattr=+zdinx -target-abi ilp32 -verify-machineinstrs \7; RUN: < %s | FileCheck --check-prefix=CHECKRV32ZDINX %s8; RUN: llc -mtriple=riscv64 -mattr=+zdinx -target-abi lp64 -verify-machineinstrs \9; RUN: < %s | FileCheck --check-prefix=CHECKRV64ZDINX %s10 11define zeroext i1 @double_is_nan(double %a) nounwind {12; CHECK-LABEL: double_is_nan:13; CHECK: # %bb.0:14; CHECK-NEXT: feq.d a0, fa0, fa015; CHECK-NEXT: xori a0, a0, 116; CHECK-NEXT: ret17;18; CHECKRV32ZDINX-LABEL: double_is_nan:19; CHECKRV32ZDINX: # %bb.0:20; CHECKRV32ZDINX-NEXT: feq.d a0, a0, a021; CHECKRV32ZDINX-NEXT: xori a0, a0, 122; CHECKRV32ZDINX-NEXT: ret23;24; CHECKRV64ZDINX-LABEL: double_is_nan:25; CHECKRV64ZDINX: # %bb.0:26; CHECKRV64ZDINX-NEXT: feq.d a0, a0, a027; CHECKRV64ZDINX-NEXT: xori a0, a0, 128; CHECKRV64ZDINX-NEXT: ret29 %1 = fcmp uno double %a, 0.000000e+0030 ret i1 %131}32 33define zeroext i1 @double_not_nan(double %a) nounwind {34; CHECK-LABEL: double_not_nan:35; CHECK: # %bb.0:36; CHECK-NEXT: feq.d a0, fa0, fa037; CHECK-NEXT: ret38;39; CHECKRV32ZDINX-LABEL: double_not_nan:40; CHECKRV32ZDINX: # %bb.0:41; CHECKRV32ZDINX-NEXT: feq.d a0, a0, a042; CHECKRV32ZDINX-NEXT: ret43;44; CHECKRV64ZDINX-LABEL: double_not_nan:45; CHECKRV64ZDINX: # %bb.0:46; CHECKRV64ZDINX-NEXT: feq.d a0, a0, a047; CHECKRV64ZDINX-NEXT: ret48 %1 = fcmp ord double %a, 0.000000e+0049 ret i1 %150}51