@@ -27,22 +27,21 @@ define i32 @expanded_neg_abs32(i32 %x) {
27
27
;
28
28
; RV64I-LABEL: expanded_neg_abs32:
29
29
; 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
34
33
; RV64I-NEXT: # %bb.1:
35
34
; RV64I-NEXT: mv a1, a0
36
35
; RV64I-NEXT: .LBB0_2:
37
- ; RV64I-NEXT: neg a0, a1
36
+ ; RV64I-NEXT: negw a0, a1
38
37
; RV64I-NEXT: ret
39
38
;
40
39
; RV64ZBB-LABEL: expanded_neg_abs32:
41
40
; RV64ZBB: # %bb.0:
42
41
; RV64ZBB-NEXT: negw a1, a0
43
42
; RV64ZBB-NEXT: sext.w a0, a0
44
43
; RV64ZBB-NEXT: max a0, a1, a0
45
- ; RV64ZBB-NEXT: neg a0, a0
44
+ ; RV64ZBB-NEXT: negw a0, a0
46
45
; RV64ZBB-NEXT: ret
47
46
%n = sub i32 0 , %x
48
47
%t = call i32 @llvm.smax.i32 (i32 %n , i32 %x )
@@ -69,22 +68,21 @@ define i32 @expanded_neg_abs32_unsigned(i32 %x) {
69
68
;
70
69
; RV64I-LABEL: expanded_neg_abs32_unsigned:
71
70
; 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
76
74
; RV64I-NEXT: # %bb.1:
77
75
; RV64I-NEXT: mv a1, a0
78
76
; RV64I-NEXT: .LBB1_2:
79
- ; RV64I-NEXT: neg a0, a1
77
+ ; RV64I-NEXT: negw a0, a1
80
78
; RV64I-NEXT: ret
81
79
;
82
80
; RV64ZBB-LABEL: expanded_neg_abs32_unsigned:
83
81
; RV64ZBB: # %bb.0:
84
82
; RV64ZBB-NEXT: negw a1, a0
85
83
; RV64ZBB-NEXT: sext.w a0, a0
86
84
; RV64ZBB-NEXT: maxu a0, a1, a0
87
- ; RV64ZBB-NEXT: neg a0, a0
85
+ ; RV64ZBB-NEXT: negw a0, a0
88
86
; RV64ZBB-NEXT: ret
89
87
%n = sub i32 0 , %x
90
88
%t = call i32 @llvm.umax.i32 (i32 %n , i32 %x )
@@ -251,22 +249,21 @@ define i32 @expanded_neg_inv_abs32(i32 %x) {
251
249
;
252
250
; RV64I-LABEL: expanded_neg_inv_abs32:
253
251
; 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
258
255
; RV64I-NEXT: # %bb.1:
259
256
; RV64I-NEXT: mv a1, a0
260
257
; RV64I-NEXT: .LBB4_2:
261
- ; RV64I-NEXT: neg a0, a1
258
+ ; RV64I-NEXT: negw a0, a1
262
259
; RV64I-NEXT: ret
263
260
;
264
261
; RV64ZBB-LABEL: expanded_neg_inv_abs32:
265
262
; RV64ZBB: # %bb.0:
266
263
; RV64ZBB-NEXT: negw a1, a0
267
264
; RV64ZBB-NEXT: sext.w a0, a0
268
265
; RV64ZBB-NEXT: min a0, a1, a0
269
- ; RV64ZBB-NEXT: neg a0, a0
266
+ ; RV64ZBB-NEXT: negw a0, a0
270
267
; RV64ZBB-NEXT: ret
271
268
%n = sub i32 0 , %x
272
269
%t = call i32 @llvm.smin.i32 (i32 %n , i32 %x )
@@ -293,22 +290,21 @@ define i32 @expanded_neg_inv_abs32_unsigned(i32 %x) {
293
290
;
294
291
; RV64I-LABEL: expanded_neg_inv_abs32_unsigned:
295
292
; 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
300
296
; RV64I-NEXT: # %bb.1:
301
297
; RV64I-NEXT: mv a1, a0
302
298
; RV64I-NEXT: .LBB5_2:
303
- ; RV64I-NEXT: neg a0, a1
299
+ ; RV64I-NEXT: negw a0, a1
304
300
; RV64I-NEXT: ret
305
301
;
306
302
; RV64ZBB-LABEL: expanded_neg_inv_abs32_unsigned:
307
303
; RV64ZBB: # %bb.0:
308
304
; RV64ZBB-NEXT: negw a1, a0
309
305
; RV64ZBB-NEXT: sext.w a0, a0
310
306
; RV64ZBB-NEXT: minu a0, a1, a0
311
- ; RV64ZBB-NEXT: neg a0, a0
307
+ ; RV64ZBB-NEXT: negw a0, a0
312
308
; RV64ZBB-NEXT: ret
313
309
%n = sub i32 0 , %x
314
310
%t = call i32 @llvm.umin.i32 (i32 %n , i32 %x )
0 commit comments