<div dir="ltr">Thanks for the revert, re-landed in r371817 with a (hopeful) fix for lldb (which I can't build; cmake seems unable to enable it in a monorepo checkout?)</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 12 Sep 2019 at 22:15, Jonas Devlieghere via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: jdevlieghere<br>
Date: Thu Sep 12 22:16:59 2019<br>
New Revision: 371813<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=371813&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=371813&view=rev</a><br>
Log:<br>
Revert "For PR17164: split -fno-lax-vector-conversion into three different"<br>
<br>
This breaks the LLDB build. I tried reaching out to Richard, but haven't<br>
gotten a reply yet.<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/Basic/LangOptions.def<br>
    cfe/trunk/include/clang/Basic/LangOptions.h<br>
    cfe/trunk/include/clang/Driver/Options.td<br>
    cfe/trunk/lib/Driver/ToolChains/Clang.cpp<br>
    cfe/trunk/lib/Frontend/CompilerInvocation.cpp<br>
    cfe/trunk/lib/Sema/SemaExpr.cpp<br>
    cfe/trunk/test/CodeGen/builtins-systemz-vector.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-vector2.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-vector3.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c<br>
    cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c<br>
    cfe/trunk/test/CodeGen/builtins-wasm.c<br>
    cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp<br>
    cfe/trunk/test/Headers/altivec-header.c<br>
    cfe/trunk/test/Headers/arm-neon-header.c<br>
    cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp<br>
    cfe/trunk/test/Headers/x86-intrinsics-headers.c<br>
    cfe/trunk/test/Headers/x86intrin-2.c<br>
    cfe/trunk/test/Headers/x86intrin.c<br>
    cfe/trunk/test/Sema/ext_vector_casts.c<br>
    cfe/trunk/test/Sema/typedef-retain.c<br>
    cfe/trunk/test/Sema/zvector.c<br>
    cfe/trunk/test/Sema/zvector2.c<br>
    cfe/trunk/test/SemaCXX/altivec.cpp<br>
    cfe/trunk/test/SemaCXX/vector-no-lax.cpp<br>
    cfe/trunk/test/SemaCXX/vector.cpp<br>
<br>
Modified: cfe/trunk/include/clang/Basic/LangOptions.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.def?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.def?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Basic/LangOptions.def (original)<br>
+++ cfe/trunk/include/clang/Basic/LangOptions.def Thu Sep 12 22:16:59 2019<br>
@@ -119,8 +119,7 @@ LANGOPT(AppleKext         , 1, 0, "Apple<br>
 BENIGN_LANGOPT(PascalStrings, 1, 0, "Pascal string support")<br>
 LANGOPT(WritableStrings   , 1, 0, "writable string support")<br>
 LANGOPT(ConstStrings      , 1, 0, "const-qualified string support")<br>
-ENUM_LANGOPT(LaxVectorConversions, LaxVectorConversionKind, 2,<br>
-             LaxVectorConversionKind::All, "lax vector conversions")<br>
+LANGOPT(LaxVectorConversions , 1, 1, "lax vector conversions")<br>
 LANGOPT(AltiVec           , 1, 0, "AltiVec-style vector initializers")<br>
 LANGOPT(ZVector           , 1, 0, "System z vector extensions")<br>
 LANGOPT(Exceptions        , 1, 0, "exception handling")<br>
<br>
Modified: cfe/trunk/include/clang/Basic/LangOptions.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Basic/LangOptions.h (original)<br>
+++ cfe/trunk/include/clang/Basic/LangOptions.h Thu Sep 12 22:16:59 2019<br>
@@ -184,16 +184,6 @@ public:<br>
     FEA_On<br>
   };<br>
<br>
-  enum class LaxVectorConversionKind {<br>
-    /// Permit no implicit vector bitcasts.<br>
-    None,<br>
-    /// Permit vector bitcasts between integer vectors with different numbers<br>
-    /// of elements but the same total bit-width.<br>
-    Integer,<br>
-    /// Permit vector bitcasts between all vectors with the same total<br>
-    /// bit-width.<br>
-    All,<br>
-  };<br>
<br>
 public:<br>
   /// Set of enabled sanitizers.<br>
<br>
Modified: cfe/trunk/include/clang/Driver/Options.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Driver/Options.td (original)<br>
+++ cfe/trunk/include/clang/Driver/Options.td Thu Sep 12 22:16:59 2019<br>
@@ -1274,10 +1274,7 @@ def fno_fine_grained_bitfield_accesses :<br>
   HelpText<"Use large-integer access for consecutive bitfield runs.">;<br>
<br>
 def flat__namespace : Flag<["-"], "flat_namespace">;<br>
-def flax_vector_conversions_EQ : Joined<["-"], "flax-vector-conversions=">, Group<f_Group>,<br>
-  HelpText<"Enable implicit vector bit-casts">, Values<"none,integer,all">, Flags<[CC1Option]>;<br>
-def flax_vector_conversions : Flag<["-"], "flax-vector-conversions">, Group<f_Group>,<br>
-  Alias<flax_vector_conversions_EQ>, AliasArgs<["integer"]>;<br>
+def flax_vector_conversions : Flag<["-"], "flax-vector-conversions">, Group<f_Group>;<br>
 def flimited_precision_EQ : Joined<["-"], "flimited-precision=">, Group<f_Group>;<br>
 def fapple_link_rtlib : Flag<["-"], "fapple-link-rtlib">, Group<f_Group>,<br>
   HelpText<"Force linking the clang builtins runtime library">;<br>
@@ -1451,7 +1448,7 @@ def fno_experimental_new_pass_manager :<br>
 def fveclib : Joined<["-"], "fveclib=">, Group<f_Group>, Flags<[CC1Option]>,<br>
     HelpText<"Use the given vector functions library">, Values<"Accelerate,MASSV,SVML,none">;<br>
 def fno_lax_vector_conversions : Flag<["-"], "fno-lax-vector-conversions">, Group<f_Group>,<br>
-  Alias<flax_vector_conversions_EQ>, AliasArgs<["none"]>;<br>
+  HelpText<"Disallow implicit conversions between vectors with a different number of elements or different element types">, Flags<[CC1Option]>;<br>
 def fno_merge_all_constants : Flag<["-"], "fno-merge-all-constants">, Group<f_Group>,<br>
   HelpText<"Disallow merging of constants">;<br>
 def fno_modules : Flag <["-"], "fno-modules">, Group<f_Group>,<br>
<br>
Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)<br>
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Thu Sep 12 22:16:59 2019<br>
@@ -4678,11 +4678,15 @@ void Clang::ConstructJob(Compilation &C,<br>
   if (TC.SupportsProfiling())<br>
     Args.AddLastArg(CmdArgs, options::OPT_mfentry);<br>
<br>
+  // -flax-vector-conversions is default.<br>
+  if (!Args.hasFlag(options::OPT_flax_vector_conversions,<br>
+                    options::OPT_fno_lax_vector_conversions))<br>
+    CmdArgs.push_back("-fno-lax-vector-conversions");<br>
+<br>
   if (Args.getLastArg(options::OPT_fapple_kext) ||<br>
       (Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType)))<br>
     CmdArgs.push_back("-fapple-kext");<br>
<br>
-  Args.AddLastArg(CmdArgs, options::OPT_flax_vector_conversions_EQ);<br>
   Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch);<br>
   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info);<br>
   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits);<br>
<br>
Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)<br>
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu Sep 12 22:16:59 2019<br>
@@ -2265,7 +2265,7 @@ void CompilerInvocation::setLangDefaults<br>
   if (Opts.OpenCL) {<br>
     Opts.AltiVec = 0;<br>
     Opts.ZVector = 0;<br>
-    Opts.setLaxVectorConversions(LangOptions::LaxVectorConversionKind::None);<br>
+    Opts.LaxVectorConversions = 0;<br>
     Opts.setDefaultFPContractMode(LangOptions::FPC_On);<br>
     Opts.NativeHalfType = 1;<br>
     Opts.NativeHalfArgsAndReturns = 1;<br>
@@ -2667,18 +2667,8 @@ static void ParseLangArgs(LangOptions &O<br>
   Opts.WritableStrings = Args.hasArg(OPT_fwritable_strings);<br>
   Opts.ConstStrings = Args.hasFlag(OPT_fconst_strings, OPT_fno_const_strings,<br>
                                    Opts.ConstStrings);<br>
-  if (Arg *A = Args.getLastArg(OPT_flax_vector_conversions_EQ)) {<br>
-    using LaxKind = LangOptions::LaxVectorConversionKind;<br>
-    if (auto Kind = llvm::StringSwitch<Optional<LaxKind>>(A->getValue())<br>
-                        .Case("none", LaxKind::None)<br>
-                        .Case("integer", LaxKind::Integer)<br>
-                        .Case("all", LaxKind::All)<br>
-                        .Default(llvm::None))<br>
-      Opts.setLaxVectorConversions(*Kind);<br>
-    else<br>
-      Diags.Report(diag::err_drv_invalid_value)<br>
-          << A->getAsString(Args) << A->getValue();<br>
-  }<br>
+  if (Args.hasArg(OPT_fno_lax_vector_conversions))<br>
+    Opts.LaxVectorConversions = 0;<br>
   if (Args.hasArg(OPT_fno_threadsafe_statics))<br>
     Opts.ThreadsafeStatics = 0;<br>
   Opts.Exceptions = Args.hasArg(OPT_fexceptions);<br>
<br>
Modified: cfe/trunk/lib/Sema/SemaExpr.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)<br>
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Thu Sep 12 22:16:59 2019<br>
@@ -6498,28 +6498,8 @@ bool Sema::areLaxCompatibleVectorTypes(Q<br>
 bool Sema::isLaxVectorConversion(QualType srcTy, QualType destTy) {<br>
   assert(destTy->isVectorType() || srcTy->isVectorType());<br>
<br>
-  switch (Context.getLangOpts().getLaxVectorConversions()) {<br>
-  case LangOptions::LaxVectorConversionKind::None:<br>
+  if (!Context.getLangOpts().LaxVectorConversions)<br>
     return false;<br>
-<br>
-  case LangOptions::LaxVectorConversionKind::Integer:<br>
-    if (!srcTy->isIntegralOrEnumerationType()) {<br>
-      auto *Vec = srcTy->getAs<VectorType>();<br>
-      if (!Vec || !Vec->getElementType()->isIntegralOrEnumerationType())<br>
-        return false;<br>
-    }<br>
-    if (!destTy->isIntegralOrEnumerationType()) {<br>
-      auto *Vec = destTy->getAs<VectorType>();<br>
-      if (!Vec || !Vec->getElementType()->isIntegralOrEnumerationType())<br>
-        return false;<br>
-    }<br>
-    // OK, integer (vector) -> integer (vector) bitcast.<br>
-    break;<br>
-<br>
-    case LangOptions::LaxVectorConversionKind::All:<br>
-    break;<br>
-  }<br>
-<br>
   return areLaxCompatibleVectorTypes(srcTy, destTy);<br>
 }<br>
<br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-vector.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-vector.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-vector.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // REQUIRES: systemz-registered-target<br>
-// RUN: %clang_cc1 -target-cpu z13 -triple s390x-ibm-linux -flax-vector-conversions=none \<br>
+// RUN: %clang_cc1 -target-cpu z13 -triple s390x-ibm-linux -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
<br>
 typedef __attribute__((vector_size(16))) signed char vec_schar;<br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-vector2.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector2.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector2.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-vector2.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-vector2.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // REQUIRES: systemz-registered-target<br>
-// RUN: %clang_cc1 -target-cpu z14 -triple s390x-ibm-linux -flax-vector-conversions=none \<br>
+// RUN: %clang_cc1 -target-cpu z14 -triple s390x-ibm-linux -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
<br>
 typedef __attribute__((vector_size(16))) signed char vec_schar;<br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-vector3.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector3.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-vector3.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-vector3.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-vector3.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // REQUIRES: systemz-registered-target<br>
-// RUN: %clang_cc1 -target-cpu arch13 -triple s390x-ibm-linux -flax-vector-conversions=none \<br>
+// RUN: %clang_cc1 -target-cpu arch13 -triple s390x-ibm-linux -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
<br>
 typedef __attribute__((vector_size(16))) signed char vec_schar;<br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector-error.c Thu Sep 12 22:16:59 2019<br>
@@ -1,6 +1,6 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \<br>
-// RUN: -fzvector -flax-vector-conversions=none \<br>
+// RUN: -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector.c Thu Sep 12 22:16:59 2019<br>
@@ -1,9 +1,9 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector2-error.c Thu Sep 12 22:16:59 2019<br>
@@ -1,6 +1,6 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \<br>
-// RUN: -fzvector -flax-vector-conversions=none \<br>
+// RUN: -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector2.c Thu Sep 12 22:16:59 2019<br>
@@ -1,9 +1,9 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
 // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector3-error.c Thu Sep 12 22:16:59 2019<br>
@@ -1,6 +1,6 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu arch13 -triple s390x-linux-gnu \<br>
-// RUN: -fzvector -flax-vector-conversions=none \<br>
+// RUN: -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-systemz-zvector3.c Thu Sep 12 22:16:59 2019<br>
@@ -1,9 +1,9 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu arch13 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
 // RUN: %clang_cc1 -target-cpu arch13 -triple s390x-linux-gnu \<br>
-// RUN: -O -fzvector -flax-vector-conversions=none \<br>
+// RUN: -O -fzvector -fno-lax-vector-conversions \<br>
 // RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM<br>
<br>
 #include <vecintrin.h><br>
<br>
Modified: cfe/trunk/test/CodeGen/builtins-wasm.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-wasm.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-wasm.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/builtins-wasm.c (original)<br>
+++ cfe/trunk/test/CodeGen/builtins-wasm.c Thu Sep 12 22:16:59 2019<br>
@@ -1,6 +1,6 @@<br>
-// RUN: %clang_cc1 -triple wasm32-unknown-unknown -target-feature +unimplemented-simd128 -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -flax-vector-conversions=none -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY32<br>
-// RUN: %clang_cc1 -triple wasm64-unknown-unknown -target-feature +unimplemented-simd128 -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -flax-vector-conversions=none -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY64<br>
-// RUN: not %clang_cc1 -triple wasm64-unknown-unknown -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -flax-vector-conversions=none -O3 -emit-llvm -o - %s 2>&1 | FileCheck %s -check-prefixes MISSING-SIMD<br>
+// RUN: %clang_cc1 -triple wasm32-unknown-unknown -target-feature +unimplemented-simd128 -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -fno-lax-vector-conversions -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY32<br>
+// RUN: %clang_cc1 -triple wasm64-unknown-unknown -target-feature +unimplemented-simd128 -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -fno-lax-vector-conversions -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY64<br>
+// RUN: not %clang_cc1 -triple wasm64-unknown-unknown -target-feature +nontrapping-fptoint -target-feature +exception-handling -target-feature +bulk-memory -fno-lax-vector-conversions -O3 -emit-llvm -o - %s 2>&1 | FileCheck %s -check-prefixes MISSING-SIMD<br>
<br>
 // SIMD convenience types<br>
 typedef char i8x16 __attribute((vector_size(16)));<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/builtins-systemz-zvector.cpp Thu Sep 12 22:16:59 2019<br>
@@ -1,6 +1,6 @@<br>
 // REQUIRES: systemz-registered-target<br>
 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \<br>
-// RUN: -fzvector -flax-vector-conversions=none -std=c++11 \<br>
+// RUN: -fzvector -fno-lax-vector-conversions -std=c++11 \<br>
 // RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s<br>
<br>
 bool gb;<br>
<br>
Modified: cfe/trunk/test/Headers/altivec-header.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/altivec-header.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/altivec-header.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/altivec-header.c (original)<br>
+++ cfe/trunk/test/Headers/altivec-header.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -o - %s | FileCheck %s<br>
-// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -flax-vector-conversions=none -o - %s | FileCheck %s<br>
+// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -fno-lax-vector-conversions -o - %s | FileCheck %s<br>
 // RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-feature +altivec -ffreestanding -emit-llvm -x c++ -o - %s | FileCheck %s<br>
<br>
 #include <altivec.h><br>
<br>
Modified: cfe/trunk/test/Headers/arm-neon-header.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/arm-neon-header.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/arm-neon-header.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/arm-neon-header.c (original)<br>
+++ cfe/trunk/test/Headers/arm-neon-header.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -triple thumbv7-apple-darwin10 -target-cpu cortex-a8 -fsyntax-only -Wvector-conversions -ffreestanding %s<br>
-// RUN: %clang_cc1 -triple thumbv7-apple-darwin10 -target-cpu cortex-a8 -fsyntax-only -flax-vector-conversions=none -ffreestanding %s<br>
+// RUN: %clang_cc1 -triple thumbv7-apple-darwin10 -target-cpu cortex-a8 -fsyntax-only -fno-lax-vector-conversions -ffreestanding %s<br>
 // RUN: %clang_cc1 -x c++ -triple thumbv7-apple-darwin10 -target-cpu cortex-a8 -fsyntax-only -Wvector-conversions -ffreestanding %s<br>
<br>
 // RUN: %clang -fsyntax-only               -ffreestanding --target=aarch64-none-eabi -march=armv8.2-a+fp16 -std=c89 -xc %s<br>
<br>
Modified: cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp (original)<br>
+++ cfe/trunk/test/Headers/x86-intrinsics-headers-clean.cpp Thu Sep 12 22:16:59 2019<br>
@@ -1,7 +1,7 @@<br>
 // Make sure the intrinsic headers compile cleanly with no warnings or errors.<br>
<br>
 // RUN: %clang_cc1 -ffreestanding -triple x86_64-unknown-unknown -Wsystem-headers \<br>
-// RUN:   -fsyntax-only -flax-vector-conversions=none -x c++ -verify %s<br>
+// RUN:   -fsyntax-only -fno-lax-vector-conversions -x c++ -verify %s<br>
<br>
 // expected-no-diagnostics<br>
<br>
<br>
Modified: cfe/trunk/test/Headers/x86-intrinsics-headers.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86-intrinsics-headers.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86-intrinsics-headers.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/x86-intrinsics-headers.c (original)<br>
+++ cfe/trunk/test/Headers/x86-intrinsics-headers.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding %s<br>
-// RUN: %clang_cc1 -fsyntax-only -ffreestanding -flax-vector-conversions=none %s<br>
+// RUN: %clang_cc1 -fsyntax-only -ffreestanding -fno-lax-vector-conversions %s<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s<br>
<br>
 #if defined(i386) || defined(__x86_64__)<br>
<br>
Modified: cfe/trunk/test/Headers/x86intrin-2.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86intrin-2.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86intrin-2.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/x86intrin-2.c (original)<br>
+++ cfe/trunk/test/Headers/x86intrin-2.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify<br>
-// RUN: %clang_cc1 -fsyntax-only -ffreestanding -flax-vector-conversions=none %s -verify<br>
+// RUN: %clang_cc1 -fsyntax-only -ffreestanding -fno-lax-vector-conversions %s -verify<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify<br>
 // expected-no-diagnostics<br>
<br>
<br>
Modified: cfe/trunk/test/Headers/x86intrin.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86intrin.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/x86intrin.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Headers/x86intrin.c (original)<br>
+++ cfe/trunk/test/Headers/x86intrin.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify<br>
-// RUN: %clang_cc1 -fsyntax-only -ffreestanding -flax-vector-conversions=none %s -verify<br>
+// RUN: %clang_cc1 -fsyntax-only -ffreestanding -fno-lax-vector-conversions %s -verify<br>
 // RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify<br>
 // expected-no-diagnostics<br>
<br>
<br>
Modified: cfe/trunk/test/Sema/ext_vector_casts.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/ext_vector_casts.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/ext_vector_casts.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Sema/ext_vector_casts.c (original)<br>
+++ cfe/trunk/test/Sema/ext_vector_casts.c Thu Sep 12 22:16:59 2019<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 -fsyntax-only -verify -flax-vector-conversions=none -Wconversion %s<br>
+// RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 -fsyntax-only -verify -fno-lax-vector-conversions -Wconversion %s<br>
<br>
 typedef __attribute__((ext_vector_type(8))) _Bool BoolVector; // expected-error {{invalid vector element type '_Bool'}}<br>
<br>
<br>
Modified: cfe/trunk/test/Sema/typedef-retain.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/typedef-retain.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/typedef-retain.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Sema/typedef-retain.c (original)<br>
+++ cfe/trunk/test/Sema/typedef-retain.c Thu Sep 12 22:16:59 2019<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang_cc1 -fsyntax-only -verify %s -flax-vector-conversions=none<br>
+// RUN: %clang_cc1 -fsyntax-only -verify %s -fno-lax-vector-conversions<br>
<br>
 typedef float float4 __attribute__((vector_size(16)));<br>
 typedef int int4 __attribute__((vector_size(16)));<br>
<br>
Modified: cfe/trunk/test/Sema/zvector.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/zvector.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/zvector.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Sema/zvector.c (original)<br>
+++ cfe/trunk/test/Sema/zvector.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -triple s390x-linux-gnu -fzvector \<br>
-// RUN:  -flax-vector-conversions=none -W -Wall -Wconversion \<br>
+// RUN:  -fno-lax-vector-conversions -W -Wall -Wconversion \<br>
 // RUN:  -Werror -fsyntax-only -verify %s<br>
<br>
 vector signed char sc, sc2;<br>
<br>
Modified: cfe/trunk/test/Sema/zvector2.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/zvector2.c?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/zvector2.c?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Sema/zvector2.c (original)<br>
+++ cfe/trunk/test/Sema/zvector2.c Thu Sep 12 22:16:59 2019<br>
@@ -1,5 +1,5 @@<br>
 // RUN: %clang_cc1 -triple s390x-linux-gnu -fzvector -target-cpu z14 \<br>
-// RUN:  -flax-vector-conversions=none -W -Wall -Wconversion \<br>
+// RUN:  -fno-lax-vector-conversions -W -Wall -Wconversion \<br>
 // RUN:  -Werror -fsyntax-only -verify %s<br>
<br>
 vector signed char sc, sc2;<br>
<br>
Modified: cfe/trunk/test/SemaCXX/altivec.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/altivec.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/altivec.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaCXX/altivec.cpp (original)<br>
+++ cfe/trunk/test/SemaCXX/altivec.cpp Thu Sep 12 22:16:59 2019<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang_cc1 -target-feature +altivec -flax-vector-conversions=none -triple powerpc-unknown-unknown -fcxx-exceptions -verify %s<br>
+// RUN: %clang_cc1 -target-feature +altivec -fno-lax-vector-conversions -triple powerpc-unknown-unknown -fcxx-exceptions -verify %s<br>
<br>
 typedef int V4i __attribute__((vector_size(16)));<br>
<br>
<br>
Modified: cfe/trunk/test/SemaCXX/vector-no-lax.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/vector-no-lax.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/vector-no-lax.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaCXX/vector-no-lax.cpp (original)<br>
+++ cfe/trunk/test/SemaCXX/vector-no-lax.cpp Thu Sep 12 22:16:59 2019<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -flax-vector-conversions=none -verify %s<br>
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fno-lax-vector-conversions -verify %s<br>
 typedef unsigned int __attribute__((vector_size (16))) vUInt32;<br>
 typedef int __attribute__((vector_size (16))) vSInt32;<br>
<br>
<br>
Modified: cfe/trunk/test/SemaCXX/vector.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/vector.cpp?rev=371813&r1=371812&r2=371813&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/vector.cpp?rev=371813&r1=371812&r2=371813&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaCXX/vector.cpp (original)<br>
+++ cfe/trunk/test/SemaCXX/vector.cpp Thu Sep 12 22:16:59 2019<br>
@@ -1,8 +1,6 @@<br>
-// RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 -fsyntax-only -verify %s<br>
-// RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 -fsyntax-only -verify -std=c++98 %s<br>
-// RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 -fsyntax-only -verify -std=c++11 %s<br>
-// RUN: %clang_cc1 -flax-vector-conversions=integer -triple x86_64-apple-darwin10 -fsyntax-only -verify %s -DNO_LAX_FLOAT<br>
-// RUN: %clang_cc1 -flax-vector-conversions=none -triple x86_64-apple-darwin10 -fsyntax-only -verify %s -DNO_LAX_FLOAT -DNO_LAX_INT<br>
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify %s<br>
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify -std=c++98 %s<br>
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify -std=c++11 %s<br>
<br>
 typedef char char16 __attribute__ ((__vector_size__ (16)));<br>
 typedef long long longlong16 __attribute__ ((__vector_size__ (16)));<br>
@@ -10,19 +8,13 @@ typedef char char16_e __attribute__ ((__<br>
 typedef long long longlong16_e __attribute__ ((__ext_vector_type__ (2)));<br>
<br>
 // Test overloading and function calls with vector types.<br>
-void f0(char16); // expected-note 0+{{candidate}}<br>
+void f0(char16);<br>
<br>
 void f0_test(char16 c16, longlong16 ll16, char16_e c16e, longlong16_e ll16e) {<br>
   f0(c16);<br>
   f0(ll16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
   f0(c16e);<br>
   f0(ll16e);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
 }<br>
<br>
 int &f1(char16);<br>
@@ -35,14 +27,12 @@ void f1_test(char16 c16, longlong16 ll16<br>
   float &fr2 = f1(ll16e);<br>
 }<br>
<br>
-void f2(char16_e); // expected-note 0+{{candidate}}<br>
+void f2(char16_e); // expected-note{{no known conversion from 'longlong16_e' (vector of 2 'long long' values) to 'char16_e' (vector of 16 'char' values) for 1st argument}} \<br>
+       // expected-note{{candidate function not viable: no known conversion from 'convertible_to<longlong16_e>' to 'char16_e' (vector of 16 'char' values) for 1st argument}}<br>
<br>
 void f2_test(char16 c16, longlong16 ll16, char16_e c16e, longlong16_e ll16e) {<br>
   f2(c16);<br>
   f2(ll16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
   f2(c16e);<br>
   f2(ll16e); // expected-error{{no matching function}}<br>
   f2('a');<br>
@@ -68,11 +58,6 @@ void conditional(bool Cond, char16 c16,<br>
   (void)(Cond? c16 : ll16);<br>
   (void)(Cond? ll16e : c16e);<br>
   (void)(Cond? ll16e : c16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-4 {{cannot convert}}<br>
-  // expected-error@-4 {{cannot convert}}<br>
-  // expected-error@-4 {{cannot convert}}<br>
-#endif<br>
 }<br>
<br>
 // Test C++ cast'ing of vector types.<br>
@@ -100,16 +85,9 @@ void casts(longlong16 ll16, longlong16_e<br>
   // static_cast<br>
   (void)static_cast<char16>(ll16);<br>
   (void)static_cast<char16_e>(ll16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-3 {{not allowed}}<br>
-  // expected-error@-3 {{not allowed}}<br>
-#endif<br>
   (void)static_cast<longlong16>(ll16);<br>
   (void)static_cast<longlong16_e>(ll16);<br>
   (void)static_cast<char16>(ll16e);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{not allowed}}<br>
-#endif<br>
   (void)static_cast<char16_e>(ll16e); // expected-error{{static_cast from 'longlong16_e' (vector of 2 'long long' values) to 'char16_e' (vector of 16 'char' values) is not allowed}}<br>
   (void)static_cast<longlong16>(ll16e);<br>
   (void)static_cast<longlong16_e>(ll16e);<br>
@@ -143,19 +121,10 @@ void test_implicit_conversions(bool Cond<br>
                                convertible_to<char16_e&> rto_c16e) {<br>
   f0(to_c16);<br>
   f0(to_ll16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
   f0(to_c16e);<br>
   f0(to_ll16e);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
   f2(to_c16);<br>
   f2(to_ll16);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-2 {{no matching function}}<br>
-#endif<br>
   f2(to_c16e);<br>
   f2(to_ll16e); // expected-error{{no matching function}}<br>
<br>
@@ -224,10 +193,6 @@ void test_implicit_conversions(bool Cond<br>
   // These 2 are convertible with -flax-vector-conversions (default)<br>
   (void)(Cond? to_c16 : to_ll16);<br>
   (void)(Cond? to_c16e : to_ll16e);<br>
-#ifdef NO_LAX_INT<br>
-  // expected-error@-3 {{cannot convert}}<br>
-  // expected-error@-3 {{cannot convert}}<br>
-#endif<br>
 }<br>
<br>
 typedef float fltx2 __attribute__((__vector_size__(8)));<br>
@@ -238,10 +203,6 @@ typedef double dblx4 __attribute__((__ve<br>
 void accept_fltx2(fltx2); // expected-note{{candidate function not viable: no known conversion from 'double' to 'fltx2' (vector of 2 'float' values) for 1st argument}}<br>
 void accept_fltx4(fltx4);<br>
 void accept_dblx2(dblx2);<br>
-#ifdef NO_LAX_FLOAT<br>
-// expected-note@-3 {{no known conversion}}<br>
-// expected-note@-3 {{no known conversion}}<br>
-#endif<br>
 void accept_dblx4(dblx4);<br>
 void accept_bool(bool); // expected-note{{candidate function not viable: no known conversion from 'fltx2' (vector of 2 'float' values) to 'bool' for 1st argument}}<br>
<br>
@@ -253,12 +214,9 @@ void test(fltx2 fltx2_val, fltx4 fltx4_v<br>
   accept_dblx4(dblx4_val);<br>
<br>
   // Same-size conversions<br>
+  // FIXME: G++ rejects these conversions, we accept them. Revisit this!<br>
   accept_fltx4(dblx2_val);<br>
   accept_dblx2(fltx4_val);<br>
-#ifdef NO_LAX_FLOAT<br>
-  // expected-error@-3 {{no matching function}}<br>
-  // expected-error@-3 {{no matching function}}<br>
-#endif<br>
<br>
   // Conversion to bool.<br>
   accept_bool(fltx2_val); // expected-error{{no matching function for call to 'accept_bool'}}<br>
@@ -269,9 +227,9 @@ void test(fltx2 fltx2_val, fltx4 fltx4_v<br>
<br>
 typedef int intx4 __attribute__((__vector_size__(16)));<br>
 typedef int inte4 __attribute__((__ext_vector_type__(4)));<br>
-typedef float flte4 __attribute__((__ext_vector_type__(4)));<br>
+typedef int flte4 __attribute__((__ext_vector_type__(4)));<br>
<br>
-void test_mixed_vector_types(fltx4 f, intx4 n, flte4 g, inte4 m) {<br>
+void test_mixed_vector_types(fltx4 f, intx4 n, flte4 g, flte4 m) {<br>
   (void)(f == g);<br>
   (void)(g != f);<br>
   (void)(f <= g);<br>
@@ -337,40 +295,40 @@ typedef bool bad __attribute__((__vector<br>
 namespace Templates {<br>
 template <typename Elt, unsigned Size><br>
 struct TemplateVectorType {<br>
-  typedef Elt __attribute__((__vector_size__(Size))) type; // #1<br>
+  typedef Elt __attribute__((__vector_size__(Size))) type;<br>
 };<br>
<br>
 template <int N, typename T><br>
 struct PR15730 {<br>
   typedef T __attribute__((vector_size(N * sizeof(T)))) type;<br>
-  typedef T __attribute__((vector_size(8192))) type2; // #2<br>
-  typedef T __attribute__((vector_size(3))) type3; // #3<br>
+  typedef T __attribute__((vector_size(8192))) type2;<br>
+  typedef T __attribute__((vector_size(3))) type3;<br>
 };<br>
<br>
 void Init() {<br>
   const TemplateVectorType<float, 32>::type Works = {};<br>
   const TemplateVectorType<int, 32>::type Works2 = {};<br>
-  // expected-error@#1 {{invalid vector element type 'bool'}}<br>
+  // expected-error@298 {{invalid vector element type 'bool'}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<bool, 32>' requested here}}<br>
   const TemplateVectorType<bool, 32>::type NoBool;<br>
-  // expected-error@#1 {{invalid vector element type 'int __attribute__((ext_vector_type(4)))' (vector of 4 'int' values)}}<br>
+  // expected-error@298 {{invalid vector element type 'int __attribute__((ext_vector_type(4)))' (vector of 4 'int' values)}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int __attribute__((ext_vector_type(4))), 32>' requested here}}<br>
   const TemplateVectorType<vi4, 32>::type NoComplex;<br>
-  // expected-error@#1 {{vector size not an integral multiple of component size}}<br>
+  // expected-error@298 {{vector size not an integral multiple of component size}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 33>' requested here}}<br>
   const TemplateVectorType<int, 33>::type BadSize;<br>
-  // expected-error@#1 {{vector size too large}}<br>
+  // expected-error@298 {{vector size too large}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 8192>' requested here}}<br>
   const TemplateVectorType<int, 8192>::type TooLarge;<br>
-  // expected-error@#1 {{zero vector size}}<br>
+  // expected-error@298 {{zero vector size}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 0>' requested here}}<br>
   const TemplateVectorType<int, 0>::type Zero;<br>
<br>
-  // expected-error@#2 {{vector size too large}}<br>
-  // expected-error@#3 {{vector size not an integral multiple of component size}}<br>
+  // expected-error@304 {{vector size too large}}<br>
+  // expected-error@305 {{vector size not an integral multiple of component size}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::PR15730<8, int>' requested here}}<br>
   const PR15730<8, int>::type PR15730_1 = {};<br>
-  // expected-error@#2 {{vector size too large}}<br>
+  // expected-error@304 {{vector size too large}}<br>
   // expected-note@+1 {{in instantiation of template class 'Templates::PR15730<8, char>' requested here}}<br>
   const PR15730<8, char>::type2 PR15730_2 = {};<br>
 }<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>