brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 8d6e9a2 Raw
79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+m,+v,+zvfh < %s | FileCheck %s3; RUN: llc -mtriple=riscv64 -mattr=+m,+v,+zvfh < %s | FileCheck %s4 5define <4 x half> @vsitofp_v4f16_v4i1(<4 x i1> %va, <4 x i1> %m, i32 zeroext %evl) {6; CHECK-LABEL: vsitofp_v4f16_v4i1:7; CHECK:       # %bb.0:8; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma9; CHECK-NEXT:    vmv.v.i v9, 010; CHECK-NEXT:    vmerge.vim v9, v9, -1, v011; CHECK-NEXT:    vmv1r.v v0, v812; CHECK-NEXT:    vfcvt.f.x.v v8, v9, v0.t13; CHECK-NEXT:    ret14  %v = call <4 x half> @llvm.vp.sitofp.v4f16.v4i1(<4 x i1> %va, <4 x i1> %m, i32 %evl)15  ret <4 x half> %v16}17 18define <4 x half> @vsitofp_v4f16_v4i1_unmasked(<4 x i1> %va, i32 zeroext %evl) {19; CHECK-LABEL: vsitofp_v4f16_v4i1_unmasked:20; CHECK:       # %bb.0:21; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma22; CHECK-NEXT:    vmv.v.i v8, 023; CHECK-NEXT:    vmerge.vim v8, v8, -1, v024; CHECK-NEXT:    vfcvt.f.x.v v8, v825; CHECK-NEXT:    ret26  %v = call <4 x half> @llvm.vp.sitofp.v4f16.v4i1(<4 x i1> %va, <4 x i1> splat (i1 true), i32 %evl)27  ret <4 x half> %v28}29 30define <4 x float> @vsitofp_v4f32_v4i1(<4 x i1> %va, <4 x i1> %m, i32 zeroext %evl) {31; CHECK-LABEL: vsitofp_v4f32_v4i1:32; CHECK:       # %bb.0:33; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma34; CHECK-NEXT:    vmv.v.i v9, 035; CHECK-NEXT:    vmerge.vim v9, v9, -1, v036; CHECK-NEXT:    vmv1r.v v0, v837; CHECK-NEXT:    vfcvt.f.x.v v8, v9, v0.t38; CHECK-NEXT:    ret39  %v = call <4 x float> @llvm.vp.sitofp.v4f32.v4i1(<4 x i1> %va, <4 x i1> %m, i32 %evl)40  ret <4 x float> %v41}42 43define <4 x float> @vsitofp_v4f32_v4i1_unmasked(<4 x i1> %va, i32 zeroext %evl) {44; CHECK-LABEL: vsitofp_v4f32_v4i1_unmasked:45; CHECK:       # %bb.0:46; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma47; CHECK-NEXT:    vmv.v.i v8, 048; CHECK-NEXT:    vmerge.vim v8, v8, -1, v049; CHECK-NEXT:    vfcvt.f.x.v v8, v850; CHECK-NEXT:    ret51  %v = call <4 x float> @llvm.vp.sitofp.v4f32.v4i1(<4 x i1> %va, <4 x i1> splat (i1 true), i32 %evl)52  ret <4 x float> %v53}54 55define <4 x double> @vsitofp_v4f64_v4i1(<4 x i1> %va, <4 x i1> %m, i32 zeroext %evl) {56; CHECK-LABEL: vsitofp_v4f64_v4i1:57; CHECK:       # %bb.0:58; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma59; CHECK-NEXT:    vmv.v.i v10, 060; CHECK-NEXT:    vmerge.vim v10, v10, -1, v061; CHECK-NEXT:    vmv1r.v v0, v862; CHECK-NEXT:    vfcvt.f.x.v v8, v10, v0.t63; CHECK-NEXT:    ret64  %v = call <4 x double> @llvm.vp.sitofp.v4f64.v4i1(<4 x i1> %va, <4 x i1> %m, i32 %evl)65  ret <4 x double> %v66}67 68define <4 x double> @vsitofp_v4f64_v4i1_unmasked(<4 x i1> %va, i32 zeroext %evl) {69; CHECK-LABEL: vsitofp_v4f64_v4i1_unmasked:70; CHECK:       # %bb.0:71; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma72; CHECK-NEXT:    vmv.v.i v8, 073; CHECK-NEXT:    vmerge.vim v8, v8, -1, v074; CHECK-NEXT:    vfcvt.f.x.v v8, v875; CHECK-NEXT:    ret76  %v = call <4 x double> @llvm.vp.sitofp.v4f64.v4i1(<4 x i1> %va, <4 x i1> splat (i1 true), i32 %evl)77  ret <4 x double> %v78}79