[PATCH] D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue
JF Bastien via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 20 17:00:29 PDT 2018
jfb added inline comments.
================
Comment at: test/Transforms/MemCpyOpt/memcpy-to-memset.ll:54
+
+ at i1x16 = internal constant <16 x i1> <i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0, i1 0>, align 4
+define void @test_i1x16() nounwind {
----------------
jfb wrote:
> efriedma wrote:
> > You're not really testing any interesting codepaths with a constant zero? We just hit the "isNullValue()" early exit.
> It's the only interesting codepath for `i1` though. Unless you're saying that we should add handling for `i1` in `isBytewiseValue`?
To be clear, this is where we return `nullptr` for all other `i1`:
```
// We can handle constant integers that are multiple of 8 bits.
if (ConstantInt *CI = dyn_cast<ConstantInt>(C)) {
if (CI->getBitWidth() % 8 == 0) {
assert(CI->getBitWidth() > 8 && "8 bits should be handled above!");
if (!CI->getValue().isSplat(8))
return nullptr;
return ConstantInt::get(Ctx, CI->getValue().trunc(8));
}
}
```
Repository:
rL LLVM
https://reviews.llvm.org/D51751
More information about the llvm-commits
mailing list