For PR17164: split -fno-lax-vector-conversion into three different
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 13 Sep 2019 02:20:00 +0000 (02:20 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 13 Sep 2019 02:20:00 +0000 (02:20 +0000)
commit49c4e58b75ecec8dce75dd13c61aaeb30e14b531
treee3f6c7ecea4c744d4f12b1c1fabf4edcf2eace7e
parent51ead00bf81cd92a868bdd1551a06ec5efdb563b
For PR17164: split -fno-lax-vector-conversion into three different
levels:

 -- none: no lax vector conversions [new GCC default]
 -- integer: only conversions between integer vectors [old GCC default]
 -- all: all conversions between same-size vectors [Clang default]

For now, Clang still defaults to "all" mode, but per my proposal on
cfe-dev (2019-04-10) the default will be changed to "integer" as soon as
that doesn't break lots of testcases. (Eventually I'd like to change the
default to "none" to match GCC and general sanity.)

Following GCC's behavior, the driver flag -flax-vector-conversions is
translated to -flax-vector-conversions=integer.

llvm-svn: 371805
30 files changed:
clang/include/clang/Basic/LangOptions.def
clang/include/clang/Basic/LangOptions.h
clang/include/clang/Driver/Options.td
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/lib/Sema/SemaExpr.cpp
clang/test/CodeGen/builtins-systemz-vector.c
clang/test/CodeGen/builtins-systemz-vector2.c
clang/test/CodeGen/builtins-systemz-vector3.c
clang/test/CodeGen/builtins-systemz-zvector-error.c
clang/test/CodeGen/builtins-systemz-zvector.c
clang/test/CodeGen/builtins-systemz-zvector2-error.c
clang/test/CodeGen/builtins-systemz-zvector2.c
clang/test/CodeGen/builtins-systemz-zvector3-error.c
clang/test/CodeGen/builtins-systemz-zvector3.c
clang/test/CodeGen/builtins-wasm.c
clang/test/CodeGenCXX/builtins-systemz-zvector.cpp
clang/test/Headers/altivec-header.c
clang/test/Headers/arm-neon-header.c
clang/test/Headers/x86-intrinsics-headers-clean.cpp
clang/test/Headers/x86-intrinsics-headers.c
clang/test/Headers/x86intrin-2.c
clang/test/Headers/x86intrin.c
clang/test/Sema/ext_vector_casts.c
clang/test/Sema/typedef-retain.c
clang/test/Sema/zvector.c
clang/test/Sema/zvector2.c
clang/test/SemaCXX/altivec.cpp
clang/test/SemaCXX/vector-no-lax.cpp
clang/test/SemaCXX/vector.cpp