brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 266d7b0 Raw
48 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=riscv64 -mattr=+zfhmin \3; RUN:   -verify-machineinstrs -target-abi lp64f | \4; RUN:   FileCheck -check-prefix=CHECKIZFHMIN %s5; RUN: llc < %s -mtriple=riscv64 -mattr=+d \6; RUN:   -mattr=+zfhmin -verify-machineinstrs -target-abi lp64d | \7; RUN:   FileCheck -check-prefix=CHECKIZFHMIN %s8; RUN: llc < %s -mtriple=riscv64 -mattr=+zhinxmin \9; RUN:   -verify-machineinstrs -target-abi lp64 | \10; RUN:   FileCheck -check-prefix=CHECKIZHINXMIN %s11; RUN: llc < %s -mtriple=riscv64 -mattr=+zdinx \12; RUN:   -mattr=+zhinxmin -verify-machineinstrs -target-abi lp64 | \13; RUN:   FileCheck -check-prefix=CHECKIZHINXMIN %s14 15; These intrinsics require half and i64 to be legal types.16 17define i64 @llrint_f16(half %a) nounwind {18; CHECKIZFHMIN-LABEL: llrint_f16:19; CHECKIZFHMIN:       # %bb.0:20; CHECKIZFHMIN-NEXT:    fcvt.s.h fa5, fa021; CHECKIZFHMIN-NEXT:    fcvt.l.s a0, fa522; CHECKIZFHMIN-NEXT:    ret23;24; CHECKIZHINXMIN-LABEL: llrint_f16:25; CHECKIZHINXMIN:       # %bb.0:26; CHECKIZHINXMIN-NEXT:    fcvt.s.h a0, a027; CHECKIZHINXMIN-NEXT:    fcvt.l.s a0, a028; CHECKIZHINXMIN-NEXT:    ret29  %1 = call i64 @llvm.llrint.i64.f16(half %a)30  ret i64 %131}32 33define i64 @llround_f16(half %a) nounwind {34; CHECKIZFHMIN-LABEL: llround_f16:35; CHECKIZFHMIN:       # %bb.0:36; CHECKIZFHMIN-NEXT:    fcvt.s.h fa5, fa037; CHECKIZFHMIN-NEXT:    fcvt.l.s a0, fa5, rmm38; CHECKIZFHMIN-NEXT:    ret39;40; CHECKIZHINXMIN-LABEL: llround_f16:41; CHECKIZHINXMIN:       # %bb.0:42; CHECKIZHINXMIN-NEXT:    fcvt.s.h a0, a043; CHECKIZHINXMIN-NEXT:    fcvt.l.s a0, a0, rmm44; CHECKIZHINXMIN-NEXT:    ret45  %1 = call i64 @llvm.llround.i64.f16(half %a)46  ret i64 %147}48