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; WARN-NOT: warning 5 6target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" 7target triple = "aarch64-none-linux-gnu" 8 9define <vscale x 2 x i64> @test_zeroinit_2xi64() { 10; CHECK-LABEL: test_zeroinit_2xi64 11; CHECK: mov z0.d, #0 12; CHECK-NEXT: ret 13 ret <vscale x 2 x i64> zeroinitializer 14} 15 16define <vscale x 4 x i32> @test_zeroinit_4xi32() { 17; CHECK-LABEL: test_zeroinit_4xi32 18; CHECK: mov z0.s, #0 19; CHECK-NEXT: ret 20 ret <vscale x 4 x i32> zeroinitializer 21} 22 23define <vscale x 8 x i16> @test_zeroinit_8xi16() { 24; CHECK-LABEL: test_zeroinit_8xi16 25; CHECK: mov z0.h, #0 26; CHECK-NEXT: ret 27 ret <vscale x 8 x i16> zeroinitializer 28} 29 30define <vscale x 16 x i8> @test_zeroinit_16xi8() { 31; CHECK-LABEL: test_zeroinit_16xi8 32; CHECK: mov z0.b, #0 33; CHECK-NEXT: ret 34 ret <vscale x 16 x i8> zeroinitializer 35} 36 37define <vscale x 2 x double> @test_zeroinit_2xf64() { 38; CHECK-LABEL: test_zeroinit_2xf64 39; CHECK: mov z0.d, #0 40; CHECK-NEXT: ret 41 ret <vscale x 2 x double> zeroinitializer 42} 43 44define <vscale x 4 x float> @test_zeroinit_4xf32() { 45; CHECK-LABEL: test_zeroinit_4xf32 46; CHECK: mov z0.s, #0 47; CHECK-NEXT: ret 48 ret <vscale x 4 x float> zeroinitializer 49} 50 51define <vscale x 8 x half> @test_zeroinit_8xf16() { 52; CHECK-LABEL: test_zeroinit_8xf16 53; CHECK: mov z0.h, #0 54; CHECK-NEXT: ret 55 ret <vscale x 8 x half> zeroinitializer 56} 57 58define <vscale x 2 x i1> @test_zeroinit_2xi1() { 59; CHECK-LABEL: test_zeroinit_2xi1 60; CHECK: whilelo p0.d, xzr, xzr 61; CHECK-NEXT: ret 62 ret <vscale x 2 x i1> zeroinitializer 63} 64 65define <vscale x 4 x i1> @test_zeroinit_4xi1() { 66; CHECK-LABEL: test_zeroinit_4xi1 67; CHECK: whilelo p0.s, xzr, xzr 68; CHECK-NEXT: ret 69 ret <vscale x 4 x i1> zeroinitializer 70} 71 72define <vscale x 8 x i1> @test_zeroinit_8xi1() { 73; CHECK-LABEL: test_zeroinit_8xi1 74; CHECK: whilelo p0.h, xzr, xzr 75; CHECK-NEXT: ret 76 ret <vscale x 8 x i1> zeroinitializer 77} 78 79define <vscale x 16 x i1> @test_zeroinit_16xi1() { 80; CHECK-LABEL: test_zeroinit_16xi1 81; CHECK: whilelo p0.b, xzr, xzr 82; CHECK-NEXT: ret 83 ret <vscale x 16 x i1> zeroinitializer 84} 85