xref: /llvm-project/llvm/test/CodeGen/AArch64/sve-zeroinit.ll (revision 675231eb09ca37a8b76f748c0b73a1e26604ff20)
1; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s
2
3target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
4target triple = "aarch64-none-linux-gnu"
5
6define <vscale x 2 x i64> @test_zeroinit_2xi64() {
7; CHECK-LABEL: test_zeroinit_2xi64
8; CHECK:       mov z0.d, #0
9; CHECK-NEXT:  ret
10  ret <vscale x 2 x i64> zeroinitializer
11}
12
13define <vscale x 4 x i32> @test_zeroinit_4xi32() {
14; CHECK-LABEL: test_zeroinit_4xi32
15; CHECK:       mov z0.s, #0
16; CHECK-NEXT:  ret
17  ret <vscale x 4 x i32> zeroinitializer
18}
19
20define <vscale x 8 x i16> @test_zeroinit_8xi16() {
21; CHECK-LABEL: test_zeroinit_8xi16
22; CHECK:       mov z0.h, #0
23; CHECK-NEXT:  ret
24  ret <vscale x 8 x i16> zeroinitializer
25}
26
27define <vscale x 16 x i8> @test_zeroinit_16xi8() {
28; CHECK-LABEL: test_zeroinit_16xi8
29; CHECK:       mov z0.b, #0
30; CHECK-NEXT:  ret
31  ret <vscale x 16 x i8> zeroinitializer
32}
33
34define <vscale x 2 x double> @test_zeroinit_2xf64() {
35; CHECK-LABEL: test_zeroinit_2xf64
36; CHECK:       mov z0.d, #0
37; CHECK-NEXT:  ret
38  ret <vscale x 2 x double> zeroinitializer
39}
40
41define <vscale x 4 x float> @test_zeroinit_4xf32() {
42; CHECK-LABEL: test_zeroinit_4xf32
43; CHECK:       mov z0.s, #0
44; CHECK-NEXT:  ret
45  ret <vscale x 4 x float> zeroinitializer
46}
47
48define <vscale x 8 x half> @test_zeroinit_8xf16() {
49; CHECK-LABEL: test_zeroinit_8xf16
50; CHECK:       mov z0.h, #0
51; CHECK-NEXT:  ret
52  ret <vscale x 8 x half> zeroinitializer
53}
54
55define <vscale x 1 x i1> @test_zeroinit_1xi1() {
56; CHECK-LABEL: test_zeroinit_1xi1
57; CHECK:       pfalse p0.b
58; CHECK-NEXT:  ret
59  ret <vscale x 1 x i1> zeroinitializer
60}
61
62define <vscale x 2 x i1> @test_zeroinit_2xi1() {
63; CHECK-LABEL: test_zeroinit_2xi1
64; CHECK:       pfalse p0.b
65; CHECK-NEXT:  ret
66  ret <vscale x 2 x i1> zeroinitializer
67}
68
69define <vscale x 4 x i1> @test_zeroinit_4xi1() {
70; CHECK-LABEL: test_zeroinit_4xi1
71; CHECK:       pfalse p0.b
72; CHECK-NEXT:  ret
73  ret <vscale x 4 x i1> zeroinitializer
74}
75
76define <vscale x 8 x i1> @test_zeroinit_8xi1() {
77; CHECK-LABEL: test_zeroinit_8xi1
78; CHECK:       pfalse p0.b
79; CHECK-NEXT:  ret
80  ret <vscale x 8 x i1> zeroinitializer
81}
82
83define <vscale x 16 x i1> @test_zeroinit_16xi1() {
84; CHECK-LABEL: test_zeroinit_16xi1
85; CHECK:       pfalse p0.b
86; CHECK-NEXT:  ret
87  ret <vscale x 16 x i1> zeroinitializer
88}
89
90define target("aarch64.svcount") @test_zeroinit_svcount() "target-features"="+sme2" {
91; CHECK-LABEL: test_zeroinit_svcount
92; CHECK:       pfalse p0.b
93; CHECK-NEXT:  ret
94  ret target("aarch64.svcount") zeroinitializer
95}
96