This is an archive of the discontinued LLVM Phabricator instance.

Handle instrumentation of scalar single-precision (_ss) intrinsics
ClosedPublic

Authored by capn on May 3 2022, 1:20 PM.

Details

Summary

Instrumentation of scalar double-precision intrinsics such as
x86_sse41_round_sd was already handled by https://reviews.llvm.org/D82398,
but not their single-precision counterparts.

https://issuetracker.google.com/172238865

Diff Detail

Event Timeline

capn created this revision.May 3 2022, 1:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 3 2022, 1:20 PM
capn requested review of this revision.May 3 2022, 1:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 3 2022, 1:20 PM

Please rebase the patch. I added tests, it should fail with your patch, so they need to be updated.
As is compiler crashes after that patch.

llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
3229–3233
3508–3509

sse41_round_sd and Intrinsic::x86_sse41_round_ss have 3 operands
rcp and rsqrt have 2 operands, and Value *Second = getShadow(&I, 1); is not vector

capn updated this revision to Diff 428714.May 11 2022, 10:55 AM
capn edited the summary of this revision. (Show Details)

Drop rcpss/rsqrtss handling, fix unsigned iterator, and update test tests.

capn marked 2 inline comments as done.May 18 2022, 6:15 AM
vitalybuka accepted this revision.May 19 2022, 1:55 PM
This revision is now accepted and ready to land.May 19 2022, 1:55 PM
vitalybuka edited the summary of this revision. (Show Details)May 19 2022, 1:56 PM
This revision was landed with ongoing or failed builds.May 19 2022, 1:57 PM
This revision was automatically updated to reflect the committed changes.