Skip to content

Commit 6e3a9e7

Browse files
committed
Lsx-PartA: add some APIs for Lsx.
1 parent 5c601e1 commit 6e3a9e7

File tree

2 files changed

+319
-17
lines changed
  • src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/LoongArch

2 files changed

+319
-17
lines changed

src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/LoongArch/Lasx.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2265,5 +2265,55 @@ internal Lasx() { }
22652265
/// LASX: XVPCNT_D Xd, Xj
22662266
/// </summary>
22672267
public static Vector256<ulong> PopCount(Vector256<ulong> value) => PopCount(value);
2268+
2269+
/// <summary>
2270+
/// uint8x32_t xvrepl128vei_u8(uint8x32_t vector, uint8_t idx)
2271+
/// LASX: XVREPL128VEI_B Xd.32B, Xj.32B, ui4
2272+
/// </summary>
2273+
public static Vector256<byte> VectorElementReplicate(Vector256<byte> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2274+
2275+
/// <summary>
2276+
/// int8x32_t xvrepl128vei_s8(int8x32_t vector, uint8_t idx)
2277+
/// LASX: XVREPL128VEI_B Xd.32B, Xj.32B, ui4
2278+
/// </summary>
2279+
public static Vector256<sbyte> VectorElementReplicate(Vector256<sbyte> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2280+
2281+
/// <summary>
2282+
/// int16x16_t xvrepl128vei_s16(int16x16_t vector, uint8_t idx)
2283+
/// LASX: XVREPL128VEI_H Xd.16H, Xj.16H, ui3
2284+
/// </summary>
2285+
public static Vector256<short> VectorElementReplicate(Vector256<short> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2286+
2287+
/// <summary>
2288+
/// uint16x16_t xvrepl128vei_u16(uint16x16_t vector, uint8_t idx)
2289+
/// LASX: XVREPLVEI_H Xd.16H, Xj.16H, ui3
2290+
/// </summary>
2291+
public static Vector256<ushort> VectorElementReplicate(Vector256<ushort> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2292+
2293+
/// <summary>
2294+
/// int32x8_t xvrepl128vei_s32(int32x8_t vector, uint8_t idx)
2295+
/// LASX: XVREPL128VEII_W Xd.8W, Xj.8W, ui2
2296+
/// </summary>
2297+
public static Vector256<int> VectorElementReplicate(Vector256<int> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2298+
2299+
/// <summary>
2300+
/// uint32x8_t xvrepl128vei_u32(uint32x8_t vector, uint8_t idx)
2301+
/// LASX: XVREPL128VEII_W Xd.8W, Xj.8W, ui2
2302+
/// </summary>
2303+
public static Vector256<uint> VectorElementReplicate(Vector256<uint> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2304+
2305+
/// <summary>
2306+
/// int64x4_t xvrepl128vei_s64(int64x4_t vector, uint8_t idx)
2307+
/// LASX: XVREPL128VEII_D Xd.4D, Xj.4D, ui1
2308+
/// </summary>
2309+
public static Vector256<long> VectorElementReplicate(Vector256<long> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2310+
2311+
/// <summary>
2312+
/// uint64x4_t xvrepl128vei_u64(uint64x4_t vector, uint8_t idx)
2313+
/// LASX: XVREPL128VEII_D Xd.4D, Xj.4D, ui1
2314+
/// </summary>
2315+
public static Vector256<ulong> VectorElementReplicate(Vector256<ulong> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2316+
2317+
// TODO:----------------------------------
22682318
}
22692319
}

src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/LoongArch/Lsx.cs

Lines changed: 269 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1534,36 +1534,36 @@ internal Lsx() { }
15341534
/// </summary>
15351535
public static Vector128<ushort> ZeroExtendWideningLower(Vector128<byte> value) => ZeroExtendWideningLower(value);
15361536

1537-
///// <summary>
1538-
///// uint32x4_t vext2xv_wu_bu_u8 (uint8x16_t a)
1539-
///// LSX: VEXT2XV.WU.BU Vd.4W, Vj.16B
1540-
///// </summary>
1541-
//public static Vector128<uint> ZeroExtendWideningLower(Vector128<byte> value) => ZeroExtendWideningLower(value);
1542-
1543-
///// <summary>
1544-
///// uint64x2_t vext2xv_du_bu_u8 (uint8x16_t a)
1545-
///// LSX: VEXT2XV.DU.BU Vd.2D, Vj.16B
1546-
///// </summary>
1547-
//public static Vector128<ulong> ZeroExtendWideningLower(Vector128<byte> value) => ZeroExtendWideningLower(value);
1537+
/// <summary>
1538+
/// int16x8_t vext2xv_hu_bu_u8 (int8x16_t a)
1539+
/// LSX: VEXT2XV.HU.BU Vd.8H, Vj.16B
1540+
/// </summary>
1541+
public static Vector128<short> ZeroExtendWideningLower(Vector128<sbyte> value) => ZeroExtendWideningLower(value);
15481542

15491543
/// <summary>
15501544
/// uint32x4_t vext2xv_wu_hu_u16 (uint16x8_t a)
15511545
/// LSX: VEXT2XV.WU.HU Vd.4W, Vj.8H
15521546
/// </summary>
15531547
public static Vector128<uint> ZeroExtendWideningLower(Vector128<ushort> value) => ZeroExtendWideningLower(value);
15541548

1555-
///// <summary>
1556-
///// uint64x2_t vext2xv_du_hu_u16 (uint16x8_t a)
1557-
///// LSX: VEXT2XV.DU.HU Vd.2D, Vj.8H
1558-
///// </summary>
1559-
//public static Vector128<ulong> ZeroExtendWideningLower(Vector128<ushort> value) => ZeroExtendWideningLower(value);
1549+
/// <summary>
1550+
/// int32x4_t vext2xv_wu_hu_u16 (int16x8_t a)
1551+
/// LSX: VEXT2XV.WU.HU Vd.4W, Vj.8H
1552+
/// </summary>
1553+
public static Vector128<int> ZeroExtendWideningLower(Vector128<short> value) => ZeroExtendWideningLower(value);
15601554

15611555
/// <summary>
15621556
/// uint64x2_t vext2xv_du_wu_u32 (uint32x4_t a)
15631557
/// LSX: VEXT2XV.DU.WU Vd.2D, Vj.4W
15641558
/// </summary>
15651559
public static Vector128<ulong> ZeroExtendWideningLower(Vector128<uint> value) => ZeroExtendWideningLower(value);
15661560

1561+
/// <summary>
1562+
/// int64x2_t vext2xv_du_wu_u32 (int32x4_t a)
1563+
/// LSX: VEXT2XV.DU.WU Vd.2D, Vj.4W
1564+
/// </summary>
1565+
public static Vector128<long> ZeroExtendWideningLower(Vector128<int> value) => ZeroExtendWideningLower(value);
1566+
15671567
/// <summary>
15681568
/// int16x8_t vexth_h_b_s8 (int8x16_t a)
15691569
/// LSX: VEXTH.H.B Vd.8H, Vj.16B
@@ -1798,6 +1798,126 @@ internal Lsx() { }
17981798
/// </summary>
17991799
public static Vector128<double> Or(Vector128<double> left, Vector128<double> right) => Or(left, right);
18001800

1801+
/// <summary>
1802+
/// int8x16_t vor_v_s8 (int8x16_t a, int8x16_t b)
1803+
/// LSX: VNOR.V Vd.16B, Vj.16B, Vk.16B
1804+
/// </summary>
1805+
public static Vector128<sbyte> NotOr(Vector128<sbyte> left, Vector128<sbyte> right) => NotOr(left, right);
1806+
1807+
/// <summary>
1808+
/// uint8x16_t vor_v_u8 (uint8x16_t a, uint8x16_t b)
1809+
/// LSX: VNOR.V Vd.16B, Vj.16B, Vk.16B
1810+
/// </summary>
1811+
public static Vector128<byte> NotOr(Vector128<byte> left, Vector128<byte> right) => NotOr(left, right);
1812+
1813+
/// <summary>
1814+
/// int16x8_t vor_v_s16 (int16x8_t a, int16x8_t b)
1815+
/// LSX: VNOR.V Vd.8H, Vj.8H, Vk.8H
1816+
/// </summary>
1817+
public static Vector128<short> NotOr(Vector128<short> left, Vector128<short> right) => NotOr(left, right);
1818+
1819+
/// <summary>
1820+
/// uint16x8_t vor_v_u16 (uint16x8_t a, uint16x8_t b)
1821+
/// LSX: VNOR.V Vd.8H, Vj.8H, Vk.8H
1822+
/// </summary>
1823+
public static Vector128<ushort> NotOr(Vector128<ushort> left, Vector128<ushort> right) => NotOr(left, right);
1824+
1825+
/// <summary>
1826+
/// int32x4_t vor_v_s32 (int32x4_t a, int32x4_t b)
1827+
/// LSX: VNOR.V Vd.4W, Vj.4W, Vk.4W
1828+
/// </summary>
1829+
public static Vector128<int> NotOr(Vector128<int> left, Vector128<int> right) => NotOr(left, right);
1830+
1831+
/// <summary>
1832+
/// uint32x4_t vor_v_u32 (uint32x4_t a, uint32x4_t b)
1833+
/// LSX: VNOR.V Vd.4W, Vj.4W, Vk.4W
1834+
/// </summary>
1835+
public static Vector128<uint> NotOr(Vector128<uint> left, Vector128<uint> right) => NotOr(left, right);
1836+
1837+
/// <summary>
1838+
/// int64x2_t vor_v_s64 (int64x2_t a, int64x2_t b)
1839+
/// LSX: VNOR.V Vd.2D, Vj.2D, Vk.2D
1840+
/// </summary>
1841+
public static Vector128<long> NotOr(Vector128<long> left, Vector128<long> right) => NotOr(left, right);
1842+
1843+
/// <summary>
1844+
/// uint64x2_t vor_v_u64 (uint64x2_t a, uint64x2_t b)
1845+
/// LSX: VNOR.V Vd.2D, Vj.2D, Vk.2D
1846+
/// </summary>
1847+
public static Vector128<ulong> NotOr(Vector128<ulong> left, Vector128<ulong> right) => NotOr(left, right);
1848+
1849+
/// <summary>
1850+
/// float32x4_t vor_v_f32 (float32x4_t a, float32x4_t b)
1851+
/// LSX: VNOR.V Vd.4S, Vj.4S, Vk.4S
1852+
/// </summary>
1853+
public static Vector128<float> NotOr(Vector128<float> left, Vector128<float> right) => NotOr(left, right);
1854+
1855+
/// <summary>
1856+
/// float64x2_t vor_v_f64 (float64x2_t a, float64x2_t b)
1857+
/// LSX: VNOR.V Vd.2D, Vj.2D, Vk.2D
1858+
/// </summary>
1859+
public static Vector128<double> NotOr(Vector128<double> left, Vector128<double> right) => NotOr(left, right);
1860+
1861+
/// <summary>
1862+
/// int8x16_t vor_v_s8 (int8x16_t a, int8x16_t b)
1863+
/// LSX: VORN.V Vd.16B, Vj.16B, Vk.16B
1864+
/// </summary>
1865+
public static Vector128<sbyte> OrNot(Vector128<sbyte> left, Vector128<sbyte> right) => OrNot(left, right);
1866+
1867+
/// <summary>
1868+
/// uint8x16_t vor_v_u8 (uint8x16_t a, uint8x16_t b)
1869+
/// LSX: VORN.V Vd.16B, Vj.16B, Vk.16B
1870+
/// </summary>
1871+
public static Vector128<byte> OrNot(Vector128<byte> left, Vector128<byte> right) => OrNot(left, right);
1872+
1873+
/// <summary>
1874+
/// int16x8_t vor_v_s16 (int16x8_t a, int16x8_t b)
1875+
/// LSX: VORN.V Vd.8H, Vj.8H, Vk.8H
1876+
/// </summary>
1877+
public static Vector128<short> OrNot(Vector128<short> left, Vector128<short> right) => OrNot(left, right);
1878+
1879+
/// <summary>
1880+
/// uint16x8_t vor_v_u16 (uint16x8_t a, uint16x8_t b)
1881+
/// LSX: VORN.V Vd.8H, Vj.8H, Vk.8H
1882+
/// </summary>
1883+
public static Vector128<ushort> OrNot(Vector128<ushort> left, Vector128<ushort> right) => OrNot(left, right);
1884+
1885+
/// <summary>
1886+
/// int32x4_t vor_v_s32 (int32x4_t a, int32x4_t b)
1887+
/// LSX: VORN.V Vd.4W, Vj.4W, Vk.4W
1888+
/// </summary>
1889+
public static Vector128<int> OrNot(Vector128<int> left, Vector128<int> right) => OrNot(left, right);
1890+
1891+
/// <summary>
1892+
/// uint32x4_t vor_v_u32 (uint32x4_t a, uint32x4_t b)
1893+
/// LSX: VORN.V Vd.4W, Vj.4W, Vk.4W
1894+
/// </summary>
1895+
public static Vector128<uint> OrNot(Vector128<uint> left, Vector128<uint> right) => OrNot(left, right);
1896+
1897+
/// <summary>
1898+
/// int64x2_t vor_v_s64 (int64x2_t a, int64x2_t b)
1899+
/// LSX: VORN.V Vd.2D, Vj.2D, Vk.2D
1900+
/// </summary>
1901+
public static Vector128<long> OrNot(Vector128<long> left, Vector128<long> right) => OrNot(left, right);
1902+
1903+
/// <summary>
1904+
/// uint64x2_t vor_v_u64 (uint64x2_t a, uint64x2_t b)
1905+
/// LSX: VORN.V Vd.2D, Vj.2D, Vk.2D
1906+
/// </summary>
1907+
public static Vector128<ulong> OrNot(Vector128<ulong> left, Vector128<ulong> right) => OrNot(left, right);
1908+
1909+
/// <summary>
1910+
/// float32x4_t vor_v_f32 (float32x4_t a, float32x4_t b)
1911+
/// LSX: VORN.V Vd.4S, Vj.4S, Vk.4S
1912+
/// </summary>
1913+
public static Vector128<float> OrNot(Vector128<float> left, Vector128<float> right) => OrNot(left, right);
1914+
1915+
/// <summary>
1916+
/// float64x2_t vor_v_f64 (float64x2_t a, float64x2_t b)
1917+
/// LSX: VORN.V Vd.2D, Vj.2D, Vk.2D
1918+
/// </summary>
1919+
public static Vector128<double> OrNot(Vector128<double> left, Vector128<double> right) => OrNot(left, right);
1920+
18011921
/// <summary>
18021922
/// int8x16_t vxor_v_s8 (int8x16_t a, int8x16_t b)
18031923
/// LSX: VXOR.V Vd.16B, Vj.16B, Vk.16B
@@ -2547,6 +2667,138 @@ internal Lsx() { }
25472667
/// </summary>
25482668
public static Vector128<ulong> PopCount(Vector128<ulong> value) => PopCount(value);
25492669

2550-
////TODO: other liking vsrani .......
2670+
/// <summary>
2671+
/// uint8x16_t vshuffle_u8(uint8x16_t vec, uint8x16_t idx)
2672+
/// LSX: VSHUF_B Vd.16B, Vj.16B, Vk.16B, Va.16B
2673+
/// </summary>
2674+
public static Vector128<byte> VectorShuffle(Vector128<byte> vector, Vector128<byte> byteIndexes) => VectorElementReplicate(vector, byteIndexes);
2675+
2676+
/// <summary>
2677+
/// int8x16_t vshuffle_s8(int8x16_t vec, int8x16_t idx)
2678+
/// LSX: VSHUF_B Vd.16B, Vj.16B, Vk.16B, Va.16B
2679+
/// </summary>
2680+
public static Vector128<sbyte> VectorShuffle(Vector128<sbyte> vector, Vector128<sbyte> byteIndexes) => VectorElementReplicate(vector, byteIndexes);
2681+
2682+
/// <summary>
2683+
/// uint8x16_t vshuffle_u8(uint8x16_t vec0, uint8x16_t vec1, uint8x16_t idx)
2684+
/// LSX: VSHUF_B Vd.16B, Vj.16B, Vk.16B, Va.16B
2685+
/// </summary>
2686+
public static Vector128<byte> VectorShuffle(Vector128<byte> vector0, Vector128<byte> vector1, Vector128<byte> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2687+
2688+
/// <summary>
2689+
/// int8x16_t vshuffle_s8(int8x16_t vec0, int8x16_t vec1, int8x16_t idx)
2690+
/// LSX: VSHUF_B Vd.16B, Vj.16B, Vk.16B, Va.16B
2691+
/// </summary>
2692+
public static Vector128<sbyte> VectorShuffle(Vector128<sbyte> vector0, Vector128<sbyte> vector1, Vector128<sbyte> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2693+
2694+
/// <summary>
2695+
/// int16x8_t vshuffle_s16(int16x8_t vec, int16x8_t idx)
2696+
/// LSX: VSHUF_H Vd.8H, Vj.8H, Vk.8H
2697+
/// </summary>
2698+
public static Vector128<short> VectorShuffle(Vector128<short> vector, Vector128<short> byteIndexes) => VectorElementReplicate(vector, byteIndexes);
2699+
2700+
/// <summary>
2701+
/// uint16x8_t vshuffle_u16(uint16x8_t vec, uint16x8_t idx)
2702+
/// LSX: VSHUF_H Vd.8H, Vj.8H, Vk.8H
2703+
/// </summary>
2704+
public static Vector128<ushort> VectorShuffle(Vector128<ushort> vector, Vector128<ushort> byteIndexes) => VectorElementReplicate(vector, byteIndexes);
2705+
2706+
/// <summary>
2707+
/// int16x8_t vshuffle_s16(int16x8_t vec0, int16x8_t vec1, int16x8_t idx)
2708+
/// LSX: VSHUF_H Vd.8H, Vj.8H, Vk.8H
2709+
/// </summary>
2710+
public static Vector128<short> VectorShuffle(Vector128<short> vector0, Vector128<short> vector1, Vector128<short> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2711+
2712+
/// <summary>
2713+
/// uint16x8_t vshuffle_u16(uint16x8_t vecj, uint16x8_t veck, uint16x8_t idx)
2714+
/// LSX: VSHUF_H Vd.8H, Vj.8H, Vk.8H
2715+
/// </summary>
2716+
public static Vector128<ushort> VectorShuffle(Vector128<ushort> vector0, Vector128<ushort> vector1, Vector128<ushort> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2717+
2718+
/// <summary>
2719+
/// int32x4_t vshuffle_s32(int32x4_t vec0, int32x4_t vec1, int32x4_t idx)
2720+
/// LSX: VSHUF_H Vd.4W, Vj.4W, Vk.4W
2721+
/// </summary>
2722+
public static Vector128<int> VectorShuffle(Vector128<int> vector0, Vector128<int> vector1, Vector128<int> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2723+
2724+
/// <summary>
2725+
/// uint32x4_t vshuffle_u32(uint32x4_t vecj, uint32x4_t veck, uint32x4_t idx)
2726+
/// LSX: VSHUF_H Vd.4W, Vj.4W, Vk.4W
2727+
/// </summary>
2728+
public static Vector128<uint> VectorShuffle(Vector128<uint> vector0, Vector128<uint> vector1, Vector128<uint> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2729+
2730+
/// <summary>
2731+
/// int64x2_t vshuffle_s64(int64x2_t vec0, int64x2_t vec1, int64x2_t idx)
2732+
/// LSX: VSHUF_H Vd.2D, Vj.2D, Vk.2D
2733+
/// </summary>
2734+
public static Vector128<long> VectorShuffle(Vector128<long> vector0, Vector128<long> vector1, Vector128<long> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2735+
2736+
/// <summary>
2737+
/// uint64x2_t vshuffle_u64(uint64x2_t vecj, uint64x2_t veck, uint64x2_t idx)
2738+
/// LSX: VSHUF_H Vd.2D, Vj.2D, Vk.2D
2739+
/// </summary>
2740+
public static Vector128<ulong> VectorShuffle(Vector128<ulong> vector0, Vector128<ulong> vector1, Vector128<ulong> byteIndexes) => VectorShuffle(vector0, vector1, byteIndexes);
2741+
2742+
/// <summary>
2743+
/// uint8x16_t vreplve_u8(uint8x16_t vector, uint8_t idx)
2744+
/// LSX: VREPLVE_B Vd.16B, Vj.16B, rk
2745+
/// LSX: VREPLVEI_B Vd.16B, Vj.16B, ui4
2746+
/// </summary>
2747+
public static Vector128<byte> VectorElementReplicate(Vector128<byte> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2748+
2749+
/// <summary>
2750+
/// int8x16_t vreplve_s8(int8x16_t vector, uint8_t idx)
2751+
/// LSX: VREPLVE_B Vd.16B, Vj.16B, rk
2752+
/// LSX: VREPLVEI_B Vd.16B, Vj.16B, ui4
2753+
/// </summary>
2754+
public static Vector128<sbyte> VectorElementReplicate(Vector128<sbyte> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2755+
2756+
/// <summary>
2757+
/// int16x8_t vreplve_s16(int16x8_t vector, uint8_t idx)
2758+
/// LSX: VREPLVE_H Vd.8H, Vj.8H, rk
2759+
/// LSX: VREPLVEI_H Vd.8H, Vj.8H, ui3
2760+
/// </summary>
2761+
public static Vector128<short> VectorElementReplicate(Vector128<short> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2762+
2763+
/// <summary>
2764+
/// uint16x8_t vreplve_u16(uint16x8_t vector, uint8_t idx)
2765+
/// LSX: VREPLVE_H Vd.8H, Vj.8H, rk
2766+
/// LSX: VREPLVEI_H Vd.8H, Vj.8H, ui3
2767+
/// </summary>
2768+
public static Vector128<ushort> VectorElementReplicate(Vector128<ushort> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2769+
2770+
/// <summary>
2771+
/// int32x4_t vreplve_s32(int32x4_t vector, uint8_t idx)
2772+
/// LSX: VREPLVE_W Vd.4W, Vj.4W, rk
2773+
/// LSX: VREPLVEI_W Vd.4W, Vj.4W, ui2
2774+
/// </summary>
2775+
public static Vector128<int> VectorElementReplicate(Vector128<int> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2776+
2777+
/// <summary>
2778+
/// uint32x4_t vreplve_u32(uint32x4_t vector, uint8_t idx)
2779+
/// LSX: VREPLVE_W Vd.4W, Vj.4W, rk
2780+
/// LSX: VREPLVEI_W Vd.4W, Vj.4W, ui2
2781+
/// </summary>
2782+
public static Vector128<uint> VectorElementReplicate(Vector128<uint> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2783+
2784+
/// <summary>
2785+
/// int64x2_t vreplve_s64(int64x2_t vector, uint8_t idx)
2786+
/// LSX: VREPLVE_D Vd.2D, Vj.2D, rk
2787+
/// LSX: VREPLVEI_D Vd.2D, Vj.2D, ui1
2788+
/// </summary>
2789+
public static Vector128<long> VectorElementReplicate(Vector128<long> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2790+
2791+
/// <summary>
2792+
/// uint64x2_t vreplve_u32(uint64x2_t vector, uint8_t idx)
2793+
/// LSX: VREPLVE_D Vd.2D, Vj.2D, rk
2794+
/// LSX: VREPLVEI_D Vd.2D, Vj.2D, ui1
2795+
/// </summary>
2796+
public static Vector128<ulong> VectorElementReplicate(Vector128<ulong> vector, byte elementIndexe) => VectorElementReplicate(vector, elementIndexe);
2797+
2798+
2799+
2800+
// TODO: other liking vsrani .......
2801+
// TODO:----------------------------------
2802+
25512803
}
25522804
}

0 commit comments

Comments
 (0)