This is an archive of the discontinued LLVM Phabricator instance.

[ARM/AArch64] Relocate and update InterleavedAccessPass tests (NFC)
ClosedPublic

Authored by mssimpso on Jan 26 2017, 8:53 AM.

Details

Summary

The interleaved access pass is an IR-to-IR transformation that runs before code generation. It matches interleaved memory operations to target-specific intrinsics (that are later lowered to load and store multiple instructions on ARM/AArch64). We place tests for similar passes (e.g., GlobalMergePass) under test/Transforms. This patch moves the InterleavedAccessPass tests out of test/CodeGen and into target-specific directories under test/Transforms/InterleavedAccess.

Although the pass is an IR pass, many of the existing tests were llc tests rather opt tests. For example, the tests would check for ldN/stN instructions generated by llc rather than the intrinsic calls the pass actually inserts. Thus, this patch updates all tests to be opt tests that check for the inserted intrinsics. We already have separate CodeGen tests that ensure we lower the interleaved access intrinsics to their corresponding ldN/stN instructions. In addition to migrating the tests to opt, this patch also performs some minor clean-up (to ensure consistent naming, etc.).

Diff Detail

Repository
rL LLVM

Event Timeline

mssimpso created this revision.Jan 26 2017, 8:53 AM
mssimpso updated this revision to Diff 85925.Jan 26 2017, 9:02 AM

Added llvm-commits

mkuper edited edge metadata.Jan 26 2017, 10:32 AM

I'm not familiar enough with ARM to actually go over the tests, but the idea LGTM, this is how we should be testing this.

mcrosier accepted this revision.Jan 26 2017, 11:58 AM

I agree these llc tests should be opt tests. Thanks for cleaning this up. LGTM.

This revision is now accepted and ready to land.Jan 26 2017, 11:58 AM
This revision was automatically updated to reflect the committed changes.
llvm/trunk/test/CodeGen/ARM/arm-interleaved-accesses-extract-user.ll