@@ -1837,14 +1837,11 @@ define <4 x float> @buildvec_vfredusum_slideup(float %start, <8 x float> %arg1,
1837
1837
; CHECK-NEXT: vfredusum.vs v8, v8, v16
1838
1838
; CHECK-NEXT: vfredusum.vs v9, v10, v16
1839
1839
; CHECK-NEXT: vfredusum.vs v10, v12, v16
1840
- ; CHECK-NEXT: vfmv.f.s fa5, v8
1841
- ; CHECK-NEXT: vfmv.f.s fa4, v9
1842
- ; CHECK-NEXT: vfmv.f.s fa3, v10
1843
- ; CHECK-NEXT: vfredusum.vs v8, v14, v16
1844
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
1845
- ; CHECK-NEXT: vfslide1up.vf v9, v8, fa3
1846
- ; CHECK-NEXT: vfslide1up.vf v10, v9, fa4
1847
- ; CHECK-NEXT: vfslide1up.vf v8, v10, fa5
1840
+ ; CHECK-NEXT: vfredusum.vs v11, v14, v16
1841
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, tu, ma
1842
+ ; CHECK-NEXT: vslideup.vi v10, v11, 1
1843
+ ; CHECK-NEXT: vslideup.vi v9, v10, 1
1844
+ ; CHECK-NEXT: vslideup.vi v8, v9, 1
1848
1845
; CHECK-NEXT: ret
1849
1846
%247 = tail call reassoc float @llvm.vector.reduce.fadd.v8f32 (float %start , <8 x float > %arg1 )
1850
1847
%248 = insertelement <4 x float > poison, float %247 , i64 0
@@ -1861,18 +1858,17 @@ define <8 x float> @buildvec_vfredusum_slideup_leading_undef(float %start, <8 x
1861
1858
; CHECK-LABEL: buildvec_vfredusum_slideup_leading_undef:
1862
1859
; CHECK: # %bb.0:
1863
1860
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1864
- ; CHECK-NEXT: vfmv.s.f v16, fa0
1865
- ; CHECK-NEXT: vfredusum.vs v9, v8, v16
1866
- ; CHECK-NEXT: vfredusum.vs v10, v10, v16
1867
- ; CHECK-NEXT: vfredusum.vs v11, v12, v16
1868
- ; CHECK-NEXT: vfredusum.vs v8, v14, v16
1869
- ; CHECK-NEXT: vfmv.f.s fa5, v9
1870
- ; CHECK-NEXT: vfmv.f.s fa4, v10
1871
- ; CHECK-NEXT: vfmv.f.s fa3, v11
1872
- ; CHECK-NEXT: vfslide1up.vf v10, v8, fa3
1873
- ; CHECK-NEXT: vfslide1up.vf v8, v10, fa4
1874
- ; CHECK-NEXT: vfslide1up.vf v10, v8, fa5
1875
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
1861
+ ; CHECK-NEXT: vfmv.s.f v17, fa0
1862
+ ; CHECK-NEXT: vfredusum.vs v16, v8, v17
1863
+ ; CHECK-NEXT: vfredusum.vs v8, v10, v17
1864
+ ; CHECK-NEXT: vfredusum.vs v10, v12, v17
1865
+ ; CHECK-NEXT: vfredusum.vs v12, v14, v17
1866
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1867
+ ; CHECK-NEXT: vslideup.vi v10, v12, 1
1868
+ ; CHECK-NEXT: vslideup.vi v8, v10, 1
1869
+ ; CHECK-NEXT: vslideup.vi v16, v8, 1
1870
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
1871
+ ; CHECK-NEXT: vslideup.vi v8, v16, 4
1876
1872
; CHECK-NEXT: ret
1877
1873
%252 = tail call reassoc float @llvm.vector.reduce.fadd.v8f32 (float %start , <8 x float > %arg1 )
1878
1874
%253 = insertelement <8 x float > poison, float %252 , i64 4
@@ -1890,16 +1886,14 @@ define <8 x float> @buildvec_vfredusum_slideup_trailing_undef(float %start, <8 x
1890
1886
; CHECK: # %bb.0:
1891
1887
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1892
1888
; CHECK-NEXT: vfmv.s.f v16, fa0
1893
- ; CHECK-NEXT: vfredusum.vs v9 , v8, v16
1889
+ ; CHECK-NEXT: vfredusum.vs v8 , v8, v16
1894
1890
; CHECK-NEXT: vfredusum.vs v10, v10, v16
1895
- ; CHECK-NEXT: vfredusum.vs v11, v12, v16
1896
- ; CHECK-NEXT: vfredusum.vs v8, v14, v16
1897
- ; CHECK-NEXT: vfmv.f.s fa5, v9
1898
- ; CHECK-NEXT: vfmv.f.s fa4, v10
1899
- ; CHECK-NEXT: vfmv.f.s fa3, v11
1900
- ; CHECK-NEXT: vfslide1up.vf v10, v8, fa3
1901
- ; CHECK-NEXT: vfslide1up.vf v12, v10, fa4
1902
- ; CHECK-NEXT: vfslide1up.vf v8, v12, fa5
1891
+ ; CHECK-NEXT: vfredusum.vs v12, v12, v16
1892
+ ; CHECK-NEXT: vfredusum.vs v14, v14, v16
1893
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1894
+ ; CHECK-NEXT: vslideup.vi v12, v14, 1
1895
+ ; CHECK-NEXT: vslideup.vi v10, v12, 1
1896
+ ; CHECK-NEXT: vslideup.vi v8, v10, 1
1903
1897
; CHECK-NEXT: ret
1904
1898
%252 = tail call reassoc float @llvm.vector.reduce.fadd.v8f32 (float %start , <8 x float > %arg1 )
1905
1899
%253 = insertelement <8 x float > poison, float %252 , i64 0
@@ -1944,17 +1938,17 @@ define <8 x float> @buildvec_vfredusum_slideup_mid_undef(float %start, <8 x floa
1944
1938
; CHECK: # %bb.0:
1945
1939
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
1946
1940
; CHECK-NEXT: vfmv.s.f v16, fa0
1947
- ; CHECK-NEXT: vfredusum.vs v9 , v8, v16
1941
+ ; CHECK-NEXT: vfredusum.vs v8 , v8, v16
1948
1942
; CHECK-NEXT: vfredusum.vs v10, v10, v16
1949
- ; CHECK-NEXT: vfredusum.vs v11 , v12, v16
1950
- ; CHECK-NEXT: vfredusum.vs v8 , v14, v16
1951
- ; CHECK-NEXT: vfmv.f.s fa5, v9
1952
- ; CHECK-NEXT: vfmv.f.s fa4, v10
1953
- ; CHECK-NEXT: vfmv.f.s fa3, v11
1954
- ; CHECK-NEXT: vfslide1up.vf v10, v8, fa3
1955
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
1956
- ; CHECK-NEXT: vfslide1up.vf v10, v8, fa4
1957
- ; CHECK-NEXT: vfslide1up.vf v8, v10, fa5
1943
+ ; CHECK-NEXT: vfredusum.vs v12 , v12, v16
1944
+ ; CHECK-NEXT: vfredusum.vs v14 , v14, v16
1945
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1946
+ ; CHECK-NEXT: vslideup.vi v12, v14, 1
1947
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
1948
+ ; CHECK-NEXT: vslideup.vi v14, v12, 4
1949
+ ; CHECK-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1950
+ ; CHECK-NEXT: vslideup.vi v10, v14, 1
1951
+ ; CHECK-NEXT: vslideup.vi v8, v10, 1
1958
1952
; CHECK-NEXT: ret
1959
1953
%252 = tail call reassoc float @llvm.vector.reduce.fadd.v8f32 (float %start , <8 x float > %arg1 )
1960
1954
%253 = insertelement <8 x float > poison, float %252 , i64 0
@@ -1975,14 +1969,11 @@ define <4 x float> @buildvec_vfredosum_slideup(float %start, <8 x float> %arg1,
1975
1969
; CHECK-NEXT: vfredosum.vs v8, v8, v16
1976
1970
; CHECK-NEXT: vfredosum.vs v9, v10, v16
1977
1971
; CHECK-NEXT: vfredosum.vs v10, v12, v16
1978
- ; CHECK-NEXT: vfmv.f.s fa5, v8
1979
- ; CHECK-NEXT: vfmv.f.s fa4, v9
1980
- ; CHECK-NEXT: vfmv.f.s fa3, v10
1981
- ; CHECK-NEXT: vfredosum.vs v8, v14, v16
1982
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
1983
- ; CHECK-NEXT: vfslide1up.vf v9, v8, fa3
1984
- ; CHECK-NEXT: vfslide1up.vf v10, v9, fa4
1985
- ; CHECK-NEXT: vfslide1up.vf v8, v10, fa5
1972
+ ; CHECK-NEXT: vfredosum.vs v11, v14, v16
1973
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, tu, ma
1974
+ ; CHECK-NEXT: vslideup.vi v10, v11, 1
1975
+ ; CHECK-NEXT: vslideup.vi v9, v10, 1
1976
+ ; CHECK-NEXT: vslideup.vi v8, v9, 1
1986
1977
; CHECK-NEXT: ret
1987
1978
%247 = tail call float @llvm.vector.reduce.fadd.v8f32 (float %start , <8 x float > %arg1 )
1988
1979
%248 = insertelement <4 x float > poison, float %247 , i64 0
0 commit comments