108 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -target-abi ilp32f -mattr=+zfhmin < %s \3; RUN: | FileCheck --check-prefix=RV32IZFHMIN %s4; RUN: llc -mtriple=riscv32 -target-abi ilp32d -mattr=+zfhmin,+d < %s \5; RUN: | FileCheck --check-prefix=RV32IDZFHMIN %s6; RUN: llc -mtriple=riscv32 -target-abi ilp32 -mattr=+zhinxmin < %s \7; RUN: | FileCheck --check-prefix=RV32IZHINXMIN %s8; RUN: llc -mtriple=riscv32 -target-abi ilp32 -mattr=+zhinxmin,+zdinx < %s \9; RUN: | FileCheck --check-prefix=RV32IZDINXZHINXMIN %s10; RUN: llc -mtriple=riscv64 -target-abi lp64f -mattr=+zfhmin < %s \11; RUN: | FileCheck --check-prefix=RV64IZFHMIN %s12; RUN: llc -mtriple=riscv64 -target-abi lp64d -mattr=+zfhmin,+d < %s \13; RUN: | FileCheck --check-prefix=RV64IDZFHMIN %s14; RUN: llc -mtriple=riscv64 -target-abi lp64 -mattr=+zhinxmin < %s \15; RUN: | FileCheck --check-prefix=RV64IZHINXMIN %s16; RUN: llc -mtriple=riscv64 -target-abi lp64 -mattr=+zhinxmin,+zdinx < %s \17; RUN: | FileCheck --check-prefix=RV64IZDINXZHINXMIN %s18 19define half @f16_positive_zero(ptr %pf) nounwind {20; RV32IZFHMIN-LABEL: f16_positive_zero:21; RV32IZFHMIN: # %bb.0:22; RV32IZFHMIN-NEXT: fmv.h.x fa0, zero23; RV32IZFHMIN-NEXT: ret24;25; RV32IDZFHMIN-LABEL: f16_positive_zero:26; RV32IDZFHMIN: # %bb.0:27; RV32IDZFHMIN-NEXT: fmv.h.x fa0, zero28; RV32IDZFHMIN-NEXT: ret29;30; RV32IZHINXMIN-LABEL: f16_positive_zero:31; RV32IZHINXMIN: # %bb.0:32; RV32IZHINXMIN-NEXT: li a0, 033; RV32IZHINXMIN-NEXT: ret34;35; RV32IZDINXZHINXMIN-LABEL: f16_positive_zero:36; RV32IZDINXZHINXMIN: # %bb.0:37; RV32IZDINXZHINXMIN-NEXT: li a0, 038; RV32IZDINXZHINXMIN-NEXT: ret39;40; RV64IZFHMIN-LABEL: f16_positive_zero:41; RV64IZFHMIN: # %bb.0:42; RV64IZFHMIN-NEXT: fmv.h.x fa0, zero43; RV64IZFHMIN-NEXT: ret44;45; RV64IDZFHMIN-LABEL: f16_positive_zero:46; RV64IDZFHMIN: # %bb.0:47; RV64IDZFHMIN-NEXT: fmv.h.x fa0, zero48; RV64IDZFHMIN-NEXT: ret49;50; RV64IZHINXMIN-LABEL: f16_positive_zero:51; RV64IZHINXMIN: # %bb.0:52; RV64IZHINXMIN-NEXT: li a0, 053; RV64IZHINXMIN-NEXT: ret54;55; RV64IZDINXZHINXMIN-LABEL: f16_positive_zero:56; RV64IZDINXZHINXMIN: # %bb.0:57; RV64IZDINXZHINXMIN-NEXT: li a0, 058; RV64IZDINXZHINXMIN-NEXT: ret59 ret half 0.060}61 62define half @f16_negative_zero(ptr %pf) nounwind {63; RV32IZFHMIN-LABEL: f16_negative_zero:64; RV32IZFHMIN: # %bb.0:65; RV32IZFHMIN-NEXT: lui a0, 104856866; RV32IZFHMIN-NEXT: fmv.h.x fa0, a067; RV32IZFHMIN-NEXT: ret68;69; RV32IDZFHMIN-LABEL: f16_negative_zero:70; RV32IDZFHMIN: # %bb.0:71; RV32IDZFHMIN-NEXT: lui a0, 104856872; RV32IDZFHMIN-NEXT: fmv.h.x fa0, a073; RV32IDZFHMIN-NEXT: ret74;75; RV32IZHINXMIN-LABEL: f16_negative_zero:76; RV32IZHINXMIN: # %bb.0:77; RV32IZHINXMIN-NEXT: lui a0, 104856878; RV32IZHINXMIN-NEXT: ret79;80; RV32IZDINXZHINXMIN-LABEL: f16_negative_zero:81; RV32IZDINXZHINXMIN: # %bb.0:82; RV32IZDINXZHINXMIN-NEXT: lui a0, 104856883; RV32IZDINXZHINXMIN-NEXT: ret84;85; RV64IZFHMIN-LABEL: f16_negative_zero:86; RV64IZFHMIN: # %bb.0:87; RV64IZFHMIN-NEXT: lui a0, 104856888; RV64IZFHMIN-NEXT: fmv.h.x fa0, a089; RV64IZFHMIN-NEXT: ret90;91; RV64IDZFHMIN-LABEL: f16_negative_zero:92; RV64IDZFHMIN: # %bb.0:93; RV64IDZFHMIN-NEXT: lui a0, 104856894; RV64IDZFHMIN-NEXT: fmv.h.x fa0, a095; RV64IDZFHMIN-NEXT: ret96;97; RV64IZHINXMIN-LABEL: f16_negative_zero:98; RV64IZHINXMIN: # %bb.0:99; RV64IZHINXMIN-NEXT: lui a0, 1048568100; RV64IZHINXMIN-NEXT: ret101;102; RV64IZDINXZHINXMIN-LABEL: f16_negative_zero:103; RV64IZDINXZHINXMIN: # %bb.0:104; RV64IZDINXZHINXMIN-NEXT: lui a0, 1048568105; RV64IZDINXZHINXMIN-NEXT: ret106 ret half -0.0107}108