; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s ; Integer vector select define @sel_nxv16i8( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv16i8: ; CHECK: mov z0.b, p0/m, z1.b ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv8i16( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv8i16: ; CHECK: mov z0.h, p0/m, z1.h ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv4i32( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv4i32: ; CHECK: mov z0.s, p0/m, z1.s ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv2i64( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv2i64: ; CHECK: mov z0.d, p0/m, z1.d ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } ; Floating point vector select define @sel_nxv8f16( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv8f16: ; CHECK: mov z0.h, p0/m, z1.h ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv4f32( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv4f32: ; CHECK: mov z0.s, p0/m, z1.s ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv2f32( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv2f32: ; CHECK: mov z0.d, p0/m, z1.d ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel } define @sel_nxv8f64( %p, %dst, %a) { ; CHECK-LABEL: sel_nxv8f64: ; CHECK: mov z0.d, p0/m, z1.d ; CHECK-NEXT: ret %sel = select %p, %a, %dst ret %sel }