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 @sitofp_v8i32_v8f32(ptr %res, ptr %in){6; CHECK-LABEL: sitofp_v8i32_v8f32:7; CHECK: # %bb.0:8; CHECK-NEXT: xvld $xr0, $a1, 09; CHECK-NEXT: xvffint.s.w $xr0, $xr010; CHECK-NEXT: xvst $xr0, $a0, 011; CHECK-NEXT: ret12 %v0 = load <8 x i32>, ptr %in13 %v1 = sitofp <8 x i32> %v0 to <8 x float>14 store <8 x float> %v1, ptr %res15 ret void16}17 18define void @sitofp_v4f64_v4f64(ptr %res, ptr %in){19; CHECK-LABEL: sitofp_v4f64_v4f64:20; CHECK: # %bb.0:21; CHECK-NEXT: xvld $xr0, $a1, 022; CHECK-NEXT: xvffint.d.l $xr0, $xr023; CHECK-NEXT: xvst $xr0, $a0, 024; CHECK-NEXT: ret25 %v0 = load <4 x i64>, ptr %in26 %v1 = sitofp <4 x i64> %v0 to <4 x double>27 store <4 x double> %v1, ptr %res28 ret void29}30 31define void @sitofp_v4i64_v4f32(ptr %res, ptr %in){32; CHECK-LABEL: sitofp_v4i64_v4f32:33; CHECK: # %bb.0:34; CHECK-NEXT: xvld $xr0, $a1, 035; CHECK-NEXT: xvffint.d.l $xr0, $xr036; CHECK-NEXT: xvpermi.d $xr1, $xr0, 23837; CHECK-NEXT: xvfcvt.s.d $xr0, $xr1, $xr038; CHECK-NEXT: vst $vr0, $a0, 039; CHECK-NEXT: ret40 %v0 = load <4 x i64>, ptr %in41 %v1 = sitofp <4 x i64> %v0 to <4 x float>42 store <4 x float> %v1, ptr %res43 ret void44}45 46define void @sitofp_v4i32_v4f64(ptr %res, ptr %in){47; CHECK-LABEL: sitofp_v4i32_v4f64:48; CHECK: # %bb.0:49; CHECK-NEXT: vld $vr0, $a1, 050; CHECK-NEXT: vext2xv.d.w $xr0, $xr051; CHECK-NEXT: xvffint.d.l $xr0, $xr052; CHECK-NEXT: xvst $xr0, $a0, 053; CHECK-NEXT: ret54 %v0 = load <4 x i32>, ptr %in55 %v1 = sitofp <4 x i32> %v0 to <4 x double>56 store <4 x double> %v1, ptr %res57 ret void58}59