Simon Pilgrim

Results 72 comments of Simon Pilgrim

simplifySetCCWithCTPOP appears to use isKnownNeverZero for the `(ctpop x) eq/ne 1 --> (x & x-1) eq/ne 0` fold - maybe try that?

This is the bugpoint reduction that fails in llc: ``` ; ModuleID = 'bugpoint-reduced-simplified.bc' source_filename = "fuzz.cpp" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @a = external dso_local local_unnamed_addr...

I haven't been able to get much further with this yet, but it looks like PromoteIntShiftOp is trying to delete an truncate+extload (inside ReplaceLoadWithPromotedLoad) that its just created and something...

The issue seems to be in DAGCombiner::PromoteIntShiftOp, we need to replace any uses of a load BEFORE creating the truncation: ```diff diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index 7173f52b7284..f936e0063876 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp...

This is currently working in trunk, I haven't bisected but I suspect https://reviews.llvm.org/D127115 might have avoided this (instead of fixing it).

I've been able to prove it if the upper bits of x are simplified to zero: https://alive2.llvm.org/ce/z/NLzMby But I haven't yet managed to create a test that shows that the...

This is the best I've managed: https://alive2.llvm.org/ce/z/F5CyJW ``` ---------------------------------------- define i8 @src(i8 %x, i8 %y, i8 %garbage) { #0: %yz = icmp ne i8 %y, 0 assume i1 %yz %r...

> > Patch title is now less clear, this is DAG codegen support > > So, something like "DAG codegen support for `llvm.canonicalize`"? How about "[DAG] Add generic expansion for...

There doesn't seem to be any movement on this on the upstream cmake project. The vcxproj setting is: true Do you thing it would it be feasible for us to...