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