[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
hubert.reinterpretcast added inline comments. Comment at: clang/test/CodeGen/PowerPC/atomic-alignment.c:1 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ lkail wrote: > hubert.reinterpretcast wrote: > > hubert.reinterpretcast wrote: > > > I am not sure about having a `CodeGen` test for this when a > > > `-fsyntax-only` `Layout` test would do. I believe that also removes the > > > need for `powerpc-registered-target`. > > I will note that there is a concept of "preferred alignment" or "complete > > object alignment" that may differ from "required alignment". A `CodeGen` > > test like this can miss issues if the "required alignment" is wrong but the > > "preferred alignment" or "complete object alignment" matches what is > > expected. > That's a good point. However currently, I haven't found any tests in > `test/Sema` performing such check and I have't figure out a way to add such > check. Maybe checking `__alignof__() % (expected_align) == 0` is more > practical. There are tests in `test/Layout` that might be closer. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG9247145fbae7: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc (authored by lkail). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ 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_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ 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 Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ 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_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ 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 ___ cfe-commits mailing list cfe-commits@lists.llvm.org
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail added inline comments. Comment at: clang/test/CodeGen/PowerPC/atomic-alignment.c:1 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ hubert.reinterpretcast wrote: > hubert.reinterpretcast wrote: > > I am not sure about having a `CodeGen` test for this when a `-fsyntax-only` > > `Layout` test would do. I believe that also removes the need for > > `powerpc-registered-target`. > I will note that there is a concept of "preferred alignment" or "complete > object alignment" that may differ from "required alignment". A `CodeGen` test > like this can miss issues if the "required alignment" is wrong but the > "preferred alignment" or "complete object alignment" matches what is expected. That's a good point. However currently, I haven't found any tests in `test/Sema` performing such check and I have't figure out a way to add such check. Maybe checking `__alignof__() % (expected_align) == 0` is more practical. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
hubert.reinterpretcast accepted this revision. hubert.reinterpretcast added a comment. LGTM with comment (not blocking). Comment at: clang/test/CodeGen/PowerPC/atomic-alignment.c:1 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ hubert.reinterpretcast wrote: > I am not sure about having a `CodeGen` test for this when a `-fsyntax-only` > `Layout` test would do. I believe that also removes the need for > `powerpc-registered-target`. I will note that there is a concept of "preferred alignment" or "complete object alignment" that may differ from "required alignment". A `CodeGen` test like this can miss issues if the "required alignment" is wrong but the "preferred alignment" or "complete object alignment" matches what is expected. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail updated this revision to Diff 415684. lkail added a comment. Fix typo; Add `pwr7` and `pwr8` as `-target-cpu`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ 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_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ 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 Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ 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_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ 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 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
hubert.reinterpretcast added inline comments. Comment at: clang/test/CodeGen/PowerPC/atomic-alignment.c:1 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ I am not sure about having a `CodeGen` test for this when a `-fsyntax-only` `Layout` test would do. I believe that also removes the need for `powerpc-registered-target`. Comment at: clang/test/Sema/atomic-ops.c:7-8 // RUN: -fsyntax-only -triple=powerpc64-linux-gnu -std=c11 +// RUN: %clang_cc1 %s -verify -fgnuc-version=4.2.1 -ffreestanding \ +// RUN: -fsyntax-only -triple=powerpc64le-linux-gnu -std=c11 Consider testing across the `-mcpu=power7` and `-mcpu=power8` boundary. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
hubert.reinterpretcast added inline comments. Comment at: clang/test/CodeGen/PowerPC/atomic-alignment.c:2-6 +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ Fix typos: "`unkonwn`" Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
jsji accepted this revision as: jsji. jsji added a comment. This revision is now accepted and ready to land. LGTM. Thanks. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail updated this revision to Diff 414583. lkail added a comment. Add `-verify`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unkonwn-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 Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unkonwn-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 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail updated this revision to Diff 414575. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1{{$}} +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2{{$}} +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4{{$}} +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4{{$}} +// PPC64: @l = global i64 0, align 8{{$}} +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8{{$}} +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1{{$}} +_Atomic(Q) q; Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1{{$}} +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2{{$}} +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4{{$}} +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4{{$}} +// PPC64: @l = global i64 0, align 8{{$}} +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8{{$}} +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1{{$}} +_Atomic(Q) q; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail updated this revision to Diff 414574. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121441/new/ https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1{{$}} +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2{{$}} +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4{{$}} +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4{{$}} +// PPC64: @l = global i64 0, align 8{{$}} +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8 +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1{{$}} +_Atomic(Q) q; Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1{{$}} +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2{{$}} +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4{{$}} +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4{{$}} +// PPC64: @l = global i64 0, align 8{{$}} +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8 +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1{{$}} +_Atomic(Q) q; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121441: [PowerPC][NFC] Add atomic alignments and ops tests for powerpc
lkail created this revision. lkail added reviewers: hubert.reinterpretcast, jsji, xingxue, PowerPC. Herald added subscribers: steven.zhang, shchenz, nemanjai. Herald added a project: All. lkail requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. 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. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D121441 Files: clang/test/CodeGen/PowerPC/atomic-alignment.c clang/test/Sema/atomic-ops.c Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1 +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2 +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4 +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4 +// PPC64: @l = global i64 0, align 8 +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8 +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1 +_Atomic(Q) q; Index: clang/test/Sema/atomic-ops.c === --- clang/test/Sema/atomic-ops.c +++ clang/test/Sema/atomic-ops.c @@ -4,6 +4,8 @@ // 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=powerpc64le-linux-gnu -std=c11 // Basic parsing/Sema tests for __c11_atomic_* Index: clang/test/CodeGen/PowerPC/atomic-alignment.c === --- /dev/null +++ clang/test/CodeGen/PowerPC/atomic-alignment.c @@ -0,0 +1,38 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -verify -triple powerpc-unkonwn-unknown -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC32 +// RUN: %clang_cc1 -verify -triple powerpc64le-unkonwn-linux -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 +// RUN: %clang_cc1 -verify -triple powerpc64-unkonwn-aix -emit-llvm -o - %s | \ +// RUN: FileCheck %s --check-prefixes=PPC,PPC64 + +// PPC: @c = global i8 0, align 1 +_Atomic(char) c; + +// PPC: @s = global i16 0, align 2 +_Atomic(short) s; + +// PPC: @i = global i32 0, align 4 +_Atomic(int) i; + +// PPC32: @l = global i32 0, align 4 +// PPC64: @l = global i64 0, align 8 +_Atomic(long) l; + +// PPC: @ll = global i64 0, align 8 +_Atomic(long long) ll; + +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; + +typedef struct { + char x[16]; +} Q; + +// PPC: @q = global %struct.Q zeroinitializer, align 1 +_Atomic(Q) q; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits