[PATCH] D71389: [ConstantFold][SVE] Fix constant folding for bitcast.

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 12:40:21 PST 2019


spatel added inline comments.


================
Comment at: llvm/lib/IR/ConstantFold.cpp:52
+  // compile-time.
+  if (DstTy->isScalable())
+    return nullptr;
----------------
efriedma wrote:
> huihuiz wrote:
> > sdesmalen wrote:
> > > Do we want to add support for a special case here for splat operations (like the one in the test)?
> > Actually we can not, we will end up in scalable vector constant. 
> > Instead of <4 x i32> <i32 1, i32 1, i32 1, i32 1>, we will need a form like "<vscale x 4 x i32> [?]"
> > 
> > I don't know how to express scalable vector constant in current upstream, please let me know if I get anything wrong?
> I think the suggestion is to special-case the specific sequence of insertelement+splatvector+bitcast, and bitcast the operand of the insertelement.  Not sure how useful that would be in general, though.
If we want to do that transform, it would go in instsimplify since we're doing a multi-instruction analysis/fold that becomes a constant.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71389/new/

https://reviews.llvm.org/D71389





More information about the llvm-commits mailing list