[IR] Replace of PointerType::get(Type) with opaque version (NFC) (#123617)
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / store-bf16.ll
blob30cbf9a39031906f3a35864571fe34c07d2fb5b9
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc < %s -mtriple=riscv32 -mattr=+v,+zvfbfmin -verify-machineinstrs | FileCheck %s
3 ; RUN: llc < %s -mtriple=riscv64 -mattr=+v,+zvfbfmin -verify-machineinstrs | FileCheck %s
5 define 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, ma
9 ; CHECK-NEXT:    vse16.v v8, (a0)
10 ; CHECK-NEXT:    ret
11   store <vscale x 1 x bfloat> %v, ptr %p
12   ret void
15 define 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, ma
19 ; CHECK-NEXT:    vse16.v v8, (a0)
20 ; CHECK-NEXT:    ret
21   store <vscale x 2 x bfloat> %v, ptr %p
22   ret void
25 define 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:    ret
30   store <vscale x 4 x bfloat> %v, ptr %p
31   ret void
34 define 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:    ret
39   store <vscale x 8 x bfloat> %v, ptr %p
40   ret void
43 define 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:    ret
48   store <vscale x 16 x bfloat> %v, ptr %p
49   ret void
52 define 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:    ret
57   store <vscale x 32 x bfloat> %v, ptr %p
58   ret void
61 define 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, ma
65 ; CHECK-NEXT:    vfncvtbf16.f.f.w v10, v8
66 ; CHECK-NEXT:    vs1r.v v10, (a0)
67 ; CHECK-NEXT:    ret
68   %w = fptrunc <vscale x 4 x float> %v to <vscale x 4 x bfloat>
69   store <vscale x 4 x bfloat> %w, ptr %p
70   ret void