@@ -73,8 +73,8 @@ define i16 @abd_ext_i16_i32(i16 %a, i32 %b) nounwind {
73
73
; CHECK-LABEL: abd_ext_i16_i32:
74
74
; CHECK: // %bb.0:
75
75
; CHECK-NEXT: and w8, w0, #0xffff
76
- ; CHECK-NEXT: subs w8, w1, w8
77
- ; CHECK-NEXT: cneg w0, w8, hs
76
+ ; CHECK-NEXT: subs w8, w8, w1
77
+ ; CHECK-NEXT: cneg w0, w8, hi
78
78
; CHECK-NEXT: ret
79
79
%aext = zext i16 %a to i64
80
80
%bext = zext i32 %b to i64
@@ -104,8 +104,8 @@ define i16 @abd_ext_i16_undef(i16 %a, i16 %b) nounwind {
104
104
define i32 @abd_ext_i32 (i32 %a , i32 %b ) nounwind {
105
105
; CHECK-LABEL: abd_ext_i32:
106
106
; CHECK: // %bb.0:
107
- ; CHECK-NEXT: subs w8, w1, w0
108
- ; CHECK-NEXT: cneg w0, w8, hs
107
+ ; CHECK-NEXT: subs w8, w0, w1
108
+ ; CHECK-NEXT: cneg w0, w8, hi
109
109
; CHECK-NEXT: ret
110
110
%aext = zext i32 %a to i64
111
111
%bext = zext i32 %b to i64
@@ -119,9 +119,8 @@ define i32 @abd_ext_i32(i32 %a, i32 %b) nounwind {
119
119
define i32 @abd_ext_i32_i16 (i32 %a , i16 %b ) nounwind {
120
120
; CHECK-LABEL: abd_ext_i32_i16:
121
121
; CHECK: // %bb.0:
122
- ; CHECK-NEXT: and w8, w1, #0xffff
123
- ; CHECK-NEXT: subs w8, w8, w0
124
- ; CHECK-NEXT: cneg w0, w8, hs
122
+ ; CHECK-NEXT: subs w8, w0, w1, uxth
123
+ ; CHECK-NEXT: cneg w0, w8, hi
125
124
; CHECK-NEXT: ret
126
125
%aext = zext i32 %a to i64
127
126
%bext = zext i16 %b to i64
@@ -135,8 +134,8 @@ define i32 @abd_ext_i32_i16(i32 %a, i16 %b) nounwind {
135
134
define i32 @abd_ext_i32_undef (i32 %a , i32 %b ) nounwind {
136
135
; CHECK-LABEL: abd_ext_i32_undef:
137
136
; CHECK: // %bb.0:
138
- ; CHECK-NEXT: subs w8, w1, w0
139
- ; CHECK-NEXT: cneg w0, w8, hs
137
+ ; CHECK-NEXT: subs w8, w0, w1
138
+ ; CHECK-NEXT: cneg w0, w8, hi
140
139
; CHECK-NEXT: ret
141
140
%aext = zext i32 %a to i64
142
141
%bext = zext i32 %b to i64
@@ -150,8 +149,8 @@ define i32 @abd_ext_i32_undef(i32 %a, i32 %b) nounwind {
150
149
define i64 @abd_ext_i64 (i64 %a , i64 %b ) nounwind {
151
150
; CHECK-LABEL: abd_ext_i64:
152
151
; CHECK: // %bb.0:
153
- ; CHECK-NEXT: subs x8, x1, x0
154
- ; CHECK-NEXT: cneg x0, x8, hs
152
+ ; CHECK-NEXT: subs x8, x0, x1
153
+ ; CHECK-NEXT: cneg x0, x8, hi
155
154
; CHECK-NEXT: ret
156
155
%aext = zext i64 %a to i128
157
156
%bext = zext i64 %b to i128
@@ -165,8 +164,8 @@ define i64 @abd_ext_i64(i64 %a, i64 %b) nounwind {
165
164
define i64 @abd_ext_i64_undef (i64 %a , i64 %b ) nounwind {
166
165
; CHECK-LABEL: abd_ext_i64_undef:
167
166
; CHECK: // %bb.0:
168
- ; CHECK-NEXT: subs x8, x1, x0
169
- ; CHECK-NEXT: cneg x0, x8, hs
167
+ ; CHECK-NEXT: subs x8, x0, x1
168
+ ; CHECK-NEXT: cneg x0, x8, hi
170
169
; CHECK-NEXT: ret
171
170
%aext = zext i64 %a to i128
172
171
%bext = zext i64 %b to i128
0 commit comments