[llvm-commits] [llvm] r38489 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Lauro Ramos Venancio lauro.venancio at gmail.com
Tue Jul 10 07:29:35 PDT 2007


Hi Dan,

There is a bug in the following code. If N0 is UNDEF, the code returns
N1 instead of UNDEF.

Lauro

> @@ -855,7 +855,7 @@
>    if (FoldedVOp.Val) return FoldedVOp;
>
>    // fold (add x, undef) -> undef
> -  if (N1.getOpcode() == ISD::UNDEF)
> +  if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
>      return N1;
>    // fold (add c1, c2) -> c1+c2
>    if (N0C && N1C)


> @@ -1890,7 +1890,7 @@
>    if (FoldedVOp.Val) return FoldedVOp;
>
>    // fold (xor x, undef) -> undef
> -  if (N1.getOpcode() == ISD::UNDEF)
> +  if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
>      return N1;
>    // fold (xor c1, c2) -> c1^c2
>    if (N0C && N1C)



More information about the llvm-commits mailing list