[all-commits] [llvm/llvm-project] 537858: [Clang] Freeze padded vectors before storing. (#16...
Florian Hahn via All-commits
all-commits at lists.llvm.org
Tue Oct 28 19:03:38 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 53785846aa11bdecbbb683e1ebec9461539f1e97
https://github.com/llvm/llvm-project/commit/53785846aa11bdecbbb683e1ebec9461539f1e97
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
A clang/test/CodeGen/AArch64/ext-vector-coercion.c
M clang/test/CodeGenCXX/matrix-vector-bit-int.cpp
M clang/test/CodeGenOpenCL/preserve_vec3.cl
Log Message:
-----------
[Clang] Freeze padded vectors before storing. (#164821)
Currently Clang usually leaves padding bits uninitialized, which means
they are undef at the moment.
When expanding stores of vector types to include padding, the padding
lanes will be poison, hence the padding bits will be poison.
This interacts badly with coercion of arguments and return values, where
3 x float vectors will be loaded as i128 integer; poisoning the padding
bits will make the whole value poison.
Not sure if there's a better way, but I think we have a number of places
that currently rely on the padding being undef, not poison.
PR: https://github.com/llvm/llvm-project/pull/164821
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list