Unfortunately, there is no way to emit an llvm masked load/store in
clang without optimizations, and AVX enabled. Unsure how we should go
about making sure this test only runs if it's possible to execute AVC
code.
Details
- Reviewers
kcc vitalybuka pgousseau - Commits
- rG2f461bf24ad7: Compiler-rt part of D26230: Add (constant) masked load/store support (Try #2)
rGbca5fd4f812d: Compiler-rt part of D26230: Add (constant) masked load/store support
rCRT288504: Compiler-rt part of D26230: Add (constant) masked load/store support (Try #2)
rCRT288162: Compiler-rt part of D26230: Add (constant) masked load/store support
rL288504: Compiler-rt part of D26230: Add (constant) masked load/store support (Try #2)
rL288162: Compiler-rt part of D26230: Add (constant) masked load/store support
Diff Detail
- Repository
- rL LLVM
Event Timeline
I've tried pushing this test, but one of the buildbots (at least) doesn't have AVX support. And AVX/AVX2 are the only things on X86 that will generate those masked loads/stores.
I'd go with either:
No testing on compiler-rt (ASan doesn't behave differently in the face of masked ops, so we should be able to go by with only the tests from llvm) Testing on compiler-rt using IR, *assuming* we can lower calls to masked.loads/stores even on non-AVX CPUs Testing on compiler-rt using some other arch that's not X86 (I don't really have the hardware to try that out, though)
No. That feature is not detected at all and there's no cmake scaffolding to expose it.
I think this test is too specific, and piggybacking on things that are tested (we're testing the instrumentation itself in llvm-land, callbacks, etc, are the exact same as regular instrumentation).
Since this is a matter of instrument (the exact same way as regular loads/stores) vs. no instrument, I think it's not useful to add all the scaffolding for this test.
If the handling in compiler-rt were in some way different from regular loads/stores, then I think we should add it. But as it is, I'm not sure it's worth the effort.
I was thinking about running grep /proc/cpuinfo (and systl hw on Darwin) in lit.cfg to detect AVX. Anyway, I'm fine with dropping this test (and just having the instrumentation test).