<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97304>97304</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISCV]
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
lukel97
</td>
</tr>
</table>
<pre>
Compiling the below with `llc -verify-machineinstrs` fails during the machine verifier:
```llvm
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define i32 @_ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE(i1 %cmp436) {
entry:
br label %for.cond
for.cond: ; preds = %for.cond, %entry
%conv = select i1 %cmp436, i32 32, i32 1
%call479 = call i32 (ptr, ...) null(ptr null, i32 %conv, i32 0, i32 0, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
br label %for.cond
}
```
```
# After Instruction Selection
# Machine code for function _ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE: IsSSA, TracksLiveness
Function Live Ins: $x10 in %0
bb.0.entry:
successors: %bb.1(0x80000000); %bb.1(100.00%)
liveins: $x10
%0:gpr = COPY $x10
%1:gpr = COPY %0:gpr
bb.1.for.cond:
; predecessors: %bb.0, %bb.3
successors: %bb.2(0x40000000), %bb.3(0x40000000); %bb.2(50.00%), %bb.3(50.00%)
%2:gpr = ANDI %1:gpr, 1
ADJCALLSTACKDOWN 8, 0, implicit-def dead $x2, implicit $x2
%3:gpr = COPY $x2
%4:gprjalr = COPY $x0
SD %4:gprjalr, %3:gpr, 0 :: (store (s64))
%5:gpr = ADDI $x0, 1
%6:gpr = ADDI $x0, 32
BNE %2:gpr, $x0, %bb.3
bb.2.for.cond:
; predecessors: %bb.1
successors: %bb.3(0x80000000); %bb.3(100.00%)
bb.3.for.cond:
; predecessors: %bb.1, %bb.2
successors: %bb.1(0x80000000); %bb.1(100.00%)
%7:gpr = PHI %6:gpr, %bb.1, %5:gpr, %bb.2
$x10 = COPY %4:gprjalr
$x11 = COPY %7:gpr
$x12 = COPY %4:gprjalr
$x13 = COPY %4:gprjalr
$x14 = COPY %4:gprjalr
$x15 = COPY %4:gprjalr
$x16 = COPY %4:gprjalr
$x17 = COPY %4:gprjalr
PseudoCALLIndirect %4:gprjalr, <regmask $vlenb $x0 $x1 $x8 $x9 $x18 $x19 $x20 $x21 $x22 $x23 $x24 $x25 $x26 $x27 $x8_x9 $x18_x19 $x20_x21 $x22_x23 $x24_x25 $x26_x27>, implicit-def dead $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit $x14, implicit $x15, implicit $x16, implicit $x17, implicit-def $x2, implicit-def $x10
ADJCALLSTACKUP 8, 0, implicit-def dead $x2, implicit $x2
%8:gpr = COPY $x10
PseudoBR %bb.1
# End machine code for function _ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE.
*** Bad machine code: Call frame size on entry does not match value computed from predecessor ***
- function: _ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE
- basic block: %bb.2 for.cond (0x144084970)
Call frame size on entry 0 does not match value computed from predecessor 8
*** Bad machine code: Call frame size on entry does not match value computed from predecessor ***
- function: _ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE
- basic block: %bb.3 for.cond (0x144084870)
Call frame size on entry 0 does not match value computed from predecessor 8
LLVM ERROR: Found 2 machine code errors.
```
The test case looks strange, but it was reduced from a crash when compiling OpenCV with `-rva22u64v -mllvm -verify-machineinstrs` .
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWEtz4yoW_jV4Q0klgV5eeOFHUuPpdJKKezI1s3EhCdt0sHABcpL59VOALGM7SSc9c-_iplICHb7z5JwjMFGKrRtKRyCdgHQ2IK3eCDni7RPlw3xQivp1NBXbHeOsWUO9obCkXDzDZ6Y3EGQR5xUM9lSy1WuwJdWGNZQ1SksFsgiuCOMK1q088HYIaBkYlQCPQTQD0RhkkfvnfL91JE3kmmpYE004eRWthgDPIECIBluAxzTYATzOEvsIWD-JUQHwOEZF0GDkaAtDQ-hErJZsx-lBpGSq2mdJ0DZPjXhuAs6a9iVYN23P5p41XRnzGUYQJNHy37ffULWP0c33heB7KufbHceyba4evt0ulnG-nDe7Vt-1etfqsZTk9QqggsUQoLTa7hKcATSEIJ844bTR8rWPCISlhJyUlBv4SsiwEk3tG9PT8BgCPIE7SWvVeXRkQFPz6mR3go160ewtVFFOKw1PjZpaDzE6zGKfk3Ce5EPLbOYuGKjYaWngYRgap5qWc0fsptMOZzUfXqOTSS3aklMYhZH9owBNoj9pYfiJmOezs1T19-KciDAcrzSVcG6Koa00Ew1c2Fgz0RxB37uCqERN4UpIuGobB_6d5MJjOFeLxdh4-kOS6kndsD1tqFJO4_VBuCEb02zqoOQljiBrjM8nTpVlGIVnWanaqqJKCdnxpmUZxgAV0UvhQmqjiSfeUhyZcAOUenHmbG_6xFG_l2ERwOP1TtoMm97d_-sSEV8iDlxn9sehVyXdWlcq9MKPqCuWsgzxQdtb_iLrb-L56_GdL_WhMFypF4kTnvQ8RJ63yPN2fDubexEwQvriHM_-Ph3f3Cx-jKffZnf_vIWFWXY1tt1xVjEd1HQFa0pqG1PkL3UUJwugFL-1C8gzK3GAn4SfgfqdWszOcJ3P-Gh8BM2-2MgWSgtJ7SRLbICGnrbUD8LMBsFo8v0HKM3eReGD6ZPbKy-ozqIOc7L1fQqhr6RQ_EGZ4PfLBL9ZJmeG4K8Z0juEPsrlL9euF-3ci_b93-beBhyVH-xIzxe8VLL9x69lP2V8VHyCyv2K7xDoU3Lwp1DJp1DpL1AWlH1KVP4r1L2ibS1Mkc-bmknz4X6jwPBU0vWWqCcjdc9pU7oUd0rss7DPoaO4l9i9IQdDDoeQG7AbEjekbsjckDuJy17c8ihreRS0PEpZHkUsX1AO8NX7PSq-6FFxdEl6A3XZ3GJ8SUouSeklKbsk5RcmX3TUnnr8dvkt-h_3_0ODNvtefPyddMkyeTjtTMejx1VT9-fx_8vxIzzV0P3DCTnVY3rP1BwcV5JsKVTsPxSKBtpzBqwFVbARGm6JrjZwT3hruLa7VtMarqTY-v0O9lqc0qC33yj5nRNUJ6YkilWw5KJ68j778NB_oW2acZJERTLMj-fHd92KvupY8RePJX4zlsUfGcubm8fv8Orh4e7BmHEt2qaG6LQCqJRCqvCDc_6PDYWaKg0roijkQjwpqLQkzZqaWi1bDZmGz0RBSeu2OphDYCWJ2sDnDW2spe46fbejzfSxv0sHck8QarNkD4OtuQi_f7MOB_UI10M8JAM6ivN4WCRpNkwHm1E-JFVZV1mB4mxYkJpgVJK8ihOSYZwSOmAjFKEkyqM4TtIkTcM6pXWZxnmWJqgs0hokEd0SxkNjQijkesCUaulomOMoGdjrkbI_FyBUkuqJ2vPIw3wxDR7NdTmdDeTIsAZlu1YgiThTWh2Faaa5_bnBsDyCdAYHreSjjdY7cy4B6Bqg6zXTm7YMK7EF6Nr-JuCGYCfFT1ppgK6tUQqga2fXfoT-GwAA___caL_H">