diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml
index 706c8f1200495e..3f9374fcd5ce71 100644
--- a/eng/pipelines/common/templates/runtimes/run-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml
@@ -6,6 +6,8 @@ parameters:
hostedOs: ''
container: ''
testGroup: ''
+ # ISA stress scenarios supplied by jit-outerloop-pipeline.yml.
+ jitIsaStressScenarios: []
crossBuild: false
readyToRun: false
hotColdSplitting: false
@@ -383,38 +385,8 @@ jobs:
scenarios:
- jitstress_random_1
- jitstress_random_2
- ${{ if in(parameters.testGroup, 'jitstress-isas-arm') }}:
- scenarios:
- - jitstress_isas_nohwintrinsic
- ${{ if in(parameters.testGroup, 'jitstress-isas-x86') }}:
- scenarios:
- - jitstress_isas_nohwintrinsic
- - jitstress_isas_x86_evex
- - jitstress_isas_x86_noavx
- - jitstress_isas_x86_noavx2
- - jitstress_isas_x86_noavx512
- - jitstress_isas_x86_vectort128
- - jitstress_isas_x86_vectort512
- - jitstress_isas_x86_noavx512_vectort128
- - jitstress_isas_1_x86_evex
- - jitstress_isas_1_x86_noavx
- - jitstress_isas_1_x86_noavx2
- - jitstress_isas_1_x86_noavx512
- - jitstress_isas_1_x86_vectort128
- - jitstress_isas_1_x86_vectort512
- - jitstress_isas_1_x86_noavx512_vectort128
- - jitstress_isas_2_x86_evex
- - jitstress_isas_2_x86_noavx
- - jitstress_isas_2_x86_noavx2
- - jitstress_isas_2_x86_noavx512
- - jitstress_isas_2_x86_vectort128
- - jitstress_isas_2_x86_vectort512
- - jitstress_isas_2_x86_noavx512_vectort128
- ${{ if in(parameters.testGroup, 'jitstress-isas-avx512') }}:
- scenarios:
- - jitstress_isas_x86_evex
- - jitstress_isas_x86_noavx512
- - jitstressregs0x2000
+ ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}:
+ scenarios: ${{ parameters.jitIsaStressScenarios }}
${{ if in(parameters.testGroup, 'jitstressregs-x86') }}:
scenarios:
- jitstressregs1_x86_noavx
diff --git a/eng/pipelines/coreclr/templates/jit-isas-libraries.yml b/eng/pipelines/coreclr/templates/jit-isas-libraries.yml
new file mode 100644
index 00000000000000..8b034014b2c10d
--- /dev/null
+++ b/eng/pipelines/coreclr/templates/jit-isas-libraries.yml
@@ -0,0 +1,36 @@
+parameters:
+ - name: platforms
+ type: object
+ - name: scenarios
+ type: object
+
+stages:
+- stage: Libraries
+ displayName: Libraries Vector ISA Stress Tests
+ dependsOn: []
+ jobs:
+ - template: /eng/common/core-templates/job/helix-job-monitor.yml
+ parameters:
+ helixAccessToken: $(HelixApiAccessToken)
+ timeoutInMinutes: 540
+ allowNoHelixJobs: true
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: Release
+ helixQueueGroup: libraries
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ platforms: ${{ parameters.platforms }}
+ jobParameters:
+ nameSuffix: Libraries_VectorTests
+ # Default timeout is 150 minutes (2.5 hours), which is not enough for stress.
+ timeoutInMinutes: 360
+ buildArgs: -s clr+libs+libs.tests -rc Checked -c $(_BuildConfig) /p:ArchiveTests=true /p:RunVectorTestsOnly=true
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ extraHelixArguments: /maxcpucount:10
+ useHelixMonitor: true
+ scenarios: ${{ parameters.scenarios }}
diff --git a/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml b/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml
index 41bea22cbb7f11..70874d47e0ab85 100644
--- a/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml
+++ b/eng/pipelines/coreclr/templates/jit-outerloop-pipeline.yml
@@ -4,6 +4,38 @@ parameters:
- name: testGroup
type: string
default: outerloop
+ - name: isaScenarios
+ type: object
+ default:
+ jitstress-isas-arm:
+ - jitstress_isas_nohwintrinsic
+ jitstress-isas-avx512:
+ - jitstress_isas_x86_evex
+ - jitstress_isas_x86_noavx512
+ - jitstressregs0x2000
+ jitstress-isas-x86:
+ - jitstress_isas_nohwintrinsic
+ - jitstress_isas_x86_evex
+ - jitstress_isas_x86_noavx
+ - jitstress_isas_x86_noavx2
+ - jitstress_isas_x86_noavx512
+ - jitstress_isas_x86_vectort128
+ - jitstress_isas_x86_vectort512
+ - jitstress_isas_x86_noavx512_vectort128
+ - jitstress_isas_1_x86_evex
+ - jitstress_isas_1_x86_noavx
+ - jitstress_isas_1_x86_noavx2
+ - jitstress_isas_1_x86_noavx512
+ - jitstress_isas_1_x86_vectort128
+ - jitstress_isas_1_x86_vectort512
+ - jitstress_isas_1_x86_noavx512_vectort128
+ - jitstress_isas_2_x86_evex
+ - jitstress_isas_2_x86_noavx
+ - jitstress_isas_2_x86_noavx2
+ - jitstress_isas_2_x86_noavx512
+ - jitstress_isas_2_x86_vectort128
+ - jitstress_isas_2_x86_vectort512
+ - jitstress_isas_2_x86_noavx512_vectort128
- name: stages
type: stageList
default: []
@@ -56,7 +88,14 @@ extends:
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
jobParameters:
testGroup: ${{ parameters.testGroup }}
+ ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}:
+ jitIsaStressScenarios: ${{ parameters.isaScenarios[parameters.testGroup] }}
liveLibrariesBuildConfig: Release
unifiedArtifactsName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ - ${{ if in(parameters.testGroup, 'jitstress-isas-arm', 'jitstress-isas-avx512', 'jitstress-isas-x86') }}:
+ - template: /eng/pipelines/coreclr/templates/jit-isas-libraries.yml
+ parameters:
+ platforms: ${{ parameters.platforms }}
+ scenarios: ${{ parameters.isaScenarios[parameters.testGroup] }}
- ${{ each stage in parameters.stages }}:
- ${{ stage }}
diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj
index 9f48d7b47b225b..d3649497414602 100644
--- a/src/libraries/tests.proj
+++ b/src/libraries/tests.proj
@@ -662,6 +662,15 @@
+
+
+
+
+
+
+
+
+
@@ -676,7 +685,12 @@
+
+