; RUN: llc -mtriple=aarch64--linux-gnu -mattr=+sve < %s 2>%t | FileCheck %s ; RUN: FileCheck --check-prefix=WARN --allow-empty %s <%t ; If this check fails please read test/CodeGen/AArch64/README for instructions on how to resolve it. ; WARN-NOT: warning ; ; Masked Loads ; define @masked_sload_nxv2i8( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv2i8: ; CHECK: ld1sb { [[IN:z[0-9]+]].d }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv2i8( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } define @masked_sload_nxv2i16( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv2i16: ; CHECK: ld1sh { [[IN:z[0-9]+]].d }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv2i16( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } define @masked_sload_nxv2i32( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv2i32: ; CHECK: ld1sw { [[IN:z[0-9]+]].d }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv2i32( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } define @masked_sload_nxv4i8( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv4i8: ; CHECK: ld1sb { [[IN:z[0-9]+]].s }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv4i8( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } define @masked_sload_nxv4i16( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv4i16: ; CHECK: ld1sh { [[IN:z[0-9]+]].s }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv4i16( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } define @masked_sload_nxv8i8( *%a, %mask) { ; CHECK-LABEL: masked_sload_nxv8i8: ; CHECK: ld1sb { [[IN:z[0-9]+]].h }, [[PG:p[0-9]+]]/z, [x0] ; CHECK-NEXT: ret %load = call @llvm.masked.load.nxv8i8( *%a, i32 1, %mask, undef) %ext = sext %load to ret %ext } declare @llvm.masked.load.nxv2i8(*, i32, , ) declare @llvm.masked.load.nxv2i16(*, i32, , ) declare @llvm.masked.load.nxv2i32(*, i32, , ) declare @llvm.masked.load.nxv4i8(*, i32, , ) declare @llvm.masked.load.nxv4i16(*, i32, , ) declare @llvm.masked.load.nxv8i8(*, i32, , )