[llvm] [LV] Add initial support for vectorizing literal struct return values (PR #109833)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 15 04:20:23 PDT 2024


MacDue wrote:

I'm looking into the multiple results now, I think it may require some amount of refactoring. The recipes likely affected all inherit from `VPRecipeWithIRFlags` which in turn inherits from `VPSingleDefRecipe`. 

- VPWidenCallRecipe -> VPRecipeWithIRFlags -> VPSingleDefRecipe
- VPWidenIntrinsicRecipe -> VPRecipeWithIRFlags -> VPSingleDefRecipe
- VPReplicateRecipe -> VPRecipeWithIRFlags -> VPSingleDefRecipe

Fast math flags can also apply to struct results (see #110506). So if we go with the multiple results approach, I don't think  `VPRecipeWithIRFlags` can stay a `VPSingleDefRecipe`, since even if we make new recipes for widen call/intrinsic the new  
recipes would need to be some kind of `VPRecipeWithIRFlags`.

I'll see what I can prototype today :slightly_smiling_face: 



https://github.com/llvm/llvm-project/pull/109833


More information about the llvm-commits mailing list