42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s3; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -force-streaming < %s | FileCheck %s4 5;6; PTEST7;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.b13; CHECK-NEXT: cset w0, ne14; CHECK-NEXT: ret15 %out = call i1 @llvm.aarch64.sve.ptest.any(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a)16 ret i1 %out17}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.b23; CHECK-NEXT: cset w0, mi24; CHECK-NEXT: ret25 %out = call i1 @llvm.aarch64.sve.ptest.first(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a)26 ret i1 %out27}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.b33; CHECK-NEXT: cset w0, lo34; CHECK-NEXT: ret35 %out = call i1 @llvm.aarch64.sve.ptest.last(<vscale x 16 x i1> %pg, <vscale x 16 x i1> %a)36 ret i1 %out37}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