@@ -784,9 +784,11 @@ define void @copysign_v6bf16(ptr %x, ptr %y) {
784784; CHECK-NEXT: vle16.v v8, (a1)
785785; CHECK-NEXT: vle16.v v9, (a0)
786786; CHECK-NEXT: lui a1, 8
787+ ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
787788; CHECK-NEXT: vand.vx v8, v8, a1
788789; CHECK-NEXT: addi a1, a1, -1
789790; CHECK-NEXT: vand.vx v9, v9, a1
791+ ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
790792; CHECK-NEXT: vor.vv v8, v9, v8
791793; CHECK-NEXT: vse16.v v8, (a0)
792794; CHECK-NEXT: ret
@@ -842,9 +844,11 @@ define void @copysign_v6f16(ptr %x, ptr %y) {
842844; ZVFHMIN-NEXT: vle16.v v8, (a1)
843845; ZVFHMIN-NEXT: vle16.v v9, (a0)
844846; ZVFHMIN-NEXT: lui a1, 8
847+ ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
845848; ZVFHMIN-NEXT: vand.vx v8, v8, a1
846849; ZVFHMIN-NEXT: addi a1, a1, -1
847850; ZVFHMIN-NEXT: vand.vx v9, v9, a1
851+ ; ZVFHMIN-NEXT: vsetivli zero, 6, e16, m1, ta, ma
848852; ZVFHMIN-NEXT: vor.vv v8, v9, v8
849853; ZVFHMIN-NEXT: vse16.v v8, (a0)
850854; ZVFHMIN-NEXT: ret
@@ -916,10 +920,12 @@ define void @copysign_vf_v6bf16(ptr %x, bfloat %y) {
916920; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
917921; CHECK-NEXT: vle16.v v8, (a0)
918922; CHECK-NEXT: lui a2, 8
923+ ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
919924; CHECK-NEXT: vmv.v.x v9, a1
920925; CHECK-NEXT: addi a1, a2, -1
921926; CHECK-NEXT: vand.vx v8, v8, a1
922927; CHECK-NEXT: vand.vx v9, v9, a2
928+ ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
923929; CHECK-NEXT: vor.vv v8, v8, v9
924930; CHECK-NEXT: vse16.v v8, (a0)
925931; CHECK-NEXT: ret
@@ -976,10 +982,12 @@ define void @copysign_vf_v6f16(ptr %x, half %y) {
976982; ZVFHMIN-NEXT: vsetivli zero, 6, e16, m1, ta, ma
977983; ZVFHMIN-NEXT: vle16.v v8, (a0)
978984; ZVFHMIN-NEXT: lui a2, 8
985+ ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
979986; ZVFHMIN-NEXT: vmv.v.x v9, a1
980987; ZVFHMIN-NEXT: addi a1, a2, -1
981988; ZVFHMIN-NEXT: vand.vx v8, v8, a1
982989; ZVFHMIN-NEXT: vand.vx v9, v9, a2
990+ ; ZVFHMIN-NEXT: vsetivli zero, 6, e16, m1, ta, ma
983991; ZVFHMIN-NEXT: vor.vv v8, v8, v9
984992; ZVFHMIN-NEXT: vse16.v v8, (a0)
985993; ZVFHMIN-NEXT: ret
@@ -1053,9 +1061,11 @@ define void @copysign_neg_v6bf16(ptr %x, ptr %y) {
10531061; CHECK-NEXT: vle16.v v9, (a0)
10541062; CHECK-NEXT: lui a1, 8
10551063; CHECK-NEXT: addi a2, a1, -1
1064+ ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
10561065; CHECK-NEXT: vxor.vx v8, v8, a1
10571066; CHECK-NEXT: vand.vx v9, v9, a2
10581067; CHECK-NEXT: vand.vx v8, v8, a1
1068+ ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
10591069; CHECK-NEXT: vor.vv v8, v9, v8
10601070; CHECK-NEXT: vse16.v v8, (a0)
10611071; CHECK-NEXT: ret
@@ -1115,9 +1125,11 @@ define void @copysign_neg_v6f16(ptr %x, ptr %y) {
11151125; ZVFHMIN-NEXT: vle16.v v9, (a0)
11161126; ZVFHMIN-NEXT: lui a1, 8
11171127; ZVFHMIN-NEXT: addi a2, a1, -1
1128+ ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
11181129; ZVFHMIN-NEXT: vxor.vx v8, v8, a1
11191130; ZVFHMIN-NEXT: vand.vx v9, v9, a2
11201131; ZVFHMIN-NEXT: vand.vx v8, v8, a1
1132+ ; ZVFHMIN-NEXT: vsetivli zero, 6, e16, m1, ta, ma
11211133; ZVFHMIN-NEXT: vor.vv v8, v9, v8
11221134; ZVFHMIN-NEXT: vse16.v v8, (a0)
11231135; ZVFHMIN-NEXT: ret
@@ -1195,12 +1207,12 @@ define void @copysign_neg_trunc_v3bf16_v3f32(ptr %x, ptr %y) {
11951207; CHECK-NEXT: vle32.v v9, (a1)
11961208; CHECK-NEXT: lui a1, 8
11971209; CHECK-NEXT: addi a2, a1, -1
1198- ; CHECK-NEXT: vand.vx v8, v8, a2
11991210; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1211+ ; CHECK-NEXT: vand.vx v8, v8, a2
12001212; CHECK-NEXT: vfncvtbf16.f.f.w v10, v9
1201- ; CHECK-NEXT: vsetivli zero, 3, e16, mf2, ta, ma
12021213; CHECK-NEXT: vxor.vx v9, v10, a1
12031214; CHECK-NEXT: vand.vx v9, v9, a1
1215+ ; CHECK-NEXT: vsetivli zero, 3, e16, mf2, ta, ma
12041216; CHECK-NEXT: vor.vv v8, v8, v9
12051217; CHECK-NEXT: vse16.v v8, (a0)
12061218; CHECK-NEXT: ret
@@ -1265,10 +1277,12 @@ define void @copysign_neg_trunc_v3f16_v3f32(ptr %x, ptr %y) {
12651277; ZVFHMIN-NEXT: vle32.v v9, (a1)
12661278; ZVFHMIN-NEXT: lui a1, 8
12671279; ZVFHMIN-NEXT: addi a2, a1, -1
1280+ ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
12681281; ZVFHMIN-NEXT: vand.vx v8, v8, a2
12691282; ZVFHMIN-NEXT: vfncvt.f.f.w v10, v9
12701283; ZVFHMIN-NEXT: vxor.vx v9, v10, a1
12711284; ZVFHMIN-NEXT: vand.vx v9, v9, a1
1285+ ; ZVFHMIN-NEXT: vsetivli zero, 3, e16, mf2, ta, ma
12721286; ZVFHMIN-NEXT: vor.vv v8, v8, v9
12731287; ZVFHMIN-NEXT: vse16.v v8, (a0)
12741288; ZVFHMIN-NEXT: ret
0 commit comments