1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s 3; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -force-streaming < %s | FileCheck %s 4 5; 6; PTEST 7; 8 9define i1 @ptest_any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) { 10; CHECK-LABEL: ptest_any: 11; CHECK: // %bb.0: 12; CHECK-NEXT: ptest p0, p1.b 13; CHECK-NEXT: cset w0, ne 14; CHECK-NEXT: ret 15 %out = call i1 @llvm.aarch64.sve.ptest.any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 16 ret i1 %out 17} 18 19define i1 @ptest_first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) { 20; CHECK-LABEL: ptest_first: 21; CHECK: // %bb.0: 22; CHECK-NEXT: 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: // %bb.0: 32; CHECK-NEXT: ptest p0, p1.b 33; CHECK-NEXT: cset w0, lo 34; CHECK-NEXT: ret 35 %out = call i1 @llvm.aarch64.sve.ptest.last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 36 ret i1 %out 37} 38 39declare i1 @llvm.aarch64.sve.ptest.any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 40declare i1 @llvm.aarch64.sve.ptest.first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 41declare i1 @llvm.aarch64.sve.ptest.last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a) 42