about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsayantn <sayantn05@gmail.com>2025-05-05 01:09:59 +0530
committerAmanieu d'Antras <amanieu@gmail.com>2025-05-06 16:10:50 +0000
commit546e26518f870d92c392561b132a3d06f9a9f869 (patch)
treea31cdaca06b9486110bc9ccf207f0f52097a7c3a
parent949fd567f3737e6f5a8c0ec440247d623bf4e0a6 (diff)
downloadrust-546e26518f870d92c392561b132a3d06f9a9f869.tar.gz
rust-546e26518f870d92c392561b132a3d06f9a9f869.zip
Run `aarch64-pc-windows-msvc` runs on the new `windows-11-arm` runners
-rw-r--r--library/stdarch/.github/workflows/main.yml19
-rw-r--r--library/stdarch/crates/core_arch/src/aarch64/mte.rs12
-rw-r--r--library/stdarch/crates/core_arch/src/aarch64/neon/mod.rs3
3 files changed, 20 insertions, 14 deletions
diff --git a/library/stdarch/.github/workflows/main.yml b/library/stdarch/.github/workflows/main.yml
index 3c2b611394d..8c6dee16fb6 100644
--- a/library/stdarch/.github/workflows/main.yml
+++ b/library/stdarch/.github/workflows/main.yml
@@ -116,7 +116,7 @@ jobs:
         - tuple: i686-pc-windows-msvc
           os: windows-2025
         - tuple: aarch64-pc-windows-msvc
-          os: windows-2025
+          os: windows-11-arm
         - tuple: x86_64-pc-windows-gnu
           os: windows-2025
         # - tuple: i686-pc-windows-gnu
@@ -199,10 +199,6 @@ jobs:
             tuple: aarch64-apple-ios-macabi
             os: macos-15
           norun: true # https://github.com/rust-lang/stdarch/issues/1206
-        - target:
-            tuple: aarch64-pc-windows-msvc
-            os: windows-2025
-          norun: true
 
     steps:
     - uses: actions/checkout@v4
@@ -210,13 +206,24 @@ jobs:
       run: |
         rustup update nightly --no-self-update
         rustup default nightly
+      shell: bash
+      if: matrix.target.os != 'windows-11-arm'
+    - name: Install Rust for `windows-11-arm` runners
+      # The arm runners don't have Rust pre-installed (https://github.com/actions/partner-runner-images/issues/77)
+      run: |
+        curl https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly
+        echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+      shell: bash
+      if: matrix.target.os == 'windows-11-arm'
+
     - run: rustup target add ${{ matrix.target.tuple }}
+      shell: bash
       if: matrix.build_std == ''
     - run: |
         rustup component add rust-src
         echo "CARGO_UNSTABLE_BUILD_STD=std" >> $GITHUB_ENV
+      shell: bash
       if: matrix.build_std != ''
-    - run: cargo generate-lockfile
 
     # Configure some env vars based on matrix configuration
     - run: echo "PROFILE=--profile=${{matrix.profile}}" >> $GITHUB_ENV
diff --git a/library/stdarch/crates/core_arch/src/aarch64/mte.rs b/library/stdarch/crates/core_arch/src/aarch64/mte.rs
index de5a1b48800..c400f774bcc 100644
--- a/library/stdarch/crates/core_arch/src/aarch64/mte.rs
+++ b/library/stdarch/crates/core_arch/src/aarch64/mte.rs
@@ -127,42 +127,42 @@ mod test {
     use super::*;
     use stdarch_test::assert_instr;
 
-    #[cfg_attr(test, assert_instr(irg))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(irg))] // FIXME: MSVC  `dumpbin` doesn't support MTE
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_create_random_tag(src: *const (), mask: u64) -> *const () {
         __arm_mte_create_random_tag(src, mask)
     }
 
-    #[cfg_attr(test, assert_instr(addg))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(addg))]
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_increment_tag(src: *const ()) -> *const () {
         __arm_mte_increment_tag::<1, _>(src)
     }
 
-    #[cfg_attr(test, assert_instr(gmi))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(gmi))]
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_exclude_tag(src: *const (), excluded: u64) -> u64 {
         __arm_mte_exclude_tag(src, excluded)
     }
 
-    #[cfg_attr(test, assert_instr(stg))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(stg))]
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_set_tag(src: *const ()) {
         __arm_mte_set_tag(src)
     }
 
-    #[cfg_attr(test, assert_instr(ldg))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(ldg))]
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_get_tag(src: *const ()) -> *const () {
         __arm_mte_get_tag(src)
     }
 
-    #[cfg_attr(test, assert_instr(subp))]
+    #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(subp))]
     #[allow(dead_code)]
     #[target_feature(enable = "mte")]
     unsafe fn test_arm_mte_ptrdiff(a: *const (), b: *const ()) -> i64 {
diff --git a/library/stdarch/crates/core_arch/src/aarch64/neon/mod.rs b/library/stdarch/crates/core_arch/src/aarch64/neon/mod.rs
index 1c61414a9db..75782b22ed7 100644
--- a/library/stdarch/crates/core_arch/src/aarch64/neon/mod.rs
+++ b/library/stdarch/crates/core_arch/src/aarch64/neon/mod.rs
@@ -422,8 +422,7 @@ pub fn vmovq_n_f64(value: f64) -> float64x2_t {
 /// Duplicate vector element to vector or scalar
 #[inline]
 #[target_feature(enable = "neon")]
-#[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(mov))]
-#[cfg_attr(all(test, target_env = "msvc"), assert_instr(dup))]
+#[cfg_attr(test, assert_instr(nop))]
 #[stable(feature = "neon_intrinsics", since = "1.59.0")]
 pub fn vget_high_f64(a: float64x2_t) -> float64x1_t {
     unsafe { float64x1_t([simd_extract!(a, 1)]) }