@@ -2567,3 +2567,24 @@ for.body:
25672567 %exitcond.not = icmp eq i64 %indvars.iv.next , 256
25682568 br i1 %exitcond.not , label %for.cond.cleanup , label %for.body
25692569}
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