runtime icon indicating copy to clipboard operation
runtime copied to clipboard

JIT ARM64-SVE: Add Sve.CreateFalseMask*()

Open mikabl-arm opened this issue 1 year ago • 3 comments

Also added tests for Sve.CreateTrueMask*()

Tests results:

~/dotnet/runtime$ $CORE_ROOT/corerun ./artifacts/tests/coreclr/linux.arm64.Checked/JIT/HardwareIntrinsics/HardwareIntrinsics_Arm_ro/HardwareIntrinsics_Arm_ro.dll Sve_CreateFalse
12:37:26.447 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskByte_byte()
Supported ISAs:
  AdvSimd:   True
  Aes:       True
  ArmBase:   True
  Crc32:     True
  Dp:        True
  Rdm:       True
  Sha1:      True
  Sha256:    True
  Sve:       True

Beginning scenario: RunBasicScenario
12:37:26.585 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskByte_byte()
12:37:26.603 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskDouble_double()
Beginning scenario: RunBasicScenario
12:37:26.618 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskDouble_double()
12:37:26.622 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt16_short()
Beginning scenario: RunBasicScenario
12:37:26.629 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt16_short()
12:37:26.644 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt32_int()
Beginning scenario: RunBasicScenario
12:37:26.650 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt32_int()
12:37:26.654 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt64_long()
Beginning scenario: RunBasicScenario
12:37:26.673 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskInt64_long()
12:37:26.677 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskSByte_sbyte()
Beginning scenario: RunBasicScenario
12:37:26.684 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskSByte_sbyte()
12:37:26.688 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskSingle_float()
Beginning scenario: RunBasicScenario
12:37:26.705 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskSingle_float()
12:37:26.709 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt16_ushort()
Beginning scenario: RunBasicScenario
12:37:26.716 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt16_ushort()
12:37:26.720 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt32_uint()
Beginning scenario: RunBasicScenario
12:37:26.741 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt32_uint()
12:37:26.745 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt64_ulong()
Beginning scenario: RunBasicScenario
12:37:26.752 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateFalseMaskUInt64_ulong()
~/dotnet/runtime$ $CORE_ROOT/corerun ./artifacts/tests/coreclr/linux.arm64.Checked/JIT/HardwareIntrinsics/HardwareIntrinsics_Arm_ro/HardwareIntrinsics_Arm_ro.dll Sve_CreateTrue
12:36:41.326 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskByte()
Supported ISAs:
  AdvSimd:   True
  Aes:       True
  ArmBase:   True
  Crc32:     True
  Dp:        True
  Rdm:       True
  Sha1:      True
  Sha256:    True
  Sve:       True

Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.412 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskByte()
12:36:41.421 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskDouble()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.431 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskDouble()
12:36:41.435 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt16()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.459 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt16()
12:36:41.463 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt32()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.473 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt32()
12:36:41.477 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt64()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.487 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskInt64()
12:36:41.491 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskSByte()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.501 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskSByte()
12:36:41.520 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskSingle()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.530 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskSingle()
12:36:41.534 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt16()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.544 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt16()
12:36:41.554 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt32()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.562 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt32()
12:36:41.569 Running test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt64()
Beginning scenario: RunBasicScenario_CreateTrueMask
12:36:41.596 Passed test: _Sve_ro::JIT.HardwareIntrinsics.Arm._Sve.Program.Sve_CreateTrueMaskUInt64()

mikabl-arm avatar May 10 '24 12:05 mikabl-arm

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics See info in area-owners.md if you want to be subscribed.

@kunalspathak @dotnet/arm64-contrib @a74nh

mikabl-arm avatar May 10 '24 12:05 mikabl-arm

Tests results:

Can you also please run the stress test on these? For more details on how to run them, please refer the notes at https://github.com/dotnet/runtime/issues/99957#issuecomment-2007408474 under "Stress testing" section.

kunalspathak avatar May 10 '24 15:05 kunalspathak