@@ -9,7 +9,8 @@ define i8 @abd_ext_i8(i8 %a, i8 %b) nounwind {
99; CHECK-LABEL: abd_ext_i8:
1010; CHECK: // %bb.0:
1111; 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
1314; CHECK-NEXT: cneg w0, w8, mi
1415; CHECK-NEXT: ret
1516 %aext = zext i8 %a to i64
@@ -24,7 +25,8 @@ define i8 @abd_ext_i8_i16(i8 %a, i16 %b) nounwind {
2425; CHECK-LABEL: abd_ext_i8_i16:
2526; CHECK: // %bb.0:
2627; 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
2830; CHECK-NEXT: cneg w0, w8, mi
2931; CHECK-NEXT: ret
3032 %aext = zext i8 %a to i64
@@ -39,7 +41,8 @@ define i8 @abd_ext_i8_undef(i8 %a, i8 %b) nounwind {
3941; CHECK-LABEL: abd_ext_i8_undef:
4042; CHECK: // %bb.0:
4143; 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
4346; CHECK-NEXT: cneg w0, w8, mi
4447; CHECK-NEXT: ret
4548 %aext = zext i8 %a to i64
@@ -54,7 +57,8 @@ define i16 @abd_ext_i16(i16 %a, i16 %b) nounwind {
5457; CHECK-LABEL: abd_ext_i16:
5558; CHECK: // %bb.0:
5659; 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
5862; CHECK-NEXT: cneg w0, w8, mi
5963; CHECK-NEXT: ret
6064 %aext = zext i16 %a to i64
@@ -84,7 +88,8 @@ define i16 @abd_ext_i16_undef(i16 %a, i16 %b) nounwind {
8488; CHECK-LABEL: abd_ext_i16_undef:
8589; CHECK: // %bb.0:
8690; 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
8893; CHECK-NEXT: cneg w0, w8, mi
8994; CHECK-NEXT: ret
9095 %aext = zext i16 %a to i64
@@ -213,7 +218,8 @@ define i8 @abd_minmax_i8(i8 %a, i8 %b) nounwind {
213218; CHECK-LABEL: abd_minmax_i8:
214219; CHECK: // %bb.0:
215220; 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
217223; CHECK-NEXT: cneg w0, w8, mi
218224; CHECK-NEXT: ret
219225 %min = call i8 @llvm.umin.i8 (i8 %a , i8 %b )
@@ -226,7 +232,8 @@ define i16 @abd_minmax_i16(i16 %a, i16 %b) nounwind {
226232; CHECK-LABEL: abd_minmax_i16:
227233; CHECK: // %bb.0:
228234; 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
230237; CHECK-NEXT: cneg w0, w8, mi
231238; CHECK-NEXT: ret
232239 %min = call i16 @llvm.umin.i16 (i16 %a , i16 %b )
@@ -285,7 +292,8 @@ define i8 @abd_cmp_i8(i8 %a, i8 %b) nounwind {
285292; CHECK-LABEL: abd_cmp_i8:
286293; CHECK: // %bb.0:
287294; 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
289297; CHECK-NEXT: cneg w0, w8, mi
290298; CHECK-NEXT: ret
291299 %cmp = icmp ugt i8 %a , %b
@@ -299,7 +307,8 @@ define i16 @abd_cmp_i16(i16 %a, i16 %b) nounwind {
299307; CHECK-LABEL: abd_cmp_i16:
300308; CHECK: // %bb.0:
301309; 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
303312; CHECK-NEXT: cneg w0, w8, mi
304313; CHECK-NEXT: ret
305314 %cmp = icmp uge i16 %a , %b
@@ -383,7 +392,8 @@ define i8 @abd_select_i8(i8 %a, i8 %b) nounwind {
383392; CHECK-LABEL: abd_select_i8:
384393; CHECK: // %bb.0:
385394; 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
387397; CHECK-NEXT: cneg w0, w8, mi
388398; CHECK-NEXT: ret
389399 %cmp = icmp ult i8 %a , %b
@@ -397,7 +407,8 @@ define i16 @abd_select_i16(i16 %a, i16 %b) nounwind {
397407; CHECK-LABEL: abd_select_i16:
398408; CHECK: // %bb.0:
399409; 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
401412; CHECK-NEXT: cneg w0, w8, mi
402413; CHECK-NEXT: ret
403414 %cmp = icmp ule i16 %a , %b
0 commit comments