Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
1,820 ms | x64 debian > libarcher.races::parallel-simple.c |
Event Timeline
Comment Actions
What happens for truncating stores, extending loads, etc? For example, does DAGCombine combine masked.load+sext by default or is it opt-in?
Comment Actions
I couldn’t find a combine in DAGCombiner.cpp. As far as I could tell they can only be generated by the type legalizer. I think the fractional LMUL types mean we never Promote any i8/i16/i32 types so we won’t create an extending load or truncating store.
Comment Actions
Fair enough, that's what I've seen with scatter/gather too.
Anyway, LGTM. Do all-true masks get auto-optimized to regular loads (edit: or stores, obviously), even for scalable vectors?
Comment Actions
Not yet. We need to migrate the code from using isBuildVectorAllZeros/Ones to the other function that considers splat_vector.