@@ -161,10 +161,8 @@ define void @fcvtzu_v16f16_v16i32(<16 x half>* %a, <16 x i32>* %b) #0 {
161
161
;
162
162
; VBITS_GE_512-LABEL: fcvtzu_v16f16_v16i32:
163
163
; VBITS_GE_512: // %bb.0:
164
- ; VBITS_GE_512-NEXT: ptrue p0.h, vl16
165
- ; VBITS_GE_512-NEXT: ld1h { z0.h }, p0/z, [x0]
166
164
; VBITS_GE_512-NEXT: ptrue p0.s, vl16
167
- ; VBITS_GE_512-NEXT: uunpklo z0.s, z0.h
165
+ ; VBITS_GE_512-NEXT: ld1h { z0.s }, p0/z, [x0]
168
166
; VBITS_GE_512-NEXT: fcvtzu z0.s, p0/m, z0.h
169
167
; VBITS_GE_512-NEXT: st1w { z0.s }, p0, [x1]
170
168
; VBITS_GE_512-NEXT: ret
@@ -177,10 +175,8 @@ define void @fcvtzu_v16f16_v16i32(<16 x half>* %a, <16 x i32>* %b) #0 {
177
175
define void @fcvtzu_v32f16_v32i32 (<32 x half >* %a , <32 x i32 >* %b ) vscale_range(8 ,0 ) #0 {
178
176
; CHECK-LABEL: fcvtzu_v32f16_v32i32:
179
177
; CHECK: // %bb.0:
180
- ; CHECK-NEXT: ptrue p0.h, vl32
181
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
182
178
; CHECK-NEXT: ptrue p0.s, vl32
183
- ; CHECK-NEXT: uunpklo z0.s, z0.h
179
+ ; CHECK-NEXT: ld1h { z0.s }, p0/z, [x0]
184
180
; CHECK-NEXT: fcvtzu z0.s, p0/m, z0.h
185
181
; CHECK-NEXT: st1w { z0.s }, p0, [x1]
186
182
; CHECK-NEXT: ret
@@ -193,10 +189,8 @@ define void @fcvtzu_v32f16_v32i32(<32 x half>* %a, <32 x i32>* %b) vscale_range(
193
189
define void @fcvtzu_v64f16_v64i32 (<64 x half >* %a , <64 x i32 >* %b ) vscale_range(16 ,0 ) #0 {
194
190
; CHECK-LABEL: fcvtzu_v64f16_v64i32:
195
191
; CHECK: // %bb.0:
196
- ; CHECK-NEXT: ptrue p0.h, vl64
197
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
198
192
; CHECK-NEXT: ptrue p0.s, vl64
199
- ; CHECK-NEXT: uunpklo z0.s, z0.h
193
+ ; CHECK-NEXT: ld1h { z0.s }, p0/z, [x0]
200
194
; CHECK-NEXT: fcvtzu z0.s, p0/m, z0.h
201
195
; CHECK-NEXT: st1w { z0.s }, p0, [x1]
202
196
; CHECK-NEXT: ret
@@ -287,11 +281,8 @@ define void @fcvtzu_v8f16_v8i64(<8 x half>* %a, <8 x i64>* %b) #0 {
287
281
define void @fcvtzu_v16f16_v16i64 (<16 x half >* %a , <16 x i64 >* %b ) vscale_range(8 ,0 ) #0 {
288
282
; CHECK-LABEL: fcvtzu_v16f16_v16i64:
289
283
; CHECK: // %bb.0:
290
- ; CHECK-NEXT: ptrue p0.h, vl16
291
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
292
284
; CHECK-NEXT: ptrue p0.d, vl16
293
- ; CHECK-NEXT: uunpklo z0.s, z0.h
294
- ; CHECK-NEXT: uunpklo z0.d, z0.s
285
+ ; CHECK-NEXT: ld1h { z0.d }, p0/z, [x0]
295
286
; CHECK-NEXT: fcvtzu z0.d, p0/m, z0.h
296
287
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
297
288
; CHECK-NEXT: ret
@@ -304,11 +295,8 @@ define void @fcvtzu_v16f16_v16i64(<16 x half>* %a, <16 x i64>* %b) vscale_range(
304
295
define void @fcvtzu_v32f16_v32i64 (<32 x half >* %a , <32 x i64 >* %b ) vscale_range(16 ,0 ) #0 {
305
296
; CHECK-LABEL: fcvtzu_v32f16_v32i64:
306
297
; CHECK: // %bb.0:
307
- ; CHECK-NEXT: ptrue p0.h, vl32
308
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
309
298
; CHECK-NEXT: ptrue p0.d, vl32
310
- ; CHECK-NEXT: uunpklo z0.s, z0.h
311
- ; CHECK-NEXT: uunpklo z0.d, z0.s
299
+ ; CHECK-NEXT: ld1h { z0.d }, p0/z, [x0]
312
300
; CHECK-NEXT: fcvtzu z0.d, p0/m, z0.h
313
301
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
314
302
; CHECK-NEXT: ret
@@ -579,10 +567,8 @@ define void @fcvtzu_v8f32_v8i64(<8 x float>* %a, <8 x i64>* %b) #0 {
579
567
;
580
568
; VBITS_GE_512-LABEL: fcvtzu_v8f32_v8i64:
581
569
; VBITS_GE_512: // %bb.0:
582
- ; VBITS_GE_512-NEXT: ptrue p0.s, vl8
583
- ; VBITS_GE_512-NEXT: ld1w { z0.s }, p0/z, [x0]
584
570
; VBITS_GE_512-NEXT: ptrue p0.d, vl8
585
- ; VBITS_GE_512-NEXT: uunpklo z0.d, z0.s
571
+ ; VBITS_GE_512-NEXT: ld1w { z0.d }, p0/z, [x0]
586
572
; VBITS_GE_512-NEXT: fcvtzu z0.d, p0/m, z0.s
587
573
; VBITS_GE_512-NEXT: st1d { z0.d }, p0, [x1]
588
574
; VBITS_GE_512-NEXT: ret
@@ -595,10 +581,8 @@ define void @fcvtzu_v8f32_v8i64(<8 x float>* %a, <8 x i64>* %b) #0 {
595
581
define void @fcvtzu_v16f32_v16i64 (<16 x float >* %a , <16 x i64 >* %b ) vscale_range(8 ,0 ) #0 {
596
582
; CHECK-LABEL: fcvtzu_v16f32_v16i64:
597
583
; CHECK: // %bb.0:
598
- ; CHECK-NEXT: ptrue p0.s, vl16
599
- ; CHECK-NEXT: ld1w { z0.s }, p0/z, [x0]
600
584
; CHECK-NEXT: ptrue p0.d, vl16
601
- ; CHECK-NEXT: uunpklo z0.d, z0.s
585
+ ; CHECK-NEXT: ld1w { z0.d }, p0/z, [x0]
602
586
; CHECK-NEXT: fcvtzu z0.d, p0/m, z0.s
603
587
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
604
588
; CHECK-NEXT: ret
@@ -611,10 +595,8 @@ define void @fcvtzu_v16f32_v16i64(<16 x float>* %a, <16 x i64>* %b) vscale_range
611
595
define void @fcvtzu_v32f32_v32i64 (<32 x float >* %a , <32 x i64 >* %b ) vscale_range(16 ,0 ) #0 {
612
596
; CHECK-LABEL: fcvtzu_v32f32_v32i64:
613
597
; CHECK: // %bb.0:
614
- ; CHECK-NEXT: ptrue p0.s, vl32
615
- ; CHECK-NEXT: ld1w { z0.s }, p0/z, [x0]
616
598
; CHECK-NEXT: ptrue p0.d, vl32
617
- ; CHECK-NEXT: uunpklo z0.d, z0.s
599
+ ; CHECK-NEXT: ld1w { z0.d }, p0/z, [x0]
618
600
; CHECK-NEXT: fcvtzu z0.d, p0/m, z0.s
619
601
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
620
602
; CHECK-NEXT: ret
@@ -1087,10 +1069,8 @@ define void @fcvtzs_v16f16_v16i32(<16 x half>* %a, <16 x i32>* %b) #0 {
1087
1069
;
1088
1070
; VBITS_GE_512-LABEL: fcvtzs_v16f16_v16i32:
1089
1071
; VBITS_GE_512: // %bb.0:
1090
- ; VBITS_GE_512-NEXT: ptrue p0.h, vl16
1091
- ; VBITS_GE_512-NEXT: ld1h { z0.h }, p0/z, [x0]
1092
1072
; VBITS_GE_512-NEXT: ptrue p0.s, vl16
1093
- ; VBITS_GE_512-NEXT: uunpklo z0.s, z0.h
1073
+ ; VBITS_GE_512-NEXT: ld1h { z0.s }, p0/z, [x0]
1094
1074
; VBITS_GE_512-NEXT: fcvtzs z0.s, p0/m, z0.h
1095
1075
; VBITS_GE_512-NEXT: st1w { z0.s }, p0, [x1]
1096
1076
; VBITS_GE_512-NEXT: ret
@@ -1103,10 +1083,8 @@ define void @fcvtzs_v16f16_v16i32(<16 x half>* %a, <16 x i32>* %b) #0 {
1103
1083
define void @fcvtzs_v32f16_v32i32 (<32 x half >* %a , <32 x i32 >* %b ) vscale_range(8 ,0 ) #0 {
1104
1084
; CHECK-LABEL: fcvtzs_v32f16_v32i32:
1105
1085
; CHECK: // %bb.0:
1106
- ; CHECK-NEXT: ptrue p0.h, vl32
1107
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
1108
1086
; CHECK-NEXT: ptrue p0.s, vl32
1109
- ; CHECK-NEXT: uunpklo z0.s, z0.h
1087
+ ; CHECK-NEXT: ld1h { z0.s }, p0/z, [x0]
1110
1088
; CHECK-NEXT: fcvtzs z0.s, p0/m, z0.h
1111
1089
; CHECK-NEXT: st1w { z0.s }, p0, [x1]
1112
1090
; CHECK-NEXT: ret
@@ -1119,10 +1097,8 @@ define void @fcvtzs_v32f16_v32i32(<32 x half>* %a, <32 x i32>* %b) vscale_range(
1119
1097
define void @fcvtzs_v64f16_v64i32 (<64 x half >* %a , <64 x i32 >* %b ) vscale_range(16 ,0 ) #0 {
1120
1098
; CHECK-LABEL: fcvtzs_v64f16_v64i32:
1121
1099
; CHECK: // %bb.0:
1122
- ; CHECK-NEXT: ptrue p0.h, vl64
1123
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
1124
1100
; CHECK-NEXT: ptrue p0.s, vl64
1125
- ; CHECK-NEXT: uunpklo z0.s, z0.h
1101
+ ; CHECK-NEXT: ld1h { z0.s }, p0/z, [x0]
1126
1102
; CHECK-NEXT: fcvtzs z0.s, p0/m, z0.h
1127
1103
; CHECK-NEXT: st1w { z0.s }, p0, [x1]
1128
1104
; CHECK-NEXT: ret
@@ -1213,11 +1189,8 @@ define void @fcvtzs_v8f16_v8i64(<8 x half>* %a, <8 x i64>* %b) #0 {
1213
1189
define void @fcvtzs_v16f16_v16i64 (<16 x half >* %a , <16 x i64 >* %b ) vscale_range(8 ,0 ) #0 {
1214
1190
; CHECK-LABEL: fcvtzs_v16f16_v16i64:
1215
1191
; CHECK: // %bb.0:
1216
- ; CHECK-NEXT: ptrue p0.h, vl16
1217
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
1218
1192
; CHECK-NEXT: ptrue p0.d, vl16
1219
- ; CHECK-NEXT: uunpklo z0.s, z0.h
1220
- ; CHECK-NEXT: uunpklo z0.d, z0.s
1193
+ ; CHECK-NEXT: ld1h { z0.d }, p0/z, [x0]
1221
1194
; CHECK-NEXT: fcvtzs z0.d, p0/m, z0.h
1222
1195
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
1223
1196
; CHECK-NEXT: ret
@@ -1230,11 +1203,8 @@ define void @fcvtzs_v16f16_v16i64(<16 x half>* %a, <16 x i64>* %b) vscale_range(
1230
1203
define void @fcvtzs_v32f16_v32i64 (<32 x half >* %a , <32 x i64 >* %b ) vscale_range(16 ,0 ) #0 {
1231
1204
; CHECK-LABEL: fcvtzs_v32f16_v32i64:
1232
1205
; CHECK: // %bb.0:
1233
- ; CHECK-NEXT: ptrue p0.h, vl32
1234
- ; CHECK-NEXT: ld1h { z0.h }, p0/z, [x0]
1235
1206
; CHECK-NEXT: ptrue p0.d, vl32
1236
- ; CHECK-NEXT: uunpklo z0.s, z0.h
1237
- ; CHECK-NEXT: uunpklo z0.d, z0.s
1207
+ ; CHECK-NEXT: ld1h { z0.d }, p0/z, [x0]
1238
1208
; CHECK-NEXT: fcvtzs z0.d, p0/m, z0.h
1239
1209
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
1240
1210
; CHECK-NEXT: ret
@@ -1505,10 +1475,8 @@ define void @fcvtzs_v8f32_v8i64(<8 x float>* %a, <8 x i64>* %b) #0 {
1505
1475
;
1506
1476
; VBITS_GE_512-LABEL: fcvtzs_v8f32_v8i64:
1507
1477
; VBITS_GE_512: // %bb.0:
1508
- ; VBITS_GE_512-NEXT: ptrue p0.s, vl8
1509
- ; VBITS_GE_512-NEXT: ld1w { z0.s }, p0/z, [x0]
1510
1478
; VBITS_GE_512-NEXT: ptrue p0.d, vl8
1511
- ; VBITS_GE_512-NEXT: uunpklo z0.d, z0.s
1479
+ ; VBITS_GE_512-NEXT: ld1w { z0.d }, p0/z, [x0]
1512
1480
; VBITS_GE_512-NEXT: fcvtzs z0.d, p0/m, z0.s
1513
1481
; VBITS_GE_512-NEXT: st1d { z0.d }, p0, [x1]
1514
1482
; VBITS_GE_512-NEXT: ret
@@ -1521,10 +1489,8 @@ define void @fcvtzs_v8f32_v8i64(<8 x float>* %a, <8 x i64>* %b) #0 {
1521
1489
define void @fcvtzs_v16f32_v16i64 (<16 x float >* %a , <16 x i64 >* %b ) vscale_range(8 ,0 ) #0 {
1522
1490
; CHECK-LABEL: fcvtzs_v16f32_v16i64:
1523
1491
; CHECK: // %bb.0:
1524
- ; CHECK-NEXT: ptrue p0.s, vl16
1525
- ; CHECK-NEXT: ld1w { z0.s }, p0/z, [x0]
1526
1492
; CHECK-NEXT: ptrue p0.d, vl16
1527
- ; CHECK-NEXT: uunpklo z0.d, z0.s
1493
+ ; CHECK-NEXT: ld1w { z0.d }, p0/z, [x0]
1528
1494
; CHECK-NEXT: fcvtzs z0.d, p0/m, z0.s
1529
1495
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
1530
1496
; CHECK-NEXT: ret
@@ -1537,10 +1503,8 @@ define void @fcvtzs_v16f32_v16i64(<16 x float>* %a, <16 x i64>* %b) vscale_range
1537
1503
define void @fcvtzs_v32f32_v32i64 (<32 x float >* %a , <32 x i64 >* %b ) vscale_range(16 ,0 ) #0 {
1538
1504
; CHECK-LABEL: fcvtzs_v32f32_v32i64:
1539
1505
; CHECK: // %bb.0:
1540
- ; CHECK-NEXT: ptrue p0.s, vl32
1541
- ; CHECK-NEXT: ld1w { z0.s }, p0/z, [x0]
1542
1506
; CHECK-NEXT: ptrue p0.d, vl32
1543
- ; CHECK-NEXT: uunpklo z0.d, z0.s
1507
+ ; CHECK-NEXT: ld1w { z0.d }, p0/z, [x0]
1544
1508
; CHECK-NEXT: fcvtzs z0.d, p0/m, z0.s
1545
1509
; CHECK-NEXT: st1d { z0.d }, p0, [x1]
1546
1510
; CHECK-NEXT: ret
0 commit comments