; 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 ; ; RBIT ; define @rbit_i8( %a, %pg, %b) { ; CHECK-LABEL: rbit_i8: ; CHECK: rbit z0.b, p0/m, z1.b ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.rbit.nxv16i8( %a, %pg, %b) ret %out } define @rbit_i16( %a, %pg, %b) { ; CHECK-LABEL: rbit_i16: ; CHECK: rbit z0.h, p0/m, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.rbit.nxv8i16( %a, %pg, %b) ret %out } define @rbit_i32( %a, %pg, %b) { ; CHECK-LABEL: rbit_i32: ; CHECK: rbit z0.s, p0/m, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.rbit.nxv4i32( %a, %pg, %b) ret %out } define @rbit_i64( %a, %pg, %b) { ; CHECK-LABEL: rbit_i64: ; CHECK: rbit z0.d, p0/m, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.rbit.nxv2i64( %a, %pg, %b) ret %out } ; ; REVB ; define @revb_i16( %a, %pg, %b) { ; CHECK-LABEL: revb_i16: ; CHECK: revb z0.h, p0/m, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revb.nxv8i16( %a, %pg, %b) ret %out } define @revb_i32( %a, %pg, %b) { ; CHECK-LABEL: revb_i32: ; CHECK: revb z0.s, p0/m, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revb.nxv4i32( %a, %pg, %b) ret %out } define @revb_i64( %a, %pg, %b) { ; CHECK-LABEL: revb_i64: ; CHECK: revb z0.d, p0/m, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revb.nxv2i64( %a, %pg, %b) ret %out } ; ; REVH ; define @revh_i32( %a, %pg, %b) { ; CHECK-LABEL: revh_i32: ; CHECK: revh z0.s, p0/m, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revh.nxv4i32( %a, %pg, %b) ret %out } define @revh_i64( %a, %pg, %b) { ; CHECK-LABEL: revh_i64: ; CHECK: revh z0.d, p0/m, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revh.nxv2i64( %a, %pg, %b) ret %out } ; ; REVW ; define @revw_i64( %a, %pg, %b) { ; CHECK-LABEL: revw_i64: ; CHECK: revw z0.d, p0/m, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.revw.nxv2i64( %a, %pg, %b) ret %out } declare @llvm.aarch64.sve.rbit.nxv16i8(, , ) declare @llvm.aarch64.sve.rbit.nxv8i16(, , ) declare @llvm.aarch64.sve.rbit.nxv4i32(, , ) declare @llvm.aarch64.sve.rbit.nxv2i64(, , ) declare @llvm.aarch64.sve.revb.nxv8i16(, , ) declare @llvm.aarch64.sve.revb.nxv4i32(, , ) declare @llvm.aarch64.sve.revb.nxv2i64(, , ) declare @llvm.aarch64.sve.revh.nxv4i32(, , ) declare @llvm.aarch64.sve.revh.nxv2i64(, , ) declare @llvm.aarch64.sve.revw.nxv2i64(, , )