[llvm] [msan] Handle NEON matrix multiplication (integral) (PR #174510)
Florian Mayer via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 14 09:47:12 PST 2026
================
@@ -5350,6 +5350,98 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
}
}
+ // <4 x i32> @llvm.aarch64.neon.smmla.v4i32.v16i8
+ // (<4 x i32> %R, <16 x i8> %X, <16 x i8> %Y)
+ // <4 x i32> @llvm.aarch64.neon.ummla.v4i32.v16i8
+ // (<4 x i32> %R, <16 x i8> %X, <16 x i8> %Y)
+ // <4 x i32> @llvm.aarch64.neon.usmmla.v4i32.v16i8
+ // (<4 x i32> R%, <16 x i8> %X, <16 x i8> %Y)
+ //
+ // Note:
+ // - < 4 x *> is a 2x2 matrix
+ // - <16 x *> is a 2x8 matrix and 8x2 matrix respectively
+ //
+ // The general shadow propagation approach is:
+ // 1) get the shadows of the input matrices
+ // 2) change the shadow values to 0x1 if the corresponding value is fully
+ // initialized, and 0x0 otherwise
+ // 3) perform a matrix multiplication on the shadows. The output will be a 2x2
+ // matrix, where a value of 0x8 means all the inputs were clean.
----------------
fmayer wrote:
clarify this that that means all inputs that were used for this elements calculation were clean
https://github.com/llvm/llvm-project/pull/174510
More information about the llvm-commits
mailing list