<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/79718>79718</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LoongArch] Assertion `isReg() && "This is not a register operand!"'
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DianQK
</td>
</tr>
</table>
<pre>
I tried this code with `llc --mtriple=loongarch64`
```llvm
define void @foo(i1 %0) {
br label %2
2: ; preds = %32, %1
%3 = phi i64 [ 0, %1 ], [ %27, %32 ]
%4 = phi i64 [ 0, %1 ], [ %28, %32 ]
%5 = phi i64 [ undef, %1 ], [ %30, %32 ]
br label %6
6: ; preds = %26, %2
%7 = phi i64 [ %27, %26 ], [ %3, %2 ]
%8 = phi i64 [ %28, %26 ], [ %4, %2 ]
%9 = phi i64 [ 0, %26 ], [ %3, %2 ]
%10 = phi i64 [ %29, %26 ], [ %4, %2 ]
%11 = phi i64 [ %30, %26 ], [ %5, %2 ]
br i1 %0, label %20, label %12
12: ; preds = %6
br i1 %0, label %13, label %18
13: ; preds = %12
br i1 %0, label %16, label %14
14: ; preds = %13
%15 = call { i64, i64 } null(i8 0, ptr null, i64 0)
br label %16
16: ; preds = %14, %13
%17 = or i64 1, %10
br label %20
18: ; preds = %12
br i1 %0, label %23, label %19
19: ; preds = %18
br label %23
20: ; preds = %16, %6
%21 = phi i64 [ %8, %6 ], [ %17, %16 ]
%22 = phi i64 [ %10, %6 ], [ %17, %16 ]
store i8 0, ptr null, align 1
br label %26
23: ; preds = %19, %18
%24 = phi i64 [ 1, %19 ], [ 0, %18 ]
%25 = phi i64 [ %11, %19 ], [ 0, %18 ]
store i64 0, ptr null, align 8
br label %26
26: ; preds = %23, %20
%27 = phi i64 [ %25, %23 ], [ %7, %20 ]
%28 = phi i64 [ %24, %23 ], [ %21, %20 ]
%29 = phi i64 [ %24, %23 ], [ %22, %20 ]
%30 = phi i64 [ %25, %23 ], [ %11, %20 ]
%31 = getelementptr i8, ptr null, i64 %9
br i1 %0, label %6, label %32
32: ; preds = %26
call void null(ptr null, ptr null, i64 0, ptr %31, i64 0)
br label %2
}
```
I got a segmentation fault.
If assertion is turned on, I can get `isReg() && "This is not a register operand!"' failed`.
GodBolt: https://llvm.godbolt.org/z/va3YPK44e
From: https://github.com/rust-lang/rust/pull/120268
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysV8Fu4zYQ_Rr6QsQghxIlHXyI13ARbA9t0UuPtETLLGjRIKks2q8vSFmOZFObzTZBkEgi9fjmceYNJZxTbSflBuVblO9WovcnYzc7Jbrfv64Opvln84K9VbLB_qQcrk0j8TflTxhxonWNn57O3qqLlojttDFdK2x94hniBJEdIs_Xv5wMv1q_nodHjTyqTuJXoxqMMnI0BkGpKEaQEwQVRsV2mIjxwWItDlKHMZjCAmLP-IM_iG3xxcrGYcR2AZEBgi_hgo7rhYdx9HJSWPEMo3yLyTgLo3wXr_NtJFRcBxjEkTeM7McxyiWM_AGj7xp5XMBhJIkz1Y9P9eOfoR_w66Iw4V088J5KBfye-DhwF36ZhCmXYLIFmGpxJ36YCSVJKtVHqVCawmGLfPIUzsHiW6V8mdTG_JbOaoXGYnnYPf4OJmXz23KGyZKYFN4D5fPbbAaafTwrHymwqeZDFdVC62ArQfiwftS_2OGu1zp4TzlkxcXb66NhSnCjVCXRWSnRn6ilR9Zj1szpD8VkbKRDxykkaY8z26Xlz-0P3G16NQOtPiPSMsmezdydpNmPfsMnGkGyrEajuC8qOhoR5XflCZDCoeRjQM4bK3EqoYRWbYdpMvhZPgH7DJVHe3qTOyz02JhuSVVNA7y1q_Jepce2FK3tAyhXiYb6SmmUTpC5Rp9Rc3BzfDKNMN3Abm7M7hLh1tnIvVTpFpYtAQFdRHrsYt9HgiUklu5li8HRRU5sKLtWeqnlWXY-7KMqUzYa2vA7tjPvCmzWvli6fcHNBKK7x9Pk1c-nBBKePjyMMbzn9CORYnd3mp0SfMGt8VhgJ9sghPDKdPgoeu3X1wlHLJyTNg4oh31vO9lg04XlX3AtuqBjOFcr94dsUTjmVBiF4xXHCODPcP5WDndxGStb5by02FykFV2DQuIAggIfhdKyQZysp_R-Mc3WaB9EPHl_cYg9I9gj2IcT-bo1zcFovza2RbD_F8H-VbC_fvuaZXJ4fW_N-fHdVvlTf1jX5oxgb3vnn7To2us1gv0lSr6nQIBf63nVbFhTsUqs5IYWhGeEVaxcnTa0OAieF7SRdSHEgYu6qCpaZTkBIITzldoAgYxQKAklOSvXB1mWdSUg46QSuZQoI_IslF7HkIxtV8q5Xm6KqqDlKu6mi985AJ38huNg0CzfrewmvPN06FuHMqKV8-4NxSuv4wfSr-H75tnWJ5TvMH6-beb_3bJVb_XmO8rGj6bh39PFmr9lHcSN_B2CfYzvvwAAAP__Y_tFZg">