Skip to content

Build, but don't run, ARM/ARM64 tests - #1505

Merged
Stephan T. Lavavej (StephanTLavavej) merged 49 commits into
microsoft:masterfrom
cbezault:build-arm64
Jan 27, 2021
Merged

Build, but don't run, ARM/ARM64 tests#1505
Stephan T. Lavavej (StephanTLavavej) merged 49 commits into
microsoft:masterfrom
cbezault:build-arm64

Conversation

@cbezault

@cbezault Curtis J Bezault (cbezault) commented Nov 30, 2020

Copy link
Copy Markdown
Contributor

This PR adds the ability for our test harness to have a build-only mode. We use this mode to cross-compile all the tests for ARM/ARM64.
It was discovered during the course of this PR that the ARM for Windows backend of clang has significant problems and as such we are disabling all clang targeting ARM tests.

A few build issues when targeting ARM64 with clang were also found:

  1. <bit> was using intrinsics not available on clang targeting ARM64 so those were replaced with LLVM builtins.
  2. <atomic> was using the _InterlockedCompareExchange128 family of functions which are not available on clang 11 targeting ARM64 so I re-implemented them using builtins. (n.b. The _InterlockedCompareExchange_128_rel and the _InterlockedCompareExchange_128 I implemented are identical because the intrinsics on cl seem to output the exact same assembly so I mirrored that.)

I also found a couple of tests which were emitting warnings when compiled and so I silenced them.

Works towards #820.

@cbezault Curtis J Bezault (cbezault) added test Related to test code ARM ARM64 Related to the ARM64 architecture labels Nov 30, 2020
@cbezault

This comment has been minimized.

@cbezault Curtis J Bezault (cbezault) added the blocked Something is preventing work on this label Nov 30, 2020
@cbezault
Curtis J Bezault (cbezault) marked this pull request as ready for review November 30, 2020 21:41
@cbezault
Curtis J Bezault (cbezault) requested a review from a team as a code owner November 30, 2020 21:41
@cbezault

This comment has been minimized.

@cbezault

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

@cbezault
Curtis J Bezault (cbezault) force-pushed the build-arm64 branch 4 times, most recently from bf87e5e to 12ebe78 Compare December 15, 2020 18:55
@cbezault

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

@cbezault

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

@cbezault

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

@cbezault
Curtis J Bezault (cbezault) marked this pull request as draft January 25, 2021 21:02

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is so awesome that this is powered by parallel: ${{ parameters.numShards }} instead of having to count from 1 to 8 (times 4 architectures).
😻 😻 😻 😻
😻 😻 😻 😻

@StephanTLavavej

This comment has been minimized.

@StephanTLavavej

Copy link
Copy Markdown
Member

Every time a PR merges, it takes us one step closer to the vision:

An STL on every processor and in every home. 💻 🏠

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ARM64 Related to the ARM64 architecture test Related to test code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants