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

    <tr>
        <th>Summary</th>
        <td>
            -O2 Crash:  InstrTypes.h:1352: llvm::Value* llvm::CallBase::getArgOperand(unsigned int) const: Assertion `i < arg_size() && "Out of bounds!"' failed.
        </td>
    </tr>

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

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

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

<pre>
    Test case: https://llvm.godbolt.org/z/jxKxsonr7

```

@.str = private constant [13 x i8] c"an error: %d\00"

declare i32 @fprintf(i8*, ...)

define i32 @test1() {                 
  %call = call i32 (i8*, ...) @fprintf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0))
  ret i32 0
}
```

It passes`--passes="verify` but crashes under -O2.

Output message:
```
opt: /root/llvm-project/llvm/include/llvm/IR/InstrTypes.h:1352: llvm::Value* llvm::CallBase::getArgOperand(unsigned int) const: Assertion `i < arg_size() && "Out of bounds!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -O2 <source>
 #0 0x000055dcd515fd5f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x39b1d5f)
 #1 0x000055dcd515d724 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f2c37125420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f2c36bf200b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007f2c36bd1859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007f2c36bd1729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007f2c36be2fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x000055dcd53810b3 llvm::CallBase::getArgOperand(unsigned int) const (.constprop.1) SimplifyLibCalls.cpp:0:0
 #8 0x000055dcd53882eb llvm::LibCallSimplifier::optimizeFPrintFString(llvm::CallInst*, llvm::IRBuilderBase&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3bda2eb)
 #9 0x000055dcd53885f0 llvm::LibCallSimplifier::optimizeFPrintF(llvm::CallInst*, llvm::IRBuilderBase&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3bda5f0)
#10 0x000055dcd5395d61 llvm::LibCallSimplifier::optimizeCall(llvm::CallInst*, llvm::IRBuilderBase&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3be7d61)
#11 0x000055dcd4b8c882 llvm::InstCombinerImpl::tryOptimizeCall(llvm::CallInst*) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x33de882)
#12 0x000055dcd4b95752 llvm::InstCombinerImpl::visitCallBase(llvm::CallBase&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x33e7752)
#13 0x000055dcd4b97710 llvm::InstCombinerImpl::visitCallInst(llvm::CallInst&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x33e9710)
#14 0x000055dcd4b3da97 llvm::InstCombinerImpl::run() (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x338fa97)
#15 0x000055dcd4b4190c combineInstructionsOverFunction(llvm::Function&, llvm::InstructionWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) InstructionCombining.cpp:0:0
#16 0x000055dcd4b42a81 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3394a81)
#17 0x000055dcd550c0c6 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3d5e0c6)
#18 0x000055dcd2900254 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x1152254)
#19 0x000055dcd48cd55f llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x311f55f)
#20 0x000055dcd28e6f76 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x1138f76)
#21 0x000055dcd48cb68a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x311d68a)
#22 0x000055dcd248611a llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xcd811a)
#23 0x000055dcd239e823 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xbf0823)
#24 0x00007f2c36bd3083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#25 0x000055dcd2477d4e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xcc9d4e)
```


@regehr 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV1v2zgW_TXMC2GDH_p88IOT1JhiWiRogtlHgxKvZE4kUktSmWR-_YKyEluO07qtF-jsFq4jk7yH5557L0VKwjlVa4AFii9RfH0her8xdvGb8K7X4DpViovCyOfFPTiPS-EA8SXeeN85xJeIrRBbNc1jO6-NLEzj58bWiK3-Rmz159PvT85omyJyjchy_E7I-NlvjMjceYsRv8adVY_CAy6Ndl5oj1F8STl-wipD8TUuEWNCY7DW2MAEsVii-IoQxNg-pISyERaw4gyjiFSdVdpXiGUqQ2yJ2BWez-eI5VObSulXEw_OU8QyxHKM0kt8-G9rgwODUjTNQH64GOzfTHSEBa7BQwMtaN95i5UuTK-lC8YTpwPIQcMSj5qFPpVEmOxd5K9-YWzBD4Re9E6vvxKHjx53wjlwKCGz2XjJrxFjj2BV9YwSgove49IKtwGHey3B4tkNm--j3PS-6z1uwTlRh3Q5OqPp_DZ-K2uMH7No1lnzJ5QvPxFbKV02vYRdw8cv4Us7b--fO3DzDeJLymMWwIYhfIn48g_R9BBk2jVdiaa53OYv4ssa_NLWNx1YoSViWa-HOpBYaR-iNaRfwFw6B9YrozFKiMKIX2Fh67VTf8NLcrAEsQQjxm56j02Ft2FEjIacZCmuhGpAjhrdfvqwvPuAXV-0ymOBi77GFjpjPfbmoLBq5Td9MS9Nu_P_QCblXA8OsRUWOpAf1MJ-A9sg4UKUD96KEsbp77woH7Ds2-41MGSOSH5rTW1FG3zrQ0K6MTghTGxVmrZTDdgZPHWNsWBDWyN0PRMv8riZt71-QGxVKL01xDMTIETXhd9DVswdnt2FjAlCOtPbEhD_MCYrYpxg8kQIIXEsSxnTuJJxtRdD9-y2F7ehkAZf7oNziGW7QVb8tTbOWxDtEJqrl5gO8fopjxC7JE88L6iMq12RIcbpAW-ZsgjfqVqL5jehZRPws5HGttnNyy7EgAz_X4HYCJRWrOQpZXHECF6vLThvLKytH71oVIHY6ilL1kk0a5Tun2a17rcdnd9YEHLuzJwMjGkUMTLhy_enSYqKEVJgK5SDE_DLgJwMyBEnpJggR1NkSbM4x6IwJzHfQ2Ysi_MJcnyInL7G9GTMlE0xkykmsEom34fJeSWTCWY6yQWeUVLwn1uHAqP5cNVZ083pNovarlHV8ydVBMR30ik74JIxKPa4jMYjlgK7bTadV636G1ZDma3uvFW6ntRYsAqL8HiL23V8_HLZq0aCHVwM5Xe-uiukYDDNtvzQv7gi3-3fL-FZXO0qNCwo05WQ57FM6Omehb5fwC1IZUInbk0WyqjIyixj-2y081emLZQG-7Htmm2rt883Jzl2PupcQpaxCXU2pZ7Hafxt6o_KKf9a8ofE_wuac0jTeEqcHxBPU0pOJ74V96jiZyaep3RaA9GUOJciT79J3Pb6dWN2JmZZJfJ0wiyeMotoTkpcbrkMm9O-HCBvHsGuej38mIi4a0wO6nFn_S9jHxo1Cr0_Zrn8Aq5vvHtTzUvn-rYLxlei3MAby3tha_CfVGGFff6oK_POiHsrtKuMbY-OuTat0sIbe2_h7RxjqYrA4gu0wj58aJX3QfKDkZeNKR9WFv7dgy5HOgcO3VpTqQbu-rZ9ZTwMmd4o900-GdO9DszxnqDbZFG6fnuzDEFNDoLKREaPp9utcG4_206I61KL5tkp91loUYfl-uqIEf9w7qLKI5FNV-Dp9iQmJSmTPZ4SvFBjKQU3PxsJzXG2b_J2X52DKIID-whyqwK4H9MmfP4BossYSJlMRJ_sw1hOCIujM4g-jP2abz8q8_9v9CiNGYujSfQmu8woC2Wzfyr9bGTfwL154RSispSi88Ye93hr8F3-jiZnz1VKq3jvLBtOoJOdJ8sgqdLvWyBe3Ls6UaNzJdtOo_dS7dcRnlKeVelkkWD0IM2KJBMnFPsxuf9XZOKUyiQTE5km-3AWZQml-zLZfkiuW9VBo_R0z709yX6B6lhyvrMV-izKzYCz_MZWatiCvhllTLN9ILpSzRGQn-p-x52lteI5tO4HaNCk6Wul36zvpvNrb8xY09v5fldafm3UH2CHY-fLuCL0nPz3bPlRyozSaXpMTjuM55Axjluh9LnmLCqSMT6Z8_ChFycZx-t1o4py7bywfr1H4NSHVRHJprPE08RPUxkB3uKfTc8ylxHsZj36tublnY2FGjYWX8gFlznPxQUsaJKyKCYRZxebBc1SyGlEc1YKmvGyoiyLQMicZkkEUXGhFowwRhmnhHIes3kaV5BJmkGcQ5mJDEUEWqGa-fCKydj6YnjevYjzNE4vGlFA44Y3V4xp-AsPnYgxFF9f2MXwpLzoa4ciEo5RbofilW9gMbth-MoKt0F8ifE_8p3CRW-bxY-_NBh0_E8AAAD__1d9k2Y">