Integrate llvm-project@7c69491 (#19008)

Retains the revert for llvm-project@1004865
diff --git a/compiler/plugins/target/LLVMCPU/LLVMIRPasses.cpp b/compiler/plugins/target/LLVMCPU/LLVMIRPasses.cpp
index 1e79555..c045c06 100644
--- a/compiler/plugins/target/LLVMCPU/LLVMIRPasses.cpp
+++ b/compiler/plugins/target/LLVMCPU/LLVMIRPasses.cpp
@@ -56,7 +56,7 @@
   case SanitizerKind::kAddress: {
     passBuilder.registerOptimizerLastEPCallback(
         [](llvm::ModulePassManager &modulePassManager,
-           llvm::OptimizationLevel Level) {
+           llvm::OptimizationLevel Level, llvm::ThinOrFullLTOPhase) {
           llvm::AddressSanitizerOptions opts;
           // Can use Never or Always, just not the default Runtime, which
           // introduces a reference to
@@ -73,7 +73,7 @@
   case SanitizerKind::kThread: {
     passBuilder.registerOptimizerLastEPCallback(
         [](llvm::ModulePassManager &modulePassManager,
-           llvm::OptimizationLevel Level) {
+           llvm::OptimizationLevel Level, llvm::ThinOrFullLTOPhase) {
           modulePassManager.addPass(llvm::ModuleThreadSanitizerPass());
           modulePassManager.addPass(llvm::createModuleToFunctionPassAdaptor(
               llvm::ThreadSanitizerPass()));
diff --git a/compiler/plugins/target/ROCM/test/opt_pass_plugin/GPUHello.cpp b/compiler/plugins/target/ROCM/test/opt_pass_plugin/GPUHello.cpp
index 6433530..ada0382 100644
--- a/compiler/plugins/target/ROCM/test/opt_pass_plugin/GPUHello.cpp
+++ b/compiler/plugins/target/ROCM/test/opt_pass_plugin/GPUHello.cpp
@@ -67,10 +67,11 @@
 
 llvm::PassPluginLibraryInfo getPassPluginInfo() {
   const auto callback = [](llvm::PassBuilder &pb) {
-    pb.registerOptimizerLastEPCallback([&](llvm::ModulePassManager &mpm, auto) {
-      mpm.addPass(GpuHello());
-      return true;
-    });
+    pb.registerOptimizerLastEPCallback(
+        [&](llvm::ModulePassManager &mpm, auto, auto) {
+          mpm.addPass(GpuHello());
+          return true;
+        });
   };
   return {LLVM_PLUGIN_API_VERSION, "gpu-hello", LLVM_VERSION_STRING, callback};
 };
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
index 83ac234..b14bb08 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
@@ -105,7 +105,7 @@
       return APInt(16, b0 | (b1 << 8));
     } else if (b0 == b4 && b1 == b5 && b2 == b6 && b3 == b7) {
       // 0xAABBCCDDAABBCCDD : i64 => 0xAABBCCDD : i32
-      return APInt(32, b0 | (b1 << 8) | (b2 << 16) | (b3 << 32));
+      return APInt(32, b0 | (b1 << 8) | (b2 << 16) | (b3 << 24));
     }
     return pattern;
   }
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/test/tensor_folding.mlir b/compiler/src/iree/compiler/Dialect/Stream/IR/test/tensor_folding.mlir
index 08ad4a1..05ef820 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/test/tensor_folding.mlir
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/test/tensor_folding.mlir
@@ -145,7 +145,7 @@
 util.func private @NarrowSplatPatternI64ToI32() -> !stream.resource<*> {
   %c100 = arith.constant 100 : index
   %pattern = arith.constant 0xAABBCCDDAABBCCDD : i64
-  // CHECK: stream.tensor.splat %c12307677_i32
+  // CHECK: stream.tensor.splat %c-1430532899_i32
   %0 = stream.tensor.splat %pattern : i64 -> tensor<2x2xf32> in !stream.resource<*>{%c100}
   util.return %0 : !stream.resource<*>
 }
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 854df1e..8323ca8 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 854df1eecb66c5e034a28f18a01cfadba29cfc42
+Subproject commit 8323ca8956aec45713231e06768a0b330f83cce1