; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s define @and_pred_i8( %pg, %a, %b) { ; CHECK-LABEL: and_pred_i8: ; CHECK: and z0.b, p0/m, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.and.nxv2i8( %pg, %a, %b) ret %out } define @and_pred_i16( %pg, %a, %b) { ; CHECK-LABEL: and_pred_i16: ; CHECK: and z0.h, p0/m, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.and.nxv2i16( %pg, %a, %b) ret %out } define @and_pred_i32( %pg, %a, %b) { ; CHECK-LABEL: and_pred_i32: ; CHECK: and z0.s, p0/m, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.and.nxv2i32( %pg, %a, %b) ret %out } define @and_pred_i64( %pg, %a, %b) { ; CHECK-LABEL: and_pred_i64: ; CHECK: and z0.d, p0/m, z0.d, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.and.nxv2i64( %pg, %a, %b) ret %out } define @or_pred_i8( %pg, %a, %b) { ; CHECK-LABEL: or_pred_i8: ; CHECK: orr z0.b, p0/m, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.orr.nxv2i8( %pg, %a, %b) ret %out } define @or_pred_i16( %pg, %a, %b) { ; CHECK-LABEL: or_pred_i16: ; CHECK: orr z0.h, p0/m, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.orr.nxv2i16( %pg, %a, %b) ret %out } define @or_pred_i32( %pg, %a, %b) { ; CHECK-LABEL: or_pred_i32: ; CHECK: orr z0.s, p0/m, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.orr.nxv2i32( %pg, %a, %b) ret %out } define @or_pred_i64( %pg, %a, %b) { ; CHECK-LABEL: or_pred_i64: ; CHECK: orr z0.d, p0/m, z0.d, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.orr.nxv2i64( %pg, %a, %b) ret %out } define @xor_pred_i8( %pg, %a, %b) { ; CHECK-LABEL: xor_pred_i8: ; CHECK: eor z0.b, p0/m, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.eor.nxv2i8( %pg, %a, %b) ret %out } define @xor_pred_i16( %pg, %a, %b) { ; CHECK-LABEL: xor_pred_i16: ; CHECK: eor z0.h, p0/m, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.eor.nxv2i16( %pg, %a, %b) ret %out } define @xor_pred_i32( %pg, %a, %b) { ; CHECK-LABEL: xor_pred_i32: ; CHECK: eor z0.s, p0/m, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.eor.nxv2i32( %pg, %a, %b) ret %out } define @xor_pred_i64( %pg, %a, %b) { ; CHECK-LABEL: xor_pred_i64: ; CHECK: eor z0.d, p0/m, z0.d, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.eor.nxv2i64( %pg, %a, %b) ret %out } define @bic_pred_i8( %pg, %a, %b) { ; CHECK-LABEL: bic_pred_i8: ; CHECK: bic z0.b, p0/m, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.bic.nxv2i8( %pg, %a, %b) ret %out } define @bic_pred_i16( %pg, %a, %b) { ; CHECK-LABEL: bic_pred_i16: ; CHECK: bic z0.h, p0/m, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.bic.nxv2i16( %pg, %a, %b) ret %out } define @bic_pred_i32( %pg, %a, %b) { ; CHECK-LABEL: bic_pred_i32: ; CHECK: bic z0.s, p0/m, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.bic.nxv2i32( %pg, %a, %b) ret %out } define @bic_pred_i64( %pg, %a, %b) { ; CHECK-LABEL: bic_pred_i64: ; CHECK: bic z0.d, p0/m, z0.d, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.bic.nxv2i64( %pg, %a, %b) ret %out } declare @llvm.aarch64.sve.and.nxv2i8(,,) declare @llvm.aarch64.sve.and.nxv2i16(,,) declare @llvm.aarch64.sve.and.nxv2i32(,,) declare @llvm.aarch64.sve.and.nxv2i64(,,) declare @llvm.aarch64.sve.orr.nxv2i8(,,) declare @llvm.aarch64.sve.orr.nxv2i16(,,) declare @llvm.aarch64.sve.orr.nxv2i32(,,) declare @llvm.aarch64.sve.orr.nxv2i64(,,) declare @llvm.aarch64.sve.eor.nxv2i8(,,) declare @llvm.aarch64.sve.eor.nxv2i16(,,) declare @llvm.aarch64.sve.eor.nxv2i32(,,) declare @llvm.aarch64.sve.eor.nxv2i64(,,) declare @llvm.aarch64.sve.bic.nxv2i8(,,) declare @llvm.aarch64.sve.bic.nxv2i16(,,) declare @llvm.aarch64.sve.bic.nxv2i32(,,) declare @llvm.aarch64.sve.bic.nxv2i64(,,)