Skip to content

Conversation

@cbezault
Copy link
Contributor

@cbezault cbezault commented Nov 30, 2020

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 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 cbezault added the blocked Something is preventing work on this label Nov 30, 2020
@cbezault cbezault marked this pull request as ready for review November 30, 2020 21:41
@cbezault cbezault requested a review from a team as a code owner November 30, 2020 21:41
@cbezault

This comment has been minimized.

@cbezault cbezault added blocked on 16.9p2 and removed blocked Something is preventing work on this labels Dec 1, 2020
@cbezault cbezault force-pushed the build-arm64 branch 3 times, most recently from b5e7535 to 1f8a449 Compare December 11, 2020 19:58
@cbezault

This comment has been minimized.

@azure-pipelines

This comment has been minimized.

@cbezault 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 cbezault marked this pull request as draft January 25, 2021 21:02
@cbezault cbezault marked this pull request as ready for review January 25, 2021 23:04
Copy link
Member

@StephanTLavavej StephanTLavavej left a comment

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 StephanTLavavej self-assigned this Jan 27, 2021
@StephanTLavavej StephanTLavavej merged commit 721e3ad into microsoft:master Jan 27, 2021
@StephanTLavavej
Copy link
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.

4 participants