From 0d9dea61d1efcd24580a140d862e4f8f91b88856 Mon Sep 17 00:00:00 2001 From: Alan Hayward Date: Wed, 31 Jul 2024 09:26:29 +0100 Subject: [PATCH] ARM64-SVE: Alphabetically order the SVE API --- .../Arm/Sve.PlatformNotSupported.cs | 1155 ++++++++-------- .../src/System/Runtime/Intrinsics/Arm/Sve.cs | 1202 +++++++++-------- .../ref/System.Runtime.Intrinsics.cs | 175 ++- 3 files changed, 1346 insertions(+), 1186 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs index ad66e5dd9df36..88da14aace701 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.PlatformNotSupported.cs @@ -35,11 +35,11 @@ internal Arm64() { } // Absolute value /// - /// svint8_t svabs[_s8]_m(svint8_t inactive, svbool_t pg, svint8_t op) - /// svint8_t svabs[_s8]_x(svbool_t pg, svint8_t op) - /// svint8_t svabs[_s8]_z(svbool_t pg, svint8_t op) + /// svfloat64_t svabs[_f64]_m(svfloat64_t inactive, svbool_t pg, svfloat64_t op) + /// svfloat64_t svabs[_f64]_x(svbool_t pg, svfloat64_t op) + /// svfloat64_t svabs[_f64]_z(svbool_t pg, svfloat64_t op) /// - public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } /// /// svint16_t svabs[_s16]_m(svint16_t inactive, svbool_t pg, svint16_t op) @@ -62,6 +62,13 @@ internal Arm64() { } /// public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } + /// + /// svint8_t svabs[_s8]_m(svint8_t inactive, svbool_t pg, svint8_t op) + /// svint8_t svabs[_s8]_x(svbool_t pg, svint8_t op) + /// svint8_t svabs[_s8]_z(svbool_t pg, svint8_t op) + /// + public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } + /// /// svfloat32_t svabs[_f32]_m(svfloat32_t inactive, svbool_t pg, svfloat32_t op) /// svfloat32_t svabs[_f32]_x(svbool_t pg, svfloat32_t op) @@ -69,36 +76,23 @@ internal Arm64() { } /// public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } - /// - /// svfloat64_t svabs[_f64]_m(svfloat64_t inactive, svbool_t pg, svfloat64_t op) - /// svfloat64_t svabs[_f64]_x(svbool_t pg, svfloat64_t op) - /// svfloat64_t svabs[_f64]_z(svbool_t pg, svfloat64_t op) - /// - public static unsafe Vector Abs(Vector value) { throw new PlatformNotSupportedException(); } - // Absolute compare greater than - /// - /// svbool_t svacgt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACGT Presult.S, Pg/Z, Zop1.S, Zop2.S - /// - public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// /// svbool_t svacgt[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) /// FACGT Presult.D, Pg/Z, Zop1.D, Zop2.D /// public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Absolute compare greater than or equal to - /// - /// svbool_t svacge[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACGE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svacgt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACGT Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + + // Absolute compare greater than or equal to /// /// svbool_t svacge[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -106,14 +100,14 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Absolute compare less than - /// - /// svbool_t svaclt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACLT Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svacge[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACGE Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + + // Absolute compare less than /// /// svbool_t svaclt[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -121,14 +115,14 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Absolute compare less than or equal to - /// - /// svbool_t svacle[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACLE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svaclt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACLT Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + + // Absolute compare less than or equal to /// /// svbool_t svacle[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -136,6 +130,12 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + /// + /// svbool_t svacle[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACLE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// + public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + // Absolute difference @@ -223,11 +223,18 @@ internal Arm64() { } // Add /// - /// svint8_t svadd[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) - /// svint8_t svadd[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) - /// svint8_t svadd[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svadd[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svuint8_t svadd[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svuint8_t svadd[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// - public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svadd[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// svfloat64_t svadd[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// svfloat64_t svadd[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// + public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svadd[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -251,11 +258,18 @@ internal Arm64() { } public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svadd[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) - /// svuint8_t svadd[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) - /// svuint8_t svadd[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svadd[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svint8_t svadd[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svint8_t svadd[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// - public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svadd[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// svfloat32_t svadd[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// svfloat32_t svadd[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// + public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svadd[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -278,20 +292,6 @@ internal Arm64() { } /// public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svadd[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// svfloat32_t svadd[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// svfloat32_t svadd[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// - public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat64_t svadd[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// svfloat64_t svadd[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// svfloat64_t svadd[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// - public static unsafe Vector Add(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Add reduction @@ -1838,10 +1838,15 @@ internal Arm64() { } // Conditionally select elements /// - /// svint8_t svsel[_s8](svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsel[_u8](svbool_t pg, svuint8_t op1, svuint8_t op2) /// svbool_t svsel[_b](svbool_t pg, svbool_t op1, svbool_t op2) /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svsel[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svsel[_s16](svbool_t pg, svint16_t op1, svint16_t op2) @@ -1862,10 +1867,15 @@ internal Arm64() { } public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svsel[_u8](svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsel[_s8](svbool_t pg, svint8_t op1, svint8_t op2) /// svbool_t svsel[_b](svbool_t pg, svbool_t op1, svbool_t op2) /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svsel[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svsel[_u16](svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -1885,16 +1895,6 @@ internal Arm64() { } /// public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svsel[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat64_t svsel[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Floating-point convert @@ -2112,6 +2112,8 @@ internal Arm64() { } public static unsafe ulong Count8BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) { throw new PlatformNotSupportedException(); } + // Break after first true condition + /// /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op) /// BRKA Presult.B, Pg/Z, Pop.B @@ -2160,6 +2162,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); } + + // Break after first true condition, propagating from previous partition + /// /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B @@ -2208,6 +2213,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + // Break before first true condition + /// /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op) /// BRKB Presult.B, Pg/Z, Pop.B @@ -2256,6 +2264,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); } + + // Break before first true condition, propagating from previous partition + /// /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B @@ -2305,11 +2316,13 @@ internal Arm64() { } public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) { throw new PlatformNotSupportedException(); } + // Propagate break to next partition + /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKN Ptied2.B, Pg/Z, Pop1.B, Ptied2.B /// - public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) { throw new PlatformNotSupportedException(); } + public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) { throw new PlatformNotSupportedException(); } /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) @@ -2333,7 +2346,7 @@ internal Arm64() { } /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKN Ptied2.B, Pg/Z, Pop1.B, Ptied2.B /// - public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) { throw new PlatformNotSupportedException(); } + public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) { throw new PlatformNotSupportedException(); } /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) @@ -2444,6 +2457,8 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskUInt64() { throw new PlatformNotSupportedException(); } + // Set the first active predicate element to true + /// /// svbool_t svpfirst[_b](svbool_t pg, svbool_t op) /// PFIRST Ptied.B, Pg, Ptied.B @@ -2492,6 +2507,9 @@ internal Arm64() { } /// public static unsafe Vector CreateMaskForFirstActiveElement(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); } + + // Find next active predicate + /// /// svbool_t svpnext_b8(svbool_t pg, svbool_t op) /// PNEXT Ptied.B, Pg, Ptied.B @@ -2825,18 +2843,6 @@ internal Arm64() { } // Divide - /// - /// svfloat32_t svdiv[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svdiv[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svdiv[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// - public static unsafe Vector Divide(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// /// svfloat64_t svdiv[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) /// FDIV Ztied1.D, Pg/M, Ztied1.D, Zop2.D @@ -2849,6 +2855,18 @@ internal Arm64() { } /// public static unsafe Vector Divide(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + /// + /// svfloat32_t svdiv[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svdiv[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svdiv[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// + public static unsafe Vector Divide(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + // Dot product @@ -3563,7 +3581,6 @@ internal Arm64() { } public static unsafe Vector GatherVector(Vector mask, ulong* address, Vector indices) { throw new PlatformNotSupportedException(); } - // Load 8-bit data and zero-extend /// @@ -4484,11 +4501,18 @@ internal Arm64() { } // Unextended load /// - /// svint8_t svld1[_s8](svbool_t pg, const int8_t *base) + /// svuint8_t svld1[_u8](svbool_t pg, const uint8_t *base) /// LD1B Zresult.B, Pg/Z, [Xarray, Xindex] /// LD1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svld1[_f64](svbool_t pg, const float64_t *base) + /// LD1D Zresult.D, Pg/Z, [Xarray, Xindex, LSL #3] + /// LD1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVector(Vector mask, double* address) { throw new PlatformNotSupportedException(); } /// /// svint16_t svld1[_s16](svbool_t pg, const int16_t *base) @@ -4512,11 +4536,18 @@ internal Arm64() { } public static unsafe Vector LoadVector(Vector mask, long* address) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svld1[_u8](svbool_t pg, const uint8_t *base) + /// svint8_t svld1[_s8](svbool_t pg, const int8_t *base) /// LD1B Zresult.B, Pg/Z, [Xarray, Xindex] /// LD1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svld1[_f32](svbool_t pg, const float32_t *base) + /// LD1W Zresult.S, Pg/Z, [Xarray, Xindex, LSL #2] + /// LD1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVector(Vector mask, float* address) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svld1[_u16](svbool_t pg, const uint16_t *base) @@ -4539,202 +4570,122 @@ internal Arm64() { } /// public static unsafe Vector LoadVector(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svld1[_f32](svbool_t pg, const float32_t *base) - /// LD1W Zresult.S, Pg/Z, [Xarray, Xindex, LSL #2] - /// LD1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVector(Vector mask, float* address) { throw new PlatformNotSupportedException(); } + + // Load and replicate 128 bits of data /// - /// svfloat64_t svld1[_f64](svbool_t pg, const float64_t *base) - /// LD1D Zresult.D, Pg/Z, [Xarray, Xindex, LSL #3] - /// LD1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint8_t svld1rq[_u8](svbool_t pg, const uint8_t *base) + /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVector(Vector mask, double* address) { throw new PlatformNotSupportedException(); } - + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svldnf1[_u8](svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat64_t svld1rq[_f64](svbool_t pg, const float64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(byte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, double* address) { throw new PlatformNotSupportedException(); } /// - /// svfloat64_t svldnf1[_f64](svbool_t pg, const float64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint16_t svld1rq[_s16](svbool_t pg, const int16_t *base) + /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(double* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, short* address) { throw new PlatformNotSupportedException(); } /// - /// svint16_t svldnf1[_s16](svbool_t pg, const int16_t *base) - /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svld1rq[_s32](svbool_t pg, const int32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(short* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, int* address) { throw new PlatformNotSupportedException(); } /// - /// svint32_t svldnf1[_s32](svbool_t pg, const int32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1rq[_s64](svbool_t pg, const int64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(int* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, long* address) { throw new PlatformNotSupportedException(); } /// - /// svint64_t svldnf1[_s64](svbool_t pg, const int64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint8_t svld1rq[_s8](svbool_t pg, const int8_t *base) + /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(long* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } /// - /// svint8_t svldnf1[_s8](svbool_t pg, const int8_t *base) - /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat32_t svld1rq[_f32](svbool_t pg, const float32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(sbyte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, float* address) { throw new PlatformNotSupportedException(); } /// - /// svfloat32_t svldnf1[_f32](svbool_t pg, const float32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonFaulting(float* address) { throw new PlatformNotSupportedException(); } - - /// - /// svuint16_t svldnf1[_u16](svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16_t svld1rq[_u16](svbool_t pg, const uint16_t *base) + /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(ushort* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ushort* address) { throw new PlatformNotSupportedException(); } /// - /// svuint32_t svldnf1[_u32](svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32_t svld1rq[_u32](svbool_t pg, const uint32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(uint* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } /// - /// svuint64_t svldnf1[_u64](svbool_t pg, const uint64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1rq[_u64](svbool_t pg, const uint64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(ulong* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint8_t svldnt1[_u8](svbool_t pg, const uint8_t *base) - /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svfloat64_t svldnt1[_f64](svbool_t pg, const float64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint16_t svldnf1ub_s16(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, double* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svint16_t svldnt1[_s16](svbool_t pg, const int16_t *base) - /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, short* address) { throw new PlatformNotSupportedException(); } - /// - /// svint32_t svldnt1[_s32](svbool_t pg, const int32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svint64_t svldnt1[_s64](svbool_t pg, const int64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svldnf1ub_s32(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, long* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svint8_t svldnt1[_s8](svbool_t pg, const int8_t *base) - /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svldnt1[_f32](svbool_t pg, const float32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, float* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svuint16_t svldnt1[_u16](svbool_t pg, const uint16_t *base) - /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, ushort* address) { throw new PlatformNotSupportedException(); } - - /// - /// svuint32_t svldnt1[_u32](svbool_t pg, const uint32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } - - /// - /// svuint64_t svldnt1[_u64](svbool_t pg, const uint64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svldnf1ub_s64(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } - + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint8_t svld1rq[_u8](svbool_t pg, const uint8_t *base) - /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svfloat64_t svld1rq[_f64](svbool_t pg, const float64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, double* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svint16_t svld1rq[_s16](svbool_t pg, const int16_t *base) - /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] + /// svuint16_t svldnf1ub_u16(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, short* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svint32_t svld1rq[_s32](svbool_t pg, const int32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, int* address) { throw new PlatformNotSupportedException(); } - /// - /// svint64_t svld1rq[_s64](svbool_t pg, const int64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, long* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svint8_t svld1rq[_s8](svbool_t pg, const int8_t *base) - /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat32_t svld1rq[_f32](svbool_t pg, const float32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] + /// svuint32_t svldnf1ub_u32(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, float* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint16_t svld1rq[_u16](svbool_t pg, const uint16_t *base) - /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ushort* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint32_t svld1rq[_u32](svbool_t pg, const uint32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] - /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } + // Load 8-bit data and zero-extend, non-faulting /// - /// svuint64_t svld1rq[_u64](svbool_t pg, const uint64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] + /// svuint64_t svldnf1ub_u64(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) { throw new PlatformNotSupportedException(); } // Load 8-bit data and zero-extend @@ -4791,6 +4742,42 @@ internal Arm64() { } public static unsafe Vector LoadVectorByteZeroExtendToUInt64(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } + // Load 16-bit data and sign-extend, non-faulting + + /// + /// svint32_t svldnf1sh_s32(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and sign-extend, non-faulting + + /// + /// svint64_t svldnf1sh_s64(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and sign-extend, non-faulting + + /// + /// svuint32_t svldnf1sh_u32(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and sign-extend, non-faulting + + /// + /// svuint64_t svldnf1sh_u64(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) { throw new PlatformNotSupportedException(); } + + // Load 16-bit data and sign-extend /// @@ -4827,22 +4814,220 @@ internal Arm64() { } public static unsafe Vector LoadVectorInt16SignExtendToUInt64(Vector mask, short* address) { throw new PlatformNotSupportedException(); } + // Load 32-bit data and sign-extend, non-faulting + + /// + /// svint64_t svldnf1sw_s64(svbool_t pg, const int32_t *base) + /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) { throw new PlatformNotSupportedException(); } + + + // Load 32-bit data and sign-extend, non-faulting + + /// + /// svuint64_t svldnf1sw_u64(svbool_t pg, const int32_t *base) + /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) { throw new PlatformNotSupportedException(); } + + // Load 32-bit data and sign-extend /// /// svint64_t svld1sw_s64(svbool_t pg, const int32_t *base) /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32SignExtendToInt64(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorInt32SignExtendToInt64(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + + + // Load 32-bit data and sign-extend + + /// + /// svuint64_t svld1sw_u64(svbool_t pg, const int32_t *base) + /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorInt32SignExtendToUInt64(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + + + // Unextended load, non-faulting + + /// + /// svuint8_t svldnf1[_u8](svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svldnf1[_f64](svbool_t pg, const float64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(double* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint16_t svldnf1[_s16](svbool_t pg, const int16_t *base) + /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(short* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint32_t svldnf1[_s32](svbool_t pg, const int32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(int* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint64_t svldnf1[_s64](svbool_t pg, const int64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(long* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint8_t svldnf1[_s8](svbool_t pg, const int8_t *base) + /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svldnf1[_f32](svbool_t pg, const float32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(float* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint16_t svldnf1[_u16](svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint32_t svldnf1[_u32](svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint64_t svldnf1[_u64](svbool_t pg, const uint64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(ulong* address) { throw new PlatformNotSupportedException(); } + + + // Unextended load, non-temporal + + /// + /// svuint8_t svldnt1[_u8](svbool_t pg, const uint8_t *base) + /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, byte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svldnt1[_f64](svbool_t pg, const float64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, double* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint16_t svldnt1[_s16](svbool_t pg, const int16_t *base) + /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, short* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint32_t svldnt1[_s32](svbool_t pg, const int32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint64_t svldnt1[_s64](svbool_t pg, const int64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, long* address) { throw new PlatformNotSupportedException(); } + + /// + /// svint8_t svldnt1[_s8](svbool_t pg, const int8_t *base) + /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svldnt1[_f32](svbool_t pg, const float32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, float* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint16_t svldnt1[_u16](svbool_t pg, const uint16_t *base) + /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, ushort* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint32_t svldnt1[_u32](svbool_t pg, const uint32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } + + /// + /// svuint64_t svldnt1[_u64](svbool_t pg, const uint64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svint16_t svldnf1sb_s16(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) { throw new PlatformNotSupportedException(); } + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svint32_t svldnf1sb_s32(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) { throw new PlatformNotSupportedException(); } + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svint64_t svldnf1sb_s64(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) { throw new PlatformNotSupportedException(); } + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svuint16_t svldnf1sb_u16(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) { throw new PlatformNotSupportedException(); } + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svuint32_t svldnf1sb_u32(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) { throw new PlatformNotSupportedException(); } - // Load 32-bit data and sign-extend + // Load 8-bit data and sign-extend, non-faulting /// - /// svuint64_t svld1sw_u64(svbool_t pg, const int32_t *base) - /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1sb_u64(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32SignExtendToUInt64(Vector mask, int* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) { throw new PlatformNotSupportedException(); } // Load 8-bit data and sign-extend @@ -4899,6 +5084,42 @@ internal Arm64() { } public static unsafe Vector LoadVectorSByteSignExtendToUInt64(Vector mask, sbyte* address) { throw new PlatformNotSupportedException(); } + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svint32_t svldnf1uh_s32(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt32(ushort* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svint64_t svldnf1uh_s64(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt64(ushort* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svuint32_t svldnf1uh_u32(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt32(ushort* address) { throw new PlatformNotSupportedException(); } + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svuint64_t svldnf1uh_u64(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt64(ushort* address) { throw new PlatformNotSupportedException(); } + + // Load 16-bit data and zero-extend /// @@ -4935,94 +5156,43 @@ internal Arm64() { } public static unsafe Vector LoadVectorUInt16ZeroExtendToUInt64(Vector mask, ushort* address) { throw new PlatformNotSupportedException(); } - // Load 32-bit data and zero-extend - - /// - /// svint64_t svld1uw_s64(svbool_t pg, const uint32_t *base) - /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32ZeroExtendToInt64(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } - - - // Load 32-bit data and zero-extend - - /// - /// svuint64_t svld1uw_u64(svbool_t pg, const uint32_t *base) - /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32ZeroExtendToUInt64(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } + // Load 32-bit data and zero-extend, non-faulting /// - /// svint16_t svldnf1ub_s16(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svldnf1uw_s64(svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToInt64(uint* address) { throw new PlatformNotSupportedException(); } - /// - /// svint32_t svldnf1ub_s32(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svint64_t svldnf1ub_s64(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) { throw new PlatformNotSupportedException(); } + // Load 32-bit data and zero-extend, non-faulting /// - /// svuint16_t svldnf1ub_u16(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1uw_u64(svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToUInt64(uint* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint32_t svldnf1ub_u32(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint64_t svldnf1ub_u64(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) { throw new PlatformNotSupportedException(); } + // Load 32-bit data and zero-extend /// - /// svint32_t svldnf1uh_s32(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1uw_s64(svbool_t pg, const uint32_t *base) + /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt32(ushort* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorUInt32ZeroExtendToInt64(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } - /// - /// svint64_t svldnf1uh_s64(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt64(ushort* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint32_t svldnf1uh_u32(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt32(ushort* address) { throw new PlatformNotSupportedException(); } + // Load 32-bit data and zero-extend /// - /// svuint64_t svldnf1uh_u64(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1uw_u64(svbool_t pg, const uint32_t *base) + /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt64(ushort* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector LoadVectorUInt32ZeroExtendToUInt64(Vector mask, uint* address) { throw new PlatformNotSupportedException(); } - /// - /// svint64_t svldnf1uw_s64(svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToInt64(uint* address) { throw new PlatformNotSupportedException(); } - /// - /// svuint64_t svldnf1uw_u64(svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToUInt64(uint* address) { throw new PlatformNotSupportedException(); } + // Load two-element tuples into two vectors /// /// svuint8x2_t svld2[_u8](svbool_t pg, const uint8_t *base) @@ -5084,6 +5254,9 @@ internal Arm64() { } /// public static unsafe (Vector, Vector) Load2xVectorAndUnzip(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } + + // Load three-element tuples into three vectors + /// /// svuint8x3_t svld3[_u8](svbool_t pg, const uint8_t *base) /// LD3B {Zresult0.B - Zresult2.B}, Pg/Z, [Xbase, #0, MUL VL] @@ -5144,6 +5317,9 @@ internal Arm64() { } /// public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } + + // Load four-element tuples into four vectors + /// /// svuint8x4_t svld4[_u8](svbool_t pg, const uint8_t *base) /// LD4B {Zresult0.B - Zresult3.B}, Pg/Z, [Xbase, #0, MUL VL] @@ -5205,114 +5381,6 @@ internal Arm64() { } public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, ulong* address) { throw new PlatformNotSupportedException(); } - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svint32_t svldnf1sh_s32(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) { throw new PlatformNotSupportedException(); } - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svint64_t svldnf1sh_s64(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) { throw new PlatformNotSupportedException(); } - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svuint32_t svldnf1sh_u32(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) { throw new PlatformNotSupportedException(); } - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svuint64_t svldnf1sh_u64(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) { throw new PlatformNotSupportedException(); } - - - // Load 32-bit data and sign-extend, non-faulting - - /// - /// svint64_t svldnf1sw_s64(svbool_t pg, const int32_t *base) - /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) { throw new PlatformNotSupportedException(); } - - - // Load 32-bit data and sign-extend, non-faulting - - /// - /// svuint64_t svldnf1sw_u64(svbool_t pg, const int32_t *base) - /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svint16_t svldnf1sb_s16(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svint32_t svldnf1sb_s32(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svint64_t svldnf1sb_s64(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svuint16_t svldnf1sb_u16(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svuint32_t svldnf1sb_u32(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) { throw new PlatformNotSupportedException(); } - - - // Load 8-bit data and sign-extend, non-faulting - - /// - /// svuint64_t svldnf1sb_u64(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) { throw new PlatformNotSupportedException(); } - - // Maximum /// @@ -5700,18 +5768,33 @@ internal Arm64() { } // Multiply /// - /// svint8_t svmul[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svmul[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MUL Ztied2.B, Pg/M, Ztied2.B, Zop1.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svmul[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B /// MOVPRFX Zresult.B, Pg/Z, Zop2.B; MUL Zresult.B, Pg/M, Zresult.B, Zop1.B /// - public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svmul[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svmul[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// FMUL Ztied2.D, Pg/M, Ztied2.D, Zop1.D + /// FMUL Zresult.D, Zop1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svmul[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// MOVPRFX Zresult.D, Pg/Z, Zop2.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop1.D + /// + public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svmul[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -5756,18 +5839,33 @@ internal Arm64() { } public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svmul[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svmul[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MUL Ztied2.B, Pg/M, Ztied2.B, Zop1.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svmul[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B /// MOVPRFX Zresult.B, Pg/Z, Zop2.B; MUL Zresult.B, Pg/M, Zresult.B, Zop1.B /// - public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svmul[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svmul[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// FMUL Ztied2.S, Pg/M, Ztied2.S, Zop1.S + /// FMUL Zresult.S, Zop1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svmul[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// MOVPRFX Zresult.S, Pg/Z, Zop2.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop1.S + /// + public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svmul[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -5811,36 +5909,6 @@ internal Arm64() { } /// public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svmul[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svmul[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// FMUL Ztied2.S, Pg/M, Ztied2.S, Zop1.S - /// FMUL Zresult.S, Zop1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svmul[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// MOVPRFX Zresult.S, Pg/Z, Zop2.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop1.S - /// - public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat64_t svmul[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svmul[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// FMUL Ztied2.D, Pg/M, Ztied2.D, Zop1.D - /// FMUL Zresult.D, Zop1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svmul[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// MOVPRFX Zresult.D, Pg/Z, Zop2.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop1.D - /// - public static unsafe Vector Multiply(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Multiply-add, addend first @@ -6406,24 +6474,36 @@ internal Arm64() { } /// public static unsafe Vector PopCount(Vector value) { throw new PlatformNotSupportedException(); } + + // Prefetch bytes + /// /// void svprfb(svbool_t pg, const void *base, enum svprfop op) /// PRFB op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchBytes(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) { throw new PlatformNotSupportedException(); } + + // Prefetch halfwords + /// /// void svprfh(svbool_t pg, const void *base, enum svprfop op) /// PRFH op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchInt16(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) { throw new PlatformNotSupportedException(); } + + // Prefetch words + /// /// void svprfw(svbool_t pg, const void *base, enum svprfop op) /// PRFW op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchInt32(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) { throw new PlatformNotSupportedException(); } + + // Prefetch doublewords + /// /// void svprfd(svbool_t pg, const void *base, enum svprfop op) /// PRFD op, Pg, [Xbase, #0, MUL VL] @@ -6510,6 +6590,8 @@ internal Arm64() { } /// FRECPS Zresult.S, Zop1.S, Zop2.S /// public static unsafe Vector ReciprocalStep(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// Reverse bits /// @@ -8110,6 +8192,48 @@ internal Arm64() { } public static unsafe Vector SignExtend8(Vector value) { throw new PlatformNotSupportedException(); } + // Unpack and extend low half + + /// + /// svint16_t svunpklo[_s16](svint8_t op) + /// SUNPKLO Zresult.H, Zop.B + /// + public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } + + /// + /// svint32_t svunpklo[_s32](svint16_t op) + /// SUNPKLO Zresult.S, Zop.H + /// + public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } + + /// + /// svint64_t svunpklo[_s64](svint32_t op) + /// SUNPKLO Zresult.D, Zop.S + /// + public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } + + + // Unpack and extend high half + + /// + /// svint16_t svunpkhi[_s16](svint8_t op) + /// SUNPKHI Zresult.H, Zop.B + /// + public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } + + /// + /// svint32_t svunpkhi[_s32](svint16_t op) + /// SUNPKHI Zresult.S, Zop.H + /// + public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } + + /// + /// svint64_t svunpkhi[_s64](svint32_t op) + /// SUNPKHI Zresult.D, Zop.S + /// + public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } + + // Splice two vectors under predicate control /// @@ -8578,16 +8702,29 @@ internal Arm64() { } // Subtract /// - /// svint8_t svsub[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svsub[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// SUB Zresult.B, Zop1.B, Zop2.B - /// svint8_t svsub[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B /// - public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svsub[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svsub[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// FSUB Zresult.D, Zop1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svsub[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// + public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svsub[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -8626,16 +8763,29 @@ internal Arm64() { } public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svsub[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svsub[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// SUB Zresult.B, Zop1.B, Zop2.B - /// svuint8_t svsub[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B /// - public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svsub[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svsub[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// FSUB Zresult.S, Zop1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svsub[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// + public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svsub[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -8673,32 +8823,6 @@ internal Arm64() { } /// public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svsub[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svsub[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// FSUB Zresult.S, Zop1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svsub[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// - public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat64_t svsub[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svsub[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// FSUB Zresult.D, Zop1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svsub[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// - public static unsafe Vector Subtract(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Saturating subtract @@ -8751,47 +8875,6 @@ internal Arm64() { } public static unsafe Vector SubtractSaturate(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - // Unpack and extend low half - - /// - /// svint16_t svunpklo[_s16](svint8_t op) - /// SUNPKLO Zresult.H, Zop.B - /// - public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } - - /// - /// svint32_t svunpklo[_s32](svint16_t op) - /// SUNPKLO Zresult.S, Zop.H - /// - public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } - - /// - /// svint64_t svunpklo[_s64](svint32_t op) - /// SUNPKLO Zresult.D, Zop.S - /// - public static unsafe Vector SignExtendWideningLower(Vector value) { throw new PlatformNotSupportedException(); } - - - // Unpack and extend high half - - /// - /// svint16_t svunpkhi[_s16](svint8_t op) - /// SUNPKHI Zresult.H, Zop.B - /// - public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } - - /// - /// svint32_t svunpkhi[_s32](svint16_t op) - /// SUNPKHI Zresult.S, Zop.H - /// - public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } - - /// - /// svint64_t svunpkhi[_s64](svint32_t op) - /// SUNPKHI Zresult.D, Zop.S - /// - public static unsafe Vector SignExtendWideningUpper(Vector value) { throw new PlatformNotSupportedException(); } - // Test whether any active element is true /// @@ -8842,6 +8925,7 @@ internal Arm64() { } /// public static unsafe bool TestAnyTrue(Vector mask, Vector srcMask) { throw new PlatformNotSupportedException(); } + // Test whether the first active element is true /// @@ -9118,9 +9202,15 @@ internal Arm64() { } // Concatenate even elements from two inputs /// - /// svint8_t svuzp1[_s8](svint8_t op1, svint8_t op2) + /// svuint8_t svuzp1[_u8](svuint8_t op1, svuint8_t op2) + /// svbool_t svuzp1_b8(svbool_t op1, svbool_t op2) /// - public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat64_t svuzp1[_f64](svfloat64_t op1, svfloat64_t op2) + /// + public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svint16_t svuzp1[_s16](svint16_t op1, svint16_t op2) @@ -9138,10 +9228,14 @@ internal Arm64() { } public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// - /// svuint8_t svuzp1[_u8](svuint8_t op1, svuint8_t op2) - /// svbool_t svuzp1_b8(svbool_t op1, svbool_t op2) + /// svint8_t svuzp1[_s8](svint8_t op1, svint8_t op2) /// - public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } + + /// + /// svfloat32_t svuzp1[_f32](svfloat32_t op1, svfloat32_t op2) + /// + public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } /// /// svuint16_t svuzp1[_u16](svuint16_t op1, svuint16_t op2) @@ -9161,17 +9255,6 @@ internal Arm64() { } /// public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - /// - /// svfloat32_t svuzp1[_f32](svfloat32_t op1, svfloat32_t op2) - /// - public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - /// - /// svfloat64_t svuzp1[_f64](svfloat64_t op1, svfloat64_t op2) - /// - public static unsafe Vector UnzipEven(Vector left, Vector right) { throw new PlatformNotSupportedException(); } - - // Concatenate odd elements from two inputs /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs index 17344b8d08729..c4f625d3294d7 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Arm/Sve.cs @@ -32,16 +32,16 @@ internal Arm64() { } // Absolute value /// - /// svint8_t svabs[_s8]_m(svint8_t inactive, svbool_t pg, svint8_t op) - /// ABS Ztied.B, Pg/M, Zop.B - /// MOVPRFX Zresult, Zinactive; ABS Zresult.B, Pg/M, Zop.B - /// svint8_t svabs[_s8]_x(svbool_t pg, svint8_t op) - /// ABS Ztied.B, Pg/M, Ztied.B - /// MOVPRFX Zresult, Zop; ABS Zresult.B, Pg/M, Zop.B - /// svint8_t svabs[_s8]_z(svbool_t pg, svint8_t op) - /// MOVPRFX Zresult.B, Pg/Z, Zop.B; ABS Zresult.B, Pg/M, Zop.B + /// svfloat64_t svabs[_f64]_m(svfloat64_t inactive, svbool_t pg, svfloat64_t op) + /// FABS Ztied.D, Pg/M, Zop.D + /// MOVPRFX Zresult, Zinactive; FABS Zresult.D, Pg/M, Zop.D + /// svfloat64_t svabs[_f64]_x(svbool_t pg, svfloat64_t op) + /// FABS Ztied.D, Pg/M, Ztied.D + /// MOVPRFX Zresult, Zop; FABS Zresult.D, Pg/M, Zop.D + /// svfloat64_t svabs[_f64]_z(svbool_t pg, svfloat64_t op) + /// MOVPRFX Zresult.D, Pg/Z, Zop.D; FABS Zresult.D, Pg/M, Zop.D /// - public static unsafe Vector Abs(Vector value) => Abs(value); + public static unsafe Vector Abs(Vector value) => Abs(value); /// /// svint16_t svabs[_s16]_m(svint16_t inactive, svbool_t pg, svint16_t op) @@ -79,6 +79,18 @@ internal Arm64() { } /// public static unsafe Vector Abs(Vector value) => Abs(value); + /// + /// svint8_t svabs[_s8]_m(svint8_t inactive, svbool_t pg, svint8_t op) + /// ABS Ztied.B, Pg/M, Zop.B + /// MOVPRFX Zresult, Zinactive; ABS Zresult.B, Pg/M, Zop.B + /// svint8_t svabs[_s8]_x(svbool_t pg, svint8_t op) + /// ABS Ztied.B, Pg/M, Ztied.B + /// MOVPRFX Zresult, Zop; ABS Zresult.B, Pg/M, Zop.B + /// svint8_t svabs[_s8]_z(svbool_t pg, svint8_t op) + /// MOVPRFX Zresult.B, Pg/Z, Zop.B; ABS Zresult.B, Pg/M, Zop.B + /// + public static unsafe Vector Abs(Vector value) => Abs(value); + /// /// svfloat32_t svabs[_f32]_m(svfloat32_t inactive, svbool_t pg, svfloat32_t op) /// FABS Ztied.S, Pg/M, Zop.S @@ -91,41 +103,23 @@ internal Arm64() { } /// public static unsafe Vector Abs(Vector value) => Abs(value); - /// - /// svfloat64_t svabs[_f64]_m(svfloat64_t inactive, svbool_t pg, svfloat64_t op) - /// FABS Ztied.D, Pg/M, Zop.D - /// MOVPRFX Zresult, Zinactive; FABS Zresult.D, Pg/M, Zop.D - /// svfloat64_t svabs[_f64]_x(svbool_t pg, svfloat64_t op) - /// FABS Ztied.D, Pg/M, Ztied.D - /// MOVPRFX Zresult, Zop; FABS Zresult.D, Pg/M, Zop.D - /// svfloat64_t svabs[_f64]_z(svbool_t pg, svfloat64_t op) - /// MOVPRFX Zresult.D, Pg/Z, Zop.D; FABS Zresult.D, Pg/M, Zop.D - /// - public static unsafe Vector Abs(Vector value) => Abs(value); - // Absolute compare greater than - /// - /// svbool_t svacgt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACGT Presult.S, Pg/Z, Zop1.S, Zop2.S - /// - public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) => AbsoluteCompareGreaterThan(left, right); - /// /// svbool_t svacgt[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) /// FACGT Presult.D, Pg/Z, Zop1.D, Zop2.D /// public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) => AbsoluteCompareGreaterThan(left, right); - - // Absolute compare greater than or equal to - /// - /// svbool_t svacge[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACGE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svacgt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACGT Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) => AbsoluteCompareGreaterThanOrEqual(left, right); + public static unsafe Vector AbsoluteCompareGreaterThan(Vector left, Vector right) => AbsoluteCompareGreaterThan(left, right); + + + // Absolute compare greater than or equal to /// /// svbool_t svacge[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -133,14 +127,14 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) => AbsoluteCompareGreaterThanOrEqual(left, right); - - // Absolute compare less than - /// - /// svbool_t svaclt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACLT Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svacge[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACGE Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) => AbsoluteCompareLessThan(left, right); + public static unsafe Vector AbsoluteCompareGreaterThanOrEqual(Vector left, Vector right) => AbsoluteCompareGreaterThanOrEqual(left, right); + + + // Absolute compare less than /// /// svbool_t svaclt[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -148,14 +142,14 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) => AbsoluteCompareLessThan(left, right); - - // Absolute compare less than or equal to - /// - /// svbool_t svacle[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FACLE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// svbool_t svaclt[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACLT Presult.S, Pg/Z, Zop1.S, Zop2.S /// - public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) => AbsoluteCompareLessThanOrEqual(left, right); + public static unsafe Vector AbsoluteCompareLessThan(Vector left, Vector right) => AbsoluteCompareLessThan(left, right); + + + // Absolute compare less than or equal to /// /// svbool_t svacle[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) @@ -163,6 +157,12 @@ internal Arm64() { } /// public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) => AbsoluteCompareLessThanOrEqual(left, right); + /// + /// svbool_t svacle[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FACLE Presult.S, Pg/Z, Zop1.S, Zop2.S + /// + public static unsafe Vector AbsoluteCompareLessThanOrEqual(Vector left, Vector right) => AbsoluteCompareLessThanOrEqual(left, right); + // Absolute difference @@ -250,11 +250,18 @@ internal Arm64() { } // Add /// - /// svint8_t svadd[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) - /// svint8_t svadd[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) - /// svint8_t svadd[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svadd[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svuint8_t svadd[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svuint8_t svadd[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// - public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); + public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); + + /// + /// svfloat64_t svadd[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// svfloat64_t svadd[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// svfloat64_t svadd[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// + public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); /// /// svint16_t svadd[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -278,11 +285,18 @@ internal Arm64() { } public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); /// - /// svuint8_t svadd[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) - /// svuint8_t svadd[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) - /// svuint8_t svadd[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svadd[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svint8_t svadd[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svint8_t svadd[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// - public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); + public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); + + /// + /// svfloat32_t svadd[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// svfloat32_t svadd[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// svfloat32_t svadd[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// + public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); /// /// svuint16_t svadd[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -305,20 +319,6 @@ internal Arm64() { } /// public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); - /// - /// svfloat32_t svadd[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// svfloat32_t svadd[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// svfloat32_t svadd[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// - public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); - - /// - /// svfloat64_t svadd[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// svfloat64_t svadd[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// svfloat64_t svadd[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// - public static unsafe Vector Add(Vector left, Vector right) => Add(left, right); - // Add reduction @@ -1865,13 +1865,20 @@ internal Arm64() { } // Conditionally select elements /// - /// svint8_t svsel[_s8](svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsel[_u8](svbool_t pg, svuint8_t op1, svuint8_t op2) /// SEL Zresult.B, Pg, Zop1.B, Zop2.B /// svbool_t svsel[_b](svbool_t pg, svbool_t op1, svbool_t op2) /// SEL Presult.B, Pg, Pop1.B, Pop2.B /// /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); + + /// + /// svfloat64_t svsel[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// SEL Zresult.D, Pg, Zop1.D, Zop2.D + /// + /// + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); /// /// svint16_t svsel[_s16](svbool_t pg, svint16_t op1, svint16_t op2) @@ -1901,13 +1908,20 @@ internal Arm64() { } public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); /// - /// svuint8_t svsel[_u8](svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsel[_s8](svbool_t pg, svint8_t op1, svint8_t op2) /// SEL Zresult.B, Pg, Zop1.B, Zop2.B /// svbool_t svsel[_b](svbool_t pg, svbool_t op1, svbool_t op2) /// SEL Presult.B, Pg, Pop1.B, Pop2.B /// /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); + + /// + /// svfloat32_t svsel[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// SEL Zresult.S, Pg, Zop1.S, Zop2.S + /// + /// + public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); /// /// svuint16_t svsel[_u16](svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -1936,20 +1950,6 @@ internal Arm64() { } /// public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); - /// - /// svfloat32_t svsel[_f32](svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// SEL Zresult.S, Pg, Zop1.S, Zop2.S - /// - /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); - - /// - /// svfloat64_t svsel[_f64](svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// SEL Zresult.D, Pg, Zop1.D, Zop2.D - /// - /// - public static unsafe Vector ConditionalSelect(Vector mask, Vector left, Vector right) => ConditionalSelect(mask, left, right); - // Floating-point convert @@ -2167,6 +2167,8 @@ internal Arm64() { } public static unsafe ulong Count8BitElements([ConstantExpected] SveMaskPattern pattern = SveMaskPattern.All) => Count8BitElements(pattern); + // Break after first true condition + /// /// svbool_t svbrka[_b]_z(svbool_t pg, svbool_t op) /// BRKA Presult.B, Pg/Z, Pop.B @@ -2215,6 +2217,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakAfterMask(Vector mask, Vector srcMask) => CreateBreakAfterMask(mask, srcMask); + + // Break after first true condition, propagating from previous partition + /// /// svbool_t svbrkpa[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKPA Presult.B, Pg/Z, Pop1.B, Pop2.B @@ -2263,6 +2268,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakAfterPropagateMask(Vector mask, Vector left, Vector right) => CreateBreakAfterPropagateMask(mask, left, right); + + // Break before first true condition + /// /// svbool_t svbrkb[_b]_z(svbool_t pg, svbool_t op) /// BRKB Presult.B, Pg/Z, Pop.B @@ -2311,6 +2319,9 @@ internal Arm64() { } /// public static unsafe Vector CreateBreakBeforeMask(Vector mask, Vector srcMask) => CreateBreakBeforeMask(mask, srcMask); + + // Break before first true condition, propagating from previous partition + /// /// svbool_t svbrkpb[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKPB Presult.B, Pg/Z, Pop1.B, Pop2.B @@ -2360,11 +2371,13 @@ internal Arm64() { } public static unsafe Vector CreateBreakBeforePropagateMask(Vector mask, Vector left, Vector right) => CreateBreakBeforePropagateMask(mask, left, right); + // Propagate break to next partition + /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKN Ptied2.B, Pg/Z, Pop1.B, Ptied2.B /// - public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) => CreateBreakPropagateMask(totalMask, fromMask); + public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) => CreateBreakPropagateMask(totalMask, fromMask); /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) @@ -2388,7 +2401,7 @@ internal Arm64() { } /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) /// BRKN Ptied2.B, Pg/Z, Pop1.B, Ptied2.B /// - public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) => CreateBreakPropagateMask(totalMask, fromMask); + public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) => CreateBreakPropagateMask(totalMask, fromMask); /// /// svbool_t svbrkn[_b]_z(svbool_t pg, svbool_t op1, svbool_t op2) @@ -2409,7 +2422,7 @@ internal Arm64() { } public static unsafe Vector CreateBreakPropagateMask(Vector totalMask, Vector fromMask) => CreateBreakPropagateMask(totalMask, fromMask); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2418,7 +2431,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskByte() => CreateFalseMaskByte(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2427,7 +2440,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskDouble() => CreateFalseMaskDouble(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2436,7 +2449,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskInt16() => CreateFalseMaskInt16(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2445,7 +2458,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskInt32() => CreateFalseMaskInt32(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2454,7 +2467,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskInt64() => CreateFalseMaskInt64(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2463,7 +2476,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskSByte() => CreateFalseMaskSByte(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2472,7 +2485,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskSingle() => CreateFalseMaskSingle(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2481,7 +2494,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskUInt16() => CreateFalseMaskUInt16(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2490,7 +2503,7 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskUInt32() => CreateFalseMaskUInt32(); - /// Set all predicate elements to false + // Set all predicate elements to false /// /// svbool_t svpfalse[_b]() @@ -2499,6 +2512,8 @@ internal Arm64() { } public static unsafe Vector CreateFalseMaskUInt64() => CreateFalseMaskUInt64(); + // Set the first active predicate element to true + /// /// svbool_t svpfirst[_b](svbool_t pg, svbool_t op) /// PFIRST Ptied.B, Pg, Ptied.B @@ -2547,6 +2562,9 @@ internal Arm64() { } /// public static unsafe Vector CreateMaskForFirstActiveElement(Vector mask, Vector srcMask) => CreateMaskForFirstActiveElement(mask, srcMask); + + // Find next active predicate + /// /// svbool_t svpnext_b8(svbool_t pg, svbool_t op) /// PNEXT Ptied.B, Pg, Ptied.B @@ -2880,18 +2898,6 @@ internal Arm64() { } // Divide - /// - /// svfloat32_t svdiv[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svdiv[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svdiv[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S - /// - public static unsafe Vector Divide(Vector left, Vector right) => Divide(left, right); - /// /// svfloat64_t svdiv[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) /// FDIV Ztied1.D, Pg/M, Ztied1.D, Zop2.D @@ -2904,6 +2910,18 @@ internal Arm64() { } /// public static unsafe Vector Divide(Vector left, Vector right) => Divide(left, right); + /// + /// svfloat32_t svdiv[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svdiv[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FDIV Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svdiv[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FDIV Zresult.S, Pg/M, Zresult.S, Zop2.S + /// + public static unsafe Vector Divide(Vector left, Vector right) => Divide(left, right); + // Dot product @@ -3618,8 +3636,6 @@ internal Arm64() { } public static unsafe Vector GatherVector(Vector mask, ulong* address, Vector indices) => GatherVector(mask, address, indices); - - // Load 8-bit data and zero-extend /// @@ -4540,11 +4556,18 @@ internal Arm64() { } // Unextended load /// - /// svint8_t svld1[_s8](svbool_t pg, const int8_t *base) + /// svuint8_t svld1[_u8](svbool_t pg, const uint8_t *base) /// LD1B Zresult.B, Pg/Z, [Xarray, Xindex] /// LD1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector(Vector mask, sbyte* address) => LoadVector(mask, address); + public static unsafe Vector LoadVector(Vector mask, byte* address) => LoadVector(mask, address); + + /// + /// svfloat64_t svld1[_f64](svbool_t pg, const float64_t *base) + /// LD1D Zresult.D, Pg/Z, [Xarray, Xindex, LSL #3] + /// LD1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVector(Vector mask, double* address) => LoadVector(mask, address); /// /// svint16_t svld1[_s16](svbool_t pg, const int16_t *base) @@ -4568,11 +4591,18 @@ internal Arm64() { } public static unsafe Vector LoadVector(Vector mask, long* address) => LoadVector(mask, address); /// - /// svuint8_t svld1[_u8](svbool_t pg, const uint8_t *base) + /// svint8_t svld1[_s8](svbool_t pg, const int8_t *base) /// LD1B Zresult.B, Pg/Z, [Xarray, Xindex] /// LD1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector(Vector mask, byte* address) => LoadVector(mask, address); + public static unsafe Vector LoadVector(Vector mask, sbyte* address) => LoadVector(mask, address); + + /// + /// svfloat32_t svld1[_f32](svbool_t pg, const float32_t *base) + /// LD1W Zresult.S, Pg/Z, [Xarray, Xindex, LSL #2] + /// LD1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVector(Vector mask, float* address) => LoadVector(mask, address); /// /// svuint16_t svld1[_u16](svbool_t pg, const uint16_t *base) @@ -4595,310 +4625,464 @@ internal Arm64() { } /// public static unsafe Vector LoadVector(Vector mask, ulong* address) => LoadVector(mask, address); + + // Load and replicate 128 bits of data + /// - /// svfloat32_t svld1[_f32](svbool_t pg, const float32_t *base) - /// LD1W Zresult.S, Pg/Z, [Xarray, Xindex, LSL #2] - /// LD1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint8_t svld1rq[_u8](svbool_t pg, const uint8_t *base) + /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVector(Vector mask, float* address) => LoadVector(mask, address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, byte* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svfloat64_t svld1[_f64](svbool_t pg, const float64_t *base) - /// LD1D Zresult.D, Pg/Z, [Xarray, Xindex, LSL #3] - /// LD1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat64_t svld1rq[_f64](svbool_t pg, const float64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVector(Vector mask, double* address) => LoadVector(mask, address); - + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, double* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svuint8_t svldnf1[_u8](svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svint16_t svld1rq[_s16](svbool_t pg, const int16_t *base) + /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(byte* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, short* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svfloat64_t svldnf1[_f64](svbool_t pg, const float64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svld1rq[_s32](svbool_t pg, const int32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(double* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, int* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svint16_t svldnf1[_s16](svbool_t pg, const int16_t *base) - /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1rq[_s64](svbool_t pg, const int64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(short* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, long* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svint32_t svldnf1[_s32](svbool_t pg, const int32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint8_t svld1rq[_s8](svbool_t pg, const int8_t *base) + /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(int* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, sbyte* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svint64_t svldnf1[_s64](svbool_t pg, const int64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat32_t svld1rq[_f32](svbool_t pg, const float32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(long* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, float* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svint8_t svldnf1[_s8](svbool_t pg, const int8_t *base) - /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16_t svld1rq[_u16](svbool_t pg, const uint16_t *base) + /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(sbyte* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ushort* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svfloat32_t svldnf1[_f32](svbool_t pg, const float32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32_t svld1rq[_u32](svbool_t pg, const uint32_t *base) + /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(float* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, uint* address) => LoadVector128AndReplicateToVector(mask, address); /// - /// svuint16_t svldnf1[_u16](svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1rq[_u64](svbool_t pg, const uint64_t *base) + /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] /// - public static unsafe Vector LoadVectorNonFaulting(ushort* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ulong* address) => LoadVector128AndReplicateToVector(mask, address); + + + // Load 8-bit data and zero-extend, non-faulting /// - /// svuint32_t svldnf1[_u32](svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint16_t svldnf1ub_s16(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonFaulting(uint* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt16(address); + + + // Load 8-bit data and zero-extend, non-faulting /// - /// svuint64_t svldnf1[_u64](svbool_t pg, const uint64_t *base) - /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svldnf1ub_s32(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonFaulting(ulong* address) => LoadVectorNonFaulting(address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt32(address); + + // Load 8-bit data and zero-extend, non-faulting /// - /// svuint8_t svldnt1[_u8](svbool_t pg, const uint8_t *base) - /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svldnf1ub_s64(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, byte* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt64(address); + + + // Load 8-bit data and zero-extend, non-faulting /// - /// svfloat64_t svldnt1[_f64](svbool_t pg, const float64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16_t svldnf1ub_u16(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, double* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt16(address); + + + // Load 8-bit data and zero-extend, non-faulting /// - /// svint16_t svldnt1[_s16](svbool_t pg, const int16_t *base) - /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32_t svldnf1ub_u32(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, short* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt32(address); + + + // Load 8-bit data and zero-extend, non-faulting /// - /// svint32_t svldnt1[_s32](svbool_t pg, const int32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1ub_u64(svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, int* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt64(address); + + + // Load 8-bit data and zero-extend /// - /// svint64_t svldnt1[_s64](svbool_t pg, const int64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint16_t svld1ub_s16(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, long* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToInt16(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt16(mask, address); + + + // Load 8-bit data and zero-extend /// - /// svint8_t svldnt1[_s8](svbool_t pg, const int8_t *base) - /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svld1ub_s32(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, sbyte* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToInt32(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt32(mask, address); + + + // Load 8-bit data and zero-extend /// - /// svfloat32_t svldnt1[_f32](svbool_t pg, const float32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1ub_s64(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, float* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToInt64(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt64(mask, address); + + + // Load 8-bit data and zero-extend /// - /// svuint16_t svldnt1[_u16](svbool_t pg, const uint16_t *base) - /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16_t svld1ub_u16(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, ushort* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToUInt16(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt16(mask, address); + + + // Load 8-bit data and zero-extend /// - /// svuint32_t svldnt1[_u32](svbool_t pg, const uint32_t *base) - /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32_t svld1ub_u32(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, uint* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToUInt32(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt32(mask, address); + + + // Load 8-bit data and zero-extend /// - /// svuint64_t svldnt1[_u64](svbool_t pg, const uint64_t *base) - /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1ub_u64(svbool_t pg, const uint8_t *base) + /// LD1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorNonTemporal(Vector mask, ulong* address) => LoadVectorNonTemporal(mask, address); + public static unsafe Vector LoadVectorByteZeroExtendToUInt64(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt64(mask, address); + + // Load 16-bit data and sign-extend, non-faulting /// - /// svuint8_t svld1rq[_u8](svbool_t pg, const uint8_t *base) - /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] + /// svint32_t svldnf1sh_s32(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, byte* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) => LoadVectorInt16NonFaultingSignExtendToInt32(address); + + + // Load 16-bit data and sign-extend, non-faulting /// - /// svfloat64_t svld1rq[_f64](svbool_t pg, const float64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] + /// svint64_t svldnf1sh_s64(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, double* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) => LoadVectorInt16NonFaultingSignExtendToInt64(address); + + + // Load 16-bit data and sign-extend, non-faulting /// - /// svint16_t svld1rq[_s16](svbool_t pg, const int16_t *base) - /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] + /// svuint32_t svldnf1sh_u32(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, short* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) => LoadVectorInt16NonFaultingSignExtendToUInt32(address); + + + // Load 16-bit data and sign-extend, non-faulting /// - /// svint32_t svld1rq[_s32](svbool_t pg, const int32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] + /// svuint64_t svldnf1sh_u64(svbool_t pg, const int16_t *base) + /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, int* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) => LoadVectorInt16NonFaultingSignExtendToUInt64(address); + + + // Load 16-bit data and sign-extend /// - /// svint64_t svld1rq[_s64](svbool_t pg, const int64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] + /// svint32_t svld1sh_s32(svbool_t pg, const int16_t *base) + /// LD1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, long* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16SignExtendToInt32(Vector mask, short* address) => LoadVectorInt16SignExtendToInt32(mask, address); + + + // Load 16-bit data and sign-extend /// - /// svint8_t svld1rq[_s8](svbool_t pg, const int8_t *base) - /// LD1RQB Zresult.B, Pg/Z, [Xbase, #0] + /// svint64_t svld1sh_s64(svbool_t pg, const int16_t *base) + /// LD1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, sbyte* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16SignExtendToInt64(Vector mask, short* address) => LoadVectorInt16SignExtendToInt64(mask, address); + + + // Load 16-bit data and sign-extend /// - /// svfloat32_t svld1rq[_f32](svbool_t pg, const float32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] + /// svuint32_t svld1sh_u32(svbool_t pg, const int16_t *base) + /// LD1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, float* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16SignExtendToUInt32(Vector mask, short* address) => LoadVectorInt16SignExtendToUInt32(mask, address); + + + // Load 16-bit data and sign-extend /// - /// svuint16_t svld1rq[_u16](svbool_t pg, const uint16_t *base) - /// LD1RQH Zresult.H, Pg/Z, [Xbase, #0] + /// svuint64_t svld1sh_u64(svbool_t pg, const int16_t *base) + /// LD1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ushort* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt16SignExtendToUInt64(Vector mask, short* address) => LoadVectorInt16SignExtendToUInt64(mask, address); + + + // Load 32-bit data and sign-extend, non-faulting /// - /// svuint32_t svld1rq[_u32](svbool_t pg, const uint32_t *base) - /// LD1RQW Zresult.S, Pg/Z, [Xbase, #0] + /// svint64_t svldnf1sw_s64(svbool_t pg, const int32_t *base) + /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, uint* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) => LoadVectorInt32NonFaultingSignExtendToInt64(address); + + + // Load 32-bit data and sign-extend, non-faulting /// - /// svuint64_t svld1rq[_u64](svbool_t pg, const uint64_t *base) - /// LD1RQD Zresult.D, Pg/Z, [Xbase, #0] + /// svuint64_t svldnf1sw_u64(svbool_t pg, const int32_t *base) + /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVector128AndReplicateToVector(Vector mask, ulong* address) => LoadVector128AndReplicateToVector(mask, address); + public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) => LoadVectorInt32NonFaultingSignExtendToUInt64(address); - // Load 8-bit data and zero-extend + // Load 32-bit data and sign-extend /// - /// svint16_t svld1ub_s16(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1sw_s64(svbool_t pg, const int32_t *base) + /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToInt16(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt16(mask, address); + public static unsafe Vector LoadVectorInt32SignExtendToInt64(Vector mask, int* address) => LoadVectorInt32SignExtendToInt64(mask, address); - // Load 8-bit data and zero-extend + // Load 32-bit data and sign-extend /// - /// svint32_t svld1ub_s32(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1sw_u64(svbool_t pg, const int32_t *base) + /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToInt32(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt32(mask, address); + public static unsafe Vector LoadVectorInt32SignExtendToUInt64(Vector mask, int* address) => LoadVectorInt32SignExtendToUInt64(mask, address); - // Load 8-bit data and zero-extend + // Unextended load, non-faulting /// - /// svint64_t svld1ub_s64(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint8_t svldnf1[_u8](svbool_t pg, const uint8_t *base) + /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToInt64(Vector mask, byte* address) => LoadVectorByteZeroExtendToInt64(mask, address); + public static unsafe Vector LoadVectorNonFaulting(byte* address) => LoadVectorNonFaulting(address); + /// + /// svfloat64_t svldnf1[_f64](svbool_t pg, const float64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(double* address) => LoadVectorNonFaulting(address); - // Load 8-bit data and zero-extend + /// + /// svint16_t svldnf1[_s16](svbool_t pg, const int16_t *base) + /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(short* address) => LoadVectorNonFaulting(address); /// - /// svuint16_t svld1ub_u16(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svldnf1[_s32](svbool_t pg, const int32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToUInt16(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt16(mask, address); + public static unsafe Vector LoadVectorNonFaulting(int* address) => LoadVectorNonFaulting(address); + /// + /// svint64_t svldnf1[_s64](svbool_t pg, const int64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(long* address) => LoadVectorNonFaulting(address); - // Load 8-bit data and zero-extend + /// + /// svint8_t svldnf1[_s8](svbool_t pg, const int8_t *base) + /// LDNF1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(sbyte* address) => LoadVectorNonFaulting(address); /// - /// svuint32_t svld1ub_u32(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat32_t svldnf1[_f32](svbool_t pg, const float32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToUInt32(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt32(mask, address); + public static unsafe Vector LoadVectorNonFaulting(float* address) => LoadVectorNonFaulting(address); + /// + /// svuint16_t svldnf1[_u16](svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(ushort* address) => LoadVectorNonFaulting(address); - // Load 8-bit data and zero-extend + /// + /// svuint32_t svldnf1[_u32](svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonFaulting(uint* address) => LoadVectorNonFaulting(address); /// - /// svuint64_t svld1ub_u64(svbool_t pg, const uint8_t *base) - /// LD1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1[_u64](svbool_t pg, const uint64_t *base) + /// LDNF1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteZeroExtendToUInt64(Vector mask, byte* address) => LoadVectorByteZeroExtendToUInt64(mask, address); + public static unsafe Vector LoadVectorNonFaulting(ulong* address) => LoadVectorNonFaulting(address); - // Load 16-bit data and sign-extend + // Unextended load, non-temporal /// - /// svint32_t svld1sh_s32(svbool_t pg, const int16_t *base) - /// LD1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svuint8_t svldnt1[_u8](svbool_t pg, const uint8_t *base) + /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt16SignExtendToInt32(Vector mask, short* address) => LoadVectorInt16SignExtendToInt32(mask, address); + public static unsafe Vector LoadVectorNonTemporal(Vector mask, byte* address) => LoadVectorNonTemporal(mask, address); + /// + /// svfloat64_t svldnt1[_f64](svbool_t pg, const float64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, double* address) => LoadVectorNonTemporal(mask, address); - // Load 16-bit data and sign-extend + /// + /// svint16_t svldnt1[_s16](svbool_t pg, const int16_t *base) + /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, short* address) => LoadVectorNonTemporal(mask, address); /// - /// svint64_t svld1sh_s64(svbool_t pg, const int16_t *base) - /// LD1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint32_t svldnt1[_s32](svbool_t pg, const int32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt16SignExtendToInt64(Vector mask, short* address) => LoadVectorInt16SignExtendToInt64(mask, address); + public static unsafe Vector LoadVectorNonTemporal(Vector mask, int* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svint64_t svldnt1[_s64](svbool_t pg, const int64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, long* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svint8_t svldnt1[_s8](svbool_t pg, const int8_t *base) + /// LDNT1B Zresult.B, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, sbyte* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svfloat32_t svldnt1[_f32](svbool_t pg, const float32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, float* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svuint16_t svldnt1[_u16](svbool_t pg, const uint16_t *base) + /// LDNT1H Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, ushort* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svuint32_t svldnt1[_u32](svbool_t pg, const uint32_t *base) + /// LDNT1W Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, uint* address) => LoadVectorNonTemporal(mask, address); + + /// + /// svuint64_t svldnt1[_u64](svbool_t pg, const uint64_t *base) + /// LDNT1D Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorNonTemporal(Vector mask, ulong* address) => LoadVectorNonTemporal(mask, address); + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svint16_t svldnf1sb_s16(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt16(address); + + + // Load 8-bit data and sign-extend, non-faulting + + /// + /// svint32_t svldnf1sb_s32(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt32(address); - // Load 16-bit data and sign-extend + // Load 8-bit data and sign-extend, non-faulting /// - /// svuint32_t svld1sh_u32(svbool_t pg, const int16_t *base) - /// LD1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svldnf1sb_s64(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt16SignExtendToUInt32(Vector mask, short* address) => LoadVectorInt16SignExtendToUInt32(mask, address); + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt64(address); - // Load 16-bit data and sign-extend + // Load 8-bit data and sign-extend, non-faulting /// - /// svuint64_t svld1sh_u64(svbool_t pg, const int16_t *base) - /// LD1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16_t svldnf1sb_u16(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt16SignExtendToUInt64(Vector mask, short* address) => LoadVectorInt16SignExtendToUInt64(mask, address); + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt16(address); - // Load 32-bit data and sign-extend + // Load 8-bit data and sign-extend, non-faulting /// - /// svint64_t svld1sw_s64(svbool_t pg, const int32_t *base) - /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32_t svldnf1sb_u32(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32SignExtendToInt64(Vector mask, int* address) => LoadVectorInt32SignExtendToInt64(mask, address); + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt32(address); - // Load 32-bit data and sign-extend + // Load 8-bit data and sign-extend, non-faulting /// - /// svuint64_t svld1sw_u64(svbool_t pg, const int32_t *base) - /// LD1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1sb_u64(svbool_t pg, const int8_t *base) + /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32SignExtendToUInt64(Vector mask, int* address) => LoadVectorInt32SignExtendToUInt64(mask, address); + public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt64(address); // Load 8-bit data and sign-extend @@ -4955,6 +5139,42 @@ internal Arm64() { } public static unsafe Vector LoadVectorSByteSignExtendToUInt64(Vector mask, sbyte* address) => LoadVectorSByteSignExtendToUInt64(mask, address); + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svint32_t svldnf1uh_s32(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt32(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToInt32(address); + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svint64_t svldnf1uh_s64(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt64(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToInt64(address); + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svuint32_t svldnf1uh_u32(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt32(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToUInt32(address); + + + // Load 16-bit data and zero-extend, non-faulting + + /// + /// svuint64_t svldnf1uh_u64(svbool_t pg, const uint16_t *base) + /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt64(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToUInt64(address); + + // Load 16-bit data and zero-extend /// @@ -4991,94 +5211,43 @@ internal Arm64() { } public static unsafe Vector LoadVectorUInt16ZeroExtendToUInt64(Vector mask, ushort* address) => LoadVectorUInt16ZeroExtendToUInt64(mask, address); - // Load 32-bit data and zero-extend - - /// - /// svint64_t svld1uw_s64(svbool_t pg, const uint32_t *base) - /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32ZeroExtendToInt64(Vector mask, uint* address) => LoadVectorUInt32ZeroExtendToInt64(mask, address); - - - // Load 32-bit data and zero-extend - - /// - /// svuint64_t svld1uw_u64(svbool_t pg, const uint32_t *base) - /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32ZeroExtendToUInt64(Vector mask, uint* address) => LoadVectorUInt32ZeroExtendToUInt64(mask, address); + // Load 32-bit data and zero-extend, non-faulting /// - /// svint16_t svldnf1ub_s16(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svldnf1uw_s64(svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt16(address); + public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToInt64(uint* address) => LoadVectorUInt32NonFaultingZeroExtendToInt64(address); - /// - /// svint32_t svldnf1ub_s32(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt32(address); - /// - /// svint64_t svldnf1ub_s64(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) => LoadVectorByteNonFaultingZeroExtendToInt64(address); + // Load 32-bit data and zero-extend, non-faulting /// - /// svuint16_t svldnf1ub_u16(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svldnf1uw_u64(svbool_t pg, const uint32_t *base) + /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt16(address); + public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToUInt64(uint* address) => LoadVectorUInt32NonFaultingZeroExtendToUInt64(address); - /// - /// svuint32_t svldnf1ub_u32(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt32(address); - /// - /// svuint64_t svldnf1ub_u64(svbool_t pg, const uint8_t *base) - /// LDNF1B Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) => LoadVectorByteNonFaultingZeroExtendToUInt64(address); + // Load 32-bit data and zero-extend /// - /// svint32_t svldnf1uh_s32(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svint64_t svld1uw_s64(svbool_t pg, const uint32_t *base) + /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt32(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToInt32(address); + public static unsafe Vector LoadVectorUInt32ZeroExtendToInt64(Vector mask, uint* address) => LoadVectorUInt32ZeroExtendToInt64(mask, address); - /// - /// svint64_t svldnf1uh_s64(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToInt64(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToInt64(address); - /// - /// svuint32_t svldnf1uh_u32(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt32(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToUInt32(address); + // Load 32-bit data and zero-extend /// - /// svuint64_t svldnf1uh_u64(svbool_t pg, const uint16_t *base) - /// LDNF1H Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64_t svld1uw_u64(svbool_t pg, const uint32_t *base) + /// LD1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorUInt16NonFaultingZeroExtendToUInt64(ushort* address) => LoadVectorUInt16NonFaultingZeroExtendToUInt64(address); + public static unsafe Vector LoadVectorUInt32ZeroExtendToUInt64(Vector mask, uint* address) => LoadVectorUInt32ZeroExtendToUInt64(mask, address); - /// - /// svint64_t svldnf1uw_s64(svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToInt64(uint* address) => LoadVectorUInt32NonFaultingZeroExtendToInt64(address); - /// - /// svuint64_t svldnf1uw_u64(svbool_t pg, const uint32_t *base) - /// LDNF1W Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorUInt32NonFaultingZeroExtendToUInt64(uint* address) => LoadVectorUInt32NonFaultingZeroExtendToUInt64(address); + // Load two-element tuples into two vectors /// /// svuint8x2_t svld2[_u8](svbool_t pg, const uint8_t *base) @@ -5140,6 +5309,9 @@ internal Arm64() { } /// public static unsafe (Vector, Vector) Load2xVectorAndUnzip(Vector mask, ulong* address) => Load2xVectorAndUnzip(mask, address); + + // Load three-element tuples into three vectors + /// /// svuint8x3_t svld3[_u8](svbool_t pg, const uint8_t *base) /// LD3B {Zresult0.B - Zresult2.B}, Pg/Z, [Xbase, #0, MUL VL] @@ -5183,190 +5355,85 @@ internal Arm64() { } public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, float* address) => Load3xVectorAndUnzip(mask, address); /// - /// svuint16x3_t svld3[_u16](svbool_t pg, const uint16_t *base) - /// LD3H {Zresult0.H - Zresult2.H}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, ushort* address) => Load3xVectorAndUnzip(mask, address); - - /// - /// svuint32x3_t svld3[_u32](svbool_t pg, const uint32_t *base) - /// LD3W {Zresult0.S - Zresult2.S}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, uint* address) => Load3xVectorAndUnzip(mask, address); - - /// - /// svuint64x3_t svld3[_u64](svbool_t pg, const uint64_t *base) - /// LD3D {Zresult0.D - Zresult2.D}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, ulong* address) => Load3xVectorAndUnzip(mask, address); - - /// - /// svuint8x4_t svld4[_u8](svbool_t pg, const uint8_t *base) - /// LD4B {Zresult0.B - Zresult3.B}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, byte* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svfloat64x4_t svld4[_f64](svbool_t pg, const float64_t *base) - /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, double* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svint16x4_t svld4[_s16](svbool_t pg, const int16_t *base) - /// LD4H {Zresult0.H - Zresult3.H}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, short* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svint32x4_t svld4[_s32](svbool_t pg, const int32_t *base) - /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, int* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svint64x4_t svld4[_s64](svbool_t pg, const int64_t *base) - /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, long* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svint8x4_t svld4[_s8](svbool_t pg, const int8_t *base) - /// LD4B {Zresult0.B - Zresult3.B}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, sbyte* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svfloat32x4_t svld4[_f32](svbool_t pg, const float32_t *base) - /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, float* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svuint16x4_t svld4[_u16](svbool_t pg, const uint16_t *base) - /// LD4H {Zresult0.H - Zresult3.H}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, ushort* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svuint32x4_t svld4[_u32](svbool_t pg, const uint32_t *base) - /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, uint* address) => Load4xVectorAndUnzip(mask, address); - - /// - /// svuint64x4_t svld4[_u64](svbool_t pg, const uint64_t *base) - /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, ulong* address) => Load4xVectorAndUnzip(mask, address); - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svint32_t svldnf1sh_s32(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) => LoadVectorInt16NonFaultingSignExtendToInt32(address); - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svint64_t svldnf1sh_s64(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) => LoadVectorInt16NonFaultingSignExtendToInt64(address); - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svuint32_t svldnf1sh_u32(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.S, Pg/Z, [Xbase, #0, MUL VL] - /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) => LoadVectorInt16NonFaultingSignExtendToUInt32(address); - - - // Load 16-bit data and sign-extend, non-faulting - - /// - /// svuint64_t svldnf1sh_u64(svbool_t pg, const int16_t *base) - /// LDNF1SH Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint16x3_t svld3[_u16](svbool_t pg, const uint16_t *base) + /// LD3H {Zresult0.H - Zresult2.H}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) => LoadVectorInt16NonFaultingSignExtendToUInt64(address); - - - // Load 32-bit data and sign-extend, non-faulting + public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, ushort* address) => Load3xVectorAndUnzip(mask, address); /// - /// svint64_t svldnf1sw_s64(svbool_t pg, const int32_t *base) - /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint32x3_t svld3[_u32](svbool_t pg, const uint32_t *base) + /// LD3W {Zresult0.S - Zresult2.S}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) => LoadVectorInt32NonFaultingSignExtendToInt64(address); - - - // Load 32-bit data and sign-extend, non-faulting + public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, uint* address) => Load3xVectorAndUnzip(mask, address); /// - /// svuint64_t svldnf1sw_u64(svbool_t pg, const int32_t *base) - /// LDNF1SW Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64x3_t svld3[_u64](svbool_t pg, const uint64_t *base) + /// LD3D {Zresult0.D - Zresult2.D}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) => LoadVectorInt32NonFaultingSignExtendToUInt64(address); + public static unsafe (Vector, Vector, Vector) Load3xVectorAndUnzip(Vector mask, ulong* address) => Load3xVectorAndUnzip(mask, address); - // Load 8-bit data and sign-extend, non-faulting + // Load four-element tuples into four vectors /// - /// svint16_t svldnf1sb_s16(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svuint8x4_t svld4[_u8](svbool_t pg, const uint8_t *base) + /// LD4B {Zresult0.B - Zresult3.B}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt16(address); - - - // Load 8-bit data and sign-extend, non-faulting + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, byte* address) => Load4xVectorAndUnzip(mask, address); /// - /// svint32_t svldnf1sb_s32(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat64x4_t svld4[_f64](svbool_t pg, const float64_t *base) + /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt32(address); - - - // Load 8-bit data and sign-extend, non-faulting + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, double* address) => Load4xVectorAndUnzip(mask, address); /// - /// svint64_t svldnf1sb_s64(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svint16x4_t svld4[_s16](svbool_t pg, const int16_t *base) + /// LD4H {Zresult0.H - Zresult3.H}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToInt64(address); - - - // Load 8-bit data and sign-extend, non-faulting + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, short* address) => Load4xVectorAndUnzip(mask, address); /// - /// svuint16_t svldnf1sb_u16(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.H, Pg/Z, [Xbase, #0, MUL VL] + /// svint32x4_t svld4[_s32](svbool_t pg, const int32_t *base) + /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt16(address); + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, int* address) => Load4xVectorAndUnzip(mask, address); + /// + /// svint64x4_t svld4[_s64](svbool_t pg, const int64_t *base) + /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, long* address) => Load4xVectorAndUnzip(mask, address); - // Load 8-bit data and sign-extend, non-faulting + /// + /// svint8x4_t svld4[_s8](svbool_t pg, const int8_t *base) + /// LD4B {Zresult0.B - Zresult3.B}, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, sbyte* address) => Load4xVectorAndUnzip(mask, address); /// - /// svuint32_t svldnf1sb_u32(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.S, Pg/Z, [Xbase, #0, MUL VL] + /// svfloat32x4_t svld4[_f32](svbool_t pg, const float32_t *base) + /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt32(address); + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, float* address) => Load4xVectorAndUnzip(mask, address); + /// + /// svuint16x4_t svld4[_u16](svbool_t pg, const uint16_t *base) + /// LD4H {Zresult0.H - Zresult3.H}, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, ushort* address) => Load4xVectorAndUnzip(mask, address); - // Load 8-bit data and sign-extend, non-faulting + /// + /// svuint32x4_t svld4[_u32](svbool_t pg, const uint32_t *base) + /// LD4W {Zresult0.S - Zresult3.S}, Pg/Z, [Xbase, #0, MUL VL] + /// + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, uint* address) => Load4xVectorAndUnzip(mask, address); /// - /// svuint64_t svldnf1sb_u64(svbool_t pg, const int8_t *base) - /// LDNF1SB Zresult.D, Pg/Z, [Xbase, #0, MUL VL] + /// svuint64x4_t svld4[_u64](svbool_t pg, const uint64_t *base) + /// LD4D {Zresult0.D - Zresult3.D}, Pg/Z, [Xbase, #0, MUL VL] /// - public static unsafe Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) => LoadVectorSByteNonFaultingSignExtendToUInt64(address); + public static unsafe (Vector, Vector, Vector, Vector) Load4xVectorAndUnzip(Vector mask, ulong* address) => Load4xVectorAndUnzip(mask, address); // Maximum @@ -5756,18 +5823,33 @@ internal Arm64() { } // Multiply /// - /// svint8_t svmul[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svmul[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MUL Ztied2.B, Pg/M, Ztied2.B, Zop1.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svmul[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svmul[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B /// MOVPRFX Zresult.B, Pg/Z, Zop2.B; MUL Zresult.B, Pg/M, Zresult.B, Zop1.B /// - public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); + public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); + + /// + /// svfloat64_t svmul[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svmul[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// FMUL Ztied2.D, Pg/M, Ztied2.D, Zop1.D + /// FMUL Zresult.D, Zop1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svmul[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D + /// MOVPRFX Zresult.D, Pg/Z, Zop2.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop1.D + /// + public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); /// /// svint16_t svmul[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -5812,18 +5894,33 @@ internal Arm64() { } public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); /// - /// svuint8_t svmul[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svmul[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) /// MUL Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MUL Ztied2.B, Pg/M, Ztied2.B, Zop1.B /// MOVPRFX Zresult, Zop1; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svmul[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svmul[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; MUL Zresult.B, Pg/M, Zresult.B, Zop2.B /// MOVPRFX Zresult.B, Pg/Z, Zop2.B; MUL Zresult.B, Pg/M, Zresult.B, Zop1.B /// - public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); + public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); + + /// + /// svfloat32_t svmul[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svmul[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// FMUL Ztied2.S, Pg/M, Ztied2.S, Zop1.S + /// FMUL Zresult.S, Zop1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svmul[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S + /// MOVPRFX Zresult.S, Pg/Z, Zop2.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop1.S + /// + public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); /// /// svuint16_t svmul[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -5867,36 +5964,6 @@ internal Arm64() { } /// public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); - /// - /// svfloat32_t svmul[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svmul[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FMUL Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// FMUL Ztied2.S, Pg/M, Ztied2.S, Zop1.S - /// FMUL Zresult.S, Zop1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svmul[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop2.S - /// MOVPRFX Zresult.S, Pg/Z, Zop2.S; FMUL Zresult.S, Pg/M, Zresult.S, Zop1.S - /// - public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); - - /// - /// svfloat64_t svmul[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svmul[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FMUL Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// FMUL Ztied2.D, Pg/M, Ztied2.D, Zop1.D - /// FMUL Zresult.D, Zop1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svmul[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop2.D - /// MOVPRFX Zresult.D, Pg/Z, Zop2.D; FMUL Zresult.D, Pg/M, Zresult.D, Zop1.D - /// - public static unsafe Vector Multiply(Vector left, Vector right) => Multiply(left, right); - // Multiply-add, addend first @@ -6462,24 +6529,36 @@ internal Arm64() { } /// public static unsafe Vector PopCount(Vector value) => PopCount(value); + + // Prefetch bytes + /// /// void svprfb(svbool_t pg, const void *base, enum svprfop op) /// PRFB op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchBytes(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) => PrefetchBytes(mask, address, prefetchType); + + // Prefetch halfwords + /// /// void svprfh(svbool_t pg, const void *base, enum svprfop op) /// PRFH op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchInt16(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) => PrefetchInt16(mask, address, prefetchType); + + // Prefetch words + /// /// void svprfw(svbool_t pg, const void *base, enum svprfop op) /// PRFW op, Pg, [Xbase, #0, MUL VL] /// public static unsafe void PrefetchInt32(Vector mask, void* address, [ConstantExpected] SvePrefetchType prefetchType) => PrefetchInt32(mask, address, prefetchType); + + // Prefetch doublewords + /// /// void svprfd(svbool_t pg, const void *base, enum svprfop op) /// PRFD op, Pg, [Xbase, #0, MUL VL] @@ -6566,6 +6645,8 @@ internal Arm64() { } /// FRECPS Zresult.S, Zop1.S, Zop2.S /// public static unsafe Vector ReciprocalStep(Vector left, Vector right) => ReciprocalStep(left, right); + + // Reverse bits /// @@ -7447,7 +7528,6 @@ internal Arm64() { } // Non-truncating store - /// /// void svst1_scatter_[s64]offset[_f64](svbool_t pg, float64_t *base, svint64_t offsets, svfloat64_t data) /// ST1D Zdata.D, Pg, [Xbase, Zoffsets.D] @@ -7560,7 +7640,7 @@ internal Arm64() { } public static unsafe void Scatter(Vector mask, ulong* address, Vector indicies, Vector data) => Scatter(mask, address, indicies, data); - // Truncate to 16 bits and store + // Truncate to 16 bits and store // // void svst1h_scatter[_u32base_s32](svbool_t pg, svuint32_t bases, svint32_t data) @@ -7589,7 +7669,7 @@ internal Arm64() { } public static unsafe void Scatter16BitNarrowing(Vector mask, Vector addresses, Vector data) => Scatter16BitNarrowing(mask, addresses, data); - // Truncate to 16 bits and store + // Truncate to 16 bits and store /// /// void svst1h_scatter_[s32]offset[_s32](svbool_t pg, int16_t *base, svint32_t offsets, svint32_t data) @@ -7640,7 +7720,7 @@ internal Arm64() { } public static unsafe void Scatter16BitWithByteOffsetsNarrowing(Vector mask, ushort* address, Vector offsets, Vector data) => Scatter16BitWithByteOffsetsNarrowing(mask, address, offsets, data); - // Truncate to 32 bits and store + // Truncate to 32 bits and store /// /// void svst1w_scatter[_u64base_s64](svbool_t pg, svuint64_t bases, svint64_t data) @@ -7657,7 +7737,6 @@ internal Arm64() { } // Truncate to 32 bits and store - /// /// void svst1w_scatter_[s64]offset[_s64](svbool_t pg, int32_t *base, svint64_t offsets, svint64_t data) /// ST1W Zdata.D, Pg, [Xbase, Zoffsets.D] @@ -7685,7 +7764,6 @@ internal Arm64() { } // Truncate to 8 bits and store - // // void svst1b_scatter[_u32base_s32](svbool_t pg, svuint32_t bases, svint32_t data) // ST1B Zdata.S, Pg, [Zbases.S, #0] @@ -7715,7 +7793,6 @@ internal Arm64() { } // Truncate to 8 bits and store - /// /// void svst1b_scatter_[s32]offset[_s32](svbool_t pg, int8_t *base, svint32_t offsets, svint32_t data) /// ST1B Zdata.S, Pg, [Xbase, Zoffsets.S, SXTW] @@ -8668,16 +8745,29 @@ internal Arm64() { } // Subtract /// - /// svint8_t svsub[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svint8_t svsub[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// SUB Zresult.B, Zop1.B, Zop2.B - /// svint8_t svsub[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) + /// svuint8_t svsub[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B /// - public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); + public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); + + /// + /// svfloat64_t svsub[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svsub[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D + /// FSUB Zresult.D, Zop1.D, Zop2.D + /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// svfloat64_t svsub[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) + /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D + /// + public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); /// /// svint16_t svsub[_s16]_m(svbool_t pg, svint16_t op1, svint16_t op2) @@ -8716,16 +8806,29 @@ internal Arm64() { } public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); /// - /// svuint8_t svsub[_u8]_m(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_m(svbool_t pg, svint8_t op1, svint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// MOVPRFX Zresult, Zop1; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B - /// svuint8_t svsub[_u8]_x(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_x(svbool_t pg, svint8_t op1, svint8_t op2) /// SUB Ztied1.B, Pg/M, Ztied1.B, Zop2.B /// SUB Zresult.B, Zop1.B, Zop2.B - /// svuint8_t svsub[_u8]_z(svbool_t pg, svuint8_t op1, svuint8_t op2) + /// svint8_t svsub[_s8]_z(svbool_t pg, svint8_t op1, svint8_t op2) /// MOVPRFX Zresult.B, Pg/Z, Zop1.B; SUB Zresult.B, Pg/M, Zresult.B, Zop2.B /// - public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); + public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); + + /// + /// svfloat32_t svsub[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svsub[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S + /// FSUB Zresult.S, Zop1.S, Zop2.S + /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// svfloat32_t svsub[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) + /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S + /// + public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); /// /// svuint16_t svsub[_u16]_m(svbool_t pg, svuint16_t op1, svuint16_t op2) @@ -8763,32 +8866,6 @@ internal Arm64() { } /// public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); - /// - /// svfloat32_t svsub[_f32]_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svsub[_f32]_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// FSUB Ztied1.S, Pg/M, Ztied1.S, Zop2.S - /// FSUB Zresult.S, Zop1.S, Zop2.S - /// MOVPRFX Zresult, Zop1; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// svfloat32_t svsub[_f32]_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2) - /// MOVPRFX Zresult.S, Pg/Z, Zop1.S; FSUB Zresult.S, Pg/M, Zresult.S, Zop2.S - /// - public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); - - /// - /// svfloat64_t svsub[_f64]_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svsub[_f64]_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// FSUB Ztied1.D, Pg/M, Ztied1.D, Zop2.D - /// FSUB Zresult.D, Zop1.D, Zop2.D - /// MOVPRFX Zresult, Zop1; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// svfloat64_t svsub[_f64]_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2) - /// MOVPRFX Zresult.D, Pg/Z, Zop1.D; FSUB Zresult.D, Pg/M, Zresult.D, Zop2.D - /// - public static unsafe Vector Subtract(Vector left, Vector right) => Subtract(left, right); - // Saturating subtract @@ -8891,6 +8968,7 @@ internal Arm64() { } /// public static unsafe bool TestAnyTrue(Vector mask, Vector srcMask) => TestAnyTrue(mask, srcMask); + // Test whether the first active element is true /// diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index 624f6e57d794d..d1125107f040d 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -4322,20 +4322,20 @@ internal Sve() { } internal Arm64() { } public static new bool IsSupported { get { throw null; } } } - public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } + public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } + public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } - public static System.Numerics.Vector Abs(System.Numerics.Vector value) { throw null; } - public static System.Numerics.Vector AbsoluteCompareGreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteCompareGreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AbsoluteCompareGreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AbsoluteCompareGreaterThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteCompareGreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AbsoluteCompareLessThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AbsoluteCompareGreaterThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteCompareLessThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector AbsoluteCompareLessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AbsoluteCompareLessThan(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteCompareLessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector AbsoluteCompareLessThanOrEqual(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } @@ -4346,16 +4346,16 @@ internal Arm64() { } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AbsoluteDifference(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Add(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector AddAcross(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector AddAcross(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector AddAcross(System.Numerics.Vector value) { throw null; } @@ -4584,16 +4584,16 @@ internal Arm64() { } public static System.Numerics.Vector ConditionalExtractLastActiveElementAndReplicate(System.Numerics.Vector mask, System.Numerics.Vector fallback, System.Numerics.Vector data) { throw null; } public static System.Numerics.Vector ConditionalExtractLastActiveElementAndReplicate(System.Numerics.Vector mask, System.Numerics.Vector fallback, System.Numerics.Vector data) { throw null; } public static System.Numerics.Vector ConditionalExtractLastActiveElementAndReplicate(System.Numerics.Vector mask, System.Numerics.Vector fallback, System.Numerics.Vector data) { throw null; } - public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector ConditionalSelect(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector ConvertToDouble(System.Numerics.Vector value) { throw null; } @@ -4648,11 +4648,11 @@ internal Arm64() { } public static System.Numerics.Vector CreateBreakBeforePropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector CreateBreakBeforePropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector CreateBreakBeforePropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } + public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } - public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } + public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } public static unsafe System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask) { throw null; } @@ -4720,8 +4720,8 @@ internal Arm64() { } public static System.Numerics.Vector CreateWhileLessThanOrEqualMask8Bit(long left, long right) { throw null; } public static System.Numerics.Vector CreateWhileLessThanOrEqualMask8Bit(uint left, uint right) { throw null; } public static System.Numerics.Vector CreateWhileLessThanOrEqualMask8Bit(ulong left, ulong right) { throw null; } - public static System.Numerics.Vector Divide(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Divide(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Divide(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector DotProduct(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector DotProduct(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector DotProduct(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } @@ -4946,6 +4946,16 @@ internal Arm64() { } public static ulong GetActiveElementCount(System.Numerics.Vector mask, System.Numerics.Vector from) { throw null; } public static ulong GetActiveElementCount(System.Numerics.Vector mask, System.Numerics.Vector from) { throw null; } public static ulong GetActiveElementCount(System.Numerics.Vector mask, System.Numerics.Vector from) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, byte right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, double right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, short right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, int right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, long right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, sbyte right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, float right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, ushort right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, uint right) { throw null; } + public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, ulong right) { throw null; } public static System.Numerics.Vector LeadingSignCount(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector LeadingSignCount(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector LeadingSignCount(System.Numerics.Vector value) { throw null; } @@ -4958,46 +4968,16 @@ internal Arm64() { } public static System.Numerics.Vector LeadingZeroCount(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector LeadingZeroCount(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector LeadingZeroCount(System.Numerics.Vector value) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, byte right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, double right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, short right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, int right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, long right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, sbyte right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, float right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, ushort right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, uint right) { throw null; } - public static System.Numerics.Vector InsertIntoShiftedVector(System.Numerics.Vector left, ulong right) { throw null; } - public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, double* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, short* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, int* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, long* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, float* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, uint* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, ulong* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, float* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVector(System.Numerics.Vector mask, double* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(double* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(int* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(long* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(float* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(uint* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonFaulting(ulong* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, double* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, int* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, long* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, float* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, uint* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, ulong* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, double* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, short* address) { throw null; } @@ -5008,42 +4988,74 @@ internal Arm64() { } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, uint* address) { throw null; } public static unsafe System.Numerics.Vector LoadVector128AndReplicateToVector(System.Numerics.Vector mask, ulong* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToInt16(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToInt32(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToInt64(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToUInt16(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToUInt32(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorByteZeroExtendToUInt64(System.Numerics.Vector mask, byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt16SignExtendToInt32(System.Numerics.Vector mask, short* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt16SignExtendToInt64(System.Numerics.Vector mask, short* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt16SignExtendToUInt32(System.Numerics.Vector mask, short* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt16SignExtendToUInt64(System.Numerics.Vector mask, short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt32SignExtendToInt64(System.Numerics.Vector mask, int* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorInt32SignExtendToUInt64(System.Numerics.Vector mask, int* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(double* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(int* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(long* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(float* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(uint* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonFaulting(ulong* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, byte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, double* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, short* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, int* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, long* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, float* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, uint* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorNonTemporal(System.Numerics.Vector mask, ulong* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToInt16(System.Numerics.Vector mask, sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToInt32(System.Numerics.Vector mask, sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToInt64(System.Numerics.Vector mask, sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToUInt16(System.Numerics.Vector mask, sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToUInt32(System.Numerics.Vector mask, sbyte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorSByteSignExtendToUInt64(System.Numerics.Vector mask, sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToInt32(System.Numerics.Vector mask, ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToInt64(System.Numerics.Vector mask, ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToUInt32(System.Numerics.Vector mask, ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToUInt64(System.Numerics.Vector mask, ushort* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt32ZeroExtendToInt64(System.Numerics.Vector mask, uint* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorUInt32ZeroExtendToUInt64(System.Numerics.Vector mask, uint* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt16(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt32(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToInt64(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt16(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt32(byte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorByteNonFaultingZeroExtendToUInt64(byte* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt16NonFaultingZeroExtendToInt32(ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt16NonFaultingZeroExtendToInt64(ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt16NonFaultingZeroExtendToUInt32(ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt16NonFaultingZeroExtendToUInt64(ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToInt32(System.Numerics.Vector mask, ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToInt64(System.Numerics.Vector mask, ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToUInt32(System.Numerics.Vector mask, ushort* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt16ZeroExtendToUInt64(System.Numerics.Vector mask, ushort* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt32NonFaultingZeroExtendToInt64(uint* address) { throw null; } public static unsafe System.Numerics.Vector LoadVectorUInt32NonFaultingZeroExtendToUInt64(uint* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt32ZeroExtendToInt64(System.Numerics.Vector mask, uint* address) { throw null; } + public static unsafe System.Numerics.Vector LoadVectorUInt32ZeroExtendToUInt64(System.Numerics.Vector mask, uint* address) { throw null; } public static unsafe (System.Numerics.Vector, System.Numerics.Vector) Load2xVectorAndUnzip(System.Numerics.Vector mask, byte* address) { throw null; } public static unsafe (System.Numerics.Vector, System.Numerics.Vector) Load2xVectorAndUnzip(System.Numerics.Vector mask, double* address) { throw null; } public static unsafe (System.Numerics.Vector, System.Numerics.Vector) Load2xVectorAndUnzip(System.Numerics.Vector mask, short* address) { throw null; } @@ -5074,18 +5086,6 @@ internal Arm64() { } public static unsafe (System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector) Load4xVectorAndUnzip(System.Numerics.Vector mask, ushort* address) { throw null; } public static unsafe (System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector) Load4xVectorAndUnzip(System.Numerics.Vector mask, uint* address) { throw null; } public static unsafe (System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector, System.Numerics.Vector) Load4xVectorAndUnzip(System.Numerics.Vector mask, ulong* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToInt32(short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToInt64(short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToUInt32(short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt16NonFaultingSignExtendToUInt64(short* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt32NonFaultingSignExtendToInt64(int* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorInt32NonFaultingSignExtendToUInt64(int* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt16(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt32(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToInt64(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt16(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt32(sbyte* address) { throw null; } - public static unsafe System.Numerics.Vector LoadVectorSByteNonFaultingSignExtendToUInt64(sbyte* address) { throw null; } public static System.Numerics.Vector Max(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Max(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Max(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } @@ -5134,16 +5134,16 @@ internal Arm64() { } public static System.Numerics.Vector MinNumber(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector MinNumberAcross(System.Numerics.Vector value) { throw null; } public static System.Numerics.Vector MinNumberAcross(System.Numerics.Vector value) { throw null; } - public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Multiply(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector MultiplyAdd(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector MultiplyAdd(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector MultiplyAdd(System.Numerics.Vector addend, System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } @@ -5369,7 +5369,6 @@ internal Arm64() { } public static unsafe void Scatter(System.Numerics.Vector mask, ulong* address, System.Numerics.Vector indicies, System.Numerics.Vector data) { throw null; } public static unsafe void Scatter(System.Numerics.Vector mask, System.Numerics.Vector addresses, System.Numerics.Vector data) { throw null; } public static unsafe void Scatter(System.Numerics.Vector mask, ulong* address, System.Numerics.Vector indicies, System.Numerics.Vector data) { throw null; } - // public static unsafe void Scatter16BitNarrowing(System.Numerics.Vector mask, System.Numerics.Vector addresses, System.Numerics.Vector data) { throw null; } public static unsafe void Scatter16BitNarrowing(System.Numerics.Vector mask, System.Numerics.Vector addresses, System.Numerics.Vector data) { throw null; } // public static unsafe void Scatter16BitNarrowing(System.Numerics.Vector mask, System.Numerics.Vector addresses, System.Numerics.Vector data) { throw null; } @@ -5518,16 +5517,16 @@ internal Arm64() { } public static unsafe void StoreNonTemporal(System.Numerics.Vector mask, ushort* address, System.Numerics.Vector data) { throw null; } public static unsafe void StoreNonTemporal(System.Numerics.Vector mask, uint* address, System.Numerics.Vector data) { throw null; } public static unsafe void StoreNonTemporal(System.Numerics.Vector mask, ulong* address, System.Numerics.Vector data) { throw null; } - public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector Subtract(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector SubtractSaturate(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector SubtractSaturate(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector SubtractSaturate(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } @@ -5586,16 +5585,16 @@ internal Arm64() { } public static System.Numerics.Vector TrigonometricSelectCoefficient(System.Numerics.Vector value, System.Numerics.Vector selector) { throw null; } public static System.Numerics.Vector TrigonometricStartingValue(System.Numerics.Vector value, System.Numerics.Vector sign) { throw null; } public static System.Numerics.Vector TrigonometricStartingValue(System.Numerics.Vector value, System.Numerics.Vector sign) { throw null; } - public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } + public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } - public static System.Numerics.Vector UnzipEven(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; } public static System.Numerics.Vector UnzipOdd(System.Numerics.Vector left, System.Numerics.Vector right) { throw null; }