; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s define @and_d( %a, %b) { ; CHECK-LABEL: and_d ; CHECK: and z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = and %a, %b ret %res } define @and_s( %a, %b) { ; CHECK-LABEL: and_s ; CHECK: and z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = and %a, %b ret %res } define @and_h( %a, %b) { ; CHECK-LABEL: and_h ; CHECK: and z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = and %a, %b ret %res } define @and_b( %a, %b) { ; CHECK-LABEL: and_b ; CHECK: and z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = and %a, %b ret %res } define @or_d( %a, %b) { ; CHECK-LABEL: or_d ; CHECK: orr z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = or %a, %b ret %res } define @or_s( %a, %b) { ; CHECK-LABEL: or_s ; CHECK: orr z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = or %a, %b ret %res } define @or_h( %a, %b) { ; CHECK-LABEL: or_h ; CHECK: orr z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = or %a, %b ret %res } define @or_b( %a, %b) { ; CHECK-LABEL: or_b ; CHECK: orr z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = or %a, %b ret %res } define @xor_d( %a, %b) { ; CHECK-LABEL: xor_d ; CHECK: eor z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = xor %a, %b ret %res } define @xor_s( %a, %b) { ; CHECK-LABEL: xor_s ; CHECK: eor z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = xor %a, %b ret %res } define @xor_h( %a, %b) { ; CHECK-LABEL: xor_h ; CHECK: eor z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = xor %a, %b ret %res } define @xor_b( %a, %b) { ; CHECK-LABEL: xor_b ; CHECK: eor z0.d, z0.d, z1.d ; CHECK-NEXT: ret %res = xor %a, %b ret %res }