Before falling back to CreateCoercedStore, detect a scalable vector
return being coerced to fixed vector. Handle it using a vector.extract
intrinsic without going through memory.
This is an alternative to D155222.
| Paths 
 |  Differential  D155495  
[RISCV][AArch64][IRGen] Add a special case to CodeGenFunction::EmitCall for scalable vector return being coerced to fixed vector. ClosedPublic Authored by craig.topper on Jul 17 2023, 10:25 AM. 
Details Summary Before falling back to CreateCoercedStore, detect a scalable vector This is an alternative to D155222. 
Diff Detail 
 Event TimelineComment Actions Thanks Craig this is a better solution, LLVM cleans up the store/load coercion nicely but better not to create them in the first place if possible. LGTM cheers 
 This revision is now accepted and ready to land.Jul 18 2023, 1:19 AM This revision was landed with ongoing or failed builds.Jul 18 2023, 10:04 AM Closed by commit rGd53d842d12ce: [RISCV][AArch64][IRGen] Add a special case to CodeGenFunction::EmitCall for… (authored by craig.topper).  ·  Explain Why This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
Diff 541614 clang/lib/CodeGen/CGCall.cpp
 clang/test/CodeGen/attr-arm-sve-vector-bits-call.c
 clang/test/CodeGen/attr-riscv-rvv-vector-bits-call.c
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nit: RetIRTy