On 10/25/23 16:50, Juergen Christ wrote:
> Transactional and non-transactional stores to the same cache line cause
> transactions to abort on newer generations.  Add sufficient padding to make
> sure another cache line is used.
> 
> Tested on s390.
> 
> gcc/testsuite/ChangeLog:
> 
>       * gcc.target/s390/htm-builtins-1.c: Fix.
>       * gcc.target/s390/htm-builtins-2.c: Fix.

Ok. Thanks!

Andreas

> 
> Signed-off-by: Juergen Christ <jchr...@linux.ibm.com>
> ---
>  gcc/testsuite/gcc.target/s390/htm-builtins-1.c | 4 +++-
>  gcc/testsuite/gcc.target/s390/htm-builtins-2.c | 4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.target/s390/htm-builtins-1.c 
> b/gcc/testsuite/gcc.target/s390/htm-builtins-1.c
> index ff43be9fe736..4f95bf3accaa 100644
> --- a/gcc/testsuite/gcc.target/s390/htm-builtins-1.c
> +++ b/gcc/testsuite/gcc.target/s390/htm-builtins-1.c
> @@ -53,9 +53,11 @@ __attribute__ ((aligned(256))) struct
>  __attribute__ ((aligned(256))) struct
>  {
>    volatile uint64_t c1;
> +  char pad1[256 - sizeof(uint64_t)];
>    volatile uint64_t c2;
> +  char pad2[256 - sizeof(uint64_t)];
>    volatile uint64_t c3;
> -} counters = { 0, 0, 0 };
> +} counters = { 0 };
>  
>  /* ---------------------------- local helper functions --------------------- 
> */
>  
> diff --git a/gcc/testsuite/gcc.target/s390/htm-builtins-2.c 
> b/gcc/testsuite/gcc.target/s390/htm-builtins-2.c
> index bb9d346ea560..2e838caacc8c 100644
> --- a/gcc/testsuite/gcc.target/s390/htm-builtins-2.c
> +++ b/gcc/testsuite/gcc.target/s390/htm-builtins-2.c
> @@ -94,9 +94,11 @@ float global_float_3 = 0.0;
>  __attribute__ ((aligned(256))) struct
>  {
>    volatile uint64_t c1;
> +  char pad1[256 - sizeof(uint64_t)];
>    volatile uint64_t c2;
> +  char pad2[256 - sizeof(uint64_t)];
>    volatile uint64_t c3;
> -} counters = { 0, 0, 0 };
> +} counters = { 0 };
>  
>  /* ---------------------------- local helper functions --------------------- 
> */
>  

Reply via email to