junparser added inline comments.

================
Comment at: clang/lib/CodeGen/CGExprScalar.cpp:2120
+      } else
+        Addr = EmitLValue(E).getAddress(CGF);
       Addr = Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(DestTy));
----------------
efriedma wrote:
> junparser wrote:
> > junparser wrote:
> > > efriedma wrote:
> > > > I don't think it's legal to use EmitLValue here at all; the emitted IR 
> > > > could have side-effects.
> > > > 
> > > > Since we have the vector insert/extract intrinsics now, can we just use 
> > > > them here instead of going through the load/store dance?
> > > > I don't think it's legal to use EmitLValue here at all; the emitted IR 
> > > > could have side-effects.
> > > > 
> > > I agree since we have already visited E. 
> > > 
> > > > Since we have the vector insert/extract intrinsics now, can we just use 
> > > > them here instead of going through the load/store dance?
> > > 
> > > we have already use insert/extract intrinsics for same element type, we 
> > > can only handle predicate cast through memory.
> > > One of idea here is always use store + load. what do you think?
> > > 
> > @efriedma I'm also working on a patch that optimize such store + bitcast + 
> > load pattern with constant vector, so maybe it is ok to always use alloca + 
> > load
> I'd be happy to accept just unconditionally doing the alloca+store+load thing 
> for now.
> 
> Not sure I understand why predicates are special here.  Even if we can't 
> handle predicates directly in insert/extract intrinsics, we can always just 
> zero-extend to a bigger integer type, do the cast, then truncate the result.
I'm not sure whether zext+cast+trunc to vxi1 can generate better code. I think 
it is better to handle this in llvm ir without extend and truncate, only 
bitcast and insert/extract 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105097

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to