59 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc --mtriple=loongarch32 --mattr=+32s,+lasx < %s | FileCheck %s3; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s4 5define void @fptosi_v8f32_v8i32(ptr %res, ptr %in){6; CHECK-LABEL: fptosi_v8f32_v8i32:7; CHECK: # %bb.0:8; CHECK-NEXT: xvld $xr0, $a1, 09; CHECK-NEXT: xvftintrz.w.s $xr0, $xr010; CHECK-NEXT: xvst $xr0, $a0, 011; CHECK-NEXT: ret12 %v0 = load <8 x float>, ptr %in13 %v1 = fptosi <8 x float> %v0 to <8 x i32>14 store <8 x i32> %v1, ptr %res15 ret void16}17 18define void @fptosi_v4f64_v4i64(ptr %res, ptr %in){19; CHECK-LABEL: fptosi_v4f64_v4i64:20; CHECK: # %bb.0:21; CHECK-NEXT: xvld $xr0, $a1, 022; CHECK-NEXT: xvftintrz.l.d $xr0, $xr023; CHECK-NEXT: xvst $xr0, $a0, 024; CHECK-NEXT: ret25 %v0 = load <4 x double>, ptr %in26 %v1 = fptosi <4 x double> %v0 to <4 x i64>27 store <4 x i64> %v1, ptr %res28 ret void29}30 31define void @fptosi_v4f64_v4i32(ptr %res, ptr %in){32; CHECK-LABEL: fptosi_v4f64_v4i32:33; CHECK: # %bb.0:34; CHECK-NEXT: xvld $xr0, $a1, 035; CHECK-NEXT: xvftintrz.l.d $xr0, $xr036; CHECK-NEXT: xvpermi.d $xr1, $xr0, 23837; CHECK-NEXT: xvpickev.w $xr0, $xr1, $xr038; CHECK-NEXT: vst $vr0, $a0, 039; CHECK-NEXT: ret40 %v0 = load <4 x double>, ptr %in41 %v1 = fptosi <4 x double> %v0 to <4 x i32>42 store <4 x i32> %v1, ptr %res43 ret void44}45 46define void @fptosi_v4f32_v4i64(ptr %res, ptr %in){47; CHECK-LABEL: fptosi_v4f32_v4i64:48; CHECK: # %bb.0:49; CHECK-NEXT: vld $vr0, $a1, 050; CHECK-NEXT: vftintrz.w.s $vr0, $vr051; CHECK-NEXT: vext2xv.d.w $xr0, $xr052; CHECK-NEXT: xvst $xr0, $a0, 053; CHECK-NEXT: ret54 %v0 = load <4 x float>, ptr %in55 %v1 = fptosi <4 x float> %v0 to <4 x i64>56 store <4 x i64> %v1, ptr %res57 ret void58}59