brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 4c699a0 Raw
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 @fptoui_v8f32_v8i32(ptr %res, ptr %in){6; CHECK-LABEL: fptoui_v8f32_v8i32:7; CHECK:       # %bb.0:8; CHECK-NEXT:    xvld $xr0, $a1, 09; CHECK-NEXT:    xvftintrz.wu.s $xr0, $xr010; CHECK-NEXT:    xvst $xr0, $a0, 011; CHECK-NEXT:    ret12  %v0 = load <8 x float>, ptr %in13  %v1 = fptoui <8 x float> %v0 to <8 x i32>14  store <8 x i32> %v1, ptr %res15  ret void16}17 18define void @fptoui_v4f64_v4i64(ptr %res, ptr %in){19; CHECK-LABEL: fptoui_v4f64_v4i64:20; CHECK:       # %bb.0:21; CHECK-NEXT:    xvld $xr0, $a1, 022; CHECK-NEXT:    xvftintrz.lu.d $xr0, $xr023; CHECK-NEXT:    xvst $xr0, $a0, 024; CHECK-NEXT:    ret25  %v0 = load <4 x double>, ptr %in26  %v1 = fptoui <4 x double> %v0 to <4 x i64>27  store <4 x i64> %v1, ptr %res28  ret void29}30 31define void @fptoui_v4f64_v4i32(ptr %res, ptr %in){32; CHECK-LABEL: fptoui_v4f64_v4i32:33; CHECK:       # %bb.0:34; CHECK-NEXT:    xvld $xr0, $a1, 035; CHECK-NEXT:    xvftintrz.lu.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 = fptoui <4 x double> %v0 to <4 x i32>42  store <4 x i32> %v1, ptr %res43  ret void44}45 46define void @fptoui_v4f32_v4i64(ptr %res, ptr %in){47; CHECK-LABEL: fptoui_v4f32_v4i64:48; CHECK:       # %bb.0:49; CHECK-NEXT:    vld $vr0, $a1, 050; CHECK-NEXT:    vftintrz.wu.s $vr0, $vr051; CHECK-NEXT:    vext2xv.du.wu $xr0, $xr052; CHECK-NEXT:    xvst $xr0, $a0, 053; CHECK-NEXT:    ret54  %v0 = load <4 x float>, ptr %in55  %v1 = fptoui <4 x float> %v0 to <4 x i64>56  store <4 x i64> %v1, ptr %res57  ret void58}59