From fe974eb5d2378cb719ac0ec7b86b10dbba52a544 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Mon, 27 Apr 2026 16:51:58 -0700 Subject: [PATCH 1/4] pipeline skeleton impl, copied from hardware-intrinsics.yml --- .../coreclr/hardware-intrinsics-arm64.yml | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 eng/pipelines/coreclr/hardware-intrinsics-arm64.yml diff --git a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml new file mode 100644 index 00000000000000..1404105f757188 --- /dev/null +++ b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml @@ -0,0 +1,79 @@ +trigger: none +pr: + branches: + include: + - main + paths: + include: + - eng/pipelines/coreclr/hardware-intrinsics-arm64.yml + - src/coreclr/jit/emitarm64.cpp + - src/coreclr/jit/emitarm64sve.cpp + - src/coreclr/jit/hwintrinsicarm64.cpp + +variables: + - template: /eng/pipelines/common/variables.yml + - template: /eng/pipelines/helix-platforms.yml + +extends: + template: /eng/pipelines/common/templates/pipeline-with-resources.yml + parameters: + isOfficialBuild: false + stages: + - stage: Build + jobs: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: + - linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: outerloop + nameSuffix: CoreCLR + buildArgs: -s clr+libs -c $(_BuildConfig) + timeoutInMinutes: 360 + postBuildSteps: + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + parameters: + creator: dotnet-bot + testBuildArgs: '-tree:JIT/HardwareIntrinsics' + testRunNamePrefixSuffix: CoreCLR + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: outerloop + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: + - linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: outerloop + nameSuffix: NativeAOT + buildArgs: -s clr.aot+libs.native+libs.sfx -c $(_BuildConfig) + timeoutInMinutes: 360 + postBuildSteps: + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + parameters: + creator: dotnet-bot + testBuildArgs: 'nativeaot -tree:JIT/HardwareIntrinsics' + testRunNamePrefixSuffix: NativeAOT + nativeAotTest: true + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: outerloop From d79777d0ec6a4ad9b794c6c7bd3cbcf8915e9c87 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Tue, 28 Apr 2026 12:15:46 -0700 Subject: [PATCH 2/4] hoist hwintrin markup into common file --- .../coreclr/hardware-intrinsics-arm64.yml | 55 +-------- eng/pipelines/coreclr/hardware-intrinsics.yml | 113 +----------------- .../coreclr/templates/jit-hwintrin-common.yml | 61 ++++++++++ 3 files changed, 67 insertions(+), 162 deletions(-) create mode 100644 eng/pipelines/coreclr/templates/jit-hwintrin-common.yml diff --git a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml index 1404105f757188..0d24e3e9560526 100644 --- a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml +++ b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml @@ -21,59 +21,8 @@ extends: stages: - stage: Build jobs: - - template: /eng/pipelines/common/platform-matrix.yml + - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release platforms: - linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: CoreCLR - buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: '-tree:JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: CoreCLR - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: NativeAOT - buildArgs: -s clr.aot+libs.native+libs.sfx -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: 'nativeaot -tree:JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: NativeAOT - nativeAotTest: true - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop + testBuildArgs: '-tree:JIT/HardwareIntrinsics' diff --git a/eng/pipelines/coreclr/hardware-intrinsics.yml b/eng/pipelines/coreclr/hardware-intrinsics.yml index b54f33da29e830..edd21ad24cec40 100644 --- a/eng/pipelines/coreclr/hardware-intrinsics.yml +++ b/eng/pipelines/coreclr/hardware-intrinsics.yml @@ -21,122 +21,17 @@ extends: stages: - stage: Build jobs: - - template: /eng/pipelines/common/platform-matrix.yml + - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release platforms: - windows_x86 - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: CoreCLR - buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: 'tree JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: CoreCLR - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop + testBuildArgs: 'tree JIT/HardwareIntrinsics' - - template: /eng/pipelines/common/platform-matrix.yml + - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release platforms: - linux_arm - linux_x64 - osx_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: CoreCLR - buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: '-tree:JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: CoreCLR - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - windows_x86 - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: NativeAOT - buildArgs: -s clr.aot+libs.native+libs.sfx -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: 'nativeaot tree JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: NativeAOT - nativeAotTest: true - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_arm - - linux_x64 - - osx_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: outerloop - nameSuffix: NativeAOT - buildArgs: -s clr.aot+libs.native+libs.sfx -c $(_BuildConfig) - timeoutInMinutes: 360 - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testBuildArgs: 'nativeaot -tree:JIT/HardwareIntrinsics' - testRunNamePrefixSuffix: NativeAOT - nativeAotTest: true - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: outerloop + testBuildArgs: '-tree:JIT/HardwareIntrinsics' diff --git a/eng/pipelines/coreclr/templates/jit-hwintrin-common.yml b/eng/pipelines/coreclr/templates/jit-hwintrin-common.yml new file mode 100644 index 00000000000000..64b273543d065d --- /dev/null +++ b/eng/pipelines/coreclr/templates/jit-hwintrin-common.yml @@ -0,0 +1,61 @@ +parameters: + - name: platforms + type: object + - name: testBuildArgs + type: string + +jobs: +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: ${{ parameters.platforms }} + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: outerloop + nameSuffix: CoreCLR + buildArgs: -s clr+libs -c $(_BuildConfig) + timeoutInMinutes: 360 + postBuildSteps: + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + parameters: + creator: dotnet-bot + testBuildArgs: ${{ parameters.testBuildArgs }} + testRunNamePrefixSuffix: CoreCLR + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: outerloop + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: ${{ parameters.platforms }} + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: outerloop + nameSuffix: NativeAOT + buildArgs: -s clr.aot+libs.native+libs.sfx -c $(_BuildConfig) + timeoutInMinutes: 360 + postBuildSteps: + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + parameters: + creator: dotnet-bot + testBuildArgs: nativeaot ${{ parameters.testBuildArgs }} + testRunNamePrefixSuffix: NativeAOT + nativeAotTest: true + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: outerloop From 6ddd117b4c8ac88fe8623fe280fcda8e7a6fbebd Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Thu, 30 Apr 2026 13:34:16 -0700 Subject: [PATCH 3/4] trigger off a few more files --- eng/pipelines/coreclr/hardware-intrinsics-arm64.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml index 0d24e3e9560526..46a159a5fe8e33 100644 --- a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml +++ b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml @@ -6,9 +6,8 @@ pr: paths: include: - eng/pipelines/coreclr/hardware-intrinsics-arm64.yml - - src/coreclr/jit/emitarm64.cpp - - src/coreclr/jit/emitarm64sve.cpp - - src/coreclr/jit/hwintrinsicarm64.cpp + - eng/pipelines/coreclr/templates/jit-hwintrin-common.yml + - src/coreclr/jit/*arm64* variables: - template: /eng/pipelines/common/variables.yml From d70542bd1e37bda6568fb1219fc27877b8e7a812 Mon Sep 17 00:00:00 2001 From: David Hartglass Date: Fri, 1 May 2026 11:13:28 -0700 Subject: [PATCH 4/4] pr feedback --- eng/pipelines/coreclr/hardware-intrinsics-arm64.yml | 4 ++-- eng/pipelines/coreclr/hardware-intrinsics.yml | 4 ++-- ...hwintrin-common.yml => jit-hardware-intrinsics-common.yml} | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename eng/pipelines/coreclr/templates/{jit-hwintrin-common.yml => jit-hardware-intrinsics-common.yml} (100%) diff --git a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml index 46a159a5fe8e33..220ac28a24583d 100644 --- a/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml +++ b/eng/pipelines/coreclr/hardware-intrinsics-arm64.yml @@ -6,7 +6,7 @@ pr: paths: include: - eng/pipelines/coreclr/hardware-intrinsics-arm64.yml - - eng/pipelines/coreclr/templates/jit-hwintrin-common.yml + - eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml - src/coreclr/jit/*arm64* variables: @@ -20,7 +20,7 @@ extends: stages: - stage: Build jobs: - - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml + - template: /eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml parameters: platforms: - linux_arm64 diff --git a/eng/pipelines/coreclr/hardware-intrinsics.yml b/eng/pipelines/coreclr/hardware-intrinsics.yml index edd21ad24cec40..459fe4d77d3245 100644 --- a/eng/pipelines/coreclr/hardware-intrinsics.yml +++ b/eng/pipelines/coreclr/hardware-intrinsics.yml @@ -21,14 +21,14 @@ extends: stages: - stage: Build jobs: - - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml + - template: /eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml parameters: platforms: - windows_x86 - windows_x64 testBuildArgs: 'tree JIT/HardwareIntrinsics' - - template: /eng/pipelines/coreclr/templates/jit-hwintrin-common.yml + - template: /eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml parameters: platforms: - linux_arm diff --git a/eng/pipelines/coreclr/templates/jit-hwintrin-common.yml b/eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml similarity index 100% rename from eng/pipelines/coreclr/templates/jit-hwintrin-common.yml rename to eng/pipelines/coreclr/templates/jit-hardware-intrinsics-common.yml