@@ -1754,6 +1754,17 @@ define void @store_factor4_one_active(ptr %ptr, <4 x i32> %v) {
1754
1754
ret void
1755
1755
}
1756
1756
1757
+ define void @vpstore_factor4_one_active (ptr %ptr , <4 x i32 > %v ) {
1758
+ ; CHECK-LABEL: vpstore_factor4_one_active:
1759
+ ; CHECK: # %bb.0:
1760
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
1761
+ ; CHECK-NEXT: vsseg4e32.v v8, (a0)
1762
+ ; CHECK-NEXT: ret
1763
+ %v0 = shufflevector <4 x i32 > %v , <4 x i32 > poison, <16 x i32 > <i32 0 , i32 undef , i32 undef , i32 undef , i32 1 , i32 undef , i32 undef , i32 undef , i32 2 , i32 undef , i32 undef , i32 undef , i32 3 , i32 undef , i32 undef , i32 undef >
1764
+ tail call void @llvm.vp.store.v16i32.p0 (<16 x i32 > %v0 , ptr %ptr , <16 x i1 > splat (i1 true ), i32 16 )
1765
+ ret void
1766
+ }
1767
+
1757
1768
define void @store_factor4_one_active_idx1 (ptr %ptr , <4 x i32 > %v ) {
1758
1769
; CHECK-LABEL: store_factor4_one_active_idx1:
1759
1770
; CHECK: # %bb.0:
@@ -1828,8 +1839,8 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @invalid_vp_mask(ptr %ptr) {
1828
1839
; RV32-NEXT: vle32.v v12, (a0), v0.t
1829
1840
; RV32-NEXT: li a0, 36
1830
1841
; RV32-NEXT: vmv.s.x v20, a1
1831
- ; RV32-NEXT: lui a1, %hi(.LCPI53_0 )
1832
- ; RV32-NEXT: addi a1, a1, %lo(.LCPI53_0 )
1842
+ ; RV32-NEXT: lui a1, %hi(.LCPI54_0 )
1843
+ ; RV32-NEXT: addi a1, a1, %lo(.LCPI54_0 )
1833
1844
; RV32-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1834
1845
; RV32-NEXT: vle16.v v21, (a1)
1835
1846
; RV32-NEXT: vcompress.vm v8, v12, v11
@@ -1904,8 +1915,8 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @invalid_vp_evl(ptr %ptr) {
1904
1915
; RV32-NEXT: vmv.s.x v10, a0
1905
1916
; RV32-NEXT: li a0, 146
1906
1917
; RV32-NEXT: vmv.s.x v11, a0
1907
- ; RV32-NEXT: lui a0, %hi(.LCPI54_0 )
1908
- ; RV32-NEXT: addi a0, a0, %lo(.LCPI54_0 )
1918
+ ; RV32-NEXT: lui a0, %hi(.LCPI55_0 )
1919
+ ; RV32-NEXT: addi a0, a0, %lo(.LCPI55_0 )
1909
1920
; RV32-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1910
1921
; RV32-NEXT: vle16.v v20, (a0)
1911
1922
; RV32-NEXT: li a0, 36
0 commit comments