Integrates/llvm 20241101@e577f14 (#18987)

bump llvm-project to [llvm/llvm-project@e577f14
](https://github.com/llvm/llvm-project/commit/e577f14b670ee2ae6bb717133310b215be4331b3)
cherry pick
[iree-org/llvm-porject@854df1e](https://github.com/iree-org/llvm-project/commit/854df1eecb66c5e034a28f18a01cfadba29cfc42)

---------

Signed-off-by: Bangtian Liu <liubangtian@gmail.com>
diff --git a/.github/workflows/pkgci_regression_test.yml b/.github/workflows/pkgci_regression_test.yml
index a111077..4c36b09 100644
--- a/.github/workflows/pkgci_regression_test.yml
+++ b/.github/workflows/pkgci_regression_test.yml
@@ -221,7 +221,7 @@
             --goldentime-rocm-clip-ms 18.5 \
             --goldentime-rocm-vae-ms 337.0 \
             --goldendispatch-rocm-unet 1531 \
-            --goldendispatch-rocm-clip 1139 \
+            --goldendispatch-rocm-clip 1141 \
             --goldendispatch-rocm-vae 246 \
             --goldensize-rocm-unet-bytes 2280000  \
             --goldensize-rocm-clip-bytes 860000 \
@@ -242,7 +242,7 @@
             --goldentime-rocm-clip-ms 15.5 \
             --goldentime-rocm-vae-ms 80.0 \
             --goldendispatch-rocm-unet 1531 \
-            --goldendispatch-rocm-clip 1139 \
+            --goldendispatch-rocm-clip 1141 \
             --goldendispatch-rocm-vae 246 \
             --goldensize-rocm-unet-bytes 2270000 \
             --goldensize-rocm-clip-bytes 860000  \
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/flatten_memref_subspan.mlir b/compiler/src/iree/compiler/Codegen/Common/test/flatten_memref_subspan.mlir
index bb3e4bd..ca52627 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/flatten_memref_subspan.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/flatten_memref_subspan.mlir
@@ -626,10 +626,10 @@
   %0 = hal.interface.constant.load layout(#pipeline_layout) ordinal(0) : index
   %1 = hal.interface.constant.load layout(#pipeline_layout) ordinal(1) : index
   %2 = hal.interface.binding.subspan layout(#pipeline_layout) binding(0) : memref<?x?xf32>{%0, %1}
-  %3 = memref.reinterpret_cast %2 to offset: [%c0], sizes: [], strides: [] : memref<?x?xf32> to memref<f32>
-  %4 = memref.load %3[] : memref<f32>
+  %3 = memref.reinterpret_cast %2 to offset: [%c0], sizes: [], strides: [] : memref<?x?xf32> to memref<f32, strided<[], offset:?>>
+  %4 = memref.load %3[] : memref<f32, strided<[], offset:?>>
   return %4 : f32
 }
 // CHECK-LABEL: func @reinterpret_cast_lowering_dynamic_zero_offset()
 //       CHECK:   %[[C0:.+]] = arith.constant 0 : index
-//       CHECK:   memref.reinterpret_cast %{{.+}} to offset: [%[[C0]]], sizes: [], strides: [] : memref<?xf32> to memref<f32>
+//       CHECK:   memref.reinterpret_cast %{{.+}} to offset: [%[[C0]]], sizes: [], strides: [] : memref<?xf32> to memref<f32, strided<[], offset: ?>>
diff --git a/compiler/src/iree/compiler/Dialect/LinalgExt/Utils/Utils.cpp b/compiler/src/iree/compiler/Dialect/LinalgExt/Utils/Utils.cpp
index 449faf4..9d0a27d 100644
--- a/compiler/src/iree/compiler/Dialect/LinalgExt/Utils/Utils.cpp
+++ b/compiler/src/iree/compiler/Dialect/LinalgExt/Utils/Utils.cpp
@@ -352,6 +352,9 @@
 
   // `yieldOp` should yield a single value from a `tensor.extract`
   auto yieldOp = cast<linalg::YieldOp>(region.front().getTerminator());
+  if (yieldOp.getNumOperands() != 1) {
+    return false;
+  }
   auto extractOp = yieldOp.getOperand(0).getDefiningOp<tensor::ExtractOp>();
   if (!extractOp) {
     return false;
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 9eee644..854df1e 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 9eee6446f367cb35113b3d32545d16eecd1d8f14
+Subproject commit 854df1eecb66c5e034a28f18a01cfadba29cfc42