@@ -2032,7 +2032,7 @@ define void @smlsl2_v8i16_uzp1(<16 x i8> %0, <8 x i16> %1, ptr %2, ptr %3) {
2032
2032
; CHECK-GI-NEXT: ldr q2, [x1, #16]
2033
2033
; CHECK-GI-NEXT: mov d0, v0.d[1]
2034
2034
; CHECK-GI-NEXT: xtn v2.8b, v2.8h
2035
- ; CHECK-GI-NEXT: umlsl v1.8h, v0.8b, v2.8b
2035
+ ; CHECK-GI-NEXT: smlsl v1.8h, v0.8b, v2.8b
2036
2036
; CHECK-GI-NEXT: str q1, [x0]
2037
2037
; CHECK-GI-NEXT: ret
2038
2038
%5 = getelementptr inbounds i32 , ptr %3 , i64 4
@@ -2067,7 +2067,7 @@ define void @umlsl2_v8i16_uzp1(<16 x i8> %0, <8 x i16> %1, ptr %2, ptr %3) {
2067
2067
; CHECK-GI-NEXT: ldr q2, [x1, #16]
2068
2068
; CHECK-GI-NEXT: mov d0, v0.d[1]
2069
2069
; CHECK-GI-NEXT: xtn v2.8b, v2.8h
2070
- ; CHECK-GI-NEXT: smlsl v1.8h, v0.8b, v2.8b
2070
+ ; CHECK-GI-NEXT: umlsl v1.8h, v0.8b, v2.8b
2071
2071
; CHECK-GI-NEXT: str q1, [x0]
2072
2072
; CHECK-GI-NEXT: ret
2073
2073
%5 = getelementptr inbounds i32 , ptr %3 , i64 4
@@ -2102,7 +2102,7 @@ define void @smlsl2_v4i32_uzp1(<8 x i16> %0, <4 x i32> %1, ptr %2, ptr %3) {
2102
2102
; CHECK-GI-NEXT: ldr q2, [x1, #16]
2103
2103
; CHECK-GI-NEXT: mov d0, v0.d[1]
2104
2104
; CHECK-GI-NEXT: xtn v2.4h, v2.4s
2105
- ; CHECK-GI-NEXT: umlsl v1.4s, v0.4h, v2.4h
2105
+ ; CHECK-GI-NEXT: smlsl v1.4s, v0.4h, v2.4h
2106
2106
; CHECK-GI-NEXT: str q1, [x0]
2107
2107
; CHECK-GI-NEXT: ret
2108
2108
%5 = getelementptr inbounds i32 , ptr %3 , i64 4
@@ -2137,7 +2137,7 @@ define void @umlsl2_v4i32_uzp1(<8 x i16> %0, <4 x i32> %1, ptr %2, ptr %3) {
2137
2137
; CHECK-GI-NEXT: ldr q2, [x1, #16]
2138
2138
; CHECK-GI-NEXT: mov d0, v0.d[1]
2139
2139
; CHECK-GI-NEXT: xtn v2.4h, v2.4s
2140
- ; CHECK-GI-NEXT: smlsl v1.4s, v0.4h, v2.4h
2140
+ ; CHECK-GI-NEXT: umlsl v1.4s, v0.4h, v2.4h
2141
2141
; CHECK-GI-NEXT: str q1, [x0]
2142
2142
; CHECK-GI-NEXT: ret
2143
2143
%5 = getelementptr inbounds i32 , ptr %3 , i64 4
@@ -2202,8 +2202,8 @@ define void @smlsl_smlsl2_v8i16_uzp1(<16 x i8> %0, <8 x i16> %1, ptr %2, ptr %3,
2202
2202
; CHECK-GI-NEXT: mov d3, v0.d[1]
2203
2203
; CHECK-GI-NEXT: xtn v2.8b, v2.8h
2204
2204
; CHECK-GI-NEXT: xtn v4.8b, v4.8h
2205
- ; CHECK-GI-NEXT: umull v2.8h, v3.8b, v2.8b
2206
- ; CHECK-GI-NEXT: umlal v2.8h, v0.8b, v4.8b
2205
+ ; CHECK-GI-NEXT: smull v2.8h, v3.8b, v2.8b
2206
+ ; CHECK-GI-NEXT: smlal v2.8h, v0.8b, v4.8b
2207
2207
; CHECK-GI-NEXT: sub v0.8h, v1.8h, v2.8h
2208
2208
; CHECK-GI-NEXT: str q0, [x0]
2209
2209
; CHECK-GI-NEXT: ret
@@ -2248,8 +2248,8 @@ define void @umlsl_umlsl2_v8i16_uzp1(<16 x i8> %0, <8 x i16> %1, ptr %2, ptr %3,
2248
2248
; CHECK-GI-NEXT: mov d3, v0.d[1]
2249
2249
; CHECK-GI-NEXT: xtn v2.8b, v2.8h
2250
2250
; CHECK-GI-NEXT: xtn v4.8b, v4.8h
2251
- ; CHECK-GI-NEXT: smull v2.8h, v3.8b, v2.8b
2252
- ; CHECK-GI-NEXT: smlal v2.8h, v0.8b, v4.8b
2251
+ ; CHECK-GI-NEXT: umull v2.8h, v3.8b, v2.8b
2252
+ ; CHECK-GI-NEXT: umlal v2.8h, v0.8b, v4.8b
2253
2253
; CHECK-GI-NEXT: sub v0.8h, v1.8h, v2.8h
2254
2254
; CHECK-GI-NEXT: str q0, [x0]
2255
2255
; CHECK-GI-NEXT: ret
@@ -2294,8 +2294,8 @@ define void @smlsl_smlsl2_v4i32_uzp1(<8 x i16> %0, <4 x i32> %1, ptr %2, ptr %3,
2294
2294
; CHECK-GI-NEXT: mov d3, v0.d[1]
2295
2295
; CHECK-GI-NEXT: xtn v2.4h, v2.4s
2296
2296
; CHECK-GI-NEXT: xtn v4.4h, v4.4s
2297
- ; CHECK-GI-NEXT: umull v2.4s, v3.4h, v2.4h
2298
- ; CHECK-GI-NEXT: umlal v2.4s, v0.4h, v4.4h
2297
+ ; CHECK-GI-NEXT: smull v2.4s, v3.4h, v2.4h
2298
+ ; CHECK-GI-NEXT: smlal v2.4s, v0.4h, v4.4h
2299
2299
; CHECK-GI-NEXT: sub v0.4s, v1.4s, v2.4s
2300
2300
; CHECK-GI-NEXT: str q0, [x0]
2301
2301
; CHECK-GI-NEXT: ret
@@ -2340,8 +2340,8 @@ define void @umlsl_umlsl2_v4i32_uzp1(<8 x i16> %0, <4 x i32> %1, ptr %2, ptr %3,
2340
2340
; CHECK-GI-NEXT: mov d3, v0.d[1]
2341
2341
; CHECK-GI-NEXT: xtn v2.4h, v2.4s
2342
2342
; CHECK-GI-NEXT: xtn v4.4h, v4.4s
2343
- ; CHECK-GI-NEXT: smull v2.4s, v3.4h, v2.4h
2344
- ; CHECK-GI-NEXT: smlal v2.4s, v0.4h, v4.4h
2343
+ ; CHECK-GI-NEXT: umull v2.4s, v3.4h, v2.4h
2344
+ ; CHECK-GI-NEXT: umlal v2.4s, v0.4h, v4.4h
2345
2345
; CHECK-GI-NEXT: sub v0.4s, v1.4s, v2.4s
2346
2346
; CHECK-GI-NEXT: str q0, [x0]
2347
2347
; CHECK-GI-NEXT: ret
@@ -2382,7 +2382,7 @@ define <2 x i32> @do_stuff(<2 x i64> %0, <2 x i64> %1) {
2382
2382
; CHECK-GI: // %bb.0:
2383
2383
; CHECK-GI-NEXT: xtn v0.2s, v0.2d
2384
2384
; CHECK-GI-NEXT: mov d2, v1.d[1]
2385
- ; CHECK-GI-NEXT: umull v0.2d, v2.2s, v0.2s
2385
+ ; CHECK-GI-NEXT: smull v0.2d, v2.2s, v0.2s
2386
2386
; CHECK-GI-NEXT: xtn v0.2s, v0.2d
2387
2387
; CHECK-GI-NEXT: add v0.2s, v0.2s, v1.2s
2388
2388
; CHECK-GI-NEXT: ret
0 commit comments