diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td @@ -1436,20 +1436,20 @@ def LLVM_UMinOp : LLVM_BinarySameArgsIntrinsicOp<"umin">; def LLVM_MemcpyOp : LLVM_ZeroResultIntrOp<"memcpy", [0, 1, 2]> { - let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len, + let arguments = (ins Arg:$dst, Arg:$src, LLVM_Type:$len, LLVM_Type:$isVolatile); } def LLVM_MemcpyInlineOp : LLVM_ZeroResultIntrOp<"memcpy.inline", [0, 1, 2]> { - let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len, + let arguments = (ins Arg:$dst, Arg:$src, LLVM_Type:$len, LLVM_Type:$isVolatile); } def LLVM_MemmoveOp : LLVM_ZeroResultIntrOp<"memmove", [0, 1, 2]> { - let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len, + let arguments = (ins Arg:$dst, Arg:$src, LLVM_Type:$len, LLVM_Type:$isVolatile); } def LLVM_MemsetOp : LLVM_ZeroResultIntrOp<"memset", [0, 2]> { - let arguments = (ins LLVM_Type:$dst, LLVM_Type:$val, LLVM_Type:$len, + let arguments = (ins Arg:$dst, LLVM_Type:$val, LLVM_Type:$len, LLVM_Type:$isVolatile); } diff --git a/mlir/lib/Dialect/SCF/SCF.cpp b/mlir/lib/Dialect/SCF/SCF.cpp --- a/mlir/lib/Dialect/SCF/SCF.cpp +++ b/mlir/lib/Dialect/SCF/SCF.cpp @@ -1375,11 +1375,12 @@ results[it.index()] = replacement.getResult(trueYields.size()); trueYields.push_back(trueVal); falseYields.push_back(falseVal); - } else if (trueVal == falseVal) + } else if (trueVal == falseVal) { results[it.index()] = trueVal; - else + } else { results[it.index()] = rewriter.create( op.getLoc(), cond, trueVal, falseVal); + } } rewriter.setInsertionPointToEnd(replacement.thenBlock());