• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s 2>%t | FileCheck %s
2; RUN: FileCheck --check-prefix=WARN --allow-empty %s <%t
3
4; If this check fails please read test/CodeGen/AArch64/README for instructions on how to resolve it.
5; WARN-NOT: warning
6
7target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
8target triple = "aarch64-none-linux-gnu"
9
10define <vscale x 2 x i64> @test_zeroinit_2xi64() {
11; CHECK-LABEL: test_zeroinit_2xi64
12; CHECK:       mov z0.d, #0
13; CHECK-NEXT:  ret
14  ret <vscale x 2 x i64> zeroinitializer
15}
16
17define <vscale x 4 x i32> @test_zeroinit_4xi32() {
18; CHECK-LABEL: test_zeroinit_4xi32
19; CHECK:       mov z0.s, #0
20; CHECK-NEXT:  ret
21  ret <vscale x 4 x i32> zeroinitializer
22}
23
24define <vscale x 8 x i16> @test_zeroinit_8xi16() {
25; CHECK-LABEL: test_zeroinit_8xi16
26; CHECK:       mov z0.h, #0
27; CHECK-NEXT:  ret
28  ret <vscale x 8 x i16> zeroinitializer
29}
30
31define <vscale x 16 x i8> @test_zeroinit_16xi8() {
32; CHECK-LABEL: test_zeroinit_16xi8
33; CHECK:       mov z0.b, #0
34; CHECK-NEXT:  ret
35  ret <vscale x 16 x i8> zeroinitializer
36}
37
38define <vscale x 2 x double> @test_zeroinit_2xf64() {
39; CHECK-LABEL: test_zeroinit_2xf64
40; CHECK:       mov z0.d, #0
41; CHECK-NEXT:  ret
42  ret <vscale x 2 x double> zeroinitializer
43}
44
45define <vscale x 4 x float> @test_zeroinit_4xf32() {
46; CHECK-LABEL: test_zeroinit_4xf32
47; CHECK:       mov z0.s, #0
48; CHECK-NEXT:  ret
49  ret <vscale x 4 x float> zeroinitializer
50}
51
52define <vscale x 8 x half> @test_zeroinit_8xf16() {
53; CHECK-LABEL: test_zeroinit_8xf16
54; CHECK:       mov z0.h, #0
55; CHECK-NEXT:  ret
56  ret <vscale x 8 x half> zeroinitializer
57}
58
59define <vscale x 2 x i1> @test_zeroinit_2xi1() {
60; CHECK-LABEL: test_zeroinit_2xi1
61; CHECK:       whilelo p0.d, xzr, xzr
62; CHECK-NEXT:  ret
63  ret <vscale x 2 x i1> zeroinitializer
64}
65
66define <vscale x 4 x i1> @test_zeroinit_4xi1() {
67; CHECK-LABEL: test_zeroinit_4xi1
68; CHECK:       whilelo p0.s, xzr, xzr
69; CHECK-NEXT:  ret
70  ret <vscale x 4 x i1> zeroinitializer
71}
72
73define <vscale x 8 x i1> @test_zeroinit_8xi1() {
74; CHECK-LABEL: test_zeroinit_8xi1
75; CHECK:       whilelo p0.h, xzr, xzr
76; CHECK-NEXT:  ret
77  ret <vscale x 8 x i1> zeroinitializer
78}
79
80define <vscale x 16 x i1> @test_zeroinit_16xi1() {
81; CHECK-LABEL: test_zeroinit_16xi1
82; CHECK:       whilelo p0.b, xzr, xzr
83; CHECK-NEXT:  ret
84  ret <vscale x 16 x i1> zeroinitializer
85}
86