diff options
author | Shilei Tian <i@tianshilei.me> | 2025-01-21 09:18:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-21 09:18:16 -0500 |
commit | 03744d2aaffee04bc1e4d0668c41556c3c20d406 (patch) | |
tree | eaac7af7ab31e54b274d3778f8e24e2175763da3 /clang/lib/Basic/LangOptions.cpp | |
parent | 29f7392c73dcd514a4581ba4b9c4ee0cee730145 (diff) | |
download | llvm-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.cpp | 2 |
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) { |