[PATCH] D42679: [DAGCombiner] When combining zero_extend of a truncate, only mask before extending for vectors.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 23:34:56 PST 2018


craig.topper added inline comments.


================
Comment at: test/CodeGen/NVPTX/param-load-store.ll:28
+; CHECK:      cvt.u32.u16 [[CVT:%r[0-9]+]], [[A8:%rs[0-9]+]];
+; CHECK:      and.b32 [[A:%r[0-9]+]], [[CVT]], 1;
 ; CHECK:      .param .b32 param0;
----------------
RKSimon wrote:
> This looks like the only regression - I think cvt.u32.u16 effectively acts as "ZERO_EXTEND_INREG" in this case (which we don't have).
> 
> @jholewinski any thoughts? 
Looks like we are able to do   fold (zext (and/or/xor (zextload x), cst)) -> (and/or/xor (zextload x), (zext cst))  when the load has multiple uses, but we can't do (zext (zextload x)) -> (zextload x) when there is an additional use.


Repository:
  rL LLVM

https://reviews.llvm.org/D42679





More information about the llvm-commits mailing list