This is an archive of the discontinued LLVM Phabricator instance.

[MSAN] Implement experiemental vector reduction intrinsics
ClosedPublic

Authored by guiand on Jun 30 2020, 4:12 PM.

Details

Summary

Implement llvm.experiemental.vector.{add,mul,or,and,...}.
An IR test is included but no C test for lack of good way to
get the compiler to emit these.

These vectorized shadow operations for the and/or case
were shown mathematically to be equivalent to the binary
operations already present in MSAN.

Diff Detail

Event Timeline

guiand created this revision.Jun 30 2020, 4:12 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 30 2020, 4:12 PM
eugenis added inline comments.Jun 30 2020, 5:29 PM
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
3164

This is not correct for v2 intrinsics, they have an extra scalar argument.

guiand updated this revision to Diff 274880.Jul 1 2020, 11:17 AM

I removed the v2 intrinsic handling

guiand marked an inline comment as done.Jul 1 2020, 11:17 AM
eugenis accepted this revision.Jul 13 2020, 4:23 PM

LGTM

This revision is now accepted and ready to land.Jul 13 2020, 4:23 PM
This revision was automatically updated to reflect the committed changes.