47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \3; RUN: -mattr=+zvfh -mattr=+xsfmm32a32f -mattr=+xsfmm64a64f \4; RUN: -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK5; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \6; RUN: -mattr=+zvfh -mattr=+xsfmm32a32f -mattr=+xsfmm64a64f \7; RUN: -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK8 9define void @test_sf_mm_f_f_w2_f16m8(iXLen %mtd, <vscale x 32 x half> %v1, <vscale x 32 x half> %v2, iXLen %tm, iXLen %tn, iXLen %tk) {10; CHECK-LABEL: test_sf_mm_f_f_w2_f16m8:11; CHECK: # %bb.0: # %entry12; CHECK-NEXT: sf.vsettnt zero, a2, e16, w213; CHECK-NEXT: sf.vsettm zero, a114; CHECK-NEXT: sf.vsettk zero, a315; CHECK-NEXT: sf.mm.f.f mt0, v8, v1616; CHECK-NEXT: ret17 entry:18 call void @llvm.riscv.sf.mm.f.f.iXLen.nxv32f16(iXLen 0, <vscale x 32 x half> %v1, <vscale x 32 x half> %v2, iXLen %tm, iXLen %tn, iXLen %tk, iXLen 2)19 ret void20}21 22define void @test_sf_mm_f_f_w1_f32m8(iXLen %mtd, <vscale x 16 x float> %v1, <vscale x 16 x float> %v2, iXLen %tm, iXLen %tn, iXLen %tk) {23; CHECK-LABEL: test_sf_mm_f_f_w1_f32m8:24; CHECK: # %bb.0: # %entry25; CHECK-NEXT: sf.vsettnt zero, a2, e32, w126; CHECK-NEXT: sf.vsettm zero, a127; CHECK-NEXT: sf.vsettk zero, a328; CHECK-NEXT: sf.mm.f.f mt0, v8, v1629; CHECK-NEXT: ret30 entry:31 call void @llvm.riscv.sf.mm.f.f.iXLen.nxv16f32(iXLen 0, <vscale x 16 x float> %v1, <vscale x 16 x float> %v2, iXLen %tm, iXLen %tn, iXLen %tk, iXLen 1)32 ret void33}34 35define void @test_sf_mm_f_f_w1_f64m8(iXLen %mtd, <vscale x 8 x double> %v1, <vscale x 8 x double> %v2, iXLen %tm, iXLen %tn, iXLen %tk) {36; CHECK-LABEL: test_sf_mm_f_f_w1_f64m8:37; CHECK: # %bb.0: # %entry38; CHECK-NEXT: sf.vsettnt zero, a2, e64, w139; CHECK-NEXT: sf.vsettm zero, a140; CHECK-NEXT: sf.vsettk zero, a341; CHECK-NEXT: sf.mm.f.f mt0, v8, v1642; CHECK-NEXT: ret43 entry:44 call void @llvm.riscv.sf.mm.f.f.iXLen.nxv8f64(iXLen 0, <vscale x 8 x double> %v1, <vscale x 8 x double> %v2, iXLen %tm, iXLen %tn, iXLen %tk, iXLen 1)45 ret void46}47