@@ -1246,33 +1246,33 @@ define void @zext_v16i4_to_v16i32_in_loop(ptr %src, ptr %dst) {
1246
1246
; CHECK-NEXT: add x8, x8, #16
1247
1247
; CHECK-NEXT: cmp x8, #128
1248
1248
; CHECK-NEXT: ubfx x12, x9, #48, #4
1249
- ; CHECK-NEXT: ubfx x10, x9, #52, #4
1250
- ; CHECK-NEXT: ubfx x14 , x9, #32, #4
1249
+ ; CHECK-NEXT: lsr x10, x9, #52
1250
+ ; CHECK-NEXT: ubfx x13 , x9, #32, #4
1251
1251
; CHECK-NEXT: ubfx w15, w9, #16, #4
1252
- ; CHECK-NEXT: ubfx x11, x9, #36, #4
1253
- ; CHECK-NEXT: ubfx w13 , w9, #20, #4
1252
+ ; CHECK-NEXT: lsr x11, x9, #36
1253
+ ; CHECK-NEXT: lsr w14 , w9, #20
1254
1254
; CHECK-NEXT: fmov s1, w12
1255
- ; CHECK-NEXT: fmov s2, w14
1256
- ; CHECK-NEXT: ubfx w12, w9, #4 , #4
1255
+ ; CHECK-NEXT: fmov s2, w13
1256
+ ; CHECK-NEXT: lsr w12, w9, #4
1257
1257
; CHECK-NEXT: fmov s3, w15
1258
1258
; CHECK-NEXT: mov.h v1[1], w10
1259
1259
; CHECK-NEXT: and w10, w9, #0xf
1260
1260
; CHECK-NEXT: mov.h v2[1], w11
1261
1261
; CHECK-NEXT: fmov s4, w10
1262
- ; CHECK-NEXT: ubfx x11, x9, #56, #4
1263
- ; CHECK-NEXT: mov.h v3[1], w13
1264
- ; CHECK-NEXT: ubfx x10, x9, #40, #4
1262
+ ; CHECK-NEXT: lsr x11, x9, #56
1263
+ ; CHECK-NEXT: mov.h v3[1], w14
1264
+ ; CHECK-NEXT: lsr x10, x9, #40
1265
1265
; CHECK-NEXT: mov.h v4[1], w12
1266
- ; CHECK-NEXT: ubfx w12, w9, #24, #4
1266
+ ; CHECK-NEXT: lsr w12, w9, #24
1267
1267
; CHECK-NEXT: mov.h v1[2], w11
1268
- ; CHECK-NEXT: ubfx w11, w9, #8, #4
1268
+ ; CHECK-NEXT: lsr w11, w9, #8
1269
1269
; CHECK-NEXT: mov.h v2[2], w10
1270
1270
; CHECK-NEXT: lsr x10, x9, #60
1271
1271
; CHECK-NEXT: mov.h v3[2], w12
1272
- ; CHECK-NEXT: ubfx x12, x9, #44, #4
1272
+ ; CHECK-NEXT: lsr x12, x9, #44
1273
1273
; CHECK-NEXT: mov.h v4[2], w11
1274
1274
; CHECK-NEXT: lsr w11, w9, #28
1275
- ; CHECK-NEXT: ubfx w9, w9, #12, #4
1275
+ ; CHECK-NEXT: lsr w9, w9, #12
1276
1276
; CHECK-NEXT: mov.h v1[3], w10
1277
1277
; CHECK-NEXT: mov.h v2[3], w12
1278
1278
; CHECK-NEXT: mov.h v3[3], w11
@@ -1300,38 +1300,37 @@ define void @zext_v16i4_to_v16i32_in_loop(ptr %src, ptr %dst) {
1300
1300
; CHECK-BE-NEXT: ldr x9, [x0, x8]
1301
1301
; CHECK-BE-NEXT: add x8, x8, #16
1302
1302
; CHECK-BE-NEXT: cmp x8, #128
1303
- ; CHECK-BE-NEXT: ubfx w12 , w9, #12, #4
1303
+ ; CHECK-BE-NEXT: ubfx w11 , w9, #12, #4
1304
1304
; CHECK-BE-NEXT: lsr w14, w9, #28
1305
- ; CHECK-BE-NEXT: ubfx w10, w9, #8, #4
1305
+ ; CHECK-BE-NEXT: lsr w10, w9, #8
1306
1306
; CHECK-BE-NEXT: ubfx x15, x9, #44, #4
1307
- ; CHECK-BE-NEXT: ubfx w11 , w9, #24, #4
1308
- ; CHECK-BE-NEXT: ubfx x13, x9, #40, #4
1309
- ; CHECK-BE-NEXT: fmov s1, w12
1310
- ; CHECK-BE-NEXT: lsr x12 , x9, #60
1307
+ ; CHECK-BE-NEXT: lsr w12 , w9, #24
1308
+ ; CHECK-BE-NEXT: lsr x13, x9, #40
1309
+ ; CHECK-BE-NEXT: fmov s1, w11
1310
+ ; CHECK-BE-NEXT: lsr x11 , x9, #60
1311
1311
; CHECK-BE-NEXT: fmov s2, w14
1312
1312
; CHECK-BE-NEXT: fmov s3, w15
1313
- ; CHECK-BE-NEXT: fmov s4, w12
1314
- ; CHECK-BE-NEXT: ubfx w12 , w9, #20, #4
1313
+ ; CHECK-BE-NEXT: fmov s4, w11
1314
+ ; CHECK-BE-NEXT: lsr w11 , w9, #20
1315
1315
; CHECK-BE-NEXT: mov v1.h[1], w10
1316
- ; CHECK-BE-NEXT: ubfx x10, x9, #56, #4
1317
- ; CHECK-BE-NEXT: mov v2.h[1], w11
1318
- ; CHECK-BE-NEXT: ubfx w11 , w9, #4 , #4
1316
+ ; CHECK-BE-NEXT: lsr x10, x9, #56
1317
+ ; CHECK-BE-NEXT: mov v2.h[1], w12
1318
+ ; CHECK-BE-NEXT: lsr w12 , w9, #4
1319
1319
; CHECK-BE-NEXT: mov v3.h[1], w13
1320
1320
; CHECK-BE-NEXT: mov v4.h[1], w10
1321
- ; CHECK-BE-NEXT: ubfx x10, x9, #36, #4
1322
- ; CHECK-BE-NEXT: mov v1.h[2], w11
1323
- ; CHECK-BE-NEXT: ubfx x11 , x9, #52, #4
1324
- ; CHECK-BE-NEXT: mov v2.h[2], w12
1321
+ ; CHECK-BE-NEXT: lsr x10, x9, #36
1322
+ ; CHECK-BE-NEXT: mov v1.h[2], w12
1323
+ ; CHECK-BE-NEXT: lsr x12 , x9, #52
1324
+ ; CHECK-BE-NEXT: mov v2.h[2], w11
1325
1325
; CHECK-BE-NEXT: mov v3.h[2], w10
1326
- ; CHECK-BE-NEXT: and w10, w9, #0xf
1327
- ; CHECK-BE-NEXT: ubfx w12, w9, #16, #4
1328
- ; CHECK-BE-NEXT: mov v4.h[2], w11
1329
- ; CHECK-BE-NEXT: ubfx x11, x9, #32, #4
1330
- ; CHECK-BE-NEXT: ubfx x9, x9, #48, #4
1331
- ; CHECK-BE-NEXT: mov v1.h[3], w10
1332
- ; CHECK-BE-NEXT: mov v2.h[3], w12
1333
- ; CHECK-BE-NEXT: add x10, x1, #32
1326
+ ; CHECK-BE-NEXT: lsr w10, w9, #16
1327
+ ; CHECK-BE-NEXT: lsr x11, x9, #32
1328
+ ; CHECK-BE-NEXT: mov v4.h[2], w12
1329
+ ; CHECK-BE-NEXT: mov v1.h[3], w9
1330
+ ; CHECK-BE-NEXT: lsr x9, x9, #48
1331
+ ; CHECK-BE-NEXT: mov v2.h[3], w10
1334
1332
; CHECK-BE-NEXT: mov v3.h[3], w11
1333
+ ; CHECK-BE-NEXT: add x10, x1, #32
1335
1334
; CHECK-BE-NEXT: mov v4.h[3], w9
1336
1335
; CHECK-BE-NEXT: add x9, x1, #48
1337
1336
; CHECK-BE-NEXT: ushll v1.4s, v1.4h, #0
0 commit comments