aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/LangOptions.cpp
diff options
context:
space:
mode:
authorShilei Tian <i@tianshilei.me>2025-01-21 09:18:16 -0500
committerGitHub <noreply@github.com>2025-01-21 09:18:16 -0500
commit03744d2aaffee04bc1e4d0668c41556c3c20d406 (patch)
treeeaac7af7ab31e54b274d3778f8e24e2175763da3 /clang/lib/Basic/LangOptions.cpp
parent29f7392c73dcd514a4581ba4b9c4ee0cee730145 (diff)
downloadllvm-03744d2aaffee04bc1e4d0668c41556c3c20d406.zip
llvm-03744d2aaffee04bc1e4d0668c41556c3c20d406.tar.gz
llvm-03744d2aaffee04bc1e4d0668c41556c3c20d406.tar.bz2
[Clang] Remove 3-element vector load and store special handling (#104661)
Clang uses a long-time special handling of the case where 3 element vector loads and stores are performed as 4 element, and then a shufflevector is used to extract the used elements. Odd sized vector codegen should now work reasonably well. This patch removes the compiler argument `-fpreserve-vec3-type` and adds a target hook to determine if the special handling of vector type is needed. --------- Co-authored-by: Matt Arsenault <Matthew.Arsenault@amd.com>
Diffstat (limited to 'clang/lib/Basic/LangOptions.cpp')
-rw-r--r--clang/lib/Basic/LangOptions.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/LangOptions.cpp b/clang/lib/Basic/LangOptions.cpp
index 94caf6a..e3037ec 100644
--- a/clang/lib/Basic/LangOptions.cpp
+++ b/clang/lib/Basic/LangOptions.cpp
@@ -208,6 +208,8 @@ void LangOptions::setLangDefaults(LangOptions &Opts, Language Lang,
// OpenCL and HLSL have half keyword
Opts.Half = Opts.OpenCL || Opts.HLSL;
+
+ Opts.PreserveVec3Type = Opts.HLSL;
}
FPOptions FPOptions::defaultWithoutTrailingStorage(const LangOptions &LO) {