Issue 120169
Summary [TargetTransformUtils][VectorUtils] Update `isTriviallyVectorizable` to accept target intrinsics
Labels new issue
Assignees
Reporter inbelic
    As part of [previous work](https://github.com/llvm/llvm-project/issues/117030), we want to consolidate the usage of the `is[Trivially|VectorIntrinsic]...` functions in `VectorUtils.h`. The remaining work is to let `isTriviallyVectorizable` allow target-specific intrinsics denote if they are trivially vectorizable.

The difficulty in this issue is to justify when we should pass a `nullptr` into the updated function calls, as there are a number of functions (`getVectorIntrinsicIDForCall`, `isNotCrossLaneOpartion`, etc.) that use the function.

AC:
- [ ] Implement `isTargetIntrinsicTriviallyVectorizable` in `TargetTransformInfo.[h|cpp]` and `BasicTTIImpl.h`
- [ ] Update `isTriviallyVectorizable` to accept a `TargetTransformInfo` parameter and invoke `isTargetIntrinsicTriviallyVectorizable`
- [ ] Update all use-cases of `isTriviallyVectorizable` to provide a TTI or a motivated reason to provide `nullptr`
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to