brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 30cbf9a Raw
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