[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