; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2 < %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 ; ; SADDLBT ; define @saddlbt_b( %a, %b) { ; CHECK-LABEL: saddlbt_b: ; CHECK: saddlbt z0.h, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.saddlbt.nxv8i16( %a, %b) ret %out } define @saddlbt_h( %a, %b) { ; CHECK-LABEL: saddlbt_h: ; CHECK: saddlbt z0.s, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.saddlbt.nxv4i32( %a, %b) ret %out } define @saddlbt_s( %a, %b) { ; CHECK-LABEL: saddlbt_s: ; CHECK: saddlbt z0.d, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.saddlbt.nxv2i64( %a, %b) ret %out } ; ; SSUBLBT ; define @ssublbt_b( %a, %b) { ; CHECK-LABEL: ssublbt_b: ; CHECK: ssublbt z0.h, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssublbt.nxv8i16( %a, %b) ret %out } define @ssublbt_h( %a, %b) { ; CHECK-LABEL: ssublbt_h: ; CHECK: ssublbt z0.s, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssublbt.nxv4i32( %a, %b) ret %out } define @ssublbt_s( %a, %b) { ; CHECK-LABEL: ssublbt_s: ; CHECK: ssublbt z0.d, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssublbt.nxv2i64( %a, %b) ret %out } ; ; SSUBLTB ; define @ssubltb_b( %a, %b) { ; CHECK-LABEL: ssubltb_b: ; CHECK: ssubltb z0.h, z0.b, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssubltb.nxv8i16( %a, %b) ret %out } define @ssubltb_h( %a, %b) { ; CHECK-LABEL: ssubltb_h: ; CHECK: ssubltb z0.s, z0.h, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssubltb.nxv4i32( %a, %b) ret %out } define @ssubltb_s( %a, %b) { ; CHECK-LABEL: ssubltb_s: ; CHECK: ssubltb z0.d, z0.s, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.ssubltb.nxv2i64( %a, %b) ret %out } declare @llvm.aarch64.sve.saddlbt.nxv8i16(, ) declare @llvm.aarch64.sve.saddlbt.nxv4i32(, ) declare @llvm.aarch64.sve.saddlbt.nxv2i64(, ) declare @llvm.aarch64.sve.ssublbt.nxv8i16(, ) declare @llvm.aarch64.sve.ssublbt.nxv4i32(, ) declare @llvm.aarch64.sve.ssublbt.nxv2i64(, ) declare @llvm.aarch64.sve.ssubltb.nxv8i16(, ) declare @llvm.aarch64.sve.ssubltb.nxv4i32(, ) declare @llvm.aarch64.sve.ssubltb.nxv2i64(, )