Author: Kai Luo Date: 2022-03-18T13:22:28+08:00 New Revision: 9247145fbae7c4273acd6b8f3b331716ca80bf18
URL: https://github.com/llvm/llvm-project/commit/9247145fbae7c4273acd6b8f3b331716ca80bf18 DIFF: https://github.com/llvm/llvm-project/commit/9247145fbae7c4273acd6b8f3b331716ca80bf18.diff LOG: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc PowerPC is lacking tests checking `_Atomic` alignment in cfe. Adding these tests since we're going to make change to align with gcc on Linux. Reviewed By: hubert.reinterpretcast, jsji Differential Revision: https://reviews.llvm.org/D121441 Added: clang/test/CodeGen/PowerPC/atomic-alignment.c Modified: clang/test/Sema/atomic-ops.c Removed: ################################################################################ diff --git a/clang/test/CodeGen/PowerPC/atomic-alignment.c b/clang/test/CodeGen/PowerPC/atomic-alignment.c new file mode 100644 index 0000000000000..cd6985962c39e --- /dev/null +++ b/clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,37 @@ +// RUN: %clang_cc1 -verify -triple powerpc-unknown-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unknown-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unknown-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1{{$}} +_Atomic(char) c; // expected-no-diagnostics + +// PPC: @s = global i16 0, align 2{{$}} +_Atomic(short) s; // expected-no-diagnostics + +// PPC: @i = global i32 0, align 4{{$}} +_Atomic(int) i; // expected-no-diagnostics + +// PPC32: @l = global i32 0, align 4{{$}} +// PPC64: @l = global i64 0, align 8{{$}} +_Atomic(long) l; // expected-no-diagnostics + +// PPC: @ll = global i64 0, align 8{{$}} +_Atomic(long long) ll; // expected-no-diagnostics + +typedef struct { + char x[8]; +} O; + +// PPC32: @o = global %struct.O zeroinitializer, align 1{{$}} +// PPC64: @o = global %struct.O zeroinitializer, align 8{{$}} +_Atomic(O) o; // expected-no-diagnostics + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1{{$}} +_Atomic(Q) q; // expected-no-diagnostics diff --git a/clang/test/Sema/atomic-ops.c b/clang/test/Sema/atomic-ops.c index 160a0c09903d9..a3c156d6663b9 100644 --- a/clang/test/Sema/atomic-ops.c +++ b/clang/test/Sema/atomic-ops.c @@ -4,6 +4,12 @@ // RUN: -fsyntax-only -triple=i686-linux-android -std=c11 // RUN: %clang_cc1 %s -verify -fgnuc-version=4.2.1 -ffreestanding \ // RUN: -fsyntax-only -triple=powerpc64-linux-gnu -std=c11 +// RUN: %clang_cc1 %s -verify -fgnuc-version=4.2.1 -ffreestanding \ +// RUN: -fsyntax-only -triple=powerpc64-linux-gnu -std=c11 \ +// RUN: -target-cpu pwr7 +// RUN: %clang_cc1 %s -verify -fgnuc-version=4.2.1 -ffreestanding \ +// RUN: -fsyntax-only -triple=powerpc64le-linux-gnu -std=c11 \ +// RUN: -target-cpu pwr8 // Basic parsing/Sema tests for __c11_atomic_* _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits