; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S < %s | FileCheck %s ; RUN: llvm-dis < %s.bc | FileCheck %s define @rev_nxv16i1( %a) { ; CHECK-LABEL: @rev_nxv16i1( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv16i1( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv16i1( %a) ret %res } define @rev_nxv8i1( %a) { ; CHECK-LABEL: @rev_nxv8i1( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv8i1( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv8i1( %a) ret %res } define @rev_nxv4i1( %a) { ; CHECK-LABEL: @rev_nxv4i1( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv4i1( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv4i1( %a) ret %res } define @rev_nxv2i1( %a) { ; CHECK-LABEL: @rev_nxv2i1( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv2i1( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv2i1( %a) ret %res } define @rev_i8( %a) { ; CHECK-LABEL: @rev_i8( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv16i8( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv16i8( %a) ret %res } define @rev_i16( %a) { ; CHECK-LABEL: @rev_i16( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv8i16( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv8i16( %a) ret %res } define @rev_i32( %a) { ; CHECK-LABEL: @rev_i32( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv4i32( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv4i32( %a) ret %res } define @rev_i64( %a) { ; CHECK-LABEL: @rev_i64( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv2i64( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv2i64( %a) ret %res } define @rev_f16( %a) { ; CHECK-LABEL: @rev_f16( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv8f16( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv8f16( %a) ret %res } define @rev_f32( %a) { ; CHECK-LABEL: @rev_f32( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv4f32( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv4f32( %a) ret %res } define @rev_f64( %a) { ; CHECK-LABEL: @rev_f64( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv2f64( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv2f64( %a) ret %res } define @rev_bf16( %a) #0 { ; CHECK-LABEL: @rev_bf16( ; CHECK-NEXT: [[RES:%.*]] = call @llvm.vector.reverse.nxv8bf16( [[A:%.*]]) ; CHECK-NEXT: ret [[RES]] ; %res = call @llvm.aarch64.sve.rev.nxv8bf16( %a) ret %res }