[clang] 272812c - Revert "[clang] Avoid memcopy for small structure with padding under -ftrivial-auto-var-init (#71677)"

2023-11-23 Thread Muhammad Omair Javaid via cfe-commits

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 , 
const VarDecl ,
   // 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] ce800c2 - Fix clang/test/Sema/code_align.c for Arm v7 #70762

2023-11-21 Thread Muhammad Omair Javaid via cfe-commits

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] 301f3da - [CLANG] Fix typo in test/CodeGen/c-strings.c

2022-12-20 Thread Muhammad Omair Javaid via cfe-commits

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] 8e029d9 - [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows

2022-12-19 Thread Muhammad Omair Javaid via cfe-commits

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] 0b94525 - Revert "[libclang] Expose completion result kind in `CXCompletionResult`"

2022-11-14 Thread Muhammad Omair Javaid via cfe-commits

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 

[clang] c49db59 - [CLANG] XFAIL c-strings.c & volatile-1.c AArch64/Windows

2022-11-02 Thread Muhammad Omair Javaid via cfe-commits

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] edb68a4 - [LIT] Add AArch64/Windows to LP64 feature

2022-10-24 Thread Muhammad Omair Javaid via cfe-commits

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] 18de7c6 - Revert "[InstCombine] Treat passing undef to noundef params as UB"

2022-09-02 Thread Muhammad Omair Javaid via cfe-commits

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 ) {
-  for (unsigned I = 0; I < 

[clang] cd81723 - [clang-cl] Bump default -fms-compatibility-version to 19.14

2022-02-09 Thread Muhammad Omair Javaid via cfe-commits

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] 2ddca68 - Tag sanitize-coverage-old-pm.c unsupported on arm 32 bit

2021-06-27 Thread Muhammad Omair Javaid via cfe-commits

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] 3a6599b - Remove XFAIL flag from sanitize-coverage-old-pm.c

2021-06-27 Thread Muhammad Omair Javaid via cfe-commits

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] e8cded5 - Unsupported sanitize-coverage-old-pm.c on 32 bit Arm

2021-06-24 Thread Muhammad Omair Javaid via cfe-commits

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] d6a91f6 - Revert "[Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l"

2021-06-24 Thread Muhammad Omair Javaid via cfe-commits

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] c5028f3 - [Clang] XFAIL sanitize-coverage-old-pm.c on 32bit Armv8l

2021-06-24 Thread Muhammad Omair Javaid via cfe-commits

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] c9ddb02 - Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."

2019-11-25 Thread Muhammad Omair Javaid via cfe-commits

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