72 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=riscv32 -mattr=+v,+zvfbfmin -verify-machineinstrs | FileCheck %s3; RUN: llc < %s -mtriple=riscv64 -mattr=+v,+zvfbfmin -verify-machineinstrs | FileCheck %s4 5define void @store_nxv1bf16(<vscale x 1 x bfloat> %v, ptr %p) {6; CHECK-LABEL: store_nxv1bf16:7; CHECK: # %bb.0:8; CHECK-NEXT: vsetvli a1, zero, e16, mf4, ta, ma9; CHECK-NEXT: vse16.v v8, (a0)10; CHECK-NEXT: ret11 store <vscale x 1 x bfloat> %v, ptr %p12 ret void13}14 15define void @store_nxv2bf16(<vscale x 2 x bfloat> %v, ptr %p) {16; CHECK-LABEL: store_nxv2bf16:17; CHECK: # %bb.0:18; CHECK-NEXT: vsetvli a1, zero, e16, mf2, ta, ma19; CHECK-NEXT: vse16.v v8, (a0)20; CHECK-NEXT: ret21 store <vscale x 2 x bfloat> %v, ptr %p22 ret void23}24 25define void @store_nxv4bf16(<vscale x 4 x bfloat> %v, ptr %p) {26; CHECK-LABEL: store_nxv4bf16:27; CHECK: # %bb.0:28; CHECK-NEXT: vs1r.v v8, (a0)29; CHECK-NEXT: ret30 store <vscale x 4 x bfloat> %v, ptr %p31 ret void32}33 34define void @store_nxv8bf16(<vscale x 8 x bfloat> %v, ptr %p) {35; CHECK-LABEL: store_nxv8bf16:36; CHECK: # %bb.0:37; CHECK-NEXT: vs2r.v v8, (a0)38; CHECK-NEXT: ret39 store <vscale x 8 x bfloat> %v, ptr %p40 ret void41}42 43define void @store_nxv16bf16(<vscale x 16 x bfloat> %v, ptr %p) {44; CHECK-LABEL: store_nxv16bf16:45; CHECK: # %bb.0:46; CHECK-NEXT: vs4r.v v8, (a0)47; CHECK-NEXT: ret48 store <vscale x 16 x bfloat> %v, ptr %p49 ret void50}51 52define void @store_nxv32bf32(<vscale x 32 x bfloat> %v, ptr %p) {53; CHECK-LABEL: store_nxv32bf32:54; CHECK: # %bb.0:55; CHECK-NEXT: vs8r.v v8, (a0)56; CHECK-NEXT: ret57 store <vscale x 32 x bfloat> %v, ptr %p58 ret void59}60 61define void @truncstore(<vscale x 4 x float> %v, ptr %p) {62; CHECK-LABEL: truncstore:63; CHECK: # %bb.0:64; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma65; CHECK-NEXT: vfncvtbf16.f.f.w v10, v866; CHECK-NEXT: vs1r.v v10, (a0)67; CHECK-NEXT: ret68 %w = fptrunc <vscale x 4 x float> %v to <vscale x 4 x bfloat>69 store <vscale x 4 x bfloat> %w, ptr %p70 ret void71}72