81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -O0 -mtriple=aarch64-linux-gnu -global-isel -stop-after=irtranslator %s -o - | FileCheck %s3 4declare i64 @llvm.get.fpenv.i64()5declare void @llvm.set.fpenv.i64(i64 %fpenv)6declare void @llvm.reset.fpenv()7declare i32 @llvm.get.fpmode.i32()8declare void @llvm.set.fpmode.i32(i32 %fpmode)9declare void @llvm.reset.fpmode()10 11define i64 @func_get_fpenv() #0 {12 ; CHECK-LABEL: name: func_get_fpenv13 ; CHECK: bb.1.entry:14 ; CHECK-NEXT: [[GET_FPENV:%[0-9]+]]:_(s64) = G_GET_FPENV15 ; CHECK-NEXT: $x0 = COPY [[GET_FPENV]](s64)16 ; CHECK-NEXT: RET_ReallyLR implicit $x017entry:18 %fpenv = call i64 @llvm.get.fpenv.i64()19 ret i64 %fpenv20}21 22define void @func_set_fpenv(i64 %fpenv) #0 {23 ; CHECK-LABEL: name: func_set_fpenv24 ; CHECK: bb.1.entry:25 ; CHECK-NEXT: liveins: $x026 ; CHECK-NEXT: {{ $}}27 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x028 ; CHECK-NEXT: G_SET_FPENV [[COPY]](s64)29 ; CHECK-NEXT: RET_ReallyLR30entry:31 call void @llvm.set.fpenv.i64(i64 %fpenv)32 ret void33}34 35define void @func_reset_fpenv() #0 {36 ; CHECK-LABEL: name: func_reset_fpenv37 ; CHECK: bb.1.entry:38 ; CHECK-NEXT: G_RESET_FPENV39 ; CHECK-NEXT: RET_ReallyLR40entry:41 call void @llvm.reset.fpenv()42 ret void43}44 45define i32 @func_get_fpmode() #0 {46 ; CHECK-LABEL: name: func_get_fpmode47 ; CHECK: bb.1.entry:48 ; CHECK-NEXT: [[GET_FPMODE:%[0-9]+]]:_(s32) = G_GET_FPMODE49 ; CHECK-NEXT: $w0 = COPY [[GET_FPMODE]](s32)50 ; CHECK-NEXT: RET_ReallyLR implicit $w051entry:52 %fpmode = call i32 @llvm.get.fpmode.i32()53 ret i32 %fpmode54}55 56define void @func_set_fpmode(i32 %fpmode) #0 {57 ; CHECK-LABEL: name: func_set_fpmode58 ; CHECK: bb.1.entry:59 ; CHECK-NEXT: liveins: $w060 ; CHECK-NEXT: {{ $}}61 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w062 ; CHECK-NEXT: G_SET_FPMODE [[COPY]](s32)63 ; CHECK-NEXT: RET_ReallyLR64entry:65 call void @llvm.set.fpmode.i32(i32 %fpmode)66 ret void67}68 69 70define void @func_reset() #0 {71 ; CHECK-LABEL: name: func_reset72 ; CHECK: bb.1.entry:73 ; CHECK-NEXT: G_RESET_FPMODE74 ; CHECK-NEXT: RET_ReallyLR75entry:76 call void @llvm.reset.fpmode()77 ret void78}79 80attributes #0 = { nounwind "use-soft-float"="true" }81