|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 |
| 2 | +; RUN: llc -mtriple=riscv64 -mattr=+v < %s | FileCheck %s |
| 3 | + |
| 4 | +define i32 @pps_is_equal(<vscale x 16 x i1> %0, <vscale x 16 x i1> %1) #0 { |
| 5 | +; CHECK-LABEL: pps_is_equal: |
| 6 | +; CHECK: # %bb.0: # %entry |
| 7 | +; CHECK-NEXT: vsetivli zero, 1, e32, m8, ta, ma |
| 8 | +; CHECK-NEXT: vmclr.m v8 |
| 9 | +; CHECK-NEXT: vmv.s.x v16, zero |
| 10 | +; CHECK-NEXT: vmor.mm v0, v8, v8 |
| 11 | +; CHECK-NEXT: vmv.v.i v8, 0 |
| 12 | +; CHECK-NEXT: vredmax.vs v8, v8, v16, v0.t |
| 13 | +; CHECK-NEXT: vmv.x.s a0, v8 |
| 14 | +; CHECK-NEXT: ret |
| 15 | +entry: |
| 16 | + %2 = tail call <vscale x 16 x i1> @llvm.vp.or.nxv16i1(<vscale x 16 x i1> zeroinitializer, <vscale x 16 x i1> zeroinitializer, <vscale x 16 x i1> %0, i32 1) |
| 17 | + %3 = tail call i32 @llvm.vp.reduce.smax.nxv16i32(i32 0, <vscale x 16 x i32> zeroinitializer, <vscale x 16 x i1> %2, i32 1) |
| 18 | + ret i32 %3 |
| 19 | +} |
| 20 | + |
| 21 | +declare <vscale x 16 x i1> @llvm.vp.or.nxv16i1(<vscale x 16 x i1>, <vscale x 16 x i1>, <vscale x 16 x i1>, i32) #1 |
| 22 | +declare i32 @llvm.vp.reduce.smax.nxv16i32(i32, <vscale x 16 x i32>, <vscale x 16 x i1>, i32) #1 |
0 commit comments