[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-12-04 Thread Ulrich Weigand via cfe-commits
https://github.com/uweigand approved this pull request. This version LGTM now. https://github.com/llvm/llvm-project/pull/73134 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-28 Thread Jonas Paulsson via cfe-commits
https://github.com/JonPsson1 updated https://github.com/llvm/llvm-project/pull/73134 >From bf9b6b735c131833ec9457f23b72322fd50ef821 Mon Sep 17 00:00:00 2001 From: Jonas Paulsson Date: Fri, 3 Feb 2023 14:32:58 +0100 Subject: [PATCH 1/5] [SystemZ] Improve support for 16 byte atomic int/fp types

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-25 Thread Jonas Paulsson via cfe-commits
JonPsson1 wrote: Sorry for the confusion of the files: the tests for __atomic_is_lock_free() and friends are now in back a single file atomic_is_lock_free-i128.c. The C library call is also included as it also changes behavior with this patch. Current test output in CHECKs, with previous

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Jonas Paulsson via cfe-commits
JonPsson1 wrote: Not sure about GCC here, as far as I can see, it is returning true for both of the 8-byte aligned cases in gnu-atomic_is_lock_free-i128-8Al.c, also now that the alignment is actually 8... GCC is returning true for all in gnu-atomic_is_lock_free-i128-16Al.c, except for except

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Jonas Paulsson via cfe-commits
@@ -0,0 +1,42 @@ +// RUN: %clang_cc1 -triple s390x-linux-gnu -O1 -emit-llvm %s -o - | FileCheck %s +// +// Test __atomic_is_lock_free() and __atomic_always_lock_free() for __int128 +// with 16 byte alignment. + +#include +#include + +__int128 Int128_Al16

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Jonas Paulsson via cfe-commits
@@ -0,0 +1,42 @@ +// RUN: %clang_cc1 -triple s390x-linux-gnu -O1 -emit-llvm %s -o - | FileCheck %s +// +// Test __atomic_is_lock_free() and __atomic_always_lock_free() for __int128 +// with 16 byte alignment. + +#include +#include + JonPsson1 wrote: The first

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Jonas Paulsson via cfe-commits
https://github.com/JonPsson1 updated https://github.com/llvm/llvm-project/pull/73134 >From bf9b6b735c131833ec9457f23b72322fd50ef821 Mon Sep 17 00:00:00 2001 From: Jonas Paulsson Date: Fri, 3 Feb 2023 14:32:58 +0100 Subject: [PATCH 1/2] [SystemZ] Improve support for 16 byte atomic int/fp types

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Ulrich Weigand via cfe-commits
@@ -0,0 +1,71 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py +// RUN: %clang_cc1 -triple s390x-linux-gnu -O1 -emit-llvm %s -o - | FileCheck %s +// +// Test __atomic_is_lock_free() for __int128 with default alignment (8 +// bytes), atomic

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-24 Thread Ulrich Weigand via cfe-commits
https://github.com/uweigand commented: Not sure about the is_lock_free results, see inline comments. What does recent GCC return for those? https://github.com/llvm/llvm-project/pull/73134 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[llvm] [clang] [SystemZ] Properly support 16 byte atomic int/fp types and ops. (PR #73134)

2023-11-22 Thread Jonas Paulsson via cfe-commits
https://github.com/JonPsson1 created https://github.com/llvm/llvm-project/pull/73134 - Clang FE now has MaxAtomicPromoteWidth and MaxAtomicInlineWidth with a value of 128. It now produces IR instead of calls to __atomic instrinsics for 16 bytes as well. FP loads are first loaded as i128 and