mirror-llvm-project/llvm
LU-JOHN eda2fb2d41
[AMDGPU] Fix canonicalization of undef in v2f16 (#213373)
When processing canonicalization with an undef in v2f16,
1. If the other element is constant, create a splat vector
2. Otherwise, convert undef to 0.0.

Update comment to make this behavior clear. Do not imply that a v2f16
with two undef's should be unconverted. Do not state that conversion of
undef to qNan is normal. `ConstantFoldScalarCall1` in
`llvm/lib/Analysis/ConstantFolding.cpp` already canonicalizes an undef
to 0.0.

Previous code only converted element 0 if element 1 was a constant.

Signed-off-by: John Lu <John.Lu@amd.com>
2026-07-31 19:34:21 -05:00
..
benchmarks [ADT] Add single-pass merge for ImmutableSet/ImmutableMap (#209807) 2026-07-21 12:33:28 +01:00
bindings [IR] Remove deprecated BranchInst (#212095) 2026-07-26 19:07:01 +02:00
cmake [Darwin][tests] Partially restore some of the change in #212329 (#212826) 2026-07-29 17:56:05 +00:00
docs [IPO] Remove IR Outliner (#211971) 2026-07-31 15:03:31 -07:00
examples
include [DropAssumes] Print drop-deref in pipeline where appropriate (#211905) 2026-07-31 15:28:13 -07:00
lib [AMDGPU] Fix canonicalization of undef in v2f16 (#213373) 2026-07-31 19:34:21 -05:00
projects
resources
runtimes [LLVM] Remove 'LLVM_LIBC_GPU_BUILD' logic (#211265) 2026-07-22 11:11:55 -05:00
test [AMDGPU] Fix canonicalization of undef in v2f16 (#213373) 2026-07-31 19:34:21 -05:00
tools [IPO] Remove IR Outliner (#211971) 2026-07-31 15:03:31 -07:00
unittests [IPO] Remove IR Outliner (#211971) 2026-07-31 15:03:31 -07:00
utils [IPO] Remove IR Outliner (#211971) 2026-07-31 15:03:31 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [LLVM] Remove 'LLVM_LIBC_GPU_BUILD' logic (#211265) 2026-07-22 11:11:55 -05:00
CMakePresets.json
configure
CREDITS.TXT
LICENSE.TXT
Maintainers.md
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.md for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.