You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll
+71-4Lines changed: 71 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1431,6 +1431,40 @@ define void @store_factor6(ptr %ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %v2
1431
1431
retvoid
1432
1432
}
1433
1433
1434
+
definevoid@store_factor7(ptr%ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %v2, <2 x i16> %v3, <2 x i16> %v4, <2 x i16> %v5, <2 x i16> %v6) {
1435
+
; CHECK-LABEL: store_factor7:
1436
+
; CHECK: # %bb.0:
1437
+
; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1438
+
; CHECK-NEXT: vsseg7e16.v v8, (a0)
1439
+
; CHECK-NEXT: ret
1440
+
%s0 = shufflevector <2 x i16> %v0, <2 x i16> %v1, <4 x i32> <i320, i321, i322, i323>
1441
+
%s1 = shufflevector <2 x i16> %v2, <2 x i16> %v3, <4 x i32> <i320, i321, i322, i323>
1442
+
%s2 = shufflevector <2 x i16> %v4, <2 x i16> %v5, <4 x i32> <i320, i321, i322, i323>
1443
+
%s3 = shufflevector <4 x i16> %s0, <4 x i16> %s1, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1444
+
%s4 = shufflevector <2 x i16> %v6, <2 x i16> poison, <4 x i32> <i320, i321, i32undef, i32undef>
1445
+
%s5 = shufflevector <4 x i16> %s2, <4 x i16> %s4, <8 x i32> <i320, i321, i322, i323, i324, i325, i32undef, i32undef>
1446
+
%interleaved.vec = shufflevector <8 x i16> %s3, <8 x i16> %s5, <14 x i32> <i320, i322, i324, i326, i328, i3210, i3212, i321, i323, i325, i327, i329, i3211, i3213>
1447
+
store <14 x i16> %interleaved.vec, ptr%ptr
1448
+
retvoid
1449
+
}
1450
+
1451
+
definevoid@store_factor8(ptr%ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %v2, <2 x i16> %v3, <2 x i16> %v4, <2 x i16> %v5, <2 x i16> %v6, <2 x i16> %v7) {
1452
+
; CHECK-LABEL: store_factor8:
1453
+
; CHECK: # %bb.0:
1454
+
; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1455
+
; CHECK-NEXT: vsseg8e16.v v8, (a0)
1456
+
; CHECK-NEXT: ret
1457
+
%s0 = shufflevector <2 x i16> %v0, <2 x i16> %v1, <4 x i32> <i320, i321, i322, i323>
1458
+
%s1 = shufflevector <2 x i16> %v2, <2 x i16> %v3, <4 x i32> <i320, i321, i322, i323>
1459
+
%s2 = shufflevector <2 x i16> %v4, <2 x i16> %v5, <4 x i32> <i320, i321, i322, i323>
1460
+
%s3 = shufflevector <4 x i16> %s0, <4 x i16> %s1, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1461
+
%s4 = shufflevector <2 x i16> %v6, <2 x i16> %v7, <4 x i32> <i320, i321, i322, i323>
1462
+
%s5 = shufflevector <4 x i16> %s2, <4 x i16> %s4, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1463
+
%interleaved.vec = shufflevector <8 x i16> %s3, <8 x i16> %s5, <16 x i32> <i320, i322, i324, i326, i328, i3210, i3212, i3214, i321, i323, i325, i327, i329, i3211, i3213, i3215>
1464
+
store <16 x i16> %interleaved.vec, ptr%ptr
1465
+
retvoid
1466
+
}
1467
+
1434
1468
definevoid@vpstore_factor2(ptr%ptr, <4 x i32> %v0, <4 x i32> %v1) {
1435
1469
; CHECK-LABEL: vpstore_factor2:
1436
1470
; CHECK: # %bb.0:
@@ -1512,6 +1546,39 @@ define void @vpstore_factor6(ptr %ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %
1512
1546
retvoid
1513
1547
}
1514
1548
1549
+
definevoid@vpstore_factor7(ptr%ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %v2, <2 x i16> %v3, <2 x i16> %v4, <2 x i16> %v5, <2 x i16> %v6) {
1550
+
; CHECK-LABEL: vpstore_factor7:
1551
+
; CHECK: # %bb.0:
1552
+
; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1553
+
; CHECK-NEXT: vsseg7e16.v v8, (a0)
1554
+
; CHECK-NEXT: ret
1555
+
%s0 = shufflevector <2 x i16> %v0, <2 x i16> %v1, <4 x i32> <i320, i321, i322, i323>
1556
+
%s1 = shufflevector <2 x i16> %v2, <2 x i16> %v3, <4 x i32> <i320, i321, i322, i323>
1557
+
%s2 = shufflevector <2 x i16> %v4, <2 x i16> %v5, <4 x i32> <i320, i321, i322, i323>
1558
+
%s3 = shufflevector <4 x i16> %s0, <4 x i16> %s1, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1559
+
%s4 = shufflevector <2 x i16> %v6, <2 x i16> poison, <4 x i32> <i320, i321, i32undef, i32undef>
1560
+
%s5 = shufflevector <4 x i16> %s2, <4 x i16> %s4, <8 x i32> <i320, i321, i322, i323, i324, i325, i32undef, i32undef>
1561
+
%interleaved.vec = shufflevector <8 x i16> %s3, <8 x i16> %s5, <14 x i32> <i320, i322, i324, i326, i328, i3210, i3212, i321, i323, i325, i327, i329, i3211, i3213>
1562
+
tailcallvoid@llvm.vp.store.v14i16.p0(<14 x i16> %interleaved.vec, ptr%ptr, <14 x i1> splat (i1true), i3214)
1563
+
retvoid
1564
+
}
1565
+
1566
+
definevoid@vpstore_factor8(ptr%ptr, <2 x i16> %v0, <2 x i16> %v1, <2 x i16> %v2, <2 x i16> %v3, <2 x i16> %v4, <2 x i16> %v5, <2 x i16> %v6, <2 x i16> %v7) {
1567
+
; CHECK-LABEL: vpstore_factor8:
1568
+
; CHECK: # %bb.0:
1569
+
; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1570
+
; CHECK-NEXT: vsseg8e16.v v8, (a0)
1571
+
; CHECK-NEXT: ret
1572
+
%s0 = shufflevector <2 x i16> %v0, <2 x i16> %v1, <4 x i32> <i320, i321, i322, i323>
1573
+
%s1 = shufflevector <2 x i16> %v2, <2 x i16> %v3, <4 x i32> <i320, i321, i322, i323>
1574
+
%s2 = shufflevector <2 x i16> %v4, <2 x i16> %v5, <4 x i32> <i320, i321, i322, i323>
1575
+
%s3 = shufflevector <4 x i16> %s0, <4 x i16> %s1, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1576
+
%s4 = shufflevector <2 x i16> %v6, <2 x i16> %v7, <4 x i32> <i320, i321, i322, i323>
1577
+
%s5 = shufflevector <4 x i16> %s2, <4 x i16> %s4, <8 x i32> <i320, i321, i322, i323, i324, i325, i326, i327>
1578
+
%interleaved.vec = shufflevector <8 x i16> %s3, <8 x i16> %s5, <16 x i32> <i320, i322, i324, i326, i328, i3210, i3212, i3214, i321, i323, i325, i327, i329, i3211, i3213, i3215>
1579
+
tailcallvoid@llvm.vp.store.v16i16.p0(<16 x i16> %interleaved.vec, ptr%ptr, <16 x i1> splat (i1true), i3216)
1580
+
retvoid
1581
+
}
1515
1582
1516
1583
define <4 x i32> @load_factor2_one_active(ptr%ptr) {
1517
1584
; CHECK-LABEL: load_factor2_one_active:
@@ -1703,8 +1770,8 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @invalid_vp_mask(ptr %ptr) {
1703
1770
; RV32-NEXT: vle32.v v12, (a0), v0.t
1704
1771
; RV32-NEXT: li a0, 36
1705
1772
; RV32-NEXT: vmv.s.x v20, a1
1706
-
; RV32-NEXT: lui a1, %hi(.LCPI45_0)
1707
-
; RV32-NEXT: addi a1, a1, %lo(.LCPI45_0)
1773
+
; RV32-NEXT: lui a1, %hi(.LCPI49_0)
1774
+
; RV32-NEXT: addi a1, a1, %lo(.LCPI49_0)
1708
1775
; RV32-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1709
1776
; RV32-NEXT: vle16.v v21, (a1)
1710
1777
; RV32-NEXT: vcompress.vm v8, v12, v11
@@ -1779,8 +1846,8 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @invalid_vp_evl(ptr %ptr) {
0 commit comments