[clang-tools-extra] [llvm] [clang] [SVE2.1][Clang][LLVM]Add BFloat16 builtin in Clang and LLVM intrinisc (PR #70362)
omjavaid wrote: This breaks on Arm/AArch64 lldb bots with llvm-mc not accepting sve2p1 when --mattr=all is supplied on commandline see error below: `home/omair.javaid/work/llvm-dev/build/bin/llvm-mc -filetype=obj -triple aarch64-linux-gnueabihf /home/omair.javaid/work/llvm-dev/llvm-project/lldb/test/Shell/Commands/command-disassemble-aarch64-color.s -o /home/omair.javaid/work/llvm-dev/build/tools/lldb/test/Shell/Commands/Output/command-disassemble-aarch64-color.s.tmp --mattr=+all /home/omair.javaid/work/llvm-dev/llvm-project/lldb/test/Shell/Commands/command-disassemble-aarch64-color.s:14:3: error: instruction requires: sve2p1 bfadd z23.h, p3/m, z23.h, z13.h // AEK_B16B16` Following buildbots break: https://lab.llvm.org/buildbot/#/builders/96 https://lab.llvm.org/buildbot/#/builders/17 https://lab.llvm.org/buildbot/#/builders/219 I am going to do a revert on this patch as this has been failing for 4 hours without a fix. https://github.com/llvm/llvm-project/pull/70362 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang] Avoid memcopy for small structure with padding under -ftrivial-auto-var-init (PR #71677)
omjavaid wrote: This change appears to have broken several clang tests on following buildbots: https://lab.llvm.org/buildbot/#/builders/245 https://lab.llvm.org/buildbot/#/builders/188 https://lab.llvm.org/buildbot/#/builders/186 https://lab.llvm.org/buildbot/#/builders/183 Kindly fix issues if they look trivial or revert the patch if more time is needed for the fix. https://github.com/llvm/llvm-project/pull/71677 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Workaround for MSVC ARM64 build performance regression (PR #65215)
omjavaid wrote: Hi Have you compared build performance between cl and clang-cl? If only cl.exe is taking a lot of time while clang-cl doesnt then may be we should make this change specific to cl.exe. https://github.com/llvm/llvm-project/pull/65215 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Reland: [clang][test] add testing for the AST matcher reference (PR #112168)
omjavaid wrote: @5chmidti Sorry for the delay. I have tested this and it seems to compile on windows msvc without any regressions. https://github.com/llvm/llvm-project/pull/112168 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [AArch64][SVE] Improve fixed-length addressing modes. (PR #129732)
omjavaid wrote: This PR appears to have broken [clang-aarch64-sve-vls](https://lab.llvm.org/buildbot/#/builders/143) buildbot. Here is the failing build https://lab.llvm.org/buildbot/#/builders/143/builds/5952 https://github.com/llvm/llvm-project/pull/129732 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 18de7c6 - Revert "[InstCombine] Treat passing undef to noundef params as UB"
Author: Muhammad Omair Javaid Date: 2022-09-02T16:09:50+05:00 New Revision: 18de7c6a3b3689bf69215429bde1fb2330a3e69d URL: https://github.com/llvm/llvm-project/commit/18de7c6a3b3689bf69215429bde1fb2330a3e69d DIFF: https://github.com/llvm/llvm-project/commit/18de7c6a3b3689bf69215429bde1fb2330a3e69d.diff LOG: Revert "[InstCombine] Treat passing undef to noundef params as UB" This reverts commit c911befaec494c52a63e3b957e28d449262656fb. It has broken LLDB Arm/AArch64 Linux buildbots. I dont really understand the underlying reason. Reverting for now make buildbot green. https://reviews.llvm.org/D133036 Added: Modified: clang/test/CodeGenOpenCL/overload.cl llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/test/Transforms/InstCombine/call-undef.ll llvm/test/Transforms/InstCombine/out-of-bounds-indexes.ll Removed: diff --git a/clang/test/CodeGenOpenCL/overload.cl b/clang/test/CodeGenOpenCL/overload.cl index 193b9cb0df41a..f9e69c6d11540 100644 --- a/clang/test/CodeGenOpenCL/overload.cl +++ b/clang/test/CodeGenOpenCL/overload.cl @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -disable-llvm-passes -no-opaque-pointers -cl-std=CL2.0 -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s -// RUN: %clang_cc1 -disable-llvm-passes -no-opaque-pointers -cl-std=CL3.0 -cl-ext=+__opencl_c_generic_address_space -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s +// RUN: %clang_cc1 -no-opaque-pointers -cl-std=CL2.0 -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s +// RUN: %clang_cc1 -no-opaque-pointers -cl-std=CL3.0 -cl-ext=+__opencl_c_generic_address_space -emit-llvm -o - -triple spir-unknown-unknown %s | FileCheck %s typedef short short4 __attribute__((ext_vector_type(4))); @@ -21,18 +21,18 @@ void kernel test1() { generic int *generic *gengen; generic int *local *genloc; generic int *global *genglob; - // CHECK-DAG: call spir_func void @_Z3fooPU3AS1iS0_(i32 addrspace(1)* noundef {{.*}}, i32 addrspace(1)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3fooPU3AS1iS0_(i32 addrspace(1)* noundef undef, i32 addrspace(1)* noundef undef) foo(a, b); - // CHECK-DAG: call spir_func void @_Z3fooPU3AS4iS0_(i32 addrspace(4)* noundef {{.*}}, i32 addrspace(4)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3fooPU3AS4iS0_(i32 addrspace(4)* noundef undef, i32 addrspace(4)* noundef undef) foo(b, c); - // CHECK-DAG: call spir_func void @_Z3fooPU3AS4iS0_(i32 addrspace(4)* noundef {{.*}}, i32 addrspace(4)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3fooPU3AS4iS0_(i32 addrspace(4)* noundef undef, i32 addrspace(4)* noundef undef) foo(a, d); - // CHECK-DAG: call spir_func void @_Z3barPU3AS4PU3AS4iS2_(i32 addrspace(4)* addrspace(4)* noundef {{.*}}, i32 addrspace(4)* addrspace(4)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3barPU3AS4PU3AS4iS2_(i32 addrspace(4)* addrspace(4)* noundef undef, i32 addrspace(4)* addrspace(4)* noundef undef) bar(gengen, genloc); - // CHECK-DAG: call spir_func void @_Z3barPU3AS4PU3AS4iS2_(i32 addrspace(4)* addrspace(4)* noundef {{.*}}, i32 addrspace(4)* addrspace(4)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3barPU3AS4PU3AS4iS2_(i32 addrspace(4)* addrspace(4)* noundef undef, i32 addrspace(4)* addrspace(4)* noundef undef) bar(gengen, genglob); - // CHECK-DAG: call spir_func void @_Z3barPU3AS1PU3AS4iS2_(i32 addrspace(4)* addrspace(1)* noundef {{.*}}, i32 addrspace(4)* addrspace(1)* noundef {{.*}}) + // CHECK-DAG: call spir_func void @_Z3barPU3AS1PU3AS4iS2_(i32 addrspace(4)* addrspace(1)* noundef undef, i32 addrspace(4)* addrspace(1)* noundef undef) bar(genglob, genglob); } @@ -40,8 +40,8 @@ void kernel test1() { void kernel test2() { short4 e0=0; - // CHECK-DAG: call spir_func <4 x i16> @_Z5clampDv4_sss(<4 x i16> noundef {{.*}}, i16 noundef signext 0, i16 noundef signext 255) + // CHECK-DAG: call spir_func <4 x i16> @_Z5clampDv4_sss(<4 x i16> noundef zeroinitializer, i16 noundef signext 0, i16 noundef signext 255) clamp(e0, 0, 255); - // CHECK-DAG: call spir_func <4 x i16> @_Z5clampDv4_sS_S_(<4 x i16> noundef {{.*}}, <4 x i16> noundef {{.*}}, <4 x i16> noundef {{.*}}) + // CHECK-DAG: call spir_func <4 x i16> @_Z5clampDv4_sS_S_(<4 x i16> noundef zeroinitializer, <4 x i16> noundef zeroinitializer, <4 x i16> noundef zeroinitializer) clamp(e0, e0, e0); } diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index d3b9afdeb4787..dea91c26e8516 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -2900,15 +2900,6 @@ static IntrinsicInst *findInitTrampoline(Value *Callee) { return nullptr; } -static bool callPassesUndefToPassingUndefUBParam(CallBase &Call) { - for (unsigned I = 0; I < Call.arg_si
[clang] ce800c2 - Fix clang/test/Sema/code_align.c for Arm v7 #70762
Author: Muhammad Omair Javaid Date: 2023-11-21T13:00:52+05:00 New Revision: ce800c27768400aa3efba882bcac120f2bdd6eeb URL: https://github.com/llvm/llvm-project/commit/ce800c27768400aa3efba882bcac120f2bdd6eeb DIFF: https://github.com/llvm/llvm-project/commit/ce800c27768400aa3efba882bcac120f2bdd6eeb.diff LOG: Fix clang/test/Sema/code_align.c for Arm v7 #70762 This patch disables parts of clang/test/Sema/code_align.c that need __int128_t to be defined. This will fix failures on Arm v7 buildbots due to #70762 Following bots are failing: https://lab.llvm.org/buildbot/#/builders/245 https://lab.llvm.org/buildbot/#/builders/178 https://lab.llvm.org/buildbot/#/builders/182 https://lab.llvm.org/buildbot/#/builders/186 https://lab.llvm.org/buildbot/#/builders/187 Added: Modified: clang/test/Sema/code_align.c Removed: diff --git a/clang/test/Sema/code_align.c b/clang/test/Sema/code_align.c index 539c0c0b0f1ccfb..2d1af7026a18156 100644 --- a/clang/test/Sema/code_align.c +++ b/clang/test/Sema/code_align.c @@ -75,19 +75,23 @@ void foo1(int A) [[clang::code_align(9223372036854775808)]] for(int I=0; I<256; ++I) { bar(I); } +#ifdef __SIZEOF_INT128__ // expected-error@+1{{'code_align' attribute requires an integer argument which is a constant power of two between 1 and 4096 inclusive; provided argument was (__int128_t)1311768467294899680ULL << 64}} [[clang::code_align((__int128_t)0x1234567890abcde0ULL << 64)]] for(int I=0; I<256; ++I) { bar(I); } +#endif // expected-error@+1 {{'code_align' attribute requires an integer argument which is a constant power of two between 1 and 4096 inclusive; provided argument was -922337203685477}} [[clang::code_align(-922337203685477)]] for(int I=0; I<256; ++I) { bar(I); } +#ifdef __SIZEOF_INT128__ // cpp-local-error@+3{{expression is not an integral constant expression}} // cpp-local-note@+2{{left shift of negative value -1311768467294899680}} // c-local-error@+1{{'code_align' attribute requires an integer argument which is a constant power of two between 1 and 4096 inclusive; provided argument was -(__int128_t)1311768467294899680ULL << 64}} [[clang::code_align(-(__int128_t)0x1234567890abcde0ULL << 64)]] for(int I=0; I<256; ++I) { bar(I); } +#endif // cpp-local-error@+3{{expression is not an integral constant expression}} // cpp-local-note@+2{{function parameter 'A' with unknown value cannot be used in a constant expression}} ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 272812c - Revert "[clang] Avoid memcopy for small structure with padding under -ftrivial-auto-var-init (#71677)"
Author: Muhammad Omair Javaid Date: 2023-11-23T15:45:00+05:00 New Revision: 272812c7e43d8a45f19ea7b4a3b2667e7fb9e67a URL: https://github.com/llvm/llvm-project/commit/272812c7e43d8a45f19ea7b4a3b2667e7fb9e67a DIFF: https://github.com/llvm/llvm-project/commit/272812c7e43d8a45f19ea7b4a3b2667e7fb9e67a.diff LOG: Revert "[clang] Avoid memcopy for small structure with padding under -ftrivial-auto-var-init (#71677)" This reverts commit 0d2860b795879f4dd152963b52f969b53b136899. This change appears to have broken several clang tests on following buildbots: https://lab.llvm.org/buildbot/#/builders/245 https://lab.llvm.org/buildbot/#/builders/188 https://lab.llvm.org/buildbot/#/builders/186 https://lab.llvm.org/buildbot/#/builders/183 Added: Modified: clang/lib/CodeGen/CGDecl.cpp clang/test/CodeGenCXX/auto-var-init.cpp Removed: diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp index a5da0aa2965a000..e5795d811c76de7 100644 --- a/clang/lib/CodeGen/CGDecl.cpp +++ b/clang/lib/CodeGen/CGDecl.cpp @@ -1244,24 +1244,29 @@ static void emitStoresForConstant(CodeGenModule &CGM, const VarDecl &D, // If the initializer is small, use a handful of stores. if (shouldSplitConstantStore(CGM, ConstantSize)) { if (auto *STy = dyn_cast(Ty)) { - const llvm::StructLayout *Layout = - CGM.getDataLayout().getStructLayout(STy); - for (unsigned i = 0; i != constant->getNumOperands(); i++) { -CharUnits CurOff = CharUnits::fromQuantity(Layout->getElementOffset(i)); -Address EltPtr = Builder.CreateConstInBoundsByteGEP( -Loc.withElementType(CGM.Int8Ty), CurOff); -emitStoresForConstant(CGM, D, EltPtr, isVolatile, Builder, - constant->getAggregateElement(i), IsAutoInit); + // FIXME: handle the case when STy != Loc.getElementType(). + if (STy == Loc.getElementType()) { +for (unsigned i = 0; i != constant->getNumOperands(); i++) { + Address EltPtr = Builder.CreateStructGEP(Loc, i); + emitStoresForConstant( + CGM, D, EltPtr, isVolatile, Builder, + cast(Builder.CreateExtractValue(constant, i)), + IsAutoInit); +} +return; } - return; } else if (auto *ATy = dyn_cast(Ty)) { - for (unsigned i = 0; i != ATy->getNumElements(); i++) { -Address EltPtr = Builder.CreateConstGEP( -Loc.withElementType(ATy->getElementType()), i); -emitStoresForConstant(CGM, D, EltPtr, isVolatile, Builder, - constant->getAggregateElement(i), IsAutoInit); + // FIXME: handle the case when ATy != Loc.getElementType(). + if (ATy == Loc.getElementType()) { +for (unsigned i = 0; i != ATy->getNumElements(); i++) { + Address EltPtr = Builder.CreateConstArrayGEP(Loc, i); + emitStoresForConstant( + CGM, D, EltPtr, isVolatile, Builder, + cast(Builder.CreateExtractValue(constant, i)), + IsAutoInit); +} +return; } - return; } } diff --git a/clang/test/CodeGenCXX/auto-var-init.cpp b/clang/test/CodeGenCXX/auto-var-init.cpp index e5a9d015f22f276..6cb18528ebadcdf 100644 --- a/clang/test/CodeGenCXX/auto-var-init.cpp +++ b/clang/test/CodeGenCXX/auto-var-init.cpp @@ -89,14 +89,22 @@ struct padded { char c; int i; }; // PATTERN-O1-NOT: @__const.test_paddednullinit_custom.custom struct paddednullinit { char c = 0; int i = 0; }; // PATTERN-O0: @__const.test_paddedpacked_uninit.uninit = private unnamed_addr constant %struct.paddedpacked <{ i8 [[I8]], i32 [[I32]] }>, align 1 +// PATTERN: @__const.test_paddedpacked_custom.custom = private unnamed_addr constant %struct.paddedpacked <{ i8 42, i32 13371337 }>, align 1 +// ZERO: @__const.test_paddedpacked_custom.custom = private unnamed_addr constant %struct.paddedpacked <{ i8 42, i32 13371337 }>, align 1 struct paddedpacked { char c; int i; } __attribute__((packed)); // PATTERN-O0: @__const.test_paddedpackedarray_uninit.uninit = private unnamed_addr constant %struct.paddedpackedarray { [2 x %struct.paddedpacked] [%struct.paddedpacked <{ i8 [[I8]], i32 [[I32]] }>, %struct.paddedpacked <{ i8 [[I8]], i32 [[I32]] }>] }, align 1 +// PATTERN: @__const.test_paddedpackedarray_custom.custom = private unnamed_addr constant %struct.paddedpackedarray { [2 x %struct.paddedpacked] [%struct.paddedpacked <{ i8 42, i32 13371337 }>, %struct.paddedpacked <{ i8 43, i32 13371338 }>] }, align 1 +// ZERO: @__const.test_paddedpackedarray_custom.custom = private unnamed_addr constant %struct.paddedpackedarray { [2 x %struct.paddedpacked] [%struct.paddedpacked <{ i8 42, i32 13371337 }>, %struct.paddedpacked <{ i8 43, i32 13371338 }>] }, align 1 struct paddedpackedarray { struct paddedpacked p[2]; }; // PATTERN-O0: @__const.test_unpackedinpacked_uninit.uninit =
[clang] cd81723 - [clang-cl] Bump default -fms-compatibility-version to 19.14
Author: Muhammad Omair Javaid Date: 2022-02-09T13:54:25+05:00 New Revision: cd817231ec4ffc4362a71cd151dd5b9cf91f1a3e URL: https://github.com/llvm/llvm-project/commit/cd817231ec4ffc4362a71cd151dd5b9cf91f1a3e DIFF: https://github.com/llvm/llvm-project/commit/cd817231ec4ffc4362a71cd151dd5b9cf91f1a3e.diff LOG: [clang-cl] Bump default -fms-compatibility-version to 19.14 clang-cl MSVC required version is 19.20 now. Update the default -fms-compatibility-version to 19.14. Differential Revision: https://reviews.llvm.org/D114639 Added: Modified: clang/lib/Driver/ToolChains/MSVC.cpp clang/test/Driver/cl-options.c Removed: diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp index 18cef288f018a..9f4751167ac12 100644 --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -1393,8 +1393,8 @@ VersionTuple MSVCToolChain::computeMSVCVersion(const Driver *D, if (MSVT.empty() && Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, IsWindowsMSVC)) { -// -fms-compatibility-version=19.14 is default, aka 2017, 15.7 -MSVT = VersionTuple(19, 14); +// -fms-compatibility-version=19.20 is default, aka 2019, 16.x +MSVT = VersionTuple(19, 20); } return MSVT; } diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c index 733e733de738e..8d240e6e6e5c6 100644 --- a/clang/test/Driver/cl-options.c +++ b/clang/test/Driver/cl-options.c @@ -757,7 +757,7 @@ // Validate that the default triple is used when run an empty tools dir is specified // RUN: %clang_cl -vctoolsdir "" -### -- %s 2>&1 | FileCheck %s --check-prefix VCTOOLSDIR -// VCTOOLSDIR: "-triple" "{{[a-zA-Z0-9_-]*}}-pc-windows-msvc19.14.0" +// VCTOOLSDIR: "-triple" "{{[a-zA-Z0-9_-]*}}-pc-windows-msvc19.20.0" // Validate that built-in include paths are based on the supplied path // RUN: %clang_cl --target=aarch64-pc-windows-msvc -vctoolsdir "/fake" -winsdkdir "/foo" -winsdkversion 10.0.12345.0 -### -- %s 2>&1 | FileCheck %s --check-prefix FAKEDIR ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] c5028f3 - [Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l
Author: Muhammad Omair Javaid Date: 2021-06-24T15:48:13+05:00 New Revision: c5028f3473ed50a7433fe278984cd1a755b338b9 URL: https://github.com/llvm/llvm-project/commit/c5028f3473ed50a7433fe278984cd1a755b338b9 DIFF: https://github.com/llvm/llvm-project/commit/c5028f3473ed50a7433fe278984cd1a755b338b9.diff LOG: [Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l sanitize-coverage-old-pm.c started failing on arm 32 bit where underlying architecture reported is armv8l fore 32bit arm. This patch XFAILS sanitize-coverage-old-pm.c on armv8l similar to armv7 and thumbv7. Added: Modified: clang/test/CodeGen/sanitize-coverage-old-pm.c Removed: diff --git a/clang/test/CodeGen/sanitize-coverage-old-pm.c b/clang/test/CodeGen/sanitize-coverage-old-pm.c index 610dd651587f..fc764954cce8 100644 --- a/clang/test/CodeGen/sanitize-coverage-old-pm.c +++ b/clang/test/CodeGen/sanitize-coverage-old-pm.c @@ -6,7 +6,7 @@ // RUN: %clang %s -target x86_64-unknown-linux-gnu -emit-llvm -S -fsanitize=undefined -fsanitize-coverage=trace-pc,trace-cmp -o - -flegacy-pass-manager | FileCheck %s --check-prefixes=CHECK,UBSAN // // Host armv7 is currently unsupported: https://bugs.llvm.org/show_bug.cgi?id=46117 -// XFAIL: armv7, thumbv7 +// XFAIL: armv7, thumbv7, armv8l // The same issue also occurs on a riscv32 host. // XFAIL: riscv32 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] d6a91f6 - Revert "[Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l"
Author: Muhammad Omair Javaid Date: 2021-06-25T05:00:14+05:00 New Revision: d6a91f6c565179e9b2dac700f9a54e105f748a6d URL: https://github.com/llvm/llvm-project/commit/d6a91f6c565179e9b2dac700f9a54e105f748a6d DIFF: https://github.com/llvm/llvm-project/commit/d6a91f6c565179e9b2dac700f9a54e105f748a6d.diff LOG: Revert "[Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l" This reverts commit c5028f3473ed50a7433fe278984cd1a755b338b9. Added: Modified: clang/test/CodeGen/sanitize-coverage-old-pm.c Removed: diff --git a/clang/test/CodeGen/sanitize-coverage-old-pm.c b/clang/test/CodeGen/sanitize-coverage-old-pm.c index fc764954cce8..610dd651587f 100644 --- a/clang/test/CodeGen/sanitize-coverage-old-pm.c +++ b/clang/test/CodeGen/sanitize-coverage-old-pm.c @@ -6,7 +6,7 @@ // RUN: %clang %s -target x86_64-unknown-linux-gnu -emit-llvm -S -fsanitize=undefined -fsanitize-coverage=trace-pc,trace-cmp -o - -flegacy-pass-manager | FileCheck %s --check-prefixes=CHECK,UBSAN // // Host armv7 is currently unsupported: https://bugs.llvm.org/show_bug.cgi?id=46117 -// XFAIL: armv7, thumbv7, armv8l +// XFAIL: armv7, thumbv7 // The same issue also occurs on a riscv32 host. // XFAIL: riscv32 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] e8cded5 - Unsupported sanitize-coverage-old-pm.c on 32 bit Arm
Author: Muhammad Omair Javaid Date: 2021-06-25T00:57:24Z New Revision: e8cded57fbf7b2b81aefd569b95f38ae97948ef0 URL: https://github.com/llvm/llvm-project/commit/e8cded57fbf7b2b81aefd569b95f38ae97948ef0 DIFF: https://github.com/llvm/llvm-project/commit/e8cded57fbf7b2b81aefd569b95f38ae97948ef0.diff LOG: Unsupported sanitize-coverage-old-pm.c on 32 bit Arm sanitize-coverage-old-pm.c is passing intermittently on different arm v7 machines. This patch moves it to unsupported on all arm 32 targets reporting armv8l core. Added: Modified: clang/test/CodeGen/sanitize-coverage-old-pm.c Removed: diff --git a/clang/test/CodeGen/sanitize-coverage-old-pm.c b/clang/test/CodeGen/sanitize-coverage-old-pm.c index 610dd651587f..cbed401b1e02 100644 --- a/clang/test/CodeGen/sanitize-coverage-old-pm.c +++ b/clang/test/CodeGen/sanitize-coverage-old-pm.c @@ -6,6 +6,7 @@ // RUN: %clang %s -target x86_64-unknown-linux-gnu -emit-llvm -S -fsanitize=undefined -fsanitize-coverage=trace-pc,trace-cmp -o - -flegacy-pass-manager | FileCheck %s --check-prefixes=CHECK,UBSAN // // Host armv7 is currently unsupported: https://bugs.llvm.org/show_bug.cgi?id=46117 +// UNSUPPORTED: armv8l // XFAIL: armv7, thumbv7 // The same issue also occurs on a riscv32 host. // XFAIL: riscv32 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 3a6599b - Remove XFAIL flag from sanitize-coverage-old-pm.c
Author: Muhammad Omair Javaid Date: 2021-06-28T03:38:08+05:00 New Revision: 3a6599b7bd0fe4fe579e0abd9bd882ea964dd627 URL: https://github.com/llvm/llvm-project/commit/3a6599b7bd0fe4fe579e0abd9bd882ea964dd627 DIFF: https://github.com/llvm/llvm-project/commit/3a6599b7bd0fe4fe579e0abd9bd882ea964dd627.diff LOG: Remove XFAIL flag from sanitize-coverage-old-pm.c This test has started passing consistently on 32bit arm where underlying core is reported as Armv7 or Thumbv7. However it still fails intermittently on 32bit AArch32 reported as Armv8l. https://lab.llvm.org/buildbot/#/builders/190/builds/20 https://lab.llvm.org/buildbot/#/builders/170/builds/41 Added: Modified: clang/test/CodeGen/sanitize-coverage-old-pm.c Removed: diff --git a/clang/test/CodeGen/sanitize-coverage-old-pm.c b/clang/test/CodeGen/sanitize-coverage-old-pm.c index cbed401b1e02..ec84de1c024c 100644 --- a/clang/test/CodeGen/sanitize-coverage-old-pm.c +++ b/clang/test/CodeGen/sanitize-coverage-old-pm.c @@ -6,8 +6,7 @@ // RUN: %clang %s -target x86_64-unknown-linux-gnu -emit-llvm -S -fsanitize=undefined -fsanitize-coverage=trace-pc,trace-cmp -o - -flegacy-pass-manager | FileCheck %s --check-prefixes=CHECK,UBSAN // // Host armv7 is currently unsupported: https://bugs.llvm.org/show_bug.cgi?id=46117 -// UNSUPPORTED: armv8l -// XFAIL: armv7, thumbv7 +// XFAIL: armv8l // The same issue also occurs on a riscv32 host. // XFAIL: riscv32 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 2ddca68 - Tag sanitize-coverage-old-pm.c unsupported on arm 32 bit
Author: Muhammad Omair Javaid Date: 2021-06-28T07:19:11+05:00 New Revision: 2ddca686ee8fd73d4b6630b60794be82caa4c311 URL: https://github.com/llvm/llvm-project/commit/2ddca686ee8fd73d4b6630b60794be82caa4c311 DIFF: https://github.com/llvm/llvm-project/commit/2ddca686ee8fd73d4b6630b60794be82caa4c311.diff LOG: Tag sanitize-coverage-old-pm.c unsupported on arm 32 bit This test is again failing across multiple bots and passing on others there is no reliable way to enable it for some of the bots while disabling for the unsupported ones. Tagging it as unsupported across all types of Arm 32 bit cores. Added: Modified: clang/test/CodeGen/sanitize-coverage-old-pm.c Removed: diff --git a/clang/test/CodeGen/sanitize-coverage-old-pm.c b/clang/test/CodeGen/sanitize-coverage-old-pm.c index ec84de1c024c..ff37eda464a8 100644 --- a/clang/test/CodeGen/sanitize-coverage-old-pm.c +++ b/clang/test/CodeGen/sanitize-coverage-old-pm.c @@ -6,7 +6,7 @@ // RUN: %clang %s -target x86_64-unknown-linux-gnu -emit-llvm -S -fsanitize=undefined -fsanitize-coverage=trace-pc,trace-cmp -o - -flegacy-pass-manager | FileCheck %s --check-prefixes=CHECK,UBSAN // // Host armv7 is currently unsupported: https://bugs.llvm.org/show_bug.cgi?id=46117 -// XFAIL: armv8l +// UNSUPPORTED: armv7, thumbv7, armv8l // The same issue also occurs on a riscv32 host. // XFAIL: riscv32 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] edb68a4 - [LIT] Add AArch64/Windows to LP64 feature
Author: Muhammad Omair Javaid Date: 2022-10-24T11:40:52+05:00 New Revision: edb68a45335013c3857844620caa7104a51fa5f4 URL: https://github.com/llvm/llvm-project/commit/edb68a45335013c3857844620caa7104a51fa5f4 DIFF: https://github.com/llvm/llvm-project/commit/edb68a45335013c3857844620caa7104a51fa5f4.diff LOG: [LIT] Add AArch64/Windows to LP64 feature This patch adds AArch64 to the LP64 feature to avoid running LLP64 incompatible test on AArch64/Windows platform. Differential Revision: https://reviews.llvm.org/D136070 Added: Modified: clang/test/lit.cfg.py Removed: diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py index 8cad77b57219..8088ceff5c00 100644 --- a/clang/test/lit.cfg.py +++ b/clang/test/lit.cfg.py @@ -177,7 +177,7 @@ def is_filesystem_case_insensitive(): config.available_features.add('ms-sdk') # [PR8833] LLP64-incompatible tests -if not re.match(r'^x86_64.*-(windows-msvc|windows-gnu)$', config.target_triple): +if not re.match(r'^(aarch64|x86_64).*-(windows-msvc|windows-gnu)$', config.target_triple): config.available_features.add('LP64') # Tests that are specific to the Apple Silicon macOS. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 8e029d9 - [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows
Author: Muhammad Omair Javaid Date: 2022-12-19T14:03:30+05:00 New Revision: 8e029d9e35092d1440dafc8991e73fb8c3b323d7 URL: https://github.com/llvm/llvm-project/commit/8e029d9e35092d1440dafc8991e73fb8c3b323d7 DIFF: https://github.com/llvm/llvm-project/commit/8e029d9e35092d1440dafc8991e73fb8c3b323d7.diff LOG: [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows c-strings.c was marked XFAIL for msvc ABI on AArch64/Windows platform. But it is failing due to alignment issue on WoA for both msvc and gnu gnu ABIs. I am going to mark them as XFAIL for both. Added: Modified: clang/test/CodeGen/c-strings.c Removed: diff --git a/clang/test/CodeGen/c-strings.c b/clang/test/CodeGen/c-strings.c index 9e1ac0f02b5e..abb4a836477f 100644 --- a/clang/test/CodeGen/c-strings.c +++ b/clang/test/CodeGen/c-strings.c @@ -1,4 +1,4 @@ -// XFAIL: taraget=aarch64-pc-windows-msvc +// XFAIL: taraget=aarch64-pc-windows-{{.*}} // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=ITANIUM // RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=MSABI ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 301f3da - [CLANG] Fix typo in test/CodeGen/c-strings.c
Author: Muhammad Omair Javaid Date: 2022-12-20T13:59:16+05:00 New Revision: 301f3da5162499965287338a0cd52309fb28e8b8 URL: https://github.com/llvm/llvm-project/commit/301f3da5162499965287338a0cd52309fb28e8b8 DIFF: https://github.com/llvm/llvm-project/commit/301f3da5162499965287338a0cd52309fb28e8b8.diff LOG: [CLANG] Fix typo in test/CodeGen/c-strings.c This patch fixes a typo in test/CodeGen/c-strings.c. Test was failing on AArch64/Windows. Added: Modified: clang/test/CodeGen/c-strings.c Removed: diff --git a/clang/test/CodeGen/c-strings.c b/clang/test/CodeGen/c-strings.c index abb4a836477f6..988deee317d4c 100644 --- a/clang/test/CodeGen/c-strings.c +++ b/clang/test/CodeGen/c-strings.c @@ -1,4 +1,4 @@ -// XFAIL: taraget=aarch64-pc-windows-{{.*}} +// XFAIL: target=aarch64-pc-windows-{{.*}} // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=ITANIUM // RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=MSABI ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] c49db59 - [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows
Author: Muhammad Omair Javaid Date: 2022-11-02T12:32:21+04:00 New Revision: c49db597a131576160ab8d1e19575853afbc7077 URL: https://github.com/llvm/llvm-project/commit/c49db597a131576160ab8d1e19575853afbc7077 DIFF: https://github.com/llvm/llvm-project/commit/c49db597a131576160ab8d1e19575853afbc7077.diff LOG: [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows c-strings.c and volatile-1.c failing due to alignment issue on WoA. I am going to mark them as XFAIL for now. Added: Modified: clang/test/CodeGen/c-strings.c clang/test/CodeGen/volatile-1.c Removed: diff --git a/clang/test/CodeGen/c-strings.c b/clang/test/CodeGen/c-strings.c index 692a42d326d2e..ebb3217ca48a7 100644 --- a/clang/test/CodeGen/c-strings.c +++ b/clang/test/CodeGen/c-strings.c @@ -1,3 +1,4 @@ +// XFAIL: aarch64-pc-windows-msvc // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=ITANIUM // RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=MSABI diff --git a/clang/test/CodeGen/volatile-1.c b/clang/test/CodeGen/volatile-1.c index 3e7eacb97abd6..d27abbfdbef15 100644 --- a/clang/test/CodeGen/volatile-1.c +++ b/clang/test/CodeGen/volatile-1.c @@ -1,3 +1,4 @@ +// XFAIL: aarch64-pc-windows-msvc // RUN: %clang_cc1 -Wno-return-type -Wno-unused-value -emit-llvm %s -w -o - | FileCheck %s // CHECK: @i = {{(dso_local )?}}global [[INT:i[0-9]+]] 0 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 0b94525 - Revert "[libclang] Expose completion result kind in `CXCompletionResult`"
Author: Muhammad Omair Javaid Date: 2022-11-14T12:27:11+04:00 New Revision: 0b94525ddcfc069941a20abcbe447e659ffb6e33 URL: https://github.com/llvm/llvm-project/commit/0b94525ddcfc069941a20abcbe447e659ffb6e33 DIFF: https://github.com/llvm/llvm-project/commit/0b94525ddcfc069941a20abcbe447e659ffb6e33.diff LOG: Revert "[libclang] Expose completion result kind in `CXCompletionResult`" This reverts commit 97105e5bf70fae5d9902081e917fd178b57f1717. It breaks clang-armv8-quick buildbot: https://lab.llvm.org/buildbot/#/builders/245/builds/761 Added: Modified: clang/include/clang-c/Index.h clang/test/Index/arc-complete.m clang/test/Index/code-completion.cpp clang/test/Index/complete-at-directives.m clang/test/Index/complete-at-exprstmt.m clang/test/Index/complete-declarators.cpp clang/test/Index/complete-declarators.m clang/test/Index/complete-exprs.c clang/test/Index/complete-exprs.cpp clang/test/Index/complete-exprs.m clang/test/Index/complete-lambdas.cpp clang/test/Index/complete-lambdas.mm clang/test/Index/complete-memfunc-cvquals.cpp clang/test/Index/complete-method-decls.m clang/test/Index/complete-modules.m clang/test/Index/complete-preprocessor.m clang/test/Index/complete-recovery.m clang/test/Index/complete-stmt.c clang/test/Index/complete-super.cpp clang/test/Index/complete-synthesized.m clang/test/Index/complete-type-factors.m clang/tools/c-index-test/c-index-test.c clang/tools/libclang/CIndex.cpp clang/tools/libclang/CIndexCodeCompletion.cpp clang/tools/libclang/libclang.map Removed: diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index 74c859bf785a5..e0f6f1c73549f 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -2080,23 +2080,6 @@ enum CXCursorKind { CXCursor_OverloadCandidate = 700 }; -/** - * Describes the kind of result generated. - */ -enum CXCompletionResultKind { - /** Refers to a declaration. */ - CXCompletionResult_Declaration = 0, - - /** Refers to a keyword or symbol. */ - CXCompletionResult_Keyword = 1, - - /** Refers to a macro. */ - CXCompletionResult_Macro = 2, - - /** Refers to a precomputed pattern. */ - CXCompletionResult_Pattern = 3 -}; - /** * A cursor representing some element in the abstract syntax tree for * a translation unit. @@ -4605,8 +4588,6 @@ CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU, CXToken *Tokens, */ /* for debug/testing */ -CINDEX_LINKAGE CXString -clang_getCompletionResultKindSpelling(enum CXCompletionResultKind Kind); CINDEX_LINKAGE CXString clang_getCursorKindSpelling(enum CXCursorKind Kind); CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent( CXCursor, const char **startBuf, const char **endBuf, unsigned *startLine, @@ -4650,17 +4631,12 @@ typedef void *CXCompletionString; * A single result of code completion. */ typedef struct { - /** - * The kind of this completion result. - * Useful to distinguish between declarations and keywords. - */ - enum CXCompletionResultKind ResultKind; - /** * The kind of entity that this completion refers to. * - * The cursor kind will be a macro or a declaration (one of the *Decl cursor - * kinds), describing the entity that the completion is referring to. + * The cursor kind will be a macro, keyword, or a declaration (one of the + * *Decl cursor kinds), describing the entity that the completion is + * referring to. * * \todo In the future, we would like to provide a full cursor, to allow * the client to extract additional information from declaration. diff --git a/clang/test/Index/arc-complete.m b/clang/test/Index/arc-complete.m index c3fb6f3dcafb1..328983c441ecf 100644 --- a/clang/test/Index/arc-complete.m +++ b/clang/test/Index/arc-complete.m @@ -8,9 +8,9 @@ void test(id x) { // RUN: c-index-test -code-completion-at=%s:4:4 %s -fobjc-arc -fobjc-nonfragile-abi | FileCheck -check-prefix=CHECK-CC1 %s // CHECK-CC1: macro definition:{TypedText __autoreleasing} (70) -// CHECK-CC1: Pattern:{TypedText __bridge}{HorizontalSpace }{Placeholder type}{RightParen )}{Placeholder expression} (40) -// CHECK-CC1: Pattern:{TypedText __bridge_retained}{HorizontalSpace }{Placeholder CF type}{RightParen )}{Placeholder expression} (40) -// CHECK-CC1: Pattern:{TypedText __bridge_transfer}{HorizontalSpace }{Placeholder Objective-C type}{RightParen )}{Placeholder expression} (40) +// CHECK-CC1: NotImplemented:{TypedText __bridge}{HorizontalSpace }{Placeholder type}{RightParen )}{Placeholder expression} (40) +// CHECK-CC1: NotImplemented:{TypedText __bridge_retained}{HorizontalSpace }{Placeholder CF type}{RightParen )}{Placeholder expression} (40) +// CHECK-CC1: NotImplemented:{TypedText __bridge_transfer}{HorizontalSpace }{Placeholder Objective-C type}{RightParen )}{Placeholder e
[clang] c9ddb02 - Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."
Author: Muhammad Omair Javaid Date: 2019-11-26T09:32:13+05:00 New Revision: c9ddb02659e3ece7a0d9d6b4dac7ceea4ae46e6d URL: https://github.com/llvm/llvm-project/commit/c9ddb02659e3ece7a0d9d6b4dac7ceea4ae46e6d DIFF: https://github.com/llvm/llvm-project/commit/c9ddb02659e3ece7a0d9d6b4dac7ceea4ae46e6d.diff LOG: Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there." This reverts commit 8ff85ed905a7306977d07a5cd67ab4d5a56fafb4. This commit introduced 9 new failures on lldb buildbot host at http://lab.llvm.org:8014/builders/lldb-aarch64-ubuntu Following tests were failing: lldb-api :: functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py lldb-api :: functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py lldb-api :: functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py lldb-api :: functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py lldb-api :: functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py lldb-api :: functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py lldb-api :: functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py lldb-api :: functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py lldb-api :: functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py lldb-api :: functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py Tags: #llvm Differential Revision: https://reviews.llvm.org/D65410 Added: Modified: clang/test/CodeGen/2008-07-30-implicit-initialization.c clang/test/CodeGen/arm-fp16-arguments.c clang/test/CodeGen/arm-vfp16-arguments2.cpp clang/test/CodeGen/atomic-ops-libcall.c clang/test/CodeGenCXX/atomicinit.cpp clang/test/CodeGenCXX/auto-var-init.cpp clang/test/CodeGenCXX/discard-name-values.cpp clang/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp clang/test/CodeGenCXX/microsoft-abi-typeid.cpp clang/test/CodeGenCXX/nrvo.cpp clang/test/CodeGenCXX/stack-reuse.cpp clang/test/CodeGenCXX/wasm-args-returns.cpp clang/test/CodeGenObjCXX/arc-blocks.mm clang/test/CodeGenObjCXX/nrvo.mm clang/test/Lexer/minimize_source_to_dependency_directives_invalid_error.c clang/test/PCH/no-escaping-block-tail-calls.cpp llvm/include/llvm/Passes/PassBuilder.h llvm/lib/Passes/PassBuilder.cpp llvm/lib/Transforms/IPO/PassManagerBuilder.cpp llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll llvm/test/Feature/optnone-opt.ll llvm/test/Other/new-pm-defaults.ll llvm/test/Other/new-pm-thinlto-defaults.ll llvm/test/Transforms/MemCpyOpt/lifetime.ll llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll llvm/test/Transforms/PhaseOrdering/two-shifts-by-sext.ll Removed: diff --git a/clang/test/CodeGen/2008-07-30-implicit-initialization.c b/clang/test/CodeGen/2008-07-30-implicit-initialization.c index f2621f4560ec..e77c70a140f9 100644 --- a/clang/test/CodeGen/2008-07-30-implicit-initialization.c +++ b/clang/test/CodeGen/2008-07-30-implicit-initialization.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple i386-unknown-unknown -O2 -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple i386-unknown-unknown -O1 -emit-llvm -o - %s | FileCheck %s // CHECK-LABEL: define i32 @f0() // CHECK: ret i32 0 // CHECK-LABEL: define i32 @f1() diff --git a/clang/test/CodeGen/arm-fp16-arguments.c b/clang/test/CodeGen/arm-fp16-arguments.c index 34dc1a1cbf6a..d739f4b9c66a 100644 --- a/clang/test/CodeGen/arm-fp16-arguments.c +++ b/clang/test/CodeGen/arm-fp16-arguments.c @@ -1,6 +1,6 @@ -// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi soft -fallow-half-arguments-and-returns -emit-llvm -o - -O2 %s | FileCheck %s --check-prefix=CHECK --check-prefix=SOFT -// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi hard -fallow-half-arguments-and-returns -emit-llvm -o - -O2 %s | FileCheck %s --check-prefix=CHECK --check-prefix=HARD -// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi soft -fnative-half-arguments-and-returns -emit-llvm -o - -O2 %s | FileCheck %s --check-prefix=NATIVE +// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi soft -fallow-half-arguments-and-returns -emit-llvm -o - -O1 %s | FileCheck %s --check-prefix=CHECK --check-prefix=SOFT +// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi hard -fallow-half-arguments-and-returns -emit-llvm -o - -O1 %s | FileCheck %s --check-prefix=CHECK --check-prefix=HARD +// RUN: %clang_cc1 -triple armv7a--none-eabi -target-abi aapcs -mfloat-abi soft -fna