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