<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57068>57068</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Compiler crash
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          vmurali
      </td>
    </tr>
</table>

<pre>
    Hi, I tried to compile the following:
```
#map0 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
#map1 = affine_map<(d0, d1, d2, d3) -> (d0, d1, 0, 0)>
module { //attributes {torch.debug_module_name = "varcorrection"} {
  func.func @demote(%arg0: tensor<2x1x128x65536xf32>) -> tensor<2x1x1x1xf32> {
    %cst_0 = arith.constant 0.000000e+00 : f64
    %0 = linalg.init_tensor [2, 1, 1, 1] : tensor<2x1x1x1xf64>
    %1 = linalg.fill ins(%cst_0 : f64) outs(%0 : tensor<2x1x1x1xf64>) -> tensor<2x1x1x1xf64>
    %2 = linalg.generic {indexing_maps = [#map0, #map1], iterator_types = ["parallel", "parallel", "reduction", "reduction"]} ins(%arg0 : tensor<2x1x128x65536xf32>) outs(%1 : tensor<2x1x1x1xf64>) {
    ^bb0(%arg1: f32, %arg2: f64):
      %3 = arith.extf %arg1 : f32 to f64
      %4 = arith.addf %3, %arg2 : f64
      linalg.yield %4 : f64
    } -> tensor<2x1x1x1xf64>
    %5 = linalg.init_tensor [2, 1, 1, 1] : tensor<2x1x1x1xf32>
    %6 = linalg.generic {indexing_maps = [#map0, #map0], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%2 : tensor<2x1x1x1xf64>) outs(%5 : tensor<2x1x1x1xf32>) {
    ^bb0(%arg1: f64, %arg2: f32):
      %7 = arith.truncf %arg1 : f64 to f32
      linalg.yield %7 : f32
    } -> tensor<2x1x1x1xf32>
    return %6 : tensor<2x1x1x1xf32>
  }
  %s = arith.constant 3.0 : f32
  %t = tensor.splat %s : tensor<2x1x128x65536xf32>
  %result = func.call @demote(%t) : (tensor<2x1x128x65536xf32>) -> (tensor<2x1x1x1xf32>)
  check.expect_almost_eq_const(%result, dense<[[[[25165824.0]]], [[[25165824.0]]]]> : tensor<2x1x1x1xf32>) : tensor<2x1x1x1xf32>
}
```
using the following commands:

```
~/iree-build/tools/iree-compile --iree-hal-target-backends=llvm-cpu disable_demote_f64_to_f32.mlir -iree-flow-demote-f64-to-f32=false -o disable_demote_f64_to_f32.vmfb
```

The compiler crashes with the following stack:

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/local/google/home/muralivi/iree-build/tools/iree-compile --iree-hal-target-backends=llvm-cpu disable_demote_f64_to_f32.mlir -iree-flow-demote-f64-to-f32=false -o disable_demote_f64_to_f32.vmfb
 #0 0x000000000cfeb21a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/muralivi/iree/third_party/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x000000000cfeb3cb PrintStackTraceSignalHandler(void*) /usr/local/google/home/muralivi/iree/third_party/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x000000000cfe9a16 llvm::sys::RunSignalHandlers() /usr/local/google/home/muralivi/iree/third_party/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x000000000cfebaf5 SignalHandler(int) /usr/local/google/home/muralivi/iree/third_party/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fcc4809d200 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12200)
 #5 0x0000000004c88464 mlir::Operation::getParentOp() /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/include/mlir/IR/Operation.h:165:37
 #6 0x000000000cde76d1 mlir::Operation::isProperAncestor(mlir::Operation*) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/IR/Operation.cpp:173:17
 #7 0x000000000c9dd917 mlir::AnalysisManager::nest(mlir::Operation*) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/Pass/Pass.cpp:849:3
 #8 0x000000000930f9a5 mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUsers::initializeValue(mlir::Value, mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:87:26
 #9 0x0000000008d51759 mlir::iree_compiler::DFX::ValueElement::initialize(mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Element.h:168:5
#10 0x000000000930f46c mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUsers const& mlir::iree_compiler::DFX::Solver::getOrCreateElementFor<mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUsers>(mlir::iree_compiler::Position, mlir::iree_compiler::DFX::AbstractElement const*, mlir::iree_compiler::DFX::Resolution, bool, bool) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Solver.h:127:15
#11 0x000000000930f30c mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUsers const& mlir::iree_compiler::DFX::Solver::getElementFor<mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUsers>(mlir::iree_compiler::DFX::AbstractElement const&, mlir::iree_compiler::Position const&, mlir::iree_compiler::DFX::Resolution) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Solver.h:74:5
#12 0x000000000930f1b9 mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateFromPredecessorUse(mlir::OpOperand&, mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:226:11
#13 0x000000000930efdd mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)::operator()(mlir::CallOpInterface) const /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:256:20
#14 0x000000000930ef26 mlir::WalkResult std::__invoke_impl<mlir::WalkResult, mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)&, mlir::CallOpInterface>(std::__invoke_other, mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)&, mlir::CallOpInterface&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#15 0x000000000930eeb2 std::enable_if<is_invocable_r_v<mlir::WalkResult, mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)&, mlir::CallOpInterface>, mlir::WalkResult>::type std::__invoke_r<mlir::WalkResult, mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)&, mlir::CallOpInterface>(mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)&, mlir::CallOpInterface&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114:9
#16 0x000000000930ed82 std::_Function_handler<mlir::WalkResult (mlir::CallOpInterface), mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&)::'lambda'(mlir::CallOpInterface)>::_M_invoke(std::_Any_data const&, mlir::CallOpInterface&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:290:9
#17 0x00000000097771d9 std::function<mlir::WalkResult (mlir::CallOpInterface)>::operator()(mlir::CallOpInterface) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:590:9
#18 0x000000000976eec7 mlir::iree_compiler::Explorer::walkIncomingCalls(mlir::CallableOpInterface, std::function<mlir::WalkResult (mlir::CallOpInterface)>) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/Explorer.cpp:371:11
#19 0x000000000930e47c mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics::updateValue(mlir::Value, mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:250:47
#20 0x0000000008d517d9 mlir::iree_compiler::DFX::ValueElement::updateImpl(mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Element.h:178:7
#21 0x000000000975b5b2 mlir::iree_compiler::DFX::AbstractElement::update(mlir::iree_compiler::DFX::Solver&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Element.cpp:28:16
#22 0x000000000975cbb8 mlir::iree_compiler::DFX::Solver::updateElement(mlir::iree_compiler::DFX::AbstractElement&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Solver.cpp:180:16
#23 0x000000000930dd4a mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics const& mlir::iree_compiler::DFX::Solver::getOrCreateElementFor<mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics>(mlir::iree_compiler::Position, mlir::iree_compiler::DFX::AbstractElement const*, mlir::iree_compiler::DFX::Resolution, bool, bool) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Solver.h:143:7
#24 0x000000000930dbd7 mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics const& mlir::iree_compiler::DFX::Solver::getOrCreateElementFor<mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ArgumentSemantics>(mlir::iree_compiler::Position const&) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Util/Analysis/DFX/Solver.h:157:5
#25 0x000000000930d90e mlir::iree_compiler::IREE::Stream::(anonymous namespace)::LastUseAnalysis::run() /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:314:9
#26 0x000000000930d226 mlir::iree_compiler::IREE::Stream::(anonymous namespace)::ElideAsyncCopiesPass::runOnOperation() /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Dialect/Stream/Transforms/ElideAsyncCopies.cpp:496:27
#27 0x000000000c9dc3ca mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/Pass/Pass.cpp:471:21
#28 0x000000000c9dc9c4 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/Pass/Pass.cpp:534:16
#29 0x000000000c9de28c mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/Pass/Pass.cpp:837:10
#30 0x000000000c9de1ac mlir::PassManager::run(mlir::Operation*) /usr/local/google/home/muralivi/iree/third_party/llvm-project/mlir/lib/Pass/Pass.cpp:817:60
#31 0x0000000004b8bb73 mlir::iree_compiler::runIreecMain(int, char**)::$_2::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Tools/iree_compile_lib.cc:273:28
#32 0x0000000004b8b26c mlir::iree_compiler::runIreecMain(int, char**) /usr/local/google/home/muralivi/iree/compiler/src/iree/compiler/Tools/iree_compile_lib.cc:321:16
#33 0x0000000004b8a6e2 main /usr/local/google/home/muralivi/iree/tools/iree-compile-main.cc:10:3
#34 0x00007fcc47c397fd __libc_start_main ./csu/../csu/libc-start.c:332:16
#35 0x0000000004b8a5fa _start (/usr/local/google/home/muralivi/iree-build/tools/iree-compile+0x4b8a5fa)
Segmentation fault
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW9ly2zoS_Rr5hSUV9-XBD4qXuq66KbuyzMwbCyRACRNuFwAde75-GgApkrBi2b52rMwkUdEkCDa6Tx90AyCYNfj-9A-6cM-sK0swSrAlGitvqpaWxBJbYhVNWTbfab1ZeOuFfb6w14vQ7n_60vUq1NrWwju3UFHQmqRwvfDOFm6MbSkZO-roqqO3cBNrufAurB_fh7tT2c7flm33h1Fy1eAOLFxEH6DuJfyQAPOzThAuC0XD8u0Kk6zbpLpqWqOKKEUWrnuLWN4wRnJBmxquF9G5fEqLtqyiq_OVPFgL38akagQBhRZugNjGBhwtQWreMLDDvXPuHDe-C4PAC-8Kz5UKDkbMa8F_fX_akgXaBDkXaY8_o2K7ypuaC1QLy17Z6h-0_sGWNdZWEfqzZ_VzJa1RuVnRmopUt2otgg8KVGdyCM6th9pLvUDoAGwv15nKLWhZWrTmGoRBXa0MGNt0or9lPyr_x7g8bN-dtr8hNWE0l8DRGpM7YLPkEdfuDD70FJZG9owDU-UVFYQh4EIq7lsyqe62iKGyJKX0vXpqTwkjuNsRZE8RNAG02cEiubHH_D3kGPFyDuE1p0pwkWX2rjVHucDrdZMl7uiUXW-3rB5Rb8IwcieK_hmtAoiRgWPGLvWUP3kKYaye8iYtPiSlNXjtnpISDzJM5gJyT-ZC8Coc1_BP5YZ_i2P2a3Ds8RKDYe4htozECh4F4UnEkjSaE0tSbQ-xoglFBIOoaVAr9BW14OlHOBINNHwSRwxfMiI6Vg8uPeh8ELw7dQO-L_J6K9tUCKoKVVVLX_G2RGIQcKjXjzIY4V2pBak0k4O3zTQjlIdAKFw-LdU8qDh19tB6viX5N-j7LeS9FJVVA4Gc_JUqo3XDWjmVd0EakYkaqDz8IF6FQez6K0V9_ZMUeew-_KR6B8h4yGc7jxljl45DN50Pc-Tgp0I15uN4Z--oJ4KWLykjZJl1tMRwIZqm5EPhMIRaLtXlFpVLAZQmYpmh_BtR8s_L8rZa5m1nYcpRBmMM7cQUKJ-KJgULVlVJmaVlFKDgUtdYQo2laJbKxvMClRxaah4Rc1sV2X471PELINBrzKycIb6FSPQdGG1gA-TOvz0OzM2fF-vPFxbvsooKC1kwgoL-1TZMyF68FaJVyKox1wZa6DLoNRVcSDD6P8uWNf8GkkkwOe-IRNUCn0Aoy8sO64GpUtOSaAqGcrLSzX-WGlq4q9qdmjbcSm5Ys2Gogn666SpSC667x2XHmWy0gW4kFWqaTQmd6HLbVPJP1UEwpbf013S1TDS2Zd_Zw7-8IJnrIEtBDfB4a37P9ckNo7VQ4H2RaEJ3Hisx9D2Fvs4IAgeFKmfVOsQ8Ez-J3JYynEKSEvcPnT1QgGZw_Ny1kjVw9rWmd7KAbiDmc8jgOSgVhDKVOM5oqmOa6uWZZdilZfwBXAKmg5G3DQV_rt_bmNALpTGjLa5hS4KccJ_bPnX1zCSdvn-aMYMVeSu7m2N70jGjFZ7pEVQElumCI-CSb0dz-P1e8ajIcz-2E-zC9ClNIb3BQI2kTObteCf9Lg5T6KQwJOnulpu60zdasYUeg1e8gXwG8y9IviBlTKfQTDDFx8_j2IexjgwD2rnXrRwZytmCuoSIcoMYxK7r9o28rJqGqjrKjgVXn-Cw02a1lWCFARy9aDQmnDkbkyjEzo-NoRwiMhSt61yBChbtq_s2XbM3S3vPMK6ncuSp42heNDMvwThxool5a6DTPaf8I6rRhvSFNVEDo3cy7AZx3v_prYp9GTO90ah4alTi2UWCgolRssl0GBfooqtPFxf67LNOCOocjER1U99XTcctuVDCW5VEEn37T8TFVy6jkxYLUzAKZv2H_AOVHZkh1JecPa7F-eW_eiWa8lZGkfCFaO7Eupec5XvLz0FVjW5vsXsJqaTmRcMqie9FSTGBiFznZ01LyQ5rGVJArx3WyRTrGAdOFCRPtFKBclESOXAxIZyhdzRQfRVUSh16hbwHekiwlBF9CInHdCHzt22y0Q_zt2Sj1c9cwueRbQjG1-wM2hSDYy7V7ONNO8_FIWffNJzq8PLUDrTOuBw-i96IAZL10yV8Irwpu6HVDEbG49_3I5r2leaZq7L7hGiOSTTPPmaiHRHBDvEmPMibgaJPf2Iv046CWZE_D2CuySsnOxDiX-SwdT-H_UwqVAua92m1azFEo0vWVDeMYALjKt4wcKwxAlFjkBo_C_njTbOuq2ZOzugEz3ACKTD-2U541XHNoE5UoirDCE5mks9QWV63V7UgrJgq2LR6XVnPFQ48onvjkbk2kK51x9eMjv_AtbOQ-k9Ufvukl0e5wLosTWl923wjKa3achY-x9oH3fI_RxCz75tVVCJ4iGEjtrLN32gZVUIzMmYUUtTlarWbi21y2TX2LBRA5OorGodxEg5PflA_XTmjQi09KpeoNBTKFy6OP_aTwOwnJHPHLkFqtXJIC-gOlCvf5qqEpbe_e8gzesjZ3tgjb6ki-T5vTyBivzF-ThT6DckxhRrHkUPeZAw1oRlqcDwJNellV6v9Dum2X-_dz33rIC7_b31jCCLpxz5uzBLyur5PQUn0g0nUUbAGtE2L3v2KO25iz7kzW1JNoihycDJyZ3j2pZQZEPxb4-D3wCkwcZqv0kYhIXn0OAkv7tqyYcPVdwDtqoYatN5Ik_kDEGT6nwFx9qp-eJfZ-oBBP5vwIjVKmkwUEzN0-dFbrAL9vChzbNM3SWM_2gHu2g9WwPHLV8A1fldyVvfrroBHcgV8gtB8YTIKsgAG7i9akJuC9GsC1LNIIuSEI0SuAVGeZfELllU1MgNYL1z1fGek-pXI_o1lbBtImQthGPvoZ8S3X-O1yp6w_Pv1yoter_jePIiZq3Q4wweGK7959zTeTYb7x-H6QL5ZG1-AuObCE05s8nYv1naqqULW1S_fFvN2wyDPmDG75owZu4cY-yKMTHXUbpABqOt6shPl-DDzE7XyP4kp5u6b3MunuQwTgYCt6vy6_dJct9LcNUatnPhN6DE-onfHGIF4vj9nesfc3zOJxV3N6aYm-K12RR7Y1OOriY07Tmzc2AQryf1ng3VDWwLzW_Ptoay6wyB8dfSmD8mmriDeMRUv5QR-_ViFyeayQXe9Xe6qLppJ4v3pDgo8GQGmI7PEcBBx49ywa7aPTLoDygg3nPFkuH_-TjNP7bkY390ZG5HBZgcdsvmots450qDJN4_z7cZ-FmdZ5D0ex8GkKyjNPyK5qhT3hM-3SFN7PVko9FN3sX_1arcu09X0r46krZDjlHFr8EdSNez-Q1cUup_t6mNSoK4UKSYlEeTHz8h1M_Vy48cbwN_2dfGXyeb6AcEU_LLKc5UV5HAT0Ng5wjUd4R7aNvYER7yLbZ7rzCPFfAc12IZC4loVqP0i_u_5amEphenWHTmB9Ma2Z5ugo9xLogJbqdQ2T7mAXpQqReQaZ87lEuhqPJWVlqrSShkmP16YGRaYhgUFsrTYfm_1632ZoXZf923s9l9_Jptd1rBUzzA-Zzkhp04Y2k7oJ050gk89nHgJOhFUlOT0bPaxzEnHytOXf9oSRHYYn2xP3SAO8xCA9-LYD2xceE5Y2KETO0nuYpydlCgjJT_VnwfW5LulROgv_U7oqWu7rh07tmsHgROsIhRAUErsIomLzI_chW_DnIOWK6nHqmGbE3aqVMq6DYebJeWCjzch9snETFRzIB91Ytuw01uN_Ilq-lSp_l8bZQwh">