1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 2; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s 3 4define void @fptoui_v8f32_v8i32(ptr %res, ptr %in){ 5; CHECK-LABEL: fptoui_v8f32_v8i32: 6; CHECK: # %bb.0: 7; CHECK-NEXT: xvld $xr0, $a1, 0 8; CHECK-NEXT: xvftintrz.wu.s $xr0, $xr0 9; CHECK-NEXT: xvst $xr0, $a0, 0 10; CHECK-NEXT: ret 11 %v0 = load <8 x float>, ptr %in 12 %v1 = fptoui <8 x float> %v0 to <8 x i32> 13 store <8 x i32> %v1, ptr %res 14 ret void 15} 16 17define void @fptoui_v4f64_v4i64(ptr %res, ptr %in){ 18; CHECK-LABEL: fptoui_v4f64_v4i64: 19; CHECK: # %bb.0: 20; CHECK-NEXT: xvld $xr0, $a1, 0 21; CHECK-NEXT: xvftintrz.lu.d $xr0, $xr0 22; CHECK-NEXT: xvst $xr0, $a0, 0 23; CHECK-NEXT: ret 24 %v0 = load <4 x double>, ptr %in 25 %v1 = fptoui <4 x double> %v0 to <4 x i64> 26 store <4 x i64> %v1, ptr %res 27 ret void 28} 29 30define void @fptoui_v4f64_v4i32(ptr %res, ptr %in){ 31; CHECK-LABEL: fptoui_v4f64_v4i32: 32; CHECK: # %bb.0: 33; CHECK-NEXT: xvld $xr0, $a1, 0 34; CHECK-NEXT: xvpermi.d $xr1, $xr0, 238 35; CHECK-NEXT: xvfcvt.s.d $xr0, $xr1, $xr0 36; CHECK-NEXT: xvftintrz.w.s $xr0, $xr0 37; CHECK-NEXT: vst $vr0, $a0, 0 38; CHECK-NEXT: ret 39 %v0 = load <4 x double>, ptr %in 40 %v1 = fptoui <4 x double> %v0 to <4 x i32> 41 store <4 x i32> %v1, ptr %res 42 ret void 43} 44 45define void @fptoui_v4f32_v4i64(ptr %res, ptr %in){ 46; CHECK-LABEL: fptoui_v4f32_v4i64: 47; CHECK: # %bb.0: 48; CHECK-NEXT: vld $vr0, $a1, 0 49; CHECK-NEXT: vftintrz.wu.s $vr0, $vr0 50; CHECK-NEXT: vext2xv.du.wu $xr0, $xr0 51; CHECK-NEXT: xvst $xr0, $a0, 0 52; CHECK-NEXT: ret 53 %v0 = load <4 x float>, ptr %in 54 %v1 = fptoui <4 x float> %v0 to <4 x i64> 55 store <4 x i64> %v1, ptr %res 56 ret void 57} 58