Index: llvm/lib/Transforms/Scalar/GVN.cpp =================================================================== --- llvm/lib/Transforms/Scalar/GVN.cpp +++ llvm/lib/Transforms/Scalar/GVN.cpp @@ -1892,7 +1892,8 @@ continue; // Prefer a constant on the right-hand side, or an Argument if no constants. - if (isa(LHS) || (isa(LHS) && !isa(RHS))) + if (isa(LHS) + || (isa(LHS) && !isa(RHS) && !isa(RHS))) std::swap(LHS, RHS); assert((isa(LHS) || isa(LHS)) && "Unexpected value!");