[PATCH] D92062: [MS] Add more 128bit cmpxchg intrinsics for AArch64

Nico Weber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 25 07:31:42 PST 2020


thakis accepted this revision.
thakis added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:336
+
+  // For Release ordering, the failure ordering should be Monotonic.
+  auto FailureOrdering = SuccessOrdering == AtomicOrdering::Release
----------------
Why?


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:360
+                                              SuccessOrdering, FailureOrdering);
+  CXI->setVolatile(true);
+
----------------
why?


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:14059
-                                    AtomicOrdering::SequentiallyConsistent);
-    CXI->setVolatile(true);
-
----------------
Oh, I guess it just moved around. Still not obvious to me :)


================
Comment at: clang/test/CodeGen/ms-intrinsics.c:441
                                         ++ExchangeLow, ++ComparandResult);
 }
+// CHECK-64: define{{.*}}i8 @test_InterlockedCompareExchange128(i64*{{[a-z_ ]*}}%Destination, i64{{[a-z_ ]*}}%ExchangeHigh, i64{{[a-z_ ]*}}%ExchangeLow, i64*{{[a-z_ ]*}}%ComparandResult){{.*}}{
----------------
should this test some of the new aarc64-only intrins too if `__aarch64__`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92062/new/

https://reviews.llvm.org/D92062



More information about the cfe-commits mailing list