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