brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · cb01ac0 Raw
133 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lsx < %s | FileCheck %s3; RUN: llc --mtriple=loongarch64 --mattr=+lsx < %s | FileCheck %s4 5;; ceilf6define void @ceil_v4f32(ptr %res, ptr %a0) nounwind {7; CHECK-LABEL: ceil_v4f32:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    vld $vr0, $a1, 010; CHECK-NEXT:    vfrintrp.s $vr0, $vr011; CHECK-NEXT:    vst $vr0, $a0, 012; CHECK-NEXT:    ret13entry:14  %v0 = load <4 x float>, ptr %a015  %r = call <4 x float> @llvm.ceil.v4f32(<4 x float> %v0)16  store <4 x float> %r, ptr %res17  ret void18}19 20;; ceil21define void @ceil_v2f64(ptr %res, ptr %a0) nounwind {22; CHECK-LABEL: ceil_v2f64:23; CHECK:       # %bb.0: # %entry24; CHECK-NEXT:    vld $vr0, $a1, 025; CHECK-NEXT:    vfrintrp.d $vr0, $vr026; CHECK-NEXT:    vst $vr0, $a0, 027; CHECK-NEXT:    ret28entry:29  %v0 = load <2 x double>, ptr %a030  %r = call <2 x double> @llvm.ceil.v2f64(<2 x double> %v0)31  store <2 x double> %r, ptr %res32  ret void33}34 35;; floorf36define void @floor_v4f32(ptr %res, ptr %a0) nounwind {37; CHECK-LABEL: floor_v4f32:38; CHECK:       # %bb.0: # %entry39; CHECK-NEXT:    vld $vr0, $a1, 040; CHECK-NEXT:    vfrintrm.s $vr0, $vr041; CHECK-NEXT:    vst $vr0, $a0, 042; CHECK-NEXT:    ret43entry:44  %v0 = load <4 x float>, ptr %a045  %r = call <4 x float> @llvm.floor.v4f32(<4 x float> %v0)46  store <4 x float> %r, ptr %res47  ret void48}49 50;; floor51define void @floor_v2f64(ptr %res, ptr %a0) nounwind {52; CHECK-LABEL: floor_v2f64:53; CHECK:       # %bb.0: # %entry54; CHECK-NEXT:    vld $vr0, $a1, 055; CHECK-NEXT:    vfrintrm.d $vr0, $vr056; CHECK-NEXT:    vst $vr0, $a0, 057; CHECK-NEXT:    ret58entry:59  %v0 = load <2 x double>, ptr %a060  %r = call <2 x double> @llvm.floor.v2f64(<2 x double> %v0)61  store <2 x double> %r, ptr %res62  ret void63}64 65;; truncf66define void @trunc_v4f32(ptr %res, ptr %a0) nounwind {67; CHECK-LABEL: trunc_v4f32:68; CHECK:       # %bb.0: # %entry69; CHECK-NEXT:    vld $vr0, $a1, 070; CHECK-NEXT:    vfrintrz.s $vr0, $vr071; CHECK-NEXT:    vst $vr0, $a0, 072; CHECK-NEXT:    ret73entry:74  %v0 = load <4 x float>, ptr %a075  %r = call <4 x float> @llvm.trunc.v4f32(<4 x float> %v0)76  store <4 x float> %r, ptr %res77  ret void78}79 80;; trunc81define void @trunc_v2f64(ptr %res, ptr %a0) nounwind {82; CHECK-LABEL: trunc_v2f64:83; CHECK:       # %bb.0: # %entry84; CHECK-NEXT:    vld $vr0, $a1, 085; CHECK-NEXT:    vfrintrz.d $vr0, $vr086; CHECK-NEXT:    vst $vr0, $a0, 087; CHECK-NEXT:    ret88entry:89  %v0 = load <2 x double>, ptr %a090  %r = call <2 x double> @llvm.trunc.v2f64(<2 x double> %v0)91  store <2 x double> %r, ptr %res92  ret void93}94 95;; roundevenf96define void @roundeven_v4f32(ptr %res, ptr %a0) nounwind {97; CHECK-LABEL: roundeven_v4f32:98; CHECK:       # %bb.0: # %entry99; CHECK-NEXT:    vld $vr0, $a1, 0100; CHECK-NEXT:    vfrintrne.s $vr0, $vr0101; CHECK-NEXT:    vst $vr0, $a0, 0102; CHECK-NEXT:    ret103entry:104  %v0 = load <4 x float>, ptr %a0105  %r = call <4 x float> @llvm.roundeven.v4f32(<4 x float> %v0)106  store <4 x float> %r, ptr %res107  ret void108}109 110;; roundeven111define void @roundeven_v2f64(ptr %res, ptr %a0) nounwind {112; CHECK-LABEL: roundeven_v2f64:113; CHECK:       # %bb.0: # %entry114; CHECK-NEXT:    vld $vr0, $a1, 0115; CHECK-NEXT:    vfrintrne.d $vr0, $vr0116; CHECK-NEXT:    vst $vr0, $a0, 0117; CHECK-NEXT:    ret118entry:119  %v0 = load <2 x double>, ptr %a0120  %r = call <2 x double> @llvm.roundeven.v2f64(<2 x double> %v0)121  store <2 x double> %r, ptr %res122  ret void123}124 125declare <4 x float> @llvm.ceil.v4f32(<4 x float>)126declare <2 x double> @llvm.ceil.v2f64(<2 x double>)127declare <4 x float> @llvm.floor.v4f32(<4 x float>)128declare <2 x double> @llvm.floor.v2f64(<2 x double>)129declare <4 x float> @llvm.trunc.v4f32(<4 x float>)130declare <2 x double> @llvm.trunc.v2f64(<2 x double>)131declare <4 x float> @llvm.roundeven.v4f32(<4 x float>)132declare <2 x double> @llvm.roundeven.v2f64(<2 x double>)133