diff --git a/compiler/src/iree/compiler/Codegen/Common/ReplaceSlowMinMaxOps.cpp b/compiler/src/iree/compiler/Codegen/Common/ReplaceSlowMinMaxOps.cpp
index cbbddfa..7ec3f27 100644
--- a/compiler/src/iree/compiler/Codegen/Common/ReplaceSlowMinMaxOps.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/ReplaceSlowMinMaxOps.cpp
@@ -41,13 +41,13 @@
                                 PatternRewriter &rewriter) const override {
     if (slowReductionOp.getKind() == vector::CombiningKind::MINIMUMF) {
       rewriter.updateRootInPlace(slowReductionOp, [&]() {
-        slowReductionOp.setKind(vector::CombiningKind::MINF);
+        slowReductionOp.setKind(vector::CombiningKind::MINNUMF);
       });
       return success();
     }
     if (slowReductionOp.getKind() == vector::CombiningKind::MAXIMUMF) {
       rewriter.updateRootInPlace(slowReductionOp, [&]() {
-        slowReductionOp.setKind(vector::CombiningKind::MAXF);
+        slowReductionOp.setKind(vector::CombiningKind::MAXNUMF);
       });
       return success();
     }
diff --git a/compiler/src/iree/compiler/Codegen/Common/VectorLayoutAnalysis.cpp b/compiler/src/iree/compiler/Codegen/Common/VectorLayoutAnalysis.cpp
index 8c98f52..22ec064 100644
--- a/compiler/src/iree/compiler/Codegen/Common/VectorLayoutAnalysis.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/VectorLayoutAnalysis.cpp
@@ -224,7 +224,7 @@
   resolvedLayout->subscribeEnforcement(enforcement);
 
   // We can now resolve this resolved value to the required layout.
-  resolvedLayout->resolve(rhs);
+  (void)resolvedLayout->resolve(rhs);
 
   // No change actually needs to be propagated after a conflict resolution.
   // TODO: Ideally, there should be another state in the lattice which says
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/replace_slow_min_max_ops.mlir b/compiler/src/iree/compiler/Codegen/Common/test/replace_slow_min_max_ops.mlir
index 2ad2f13..fb5df72 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/replace_slow_min_max_ops.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/replace_slow_min_max_ops.mlir
@@ -26,7 +26,7 @@
   return %reduction_min : f32
 }
 
-// CHECK: vector.reduction <minf>
+// CHECK: vector.reduction <minnumf>
 
 // -----
 
@@ -36,7 +36,7 @@
   return %reduction_max : f32
 }
 
-// CHECK: vector.reduction <maxf>
+// CHECK: vector.reduction <maxnumf>
 
 // -----
 
@@ -46,7 +46,7 @@
   return %multi_reduction_min : f32
 }
 
-// CHECK: vector.multi_reduction <minf>
+// CHECK: vector.multi_reduction <minnumf>
 
 // -----
 
@@ -56,4 +56,4 @@
   return %multi_reduction_max : f32
 }
 
-// CHECK: vector.multi_reduction <maxf>
+// CHECK: vector.multi_reduction <maxnumf>
diff --git a/compiler/src/iree/compiler/Codegen/Utils/GPUUtils.cpp b/compiler/src/iree/compiler/Codegen/Utils/GPUUtils.cpp
index 1e4ffd4..2ddd654 100644
--- a/compiler/src/iree/compiler/Codegen/Utils/GPUUtils.cpp
+++ b/compiler/src/iree/compiler/Codegen/Utils/GPUUtils.cpp
@@ -451,13 +451,13 @@
   case vector::CombiningKind::XOR:
     return builder.getZeroAttr(type);
   case vector::CombiningKind::MINIMUMF:
-  case vector::CombiningKind::MINF: {
+  case vector::CombiningKind::MINNUMF: {
     auto posInfApFloat = APFloat::getInf(
         llvm::cast<FloatType>(type).getFloatSemantics(), /*Negative=*/false);
     return builder.getFloatAttr(type, posInfApFloat);
   }
   case vector::CombiningKind::MAXIMUMF:
-  case vector::CombiningKind::MAXF: {
+  case vector::CombiningKind::MAXNUMF: {
     auto negInfApFloat = APFloat::getInf(
         llvm::cast<FloatType>(type).getFloatSemantics(), /*Negative=*/true);
     return builder.getFloatAttr(type, negInfApFloat);
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
index 0fad112..ab8a9f2 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
@@ -1796,7 +1796,8 @@
 //===----------------------------------------------------------------------===//
 
 OpFoldResult AsyncUpdateOp::fold(FoldAdaptor operands) {
-  if (getUpdateSize() == getTargetSize()) {
+  if (getUpdateSize() == getTargetSize() &&
+      getUpdate().getType() == getType()) {
     // If updating the entire target then just replace with the update.
     // Note that this breaks copy-on-write semantics but will be fixed up during
     // canonicalization if needed.
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 99045b6..6b65d79 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 99045b60b57571079f9cb4aea57870692523fbe8
+Subproject commit 6b65d79fbb4682468333cea42b62f15c2dffd8f3
diff --git a/third_party/torch-mlir b/third_party/torch-mlir
index d560698..6096fcb 160000
--- a/third_party/torch-mlir
+++ b/third_party/torch-mlir
@@ -1 +1 @@
-Subproject commit d560698e3d610ecdc56667c713e2338c47bf4f44
+Subproject commit 6096fcb347691982d721d74d96794ac0d17af0d9
