If don't specified a target default, the option -prefer-predicate-over-epilogue will be ignored.
then, we can add option -enable-masked-interleaved-mem-accesses to get same behavior as before the changes.
Details
- Reviewers
RKSimon fhahn dmgreen craig.topper david-arm
Diff Detail
Unit Tests
Time | Test | |
---|---|---|
290 ms | x64 debian > Clang.Modules::stress1.cpp | |
1,040 ms | x64 windows > Clang.Modules::stress1.cpp |
Event Timeline
llvm/lib/Target/ARM/ARMTargetTransformInfo.h | ||
---|---|---|
311 | Maybe I'm missing something, but this feels like quite a huge change that isn't described in the subject line or in the commit message? Currently for RISCV and ARM backends this always returns false. Enabling this by default for two different targets could cause performance regressions, and I'm not sure this is what you actually want? |
I'm not sure I understand what this is trying to do, but yes, I'm pretty sure enableMaskedInterleavedAccessVectorization should not be enabled for MVE.
llvm/lib/Target/ARM/ARMTargetTransformInfo.h | ||
---|---|---|
311 | The motivation is described in issue 63977. When the -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue option is added, the common non-mask loop vector is still enabled, now https://gcc.godbolt.org/z/3z7e3rh1T
|
Maybe I'm missing something, but this feels like quite a huge change that isn't described in the subject line or in the commit message? Currently for RISCV and ARM backends this always returns false.
Enabling this by default for two different targets could cause performance regressions, and I'm not sure this is what you actually want?