@@ -2567,3 +2567,24 @@ for.body:
2567
2567
%exitcond.not = icmp eq i64 %indvars.iv.next , 256
2568
2568
br i1 %exitcond.not , label %for.cond.cleanup , label %for.body
2569
2569
}
2570
+
2571
+ define <vscale x 1 x i8 > @not_signbit_mask_nxv1i8 (<vscale x 1 x i8 > %a , <vscale x 1 x i8 > %b ) {
2572
+ ; CHECK-LABEL: not_signbit_mask_nxv1i8:
2573
+ ; CHECK: # %bb.0:
2574
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf8, ta, ma
2575
+ ; CHECK-NEXT: vmsgt.vi v0, v8, -1
2576
+ ; CHECK-NEXT: vmv.v.i v8, 0
2577
+ ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
2578
+ ; CHECK-NEXT: ret
2579
+ ;
2580
+ ; CHECK-ZVKB-LABEL: not_signbit_mask_nxv1i8:
2581
+ ; CHECK-ZVKB: # %bb.0:
2582
+ ; CHECK-ZVKB-NEXT: vsetvli a0, zero, e8, mf8, ta, ma
2583
+ ; CHECK-ZVKB-NEXT: vmsgt.vi v0, v8, -1
2584
+ ; CHECK-ZVKB-NEXT: vmv.v.i v8, 0
2585
+ ; CHECK-ZVKB-NEXT: vmerge.vvm v8, v8, v9, v0
2586
+ ; CHECK-ZVKB-NEXT: ret
2587
+ %cond = icmp sgt <vscale x 1 x i8 > %a , splat (i8 -1 )
2588
+ %r = select <vscale x 1 x i1 > %cond , <vscale x 1 x i8 > %b , <vscale x 1 x i8 > zeroinitializer
2589
+ ret <vscale x 1 x i8 > %r
2590
+ }
0 commit comments