@@ -9,7 +9,8 @@ define i8 @abd_ext_i8(i8 %a, i8 %b) nounwind {
9
9
; CHECK-LABEL: abd_ext_i8:
10
10
; CHECK: // %bb.0:
11
11
; CHECK-NEXT: and w8, w0, #0xff
12
- ; CHECK-NEXT: subs w8, w8, w1, uxtb
12
+ ; CHECK-NEXT: sub w8, w8, w1, uxtb
13
+ ; CHECK-NEXT: cmp w8, #0
13
14
; CHECK-NEXT: cneg w0, w8, mi
14
15
; CHECK-NEXT: ret
15
16
%aext = zext i8 %a to i64
@@ -24,7 +25,8 @@ define i8 @abd_ext_i8_i16(i8 %a, i16 %b) nounwind {
24
25
; CHECK-LABEL: abd_ext_i8_i16:
25
26
; CHECK: // %bb.0:
26
27
; CHECK-NEXT: and w8, w0, #0xff
27
- ; CHECK-NEXT: subs w8, w8, w1, uxth
28
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
29
+ ; CHECK-NEXT: cmp w8, #0
28
30
; CHECK-NEXT: cneg w0, w8, mi
29
31
; CHECK-NEXT: ret
30
32
%aext = zext i8 %a to i64
@@ -39,7 +41,8 @@ define i8 @abd_ext_i8_undef(i8 %a, i8 %b) nounwind {
39
41
; CHECK-LABEL: abd_ext_i8_undef:
40
42
; CHECK: // %bb.0:
41
43
; CHECK-NEXT: and w8, w0, #0xff
42
- ; CHECK-NEXT: subs w8, w8, w1, uxtb
44
+ ; CHECK-NEXT: sub w8, w8, w1, uxtb
45
+ ; CHECK-NEXT: cmp w8, #0
43
46
; CHECK-NEXT: cneg w0, w8, mi
44
47
; CHECK-NEXT: ret
45
48
%aext = zext i8 %a to i64
@@ -54,7 +57,8 @@ define i16 @abd_ext_i16(i16 %a, i16 %b) nounwind {
54
57
; CHECK-LABEL: abd_ext_i16:
55
58
; CHECK: // %bb.0:
56
59
; CHECK-NEXT: and w8, w0, #0xffff
57
- ; CHECK-NEXT: subs w8, w8, w1, uxth
60
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
61
+ ; CHECK-NEXT: cmp w8, #0
58
62
; CHECK-NEXT: cneg w0, w8, mi
59
63
; CHECK-NEXT: ret
60
64
%aext = zext i16 %a to i64
@@ -84,7 +88,8 @@ define i16 @abd_ext_i16_undef(i16 %a, i16 %b) nounwind {
84
88
; CHECK-LABEL: abd_ext_i16_undef:
85
89
; CHECK: // %bb.0:
86
90
; CHECK-NEXT: and w8, w0, #0xffff
87
- ; CHECK-NEXT: subs w8, w8, w1, uxth
91
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
92
+ ; CHECK-NEXT: cmp w8, #0
88
93
; CHECK-NEXT: cneg w0, w8, mi
89
94
; CHECK-NEXT: ret
90
95
%aext = zext i16 %a to i64
@@ -213,7 +218,8 @@ define i8 @abd_minmax_i8(i8 %a, i8 %b) nounwind {
213
218
; CHECK-LABEL: abd_minmax_i8:
214
219
; CHECK: // %bb.0:
215
220
; CHECK-NEXT: and w8, w0, #0xff
216
- ; CHECK-NEXT: subs w8, w8, w1, uxtb
221
+ ; CHECK-NEXT: sub w8, w8, w1, uxtb
222
+ ; CHECK-NEXT: cmp w8, #0
217
223
; CHECK-NEXT: cneg w0, w8, mi
218
224
; CHECK-NEXT: ret
219
225
%min = call i8 @llvm.umin.i8 (i8 %a , i8 %b )
@@ -226,7 +232,8 @@ define i16 @abd_minmax_i16(i16 %a, i16 %b) nounwind {
226
232
; CHECK-LABEL: abd_minmax_i16:
227
233
; CHECK: // %bb.0:
228
234
; CHECK-NEXT: and w8, w0, #0xffff
229
- ; CHECK-NEXT: subs w8, w8, w1, uxth
235
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
236
+ ; CHECK-NEXT: cmp w8, #0
230
237
; CHECK-NEXT: cneg w0, w8, mi
231
238
; CHECK-NEXT: ret
232
239
%min = call i16 @llvm.umin.i16 (i16 %a , i16 %b )
@@ -285,7 +292,8 @@ define i8 @abd_cmp_i8(i8 %a, i8 %b) nounwind {
285
292
; CHECK-LABEL: abd_cmp_i8:
286
293
; CHECK: // %bb.0:
287
294
; CHECK-NEXT: and w8, w0, #0xff
288
- ; CHECK-NEXT: subs w8, w8, w1, uxtb
295
+ ; CHECK-NEXT: sub w8, w8, w1, uxtb
296
+ ; CHECK-NEXT: cmp w8, #0
289
297
; CHECK-NEXT: cneg w0, w8, mi
290
298
; CHECK-NEXT: ret
291
299
%cmp = icmp ugt i8 %a , %b
@@ -299,7 +307,8 @@ define i16 @abd_cmp_i16(i16 %a, i16 %b) nounwind {
299
307
; CHECK-LABEL: abd_cmp_i16:
300
308
; CHECK: // %bb.0:
301
309
; CHECK-NEXT: and w8, w0, #0xffff
302
- ; CHECK-NEXT: subs w8, w8, w1, uxth
310
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
311
+ ; CHECK-NEXT: cmp w8, #0
303
312
; CHECK-NEXT: cneg w0, w8, mi
304
313
; CHECK-NEXT: ret
305
314
%cmp = icmp uge i16 %a , %b
@@ -383,7 +392,8 @@ define i8 @abd_select_i8(i8 %a, i8 %b) nounwind {
383
392
; CHECK-LABEL: abd_select_i8:
384
393
; CHECK: // %bb.0:
385
394
; CHECK-NEXT: and w8, w0, #0xff
386
- ; CHECK-NEXT: subs w8, w8, w1, uxtb
395
+ ; CHECK-NEXT: sub w8, w8, w1, uxtb
396
+ ; CHECK-NEXT: cmp w8, #0
387
397
; CHECK-NEXT: cneg w0, w8, mi
388
398
; CHECK-NEXT: ret
389
399
%cmp = icmp ult i8 %a , %b
@@ -397,7 +407,8 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
397
407
; CHECK-LABEL: abd_select_i16:
398
408
; CHECK: // %bb.0:
399
409
; CHECK-NEXT: and w8, w0, #0xffff
400
- ; CHECK-NEXT: subs w8, w8, w1, uxth
410
+ ; CHECK-NEXT: sub w8, w8, w1, uxth
411
+ ; CHECK-NEXT: cmp w8, #0
401
412
; CHECK-NEXT: cneg w0, w8, mi
402
413
; CHECK-NEXT: ret
403
414
%cmp = icmp ule i16 %a , %b
0 commit comments