brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · ec1a7a4 Raw
137 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+zfh -verify-machineinstrs \3; RUN:   -target-abi ilp32f < %s | FileCheck %s4; RUN: llc -mtriple=riscv64 -mattr=+zfh -verify-machineinstrs \5; RUN:   -target-abi lp64f < %s | FileCheck %s6; RUN: llc -mtriple=riscv32 -mattr=+zhinx -verify-machineinstrs \7; RUN:   -target-abi ilp32 < %s \8; RUN:   | FileCheck -check-prefixes=CHECKIZHINX %s9; RUN: llc -mtriple=riscv64 -mattr=+zhinx -verify-machineinstrs \10; RUN:   -target-abi lp64 < %s \11; RUN:   | FileCheck -check-prefixes=CHECKIZHINX %s12; RUN: llc -mtriple=riscv32 -mattr=+zfhmin -verify-machineinstrs \13; RUN:   -target-abi ilp32f < %s | FileCheck -check-prefixes=CHECKIZFHMIN %s14; RUN: llc -mtriple=riscv64 -mattr=+zfhmin -verify-machineinstrs \15; RUN:   -target-abi lp64f < %s | FileCheck -check-prefixes=CHECKIZFHMIN %s16; RUN: llc -mtriple=riscv32 -mattr=+zhinxmin -verify-machineinstrs \17; RUN:   -target-abi ilp32 < %s \18; RUN:   | FileCheck -check-prefixes=CHECKIZHINXMIN %s19; RUN: llc -mtriple=riscv64 -mattr=+zhinxmin -verify-machineinstrs \20; RUN:   -target-abi lp64 < %s \21; RUN:   | FileCheck -check-prefixes=CHECKIZHINXMIN %s22 23define half @half_imm() nounwind {24; CHECK-LABEL: half_imm:25; CHECK:       # %bb.0:26; CHECK-NEXT:    lui a0, 427; CHECK-NEXT:    addi a0, a0, 51228; CHECK-NEXT:    fmv.h.x fa0, a029; CHECK-NEXT:    ret30;31; CHECKIZHINX-LABEL: half_imm:32; CHECKIZHINX:       # %bb.0:33; CHECKIZHINX-NEXT:    lui a0, 434; CHECKIZHINX-NEXT:    addi a0, a0, 51235; CHECKIZHINX-NEXT:    # kill: def $x10_h killed $x10_h killed $x1036; CHECKIZHINX-NEXT:    ret37;38; CHECKIZFHMIN-LABEL: half_imm:39; CHECKIZFHMIN:       # %bb.0:40; CHECKIZFHMIN-NEXT:    lui a0, 441; CHECKIZFHMIN-NEXT:    addi a0, a0, 51242; CHECKIZFHMIN-NEXT:    fmv.h.x fa0, a043; CHECKIZFHMIN-NEXT:    ret44;45; CHECKIZHINXMIN-LABEL: half_imm:46; CHECKIZHINXMIN:       # %bb.0:47; CHECKIZHINXMIN-NEXT:    lui a0, 448; CHECKIZHINXMIN-NEXT:    addi a0, a0, 51249; CHECKIZHINXMIN-NEXT:    # kill: def $x10_h killed $x10_h killed $x1050; CHECKIZHINXMIN-NEXT:    ret51  ret half 3.052}53 54define half @half_imm_op(half %a) nounwind {55; CHECK-LABEL: half_imm_op:56; CHECK:       # %bb.0:57; CHECK-NEXT:    li a0, 1558; CHECK-NEXT:    slli a0, a0, 1059; CHECK-NEXT:    fmv.h.x fa5, a060; CHECK-NEXT:    fadd.h fa0, fa0, fa561; CHECK-NEXT:    ret62;63; CHECKIZHINX-LABEL: half_imm_op:64; CHECKIZHINX:       # %bb.0:65; CHECKIZHINX-NEXT:    li a1, 1566; CHECKIZHINX-NEXT:    slli a1, a1, 1067; CHECKIZHINX-NEXT:    fadd.h a0, a0, a168; CHECKIZHINX-NEXT:    ret69;70; CHECKIZFHMIN-LABEL: half_imm_op:71; CHECKIZFHMIN:       # %bb.0:72; CHECKIZFHMIN-NEXT:    fcvt.s.h fa5, fa073; CHECKIZFHMIN-NEXT:    lui a0, 26009674; CHECKIZFHMIN-NEXT:    fmv.w.x fa4, a075; CHECKIZFHMIN-NEXT:    fadd.s fa5, fa5, fa476; CHECKIZFHMIN-NEXT:    fcvt.h.s fa0, fa577; CHECKIZFHMIN-NEXT:    ret78;79; CHECKIZHINXMIN-LABEL: half_imm_op:80; CHECKIZHINXMIN:       # %bb.0:81; CHECKIZHINXMIN-NEXT:    fcvt.s.h a0, a082; CHECKIZHINXMIN-NEXT:    lui a1, 26009683; CHECKIZHINXMIN-NEXT:    fadd.s a0, a0, a184; CHECKIZHINXMIN-NEXT:    fcvt.h.s a0, a085; CHECKIZHINXMIN-NEXT:    ret86  %1 = fadd half %a, 1.087  ret half %188}89 90define half @half_positive_zero(ptr %pf) nounwind {91; CHECK-LABEL: half_positive_zero:92; CHECK:       # %bb.0:93; CHECK-NEXT:    fmv.h.x fa0, zero94; CHECK-NEXT:    ret95;96; CHECKIZHINX-LABEL: half_positive_zero:97; CHECKIZHINX:       # %bb.0:98; CHECKIZHINX-NEXT:    li a0, 099; CHECKIZHINX-NEXT:    ret100;101; CHECKIZFHMIN-LABEL: half_positive_zero:102; CHECKIZFHMIN:       # %bb.0:103; CHECKIZFHMIN-NEXT:    fmv.h.x fa0, zero104; CHECKIZFHMIN-NEXT:    ret105;106; CHECKIZHINXMIN-LABEL: half_positive_zero:107; CHECKIZHINXMIN:       # %bb.0:108; CHECKIZHINXMIN-NEXT:    li a0, 0109; CHECKIZHINXMIN-NEXT:    ret110  ret half 0.0111}112 113define half @half_negative_zero(ptr %pf) nounwind {114; CHECK-LABEL: half_negative_zero:115; CHECK:       # %bb.0:116; CHECK-NEXT:    lui a0, 1048568117; CHECK-NEXT:    fmv.h.x fa0, a0118; CHECK-NEXT:    ret119;120; CHECKIZHINX-LABEL: half_negative_zero:121; CHECKIZHINX:       # %bb.0:122; CHECKIZHINX-NEXT:    lui a0, 1048568123; CHECKIZHINX-NEXT:    ret124;125; CHECKIZFHMIN-LABEL: half_negative_zero:126; CHECKIZFHMIN:       # %bb.0:127; CHECKIZFHMIN-NEXT:    lui a0, 1048568128; CHECKIZFHMIN-NEXT:    fmv.h.x fa0, a0129; CHECKIZFHMIN-NEXT:    ret130;131; CHECKIZHINXMIN-LABEL: half_negative_zero:132; CHECKIZHINXMIN:       # %bb.0:133; CHECKIZHINXMIN-NEXT:    lui a0, 1048568134; CHECKIZHINXMIN-NEXT:    ret135  ret half -0.0136}137