@@ -16,9 +16,8 @@ define <8 x i8> @not_signbit_mask_v8i8(<8 x i8> %a, <8 x i8> %b) {
1616; CHECK-ZVKB-LABEL: not_signbit_mask_v8i8:
1717; CHECK-ZVKB: # %bb.0:
1818; CHECK-ZVKB-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
19- ; CHECK-ZVKB-NEXT: vmsgt.vi v0, v8, -1
20- ; CHECK-ZVKB-NEXT: vmv.v.i v8, 0
21- ; CHECK-ZVKB-NEXT: vmerge.vvm v8, v8, v9, v0
19+ ; CHECK-ZVKB-NEXT: vsra.vi v8, v8, 7
20+ ; CHECK-ZVKB-NEXT: vandn.vv v8, v9, v8
2221; CHECK-ZVKB-NEXT: ret
2322 %cond = icmp sgt <8 x i8 > %a , splat (i8 -1 )
2423 %r = select <8 x i1 > %cond , <8 x i8 > %b , <8 x i8 > zeroinitializer
@@ -37,9 +36,8 @@ define <4 x i16> @not_signbit_mask_v4i16(<4 x i16> %a, <4 x i16> %b) {
3736; CHECK-ZVKB-LABEL: not_signbit_mask_v4i16:
3837; CHECK-ZVKB: # %bb.0:
3938; CHECK-ZVKB-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
40- ; CHECK-ZVKB-NEXT: vmsgt.vi v0, v8, -1
41- ; CHECK-ZVKB-NEXT: vmv.v.i v8, 0
42- ; CHECK-ZVKB-NEXT: vmerge.vvm v8, v8, v9, v0
39+ ; CHECK-ZVKB-NEXT: vsra.vi v8, v8, 15
40+ ; CHECK-ZVKB-NEXT: vandn.vv v8, v9, v8
4341; CHECK-ZVKB-NEXT: ret
4442 %cond = icmp sgt <4 x i16 > %a , splat (i16 -1 )
4543 %r = select <4 x i1 > %cond , <4 x i16 > %b , <4 x i16 > zeroinitializer
@@ -58,9 +56,8 @@ define <2 x i32> @not_signbit_mask_v2i32(<2 x i32> %a, <2 x i32> %b) {
5856; CHECK-ZVKB-LABEL: not_signbit_mask_v2i32:
5957; CHECK-ZVKB: # %bb.0:
6058; CHECK-ZVKB-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
61- ; CHECK-ZVKB-NEXT: vmsgt.vi v0, v8, -1
62- ; CHECK-ZVKB-NEXT: vmv.v.i v8, 0
63- ; CHECK-ZVKB-NEXT: vmerge.vvm v8, v8, v9, v0
59+ ; CHECK-ZVKB-NEXT: vsra.vi v8, v8, 31
60+ ; CHECK-ZVKB-NEXT: vandn.vv v8, v9, v8
6461; CHECK-ZVKB-NEXT: ret
6562 %cond = icmp sgt <2 x i32 > %a , splat (i32 -1 )
6663 %r = select <2 x i1 > %cond , <2 x i32 > %b , <2 x i32 > zeroinitializer
@@ -78,10 +75,10 @@ define <2 x i64> @not_signbit_mask_v2i64(<2 x i64> %a, <2 x i64> %b) {
7875;
7976; CHECK-ZVKB-LABEL: not_signbit_mask_v2i64:
8077; CHECK-ZVKB: # %bb.0:
78+ ; CHECK-ZVKB-NEXT: li a0, 63
8179; CHECK-ZVKB-NEXT: vsetivli zero, 2, e64, m1, ta, ma
82- ; CHECK-ZVKB-NEXT: vmsgt.vi v0, v8, -1
83- ; CHECK-ZVKB-NEXT: vmv.v.i v8, 0
84- ; CHECK-ZVKB-NEXT: vmerge.vvm v8, v8, v9, v0
80+ ; CHECK-ZVKB-NEXT: vsra.vx v8, v8, a0
81+ ; CHECK-ZVKB-NEXT: vandn.vv v8, v9, v8
8582; CHECK-ZVKB-NEXT: ret
8683 %cond = icmp sgt <2 x i64 > %a , splat (i64 -1 )
8784 %r = select <2 x i1 > %cond , <2 x i64 > %b , <2 x i64 > zeroinitializer
0 commit comments