@@ -27,22 +27,21 @@ define i32 @expanded_neg_abs32(i32 %x) {
2727;
2828; RV64I-LABEL: expanded_neg_abs32:
2929; RV64I: # %bb.0:
30- ; RV64I-NEXT: neg a1, a0
31- ; RV64I-NEXT: sext.w a2, a1
32- ; RV64I-NEXT: sext.w a3, a0
33- ; RV64I-NEXT: blt a3, a2, .LBB0_2
30+ ; RV64I-NEXT: negw a1, a0
31+ ; RV64I-NEXT: sext.w a2, a0
32+ ; RV64I-NEXT: blt a2, a1, .LBB0_2
3433; RV64I-NEXT: # %bb.1:
3534; RV64I-NEXT: mv a1, a0
3635; RV64I-NEXT: .LBB0_2:
37- ; RV64I-NEXT: neg a0, a1
36+ ; RV64I-NEXT: negw a0, a1
3837; RV64I-NEXT: ret
3938;
4039; RV64ZBB-LABEL: expanded_neg_abs32:
4140; RV64ZBB: # %bb.0:
4241; RV64ZBB-NEXT: negw a1, a0
4342; RV64ZBB-NEXT: sext.w a0, a0
4443; RV64ZBB-NEXT: max a0, a1, a0
45- ; RV64ZBB-NEXT: neg a0, a0
44+ ; RV64ZBB-NEXT: negw a0, a0
4645; RV64ZBB-NEXT: ret
4746 %n = sub i32 0 , %x
4847 %t = call i32 @llvm.smax.i32 (i32 %n , i32 %x )
@@ -69,22 +68,21 @@ define i32 @expanded_neg_abs32_unsigned(i32 %x) {
6968;
7069; RV64I-LABEL: expanded_neg_abs32_unsigned:
7170; RV64I: # %bb.0:
72- ; RV64I-NEXT: neg a1, a0
73- ; RV64I-NEXT: sext.w a2, a1
74- ; RV64I-NEXT: sext.w a3, a0
75- ; RV64I-NEXT: bltu a3, a2, .LBB1_2
71+ ; RV64I-NEXT: negw a1, a0
72+ ; RV64I-NEXT: sext.w a2, a0
73+ ; RV64I-NEXT: bltu a2, a1, .LBB1_2
7674; RV64I-NEXT: # %bb.1:
7775; RV64I-NEXT: mv a1, a0
7876; RV64I-NEXT: .LBB1_2:
79- ; RV64I-NEXT: neg a0, a1
77+ ; RV64I-NEXT: negw a0, a1
8078; RV64I-NEXT: ret
8179;
8280; RV64ZBB-LABEL: expanded_neg_abs32_unsigned:
8381; RV64ZBB: # %bb.0:
8482; RV64ZBB-NEXT: negw a1, a0
8583; RV64ZBB-NEXT: sext.w a0, a0
8684; RV64ZBB-NEXT: maxu a0, a1, a0
87- ; RV64ZBB-NEXT: neg a0, a0
85+ ; RV64ZBB-NEXT: negw a0, a0
8886; RV64ZBB-NEXT: ret
8987 %n = sub i32 0 , %x
9088 %t = call i32 @llvm.umax.i32 (i32 %n , i32 %x )
@@ -251,22 +249,21 @@ define i32 @expanded_neg_inv_abs32(i32 %x) {
251249;
252250; RV64I-LABEL: expanded_neg_inv_abs32:
253251; RV64I: # %bb.0:
254- ; RV64I-NEXT: neg a1, a0
255- ; RV64I-NEXT: sext.w a2, a1
256- ; RV64I-NEXT: sext.w a3, a0
257- ; RV64I-NEXT: blt a2, a3, .LBB4_2
252+ ; RV64I-NEXT: negw a1, a0
253+ ; RV64I-NEXT: sext.w a2, a0
254+ ; RV64I-NEXT: blt a1, a2, .LBB4_2
258255; RV64I-NEXT: # %bb.1:
259256; RV64I-NEXT: mv a1, a0
260257; RV64I-NEXT: .LBB4_2:
261- ; RV64I-NEXT: neg a0, a1
258+ ; RV64I-NEXT: negw a0, a1
262259; RV64I-NEXT: ret
263260;
264261; RV64ZBB-LABEL: expanded_neg_inv_abs32:
265262; RV64ZBB: # %bb.0:
266263; RV64ZBB-NEXT: negw a1, a0
267264; RV64ZBB-NEXT: sext.w a0, a0
268265; RV64ZBB-NEXT: min a0, a1, a0
269- ; RV64ZBB-NEXT: neg a0, a0
266+ ; RV64ZBB-NEXT: negw a0, a0
270267; RV64ZBB-NEXT: ret
271268 %n = sub i32 0 , %x
272269 %t = call i32 @llvm.smin.i32 (i32 %n , i32 %x )
@@ -293,22 +290,21 @@ define i32 @expanded_neg_inv_abs32_unsigned(i32 %x) {
293290;
294291; RV64I-LABEL: expanded_neg_inv_abs32_unsigned:
295292; RV64I: # %bb.0:
296- ; RV64I-NEXT: neg a1, a0
297- ; RV64I-NEXT: sext.w a2, a1
298- ; RV64I-NEXT: sext.w a3, a0
299- ; RV64I-NEXT: bltu a2, a3, .LBB5_2
293+ ; RV64I-NEXT: negw a1, a0
294+ ; RV64I-NEXT: sext.w a2, a0
295+ ; RV64I-NEXT: bltu a1, a2, .LBB5_2
300296; RV64I-NEXT: # %bb.1:
301297; RV64I-NEXT: mv a1, a0
302298; RV64I-NEXT: .LBB5_2:
303- ; RV64I-NEXT: neg a0, a1
299+ ; RV64I-NEXT: negw a0, a1
304300; RV64I-NEXT: ret
305301;
306302; RV64ZBB-LABEL: expanded_neg_inv_abs32_unsigned:
307303; RV64ZBB: # %bb.0:
308304; RV64ZBB-NEXT: negw a1, a0
309305; RV64ZBB-NEXT: sext.w a0, a0
310306; RV64ZBB-NEXT: minu a0, a1, a0
311- ; RV64ZBB-NEXT: neg a0, a0
307+ ; RV64ZBB-NEXT: negw a0, a0
312308; RV64ZBB-NEXT: ret
313309 %n = sub i32 0 , %x
314310 %t = call i32 @llvm.umin.i32 (i32 %n , i32 %x )
0 commit comments