This patch fixes an invalid TypeSize->uint64_t implicit conversion in
FoldReinterpretLoadFromConst. If the size of the constant is scalable
we bail out of the optimisation for now.
Tests added here:
Transforms/InstCombine/load-store-forward.ll
| Paths 
 |  Differential  D120240  
[InstCombine] Bail out of load-store forwarding for scalable vector types ClosedPublic Authored by david-arm on Feb 21 2022, 2:50 AM. 
Details Summary This patch fixes an invalid TypeSize->uint64_t implicit conversion in Tests added here: Transforms/InstCombine/load-store-forward.ll 
Diff Detail 
Unit TestsFailed Event Timelinesdesmalen added inline comments. 
 This revision is now accepted and ready to land.Feb 21 2022, 8:29 AM This revision was landed with ongoing or failed builds.Feb 22 2022, 1:26 AM Closed by commit rG47eff645d8e8: [InstCombine] Bail out of load-store forwarding for scalable vector types (authored by david-arm).  ·  Explain Why This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
Diff 410260 llvm/lib/Analysis/ConstantFolding.cpp
 llvm/test/Transforms/InstCombine/load-store-forward.ll
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nit: move this closer to its first use, i.e. line 599, thus below the if (Offset <= -1 * static_cast<....) condition that returns UndefValue.