brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 255c120 Raw
72 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+f -verify-machineinstrs | FileCheck %s3; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+f -verify-machineinstrs | FileCheck %s4; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+zfinx -verify-machineinstrs | FileCheck %s5; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+zfinx -verify-machineinstrs | FileCheck %s6; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+f -verify-machineinstrs -O0 | FileCheck %s7; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+f -verify-machineinstrs -O0 | FileCheck %s8 9define iXLen @func_get_fpenv() {10; CHECK-LABEL: func_get_fpenv:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    frcsr a013; CHECK-NEXT:    ret14entry:15  %fpenv = call iXLen @llvm.get.fpenv.iXLen()16  ret iXLen %fpenv17}18 19define void @func_set_fpenv(iXLen %fpenv) {20; CHECK-LABEL: func_set_fpenv:21; CHECK:       # %bb.0: # %entry22; CHECK-NEXT:    fscsr a023; CHECK-NEXT:    ret24entry:25  call void @llvm.set.fpenv.iXLen(iXLen %fpenv)26  ret void27}28 29define void @func_reset_fpenv() {30; CHECK-LABEL: func_reset_fpenv:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    fscsr zero33; CHECK-NEXT:    ret34entry:35  call void @llvm.reset.fpenv()36  ret void37}38 39define iXLen @func_get_fpmode() {40; CHECK-LABEL: func_get_fpmode:41; CHECK:       # %bb.0: # %entry42; CHECK-NEXT:    frcsr a043; CHECK-NEXT:    ret44entry:45  %fpenv = call iXLen @llvm.get.fpmode.iXLen()46  ret iXLen %fpenv47}48 49define void @func_set_fpmode(iXLen %fpmode) {50; CHECK-LABEL: func_set_fpmode:51; CHECK:       # %bb.0: # %entry52; CHECK-NEXT:    li    a1, -3253; CHECK-NEXT:    csrc  fcsr, a154; CHECK-NEXT:    andi  a0, a0, -3255; CHECK-NEXT:    csrs  fcsr, a056; CHECK-NEXT:    ret57entry:58  call void @llvm.set.fpmode.iXLen(iXLen %fpmode)59  ret void60}61 62define void @func_reset_fpmode() {63; CHECK-LABEL: func_reset_fpmode:64; CHECK:       # %bb.0: # %entry65; CHECK-NEXT:    li   a0, -3266; CHECK-NEXT:    csrc fcsr, a067; CHECK-NEXT:    ret68entry:69  call void @llvm.reset.fpmode()70  ret void71}72