1; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s 2>%t | FileCheck %s 2; RUN: FileCheck --check-prefix=WARN --allow-empty %s <%t 3 4; If this check fails please read test/CodeGen/AArch64/README for instructions on how to resolve it. 5; WARN-NOT: warning 6 7; 8; PTEST 9; 10 11define i1 @ptest_any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) { 12; CHECK-LABEL: ptest_any: 13; CHECK: ptest p0, p1.b 14; CHECK-NEXT: cset w0, ne 15; CHECK-NEXT: ret 16 %out = call i1 @llvm.aarch64.sve.ptest.any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 17 ret i1 %out 18} 19 20define i1 @ptest_first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) { 21; CHECK-LABEL: ptest_first: 22; CHECK: ptest p0, p1.b 23; CHECK-NEXT: cset w0, mi 24; CHECK-NEXT: ret 25 %out = call i1 @llvm.aarch64.sve.ptest.first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 26 ret i1 %out 27} 28 29define i1 @ptest_last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) { 30; CHECK-LABEL: ptest_last: 31; CHECK: ptest p0, p1.b 32; CHECK-NEXT: cset w0, lo 33; CHECK-NEXT: ret 34 %out = call i1 @llvm.aarch64.sve.ptest.last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 35 ret i1 %out 36} 37 38declare i1 @llvm.aarch64.sve.ptest.any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 39declare i1 @llvm.aarch64.sve.ptest.first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 40declare i1 @llvm.aarch64.sve.ptest.last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 41