Integrate LLVM at `1650f1b3` (clean) (#17418)

Integrate LLVM at llvm/llvm-project@1650f1b3 without local changes. One
upstream change broke the construction of an ARM-related part of a
pipeline but a patch had already circulated on Discord and is part of
this PR.

---------

Signed-off-by: Ingo Müller <ingomueller@google.com>
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp
index 2399aa6..f9b705c 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp
@@ -668,7 +668,6 @@
         .addPass(createCSEPass)
         .addPass(mlir::createArithToArmSMEConversionPass)
         .addPass(mlir::createConvertVectorToArmSMEPass)
-        .addPass(mlir::arm_sme::createTileAllocationPass)
         .addPass([]() {
           return mlir::arm_sme::createEnableArmStreamingPass(
               mlir::arm_sme::ArmStreamingMode::StreamingLocally,
@@ -703,7 +702,9 @@
                          createInstrumentMemoryAccessesPass);
 
   if (enableAArch64SME) {
-    modulePassManager.addPass(createConvertArmSMEToLLVMPass());
+    FunctionLikeNest(modulePassManager).addPass([&] {
+      return createConvertArmSMEToLLVMPass();
+    });
   }
   modulePassManager.addPass(
       createConvertToLLVMPass(clEnableReassociateFpReductions));
diff --git a/third_party/llvm-project b/third_party/llvm-project
index e1685eb..1650f1b 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit e1685eb8d7de66ce6420cdd3340a2e3f892c09bd
+Subproject commit 1650f1b3d7f97ca95eb930984e74bdfd91b02b4e