diff options
author | Craig Topper <craig.topper@sifive.com> | 2022-09-16 12:59:13 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2022-09-16 13:19:02 -0700 |
commit | 1121eca685a39c1fc370daa65ff918a3cd490dc4 (patch) | |
tree | 4dedf1c88716448a3780aa172a933ae22d84c1d3 /llvm/lib/CodeGen/TargetLoweringBase.cpp | |
parent | 8ace9ea258c9ddc2e1e1c50cabde328ea10e34cf (diff) | |
download | llvm-1121eca685a39c1fc370daa65ff918a3cd490dc4.zip llvm-1121eca685a39c1fc370daa65ff918a3cd490dc4.tar.gz llvm-1121eca685a39c1fc370daa65ff918a3cd490dc4.tar.bz2 |
[VP][VE] Default VP_SREM/UREM to Expand and add generic expansion using VP_SDIV/UDIV+VP_MUL+VP_SUB.
I want to default all VP operations to Expand. These 2 were blocking
because VE doesn't support them and the tests were expecting them
to fail a specific way. Using Expand caused them to fail differently.
Seemed better to emulate them using operations that are supported.
@simoll mentioned on Discord that VE has some expansion downstream. Not
sure if its done like this or in the VE target.
Reviewed By: frasercrmck, efocht
Differential Revision: https://reviews.llvm.org/D133514
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringBase.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringBase.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringBase.cpp b/llvm/lib/CodeGen/TargetLoweringBase.cpp index 8eaf1bb..9736318 100644 --- a/llvm/lib/CodeGen/TargetLoweringBase.cpp +++ b/llvm/lib/CodeGen/TargetLoweringBase.cpp @@ -870,6 +870,11 @@ void TargetLoweringBase::initActions() { // Named vector shuffles default to expand. setOperationAction(ISD::VECTOR_SPLICE, VT, Expand); + + // VP_SREM/UREM default to expand. + // TODO: Expand all VP intrinsics. + setOperationAction(ISD::VP_SREM, VT, Expand); + setOperationAction(ISD::VP_UREM, VT, Expand); } // Most targets ignore the @llvm.prefetch intrinsic. |