[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / rvv / splat-vector.ll
blob4e58c4dcec2d85b89bdd2c95b9e0d36bb79e5661
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc -mtriple=riscv32 -mattr=+v,+zvfh -global-isel \
3 ; RUN:   -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV32 %s
4 ; RUN: llc -mtriple=riscv64 -mattr=+v,+zvfh -global-isel \
5 ; RUN:   -verify-machineinstrs < %s | FileCheck -check-prefixes=CHECK,RV64 %s
7 define <vscale x 1 x i1> @splat_zero_nxv1i1() {
8 ; CHECK-LABEL: splat_zero_nxv1i1:
9 ; CHECK:       # %bb.0:
10 ; CHECK-NEXT:    vsetvli a0, zero, e8, mf8, ta, ma
11 ; CHECK-NEXT:    vmclr.m v0
12 ; CHECK-NEXT:    ret
13   ret <vscale x 1 x i1> zeroinitializer
16 define <vscale x 2 x i1> @splat_zero_nxv2i1() {
17 ; CHECK-LABEL: splat_zero_nxv2i1:
18 ; CHECK:       # %bb.0:
19 ; CHECK-NEXT:    vsetvli a0, zero, e8, mf4, ta, ma
20 ; CHECK-NEXT:    vmclr.m v0
21 ; CHECK-NEXT:    ret
22   ret <vscale x 2 x i1> zeroinitializer
25 define <vscale x 4 x i1> @splat_zero_nxv4i1() {
26 ; CHECK-LABEL: splat_zero_nxv4i1:
27 ; CHECK:       # %bb.0:
28 ; CHECK-NEXT:    vsetvli a0, zero, e8, mf2, ta, ma
29 ; CHECK-NEXT:    vmclr.m v0
30 ; CHECK-NEXT:    ret
31   ret <vscale x 4 x i1> zeroinitializer
34 define <vscale x 8 x i1> @splat_zero_nxv8i1() {
35 ; CHECK-LABEL: splat_zero_nxv8i1:
36 ; CHECK:       # %bb.0:
37 ; CHECK-NEXT:    vsetvli a0, zero, e8, m1, ta, ma
38 ; CHECK-NEXT:    vmclr.m v0
39 ; CHECK-NEXT:    ret
40   ret <vscale x 8 x i1> zeroinitializer
43 define <vscale x 16 x i1> @splat_zero_nxv16i1() {
44 ; CHECK-LABEL: splat_zero_nxv16i1:
45 ; CHECK:       # %bb.0:
46 ; CHECK-NEXT:    vsetvli a0, zero, e8, m2, ta, ma
47 ; CHECK-NEXT:    vmclr.m v0
48 ; CHECK-NEXT:    ret
49   ret <vscale x 16 x i1> zeroinitializer
52 define <vscale x 32 x i1> @splat_zero_nxv32i1() {
53 ; CHECK-LABEL: splat_zero_nxv32i1:
54 ; CHECK:       # %bb.0:
55 ; CHECK-NEXT:    vsetvli a0, zero, e8, m4, ta, ma
56 ; CHECK-NEXT:    vmclr.m v0
57 ; CHECK-NEXT:    ret
58   ret <vscale x 32 x i1> zeroinitializer
61 define <vscale x 64 x i1> @splat_zero_nxv64i1() {
62 ; CHECK-LABEL: splat_zero_nxv64i1:
63 ; CHECK:       # %bb.0:
64 ; CHECK-NEXT:    vsetvli a0, zero, e8, m8, ta, ma
65 ; CHECK-NEXT:    vmclr.m v0
66 ; CHECK-NEXT:    ret
67   ret <vscale x 64 x i1> zeroinitializer
71 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
72 ; RV32: {{.*}}
73 ; RV64: {{.*}}