<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/149654>149654</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64] Invalid size request on a scalable vector: DAGCombiner::visitSHL
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sjoerdmeijer
</td>
</tr>
</table>
<pre>
This input:
```
#include <algorithm>
short a;
void b(signed c, short d, long long e[]) {
for (bool f = 0; f < d; f = 1)
#pragma clang loop vectorize(enable)
for (char g = 0; g < 11; g += (3 > c) + 1)
a = std::min(e[g] ? e[f] : 0, (long long)0);
}
```
compiled with `-std=c++11 -Ofast -msve-vector-bits=128 -mcpu=grace`, results in this error:
```
fatal error: error in backend: Invalid size request on a scalable vector.
```
Stack trace:
```
#0 0x0000000003c8d7b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c8d7b8)
#1 0x0000000003c8b18c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c8b18c)
#2 0x0000000003bdb9d3 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3bdb9d3)
#3 0x0000000003c829de llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c829de)
#4 0x0000000000dae62b LLVMErrorHandler(void*, char const*, bool) cc1_main.cpp:0:0
#5 0x0000000003be5903 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3be5903)
#6 0x0000000003be5a68 (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3be5a68)
#7 0x0000000003c326cd (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c326cd)
#8 0x0000000003c326ec llvm::TypeSize::operator unsigned long() const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c326ec)
#9 0x0000000000f95d6c llvm::AArch64TargetLowering::shouldFoldConstantShiftPairToMask(llvm::SDNode const*, llvm::CombineLevel) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0xf95d6c)
#10 0x00000000050ebf29 (anonymous namespace)::DAGCombiner::visitSHL(llvm::SDNode*) DAGCombiner.cpp:0:0
#11 0x000000000512bfe6 (anonymous namespace)::DAGCombiner::visit(llvm::SDNode*) DAGCombiner.cpp:0:0
#12 0x000000000512e405 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x000000000512f4c6 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::BatchAAResults*, llvm::CodeGenOptLevel) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x512f4c6)
#14 0x000000000525afd2 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x525afd2)
#15 0x000000000525db1d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x525db1d)
#16 0x000000000525f976 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x525f976)
#17 0x000000000524c3f1 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x524c3f1)
```
See also: https://godbolt.org/z/1YoMWbWv8
This looks different than https://github.com/llvm/llvm-project/issues/148387, first of all because this one is still failing, and second, that one was about `DAGCombiner::visitOR` and this one looks to come from `DAGCombiner::visitSHL`.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMmF1v4yoaxz8NuUGpbBw79kUunKSZc6TO9mha7dFejTA8jpli8AJO2_n0KyBt4kxnX2ZzcaK0xdjw_P7PC5hSa8VeAaxQvkb5dkZH12mzst80GN6D-AZm1mj-unrshMVCDaNDWY2S8C2S4zepEcmEYnLkgFG2oXKvjXBdj7JblNS208ZhirI1SuqDFhw3iJTBMMcMkQ2OT3DflFrt4y-ITIhUGC39UIxbbTAiZaO1xC1G2RYnKFuH5gbzt-YWp4hUkWowdN9TzCQN0-oBH4A5bcR3QKQERRsJ8WGM3-dnHTV4f5p_H-ZP02ObrP0dRMoMo-zWK6h855tVHD40DLeOe39ldS-Ut4fy9R7lW4yyXdDXxosaJ147IuW7fESqxM8XnIaW20uHJzXT_SAkcPwsXIdRkcyDtS3zgGSdpnh-31Lr8Ly3B5hH3fNGOIuybUpKPO_ZMKJsuzeUgZ-WbLABO0rnQ42dDzkYo82HIW-po_L9fmz4YQ1lT6C8bPy7OlApOLbiO2AD_xzBOqwVptgyKr3rj9G4-VHdg6PsCbuA9pF5jEiW4OQleftkrOTLpsRSHvroc_tqY-MPI5QLEz6G-Uh5esjQ56_aOgO0R6TwLhDKxYiWiOz04BDZHV1t5vAySG3A-D6fUnNnRvWEyK7x8Y190f2IrJOXI9MxLxDJ0gviJi3ZR8QbCVSNw716EHtFJSLlqI4Fc0yOa_F5ghMfmfA1vKl4dsa3MdR2X4DpA5jXjVYOXly88xtVXMLti3CIlNf0YGQ4EWYXHiQVh49jrhnY48U51wb75eOKHvQEJ77FOV_CKRSkwXd3f_986wskuskgUvp1EJHa84Tlhmll3bHjDZCx9GtPhbphw4CyOgk_0Uw-DRTkVXIeKAODNu5rqNGvsUbPk_7xWSh4M1lc3ScR5-ST4hKWFuXVLNHirL6W0-zISMH4leIc5jpZKn-wBOeV_Pg6wIPfZMKVHsBQpw2-qOIyRNmH4XqQcFbO1SQZ2yrnxTlkXRvWFYtHavbg7vQzGKH2xzrq9Cj5Tku-8XhUuYdOtO4PKsyj_kzt0ySfHrZ_0xwmOXy2aOi-EQru4ADyunqjoPe9Pp3sB3kCTRszmiqtXns9WqxoD3YIe0AV6bb1pyOgiR0HYYV7-O3uA4FBWoXPhlxUpoeYLPF5SpoWil-D-FUCckEAiyT_nwlYvPpVhuyCoV2w4iwnHkACc0Krbf1pkiUTe9PMOc-pNXWsq-sv8W3lg5Tj8AnU_eDes-4a-XbUcUq4yWKfk5y2nPxE5e8PICdwteK3vXDeAXEduAphZDgR5heEvEn5fySMvbWUa2oFW0vNnuwkMLtRhVFnW8jV-D3hib-44G-r5c_y6MRvRnWvPlPWCQVvqBP-H-5dU4BHPAlYTgUsWNam_0bAHewpe_0LyAigRxkXb-YAmEqr_Rt-59wQ3rHIDpHdXvNGS3ejzR6R3XdEduk_9Oc_mz8PZRwaTpFS6yeLuWhbMKAcdh1VlxMJ143NDdM9IrugN_6ZD0Z_A-aVCWtHsN7EoszKpa__Vhh_vmgxlRI3wOhoIZ5itAIsLLZOSIlbKqTf58gGU8WxBaZVOHq6jrrw6DO1mDZ6dP5U9fHafP8FFUkY_24g6nIaM90Dbo3ufz7c7y9FcjPjq4xXWUVnsEqXOamysqqKWbcCIJSULc8rYCltmiyHAoo0ybNquWS8mIkVSUieLNMqzUmVFzdpygu-JDRf8KaBtkGLBHoq5I33m4_ILHhslS6qIl_MJG1A2nDsJ0TBMw53ESEo387MKji7GfcWLRIprLOnaZxwMvy_4Pj24E-w__1JzyfNT10yG41c_T-ZEKQdVuRfAQAA__8y_RGO">