18a71f44eSAlex Bradbury; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 2*32597685SJianjian Guan; RUN: llc -mtriple=riscv32 -mattr=+zfbfmin -verify-machineinstrs \ 38a71f44eSAlex Bradbury; RUN: -target-abi ilp32f < %s | FileCheck %s 4*32597685SJianjian Guan; RUN: llc -mtriple=riscv64 -mattr=+zfbfmin -verify-machineinstrs \ 58a71f44eSAlex Bradbury; RUN: -target-abi lp64f < %s | FileCheck %s 68a71f44eSAlex Bradbury 78a71f44eSAlex Bradburydefine bfloat @bfloat_imm() nounwind { 88a71f44eSAlex Bradbury; CHECK-LABEL: bfloat_imm: 98a71f44eSAlex Bradbury; CHECK: # %bb.0: 108a71f44eSAlex Bradbury; CHECK-NEXT: lui a0, %hi(.LCPI0_0) 118a71f44eSAlex Bradbury; CHECK-NEXT: flh fa0, %lo(.LCPI0_0)(a0) 128a71f44eSAlex Bradbury; CHECK-NEXT: ret 138a71f44eSAlex Bradbury ret bfloat 3.0 148a71f44eSAlex Bradbury} 158a71f44eSAlex Bradbury 168a71f44eSAlex Bradburydefine bfloat @bfloat_imm_op(bfloat %a) nounwind { 178a71f44eSAlex Bradbury; CHECK-LABEL: bfloat_imm_op: 188a71f44eSAlex Bradbury; CHECK: # %bb.0: 198a71f44eSAlex Bradbury; CHECK-NEXT: fcvt.s.bf16 fa5, fa0 208a71f44eSAlex Bradbury; CHECK-NEXT: lui a0, 260096 218a71f44eSAlex Bradbury; CHECK-NEXT: fmv.w.x fa4, a0 228a71f44eSAlex Bradbury; CHECK-NEXT: fadd.s fa5, fa5, fa4 238a71f44eSAlex Bradbury; CHECK-NEXT: fcvt.bf16.s fa0, fa5 248a71f44eSAlex Bradbury; CHECK-NEXT: ret 258a71f44eSAlex Bradbury %1 = fadd bfloat %a, 1.0 268a71f44eSAlex Bradbury ret bfloat %1 278a71f44eSAlex Bradbury} 288a71f44eSAlex Bradbury 298a71f44eSAlex Bradburydefine bfloat @bfloat_zero() nounwind { 308a71f44eSAlex Bradbury; CHECK-LABEL: bfloat_zero: 318a71f44eSAlex Bradbury; CHECK: # %bb.0: 32a8c502a5SCraig Topper; CHECK-NEXT: fmv.h.x fa0, zero 338a71f44eSAlex Bradbury; CHECK-NEXT: ret 348a71f44eSAlex Bradbury ret bfloat 0.0 358a71f44eSAlex Bradbury} 368a71f44eSAlex Bradbury 378a71f44eSAlex Bradburydefine bfloat @bfloat_negative_zero() nounwind { 388a71f44eSAlex Bradbury; CHECK-LABEL: bfloat_negative_zero: 398a71f44eSAlex Bradbury; CHECK: # %bb.0: 40a8c502a5SCraig Topper; CHECK-NEXT: lui a0, 1048568 41a8c502a5SCraig Topper; CHECK-NEXT: fmv.h.x fa0, a0 428a71f44eSAlex Bradbury; CHECK-NEXT: ret 438a71f44eSAlex Bradbury ret bfloat -0.0 448a71f44eSAlex Bradbury} 45