; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s ; ; PUNPKHI ; define @punpkhi_b16( %a) { ; CHECK-LABEL: punpkhi_b16 ; CHECK: punpkhi p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpkhi.nxv8i1( %a) ret %res } define @punpkhi_b8( %a) { ; CHECK-LABEL: punpkhi_b8 ; CHECK: punpkhi p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpkhi.nxv4i1( %a) ret %res } define @punpkhi_b4( %a) { ; CHECK-LABEL: punpkhi_b4 ; CHECK: punpkhi p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpkhi.nxv2i1( %a) ret %res } ; ; PUNPKLO ; define @punpklo_b16( %a) { ; CHECK-LABEL: punpklo_b16 ; CHECK: punpklo p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpklo.nxv8i1( %a) ret %res } define @punpklo_b8( %a) { ; CHECK-LABEL: punpklo_b8 ; CHECK: punpklo p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpklo.nxv4i1( %a) ret %res } define @punpklo_b4( %a) { ; CHECK-LABEL: punpklo_b4 ; CHECK: punpklo p0.h, p0.b ; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.punpklo.nxv2i1( %a) ret %res } declare @llvm.aarch64.sve.punpkhi.nxv8i1() declare @llvm.aarch64.sve.punpkhi.nxv4i1() declare @llvm.aarch64.sve.punpkhi.nxv2i1() declare @llvm.aarch64.sve.punpklo.nxv8i1() declare @llvm.aarch64.sve.punpklo.nxv4i1() declare @llvm.aarch64.sve.punpklo.nxv2i1()