Skip to content

Conversation

@lenary
Copy link
Member

@lenary lenary commented Nov 25, 2025

This is proposed as an alternative to #169529. The idea here is during selection, to choose between directly generating LD/SD or generating PseudoLD_RV32_OPT/PseudoSD_RV32_OPT based on the volatility of the access.

Volatile operations will always become LD/SD, but non-volatile operations have a chance of becoming a pair of LW/SW depending on the register allocation, which might save some MV instructions.

The advantage of this approach is that we don't need to go searching for instructions to pair (including comparing their memory operands) in the pre-ra pass, we already know these are paired, but they don't constrain the register allocator, unlike LD/SD.

This PR is maybe not enough - we probably have to check the passes between ISel and the Pre-RA Load/Store Pairing pass cope with this correctly, especially MergeBaseOffset.

This is proposed as an alternative to llvm#169529. The idea here is during
selection, to choose between directly generating `LD`/`SD` or generating
`PseudoLD_RV32_OPT`/`PseudoSD_RV32_OPT` based on the volatility of the
access.

Volatile operations will always become `LD`/`SD`, but non-volatile
operations have a chance of becoming a pair of `LW`/`SW` depending on
the register allocation, which might save some `MV` instructions.

The advantage of this approach is that we don't need to go searching for
instructions to pair (including comparing their memory operands) in the
pre-ra pass, we already know these are paired, but they don't constrain
the register allocator, unlike `LD`/`SD`.

This PR is maybe not enough - we probably have to check the passes
between ISel and the Pre-RA Load/Store Pairing pass cope with this
correctly.

This also fixes a verifier error with the kill flags.
@lenary lenary requested a review from topperc November 25, 2025 23:09
@lenary lenary requested a review from 4vtomat November 25, 2025 23:09
@llvmbot
Copy link
Member

llvmbot commented Nov 25, 2025

@llvm/pr-subscribers-backend-risc-v

Author: Sam Elliott (lenary)

Changes

This is proposed as an alternative to #169529. The idea here is during selection, to choose between directly generating LD/SD or generating PseudoLD_RV32_OPT/PseudoSD_RV32_OPT based on the volatility of the access.

Volatile operations will always become LD/SD, but non-volatile operations have a chance of becoming a pair of LW/SW depending on the register allocation, which might save some MV instructions.

The advantage of this approach is that we don't need to go searching for instructions to pair (including comparing their memory operands) in the pre-ra pass, we already know these are paired, but they don't constrain the register allocator, unlike LD/SD.

This PR is maybe not enough - we probably have to check the passes between ISel and the Pre-RA Load/Store Pairing pass cope with this correctly, especially MergeBaseOffset.


Full diff: https://github.com/llvm/llvm-project/pull/169580.diff

2 Files Affected:

  • (modified) llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (+51-26)
  • (modified) llvm/test/CodeGen/RISCV/zilsd.ll (+22-34)
diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
index 5025122db3681..0be5d8e731b60 100644
--- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
@@ -1817,52 +1817,77 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
   case RISCVISD::LD_RV32: {
     assert(Subtarget->hasStdExtZilsd() && "LD_RV32 is only used with Zilsd");
 
+    auto *MemNode = cast<MemSDNode>(Node);
+
     SDValue Base, Offset;
-    SDValue Chain = Node->getOperand(0);
-    SDValue Addr = Node->getOperand(1);
+    SDValue Chain = MemNode->getChain();
+    SDValue Addr = MemNode->getBasePtr();
     SelectAddrRegImm(Addr, Base, Offset);
 
     SDValue Ops[] = {Base, Offset, Chain};
-    MachineSDNode *New = CurDAG->getMachineNode(
-        RISCV::LD_RV32, DL, {MVT::Untyped, MVT::Other}, Ops);
-    SDValue Lo = CurDAG->getTargetExtractSubreg(RISCV::sub_gpr_even, DL,
-                                                MVT::i32, SDValue(New, 0));
-    SDValue Hi = CurDAG->getTargetExtractSubreg(RISCV::sub_gpr_odd, DL,
-                                                MVT::i32, SDValue(New, 0));
-    CurDAG->setNodeMemRefs(New, {cast<MemSDNode>(Node)->getMemOperand()});
+    MachineSDNode *New;
+    SDValue Lo, Hi, OutChain;
+    if (MemNode->isVolatile()) {
+      New = CurDAG->getMachineNode(RISCV::LD_RV32, DL,
+                                   {MVT::Untyped, MVT::Other}, Ops);
+
+      Lo = CurDAG->getTargetExtractSubreg(RISCV::sub_gpr_even, DL, MVT::i32,
+                                          SDValue(New, 0));
+      Hi = CurDAG->getTargetExtractSubreg(RISCV::sub_gpr_odd, DL, MVT::i32,
+                                          SDValue(New, 0));
+      OutChain = SDValue(New, 1);
+    } else {
+      New = CurDAG->getMachineNode(RISCV::PseudoLD_RV32_OPT, DL,
+                                   {MVT::i32, MVT::i32, MVT::Other}, Ops);
+      Lo = SDValue(New, 0);
+      Hi = SDValue(New, 1);
+      OutChain = SDValue(New, 2);
+    }
+
+    CurDAG->setNodeMemRefs(New, {MemNode->getMemOperand()});
     ReplaceUses(SDValue(Node, 0), Lo);
     ReplaceUses(SDValue(Node, 1), Hi);
-    ReplaceUses(SDValue(Node, 2), SDValue(New, 1));
+    ReplaceUses(SDValue(Node, 2), OutChain);
     CurDAG->RemoveDeadNode(Node);
     return;
   }
   case RISCVISD::SD_RV32: {
+    auto *MemNode = cast<MemSDNode>(Node);
+
     SDValue Base, Offset;
-    SDValue Chain = Node->getOperand(0);
+    SDValue Chain = MemNode->getChain();
     SDValue Addr = Node->getOperand(3);
     SelectAddrRegImm(Addr, Base, Offset);
 
     SDValue Lo = Node->getOperand(1);
     SDValue Hi = Node->getOperand(2);
 
-    SDValue RegPair;
-    // Peephole to use X0_Pair for storing zero.
-    if (isNullConstant(Lo) && isNullConstant(Hi)) {
-      RegPair = CurDAG->getRegister(RISCV::X0_Pair, MVT::Untyped);
-    } else {
-      SDValue Ops[] = {
-          CurDAG->getTargetConstant(RISCV::GPRPairRegClassID, DL, MVT::i32), Lo,
-          CurDAG->getTargetConstant(RISCV::sub_gpr_even, DL, MVT::i32), Hi,
-          CurDAG->getTargetConstant(RISCV::sub_gpr_odd, DL, MVT::i32)};
+    MachineSDNode *New;
+    if (MemNode->isVolatile()) {
+      SDValue RegPair;
+      // Peephole to use X0_Pair for storing zero.
+      if (isNullConstant(Lo) && isNullConstant(Hi)) {
+        RegPair = CurDAG->getRegister(RISCV::X0_Pair, MVT::Untyped);
+      } else {
+        SDValue Ops[] = {
+            CurDAG->getTargetConstant(RISCV::GPRPairRegClassID, DL, MVT::i32),
+            Lo, CurDAG->getTargetConstant(RISCV::sub_gpr_even, DL, MVT::i32),
+            Hi, CurDAG->getTargetConstant(RISCV::sub_gpr_odd, DL, MVT::i32)};
+
+        RegPair = SDValue(CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, DL,
+                                                 MVT::Untyped, Ops),
+                          0);
+      }
 
-      RegPair = SDValue(CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, DL,
-                                               MVT::Untyped, Ops),
-                        0);
+      New = CurDAG->getMachineNode(RISCV::SD_RV32, DL, MVT::Other,
+                                   {RegPair, Base, Offset, Chain});
+    } else {
+      New = CurDAG->getMachineNode(RISCV::PseudoSD_RV32_OPT, DL, MVT::Other,
+                                   {Lo, Hi, Base, Offset, Chain});
     }
 
-    MachineSDNode *New = CurDAG->getMachineNode(RISCV::SD_RV32, DL, MVT::Other,
-                                                {RegPair, Base, Offset, Chain});
-    CurDAG->setNodeMemRefs(New, {cast<MemSDNode>(Node)->getMemOperand()});
+    CurDAG->setNodeMemRefs(New, {MemNode->getMemOperand()});
+
     ReplaceUses(SDValue(Node, 0), SDValue(New, 0));
     CurDAG->RemoveDeadNode(Node);
     return;
diff --git a/llvm/test/CodeGen/RISCV/zilsd.ll b/llvm/test/CodeGen/RISCV/zilsd.ll
index 27b1ff76f6f05..4146535318fb8 100644
--- a/llvm/test/CodeGen/RISCV/zilsd.ll
+++ b/llvm/test/CodeGen/RISCV/zilsd.ll
@@ -9,9 +9,10 @@
 define i64 @load(ptr %a) nounwind {
 ; CHECK-LABEL: load:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    mv a2, a0
-; CHECK-NEXT:    ld a0, 80(a0)
-; CHECK-NEXT:    ld zero, 0(a2)
+; CHECK-NEXT:    lw a2, 80(a0)
+; CHECK-NEXT:    lw a1, 84(a0)
+; CHECK-NEXT:    ld zero, 0(a0)
+; CHECK-NEXT:    mv a0, a2
 ; CHECK-NEXT:    ret
   %1 = getelementptr i64, ptr %a, i32 10
   %2 = load i64, ptr %1
@@ -44,10 +45,10 @@ define i64 @load_align4(ptr %a) nounwind {
 define void @store(ptr %a, i64 %b) nounwind {
 ; CHECK-LABEL: store:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    mv a3, a2
-; CHECK-NEXT:    mv a2, a1
-; CHECK-NEXT:    sd a2, 0(a0)
-; CHECK-NEXT:    sd a2, 88(a0)
+; CHECK-NEXT:    sw a1, 0(a0)
+; CHECK-NEXT:    sw a2, 4(a0)
+; CHECK-NEXT:    sw a1, 88(a0)
+; CHECK-NEXT:    sw a2, 92(a0)
 ; CHECK-NEXT:    ret
   store i64 %b, ptr %a
   %1 = getelementptr i64, ptr %a, i32 11
@@ -56,25 +57,11 @@ define void @store(ptr %a, i64 %b) nounwind {
 }
 
 define void @store_align4(ptr %a, i64 %b) nounwind {
-; SLOW-LABEL: store_align4:
-; SLOW:       # %bb.0:
-; SLOW-NEXT:    sw a1, 88(a0)
-; SLOW-NEXT:    sw a2, 92(a0)
-; SLOW-NEXT:    ret
-;
-; FAST-LABEL: store_align4:
-; FAST:       # %bb.0:
-; FAST-NEXT:    mv a3, a2
-; FAST-NEXT:    mv a2, a1
-; FAST-NEXT:    sd a2, 88(a0)
-; FAST-NEXT:    ret
-;
-; 4BYTEALIGN-LABEL: store_align4:
-; 4BYTEALIGN:       # %bb.0:
-; 4BYTEALIGN-NEXT:    mv a3, a2
-; 4BYTEALIGN-NEXT:    mv a2, a1
-; 4BYTEALIGN-NEXT:    sd a2, 88(a0)
-; 4BYTEALIGN-NEXT:    ret
+; CHECK-LABEL: store_align4:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    sw a1, 88(a0)
+; CHECK-NEXT:    sw a2, 92(a0)
+; CHECK-NEXT:    ret
   %1 = getelementptr i64, ptr %a, i32 11
   store i64 %b, ptr %1, align 4
   ret void
@@ -158,9 +145,8 @@ define void @store_unaligned(ptr %p, i64 %v) {
 ;
 ; FAST-LABEL: store_unaligned:
 ; FAST:       # %bb.0:
-; FAST-NEXT:    mv a3, a2
-; FAST-NEXT:    mv a2, a1
-; FAST-NEXT:    sd a2, 0(a0)
+; FAST-NEXT:    sw a1, 0(a0)
+; FAST-NEXT:    sw a2, 4(a0)
 ; FAST-NEXT:    ret
 ;
 ; 4BYTEALIGN-LABEL: store_unaligned:
@@ -213,11 +199,13 @@ define void @large_offset(ptr nocapture %p, i64 %d) nounwind {
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lui a1, 4
 ; CHECK-NEXT:    add a0, a0, a1
-; CHECK-NEXT:    ld a2, -384(a0)
-; CHECK-NEXT:    addi a2, a2, 1
-; CHECK-NEXT:    seqz a1, a2
-; CHECK-NEXT:    add a3, a3, a1
-; CHECK-NEXT:    sd a2, -384(a0)
+; CHECK-NEXT:    lw a1, -384(a0)
+; CHECK-NEXT:    lw a2, -380(a0)
+; CHECK-NEXT:    addi a1, a1, 1
+; CHECK-NEXT:    seqz a3, a1
+; CHECK-NEXT:    add a2, a2, a3
+; CHECK-NEXT:    sw a1, -384(a0)
+; CHECK-NEXT:    sw a2, -380(a0)
 ; CHECK-NEXT:    ret
 entry:
   %add.ptr = getelementptr inbounds i64, ptr %p, i64 2000

@4vtomat
Copy link
Member

4vtomat commented Nov 26, 2025

I'm not familiar with MergeBaseOffset but I think it works on load/store with same offset and ZilsdLoadStoreOptimizer works on load/store with different(consecutive) offset so maybe they can work fine?

@lenary
Copy link
Member Author

lenary commented Nov 26, 2025

The change with this PR is that PseudoLD_RV32_OPT are now introduced in two places, in ISel and in the Zilsd Optimisation Pass. They are still removed in the load/store optimizer.

I think with this change, we might generate a PseudoLD_RV32_OPT which we want to push a %lo into (using MergeBaseOffset) - but we have to be very careful because we need to know we can add 4 to it without overflow in case we need to split it into two loads. The same effectively applies for stores.

I think we already have code for this for Zdinx, so hopefully we can reuse that. I don't think the lack of MergeBaseOffset changes should prevent this change.

@topperc
Copy link
Collaborator

topperc commented Nov 26, 2025

Don't we need to call MRI->setRegAllocationHint for the PseudoLD_RV32_OPT registers after isel?

@lenary
Copy link
Member Author

lenary commented Nov 26, 2025

Maybe! I guess I forgot that step.

I have a prospective patch to add eliminateFrameIndex support to these instructions following the rv32Zdinx spill pseudos, but it's entirely untested right now.

I did have a bit of a look at merge base offset but i didn't make progress there.

@github-actions
Copy link

🐧 Linux x64 Test Results

  • 166391 tests passed
  • 2874 tests skipped
  • 7 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/RISCV/double-convert.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll    -target-abi=ilp32d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll    -target-abi=lp64d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll    -target-abi=ilp32 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:730:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI12_0)
# |                         ^
# | <stdin>:157:36: note: scanning from here
# |  sw s2, 0(sp) # 4-byte Folded Spill
# |                                    ^
# | <stdin>:158:2: note: possible intended match here
# |  lui a3, %hi(.LCPI12_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:981:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: fle.d a2, zero, s0
# |                         ^
# | <stdin>:228:19: note: scanning from here
# |  call __fixunsdfdi
# |                   ^
# | <stdin>:229:2: note: possible intended match here
# |  fle.d a4, zero, s0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:1650:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI26_0)
# |                         ^
# | <stdin>:384:18: note: scanning from here
# | # %bb.0: # %start
# |                  ^
# | <stdin>:385:2: note: possible intended match here
# |  lui a3, %hi(.LCPI26_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:1848:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI28_0)
# |                         ^
# | <stdin>:422:18: note: scanning from here
# | # %bb.0: # %start
# |                  ^
# | <stdin>:423:2: note: possible intended match here
# |  lui a3, %hi(.LCPI28_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:2028:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI30_0)
# |                         ^
# | <stdin>:455:18: note: scanning from here
# | # %bb.0: # %start
# |                  ^
# | <stdin>:456:2: note: possible intended match here
# |  lui a3, %hi(.LCPI30_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll:2226:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI32_0)
# |                         ^
# | <stdin>:493:18: note: scanning from here
# | # %bb.0: # %start
# |                  ^
# | <stdin>:494:2: note: possible intended match here
# |  lui a3, %hi(.LCPI32_0)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-convert.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            152: # %bb.0: # %start 
# |            153:  addi sp, sp, -16 
# |            154:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            155:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            156:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            157:  sw s2, 0(sp) # 4-byte Folded Spill 
# | next:730'0                                         X error: no match found
# |            158:  lui a3, %hi(.LCPI12_0) 
# | next:730'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:730'1       ?                       possible intended match
# |            159:  lw a2, %lo(.LCPI12_0)(a3) 
# | next:730'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            160:  addi a3, a3, %lo(.LCPI12_0) 
# | next:730'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            161:  lw a3, 4(a3) 
# | next:730'0      ~~~~~~~~~~~~~~
# |            162:  mv s1, a1 
# | next:730'0      ~~~~~~~~~~~
# |            163:  mv s0, a0 
# | next:730'0      ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            223:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            224:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            225:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            226:  mv s1, a1 
# |            227:  mv s0, a0 
# |            228:  call __fixunsdfdi 
# | next:981'0                        X error: no match found
# |            229:  fle.d a4, zero, s0 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~
# | next:981'1       ?                   possible intended match
# |            230:  lui a3, %hi(.LCPI14_0) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |            231:  lw a2, %lo(.LCPI14_0)(a3) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            232:  addi a3, a3, %lo(.LCPI14_0) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            233:  lw a3, 4(a3) 
# | next:981'0      ~~~~~~~~~~~~~~
# |            234:  neg a4, a4 
# | next:981'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            379:  .text 
# |            380:  .globl fcvt_w_s_sat_i16 
# |            381:  .p2align 2 
# |            382:  .type fcvt_w_s_sat_i16,@function 
# |            383: fcvt_w_s_sat_i16: # @fcvt_w_s_sat_i16 
# |            384: # %bb.0: # %start 
# | next:1650'0                      X error: no match found
# |            385:  lui a3, %hi(.LCPI26_0) 
# | next:1650'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1650'1      ?                       possible intended match
# |            386:  lui a5, %hi(.LCPI26_1) 
# | next:1650'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |            387:  lw a2, %lo(.LCPI26_0)(a3) 
# | next:1650'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  addi a3, a3, %lo(.LCPI26_0) 
# | next:1650'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            389:  lw a3, 4(a3) 
# | next:1650'0     ~~~~~~~~~~~~~~
# |            390:  lw a4, %lo(.LCPI26_1)(a5) 
# | next:1650'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            417:  .text 
# |            418:  .globl fcvt_wu_s_sat_i16 
# |            419:  .p2align 2 
# |            420:  .type fcvt_wu_s_sat_i16,@function 
# |            421: fcvt_wu_s_sat_i16: # @fcvt_wu_s_sat_i16 
# |            422: # %bb.0: # %start 
# | next:1848'0                      X error: no match found
# |            423:  lui a3, %hi(.LCPI28_0) 
# | next:1848'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1848'1      ?                       possible intended match
# |            424:  lw a2, %lo(.LCPI28_0)(a3) 
# | next:1848'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            425:  addi a3, a3, %lo(.LCPI28_0) 
# | next:1848'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            426:  lw a3, 4(a3) 
# | next:1848'0     ~~~~~~~~~~~~~~
# |            427:  fmax.d a0, a0, zero 
# | next:1848'0     ~~~~~~~~~~~~~~~~~~~~~
# |            428:  fmin.d a0, a0, a2 
# | next:1848'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            450:  .text 
# |            451:  .globl fcvt_w_s_sat_i8 
# |            452:  .p2align 2 
# |            453:  .type fcvt_w_s_sat_i8,@function 
# |            454: fcvt_w_s_sat_i8: # @fcvt_w_s_sat_i8 
# |            455: # %bb.0: # %start 
# | next:2028'0                      X error: no match found
# |            456:  lui a3, %hi(.LCPI30_0) 
# | next:2028'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2028'1      ?                       possible intended match
# |            457:  lui a5, %hi(.LCPI30_1) 
# | next:2028'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |            458:  lw a2, %lo(.LCPI30_0)(a3) 
# | next:2028'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            459:  addi a3, a3, %lo(.LCPI30_0) 
# | next:2028'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            460:  lw a3, 4(a3) 
# | next:2028'0     ~~~~~~~~~~~~~~
# |            461:  lw a4, %lo(.LCPI30_1)(a5) 
# | next:2028'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            488:  .text 
# |            489:  .globl fcvt_wu_s_sat_i8 
# |            490:  .p2align 2 
# |            491:  .type fcvt_wu_s_sat_i8,@function 
# |            492: fcvt_wu_s_sat_i8: # @fcvt_wu_s_sat_i8 
# |            493: # %bb.0: # %start 
# | next:2226'0                      X error: no match found
# |            494:  lui a3, %hi(.LCPI32_0) 
# | next:2226'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2226'1      ?                       possible intended match
# |            495:  lw a2, %lo(.LCPI32_0)(a3) 
# | next:2226'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            496:  addi a3, a3, %lo(.LCPI32_0) 
# | next:2226'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            497:  lw a3, 4(a3) 
# | next:2226'0     ~~~~~~~~~~~~~~
# |            498:  fmax.d a0, a0, zero 
# | next:2226'0     ~~~~~~~~~~~~~~~~~~~~~
# |            499:  fmin.d a0, a0, a2 
# | next:2226'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-imm.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll    -target-abi=ilp32d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll --check-prefix=CHECK32D
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll --check-prefix=CHECK32D
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll    -target-abi=lp64d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll --check-prefix=CHECK64D
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll --check-prefix=CHECK64D
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll    -target-abi=ilp32 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=CHECKRV32ZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=CHECKRV32ZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll:58:24: error: CHECKRV32ZDINX-NEXT: expected string not found in input
# | ; CHECKRV32ZDINX-NEXT: lui a2, %hi(.LCPI1_0)
# |                        ^
# | <stdin>:27:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:28:2: note: possible intended match here
# |  lui a3, %hi(.LCPI1_0)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-imm.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           22:  .text 
# |           23:  .globl double_imm_op 
# |           24:  .p2align 2 
# |           25:  .type double_imm_op,@function 
# |           26: double_imm_op: # @double_imm_op 
# |           27: # %bb.0: 
# | next:58'0             X error: no match found
# |           28:  lui a3, %hi(.LCPI1_0) 
# | next:58'0     ~~~~~~~~~~~~~~~~~~~~~~~
# | next:58'1      ?                      possible intended match
# |           29:  lw a2, %lo(.LCPI1_0)(a3) 
# | next:58'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           30:  addi a3, a3, %lo(.LCPI1_0) 
# | next:58'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           31:  lw a3, 4(a3) 
# | next:58'0     ~~~~~~~~~~~~~~
# |           32:  fadd.d a0, a0, a2 
# | next:58'0     ~~~~~~~~~~~~~~~~~~~
# |           33:  ret 
# | next:58'0     ~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-intrinsics-strict.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
sed 's/iXLen/i32/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d    -verify-machineinstrs -disable-strictnode-mutation -target-abi=ilp32d    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# executed command: sed s/iXLen/i32/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -disable-strictnode-mutation -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# note: command had no output on stdout or stderr
# RUN: at line 5
sed 's/iXLen/i64/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d    -verify-machineinstrs -disable-strictnode-mutation -target-abi=lp64d    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# executed command: sed s/iXLen/i64/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -disable-strictnode-mutation -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# note: command had no output on stdout or stderr
# RUN: at line 8
sed 's/iXLen/i32/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx    -verify-machineinstrs -disable-strictnode-mutation -target-abi=ilp32    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# executed command: sed s/iXLen/i32/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -disable-strictnode-mutation -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll:281:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: mv s0, a1
# |                         ^
# | <stdin>:67:37: note: scanning from here
# |  sw s3, 12(sp) # 4-byte Folded Spill
# |                                     ^
# | <stdin>:68:2: note: possible intended match here
# |  mv s2, a1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            62:  addi sp, sp, -32 
# |            63:  sw ra, 28(sp) # 4-byte Folded Spill 
# |            64:  sw s0, 24(sp) # 4-byte Folded Spill 
# |            65:  sw s1, 20(sp) # 4-byte Folded Spill 
# |            66:  sw s2, 16(sp) # 4-byte Folded Spill 
# |            67:  sw s3, 12(sp) # 4-byte Folded Spill 
# | next:281'0                                         X error: no match found
# |            68:  mv s2, a1 
# | next:281'0     ~~~~~~~~~~~
# | next:281'1      ?          possible intended match
# |            69:  mv s3, a0 
# | next:281'0     ~~~~~~~~~~~
# |            70:  call sin 
# | next:281'0     ~~~~~~~~~~
# |            71:  mv s0, a0 
# | next:281'0     ~~~~~~~~~~~
# |            72:  mv s1, a1 
# | next:281'0     ~~~~~~~~~~~
# |            73:  mv a0, s3 
# | next:281'0     ~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-intrinsics.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
sed 's/iXLen/i32/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d    -verify-machineinstrs -target-abi=ilp32d    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# executed command: sed s/iXLen/i32/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# note: command had no output on stdout or stderr
# RUN: at line 5
sed 's/iXLen/i64/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d    -verify-machineinstrs -target-abi=lp64d    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# executed command: sed s/iXLen/i64/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# note: command had no output on stdout or stderr
# RUN: at line 8
sed 's/iXLen/i32/g' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx    -verify-machineinstrs -target-abi=ilp32    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# executed command: sed s/iXLen/i32/g /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll:236:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: mv s0, a1
# |                         ^
# | <stdin>:67:37: note: scanning from here
# |  sw s3, 12(sp) # 4-byte Folded Spill
# |                                     ^
# | <stdin>:68:2: note: possible intended match here
# |  mv s2, a1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-intrinsics.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            62:  addi sp, sp, -32 
# |            63:  sw ra, 28(sp) # 4-byte Folded Spill 
# |            64:  sw s0, 24(sp) # 4-byte Folded Spill 
# |            65:  sw s1, 20(sp) # 4-byte Folded Spill 
# |            66:  sw s2, 16(sp) # 4-byte Folded Spill 
# |            67:  sw s3, 12(sp) # 4-byte Folded Spill 
# | next:236'0                                         X error: no match found
# |            68:  mv s2, a1 
# | next:236'0     ~~~~~~~~~~~
# | next:236'1      ?          possible intended match
# |            69:  mv s3, a0 
# | next:236'0     ~~~~~~~~~~~
# |            70:  call sin 
# | next:236'0     ~~~~~~~~~~
# |            71:  mv s0, a0 
# | next:236'0     ~~~~~~~~~~~
# |            72:  mv s1, a1 
# | next:236'0     ~~~~~~~~~~~
# |            73:  mv a0, s3 
# | next:236'0     ~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-mem.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll    -target-abi=ilp32d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll    -target-abi=lp64d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll    -target-abi=ilp32 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll:182:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, 912092
# |                         ^
# | <stdin>:61:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:62:2: note: possible intended match here
# |  lui a4, 912092
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-mem.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            56:  # -- End function 
# |            57:  .globl fld_fsd_constant # -- Begin function fld_fsd_constant 
# |            58:  .p2align 2 
# |            59:  .type fld_fsd_constant,@function 
# |            60: fld_fsd_constant: # @fld_fsd_constant 
# |            61: # %bb.0: 
# | next:182'0             X error: no match found
# |            62:  lui a4, 912092 
# | next:182'0     ~~~~~~~~~~~~~~~~
# | next:182'1      ?               possible intended match
# |            63:  lw a2, -273(a4) 
# | next:182'0     ~~~~~~~~~~~~~~~~~
# |            64:  lw a3, -269(a4) 
# | next:182'0     ~~~~~~~~~~~~~~~~~
# |            65:  fadd.d a0, a0, a2 
# | next:182'0     ~~~~~~~~~~~~~~~~~~~
# |            66:  sw a0, -273(a4) 
# | next:182'0     ~~~~~~~~~~~~~~~~~
# |            67:  sw a1, -269(a4) 
# | next:182'0     ~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-previous-failure.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -target-abi=ilp32 -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -target-abi=ilp32 -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -target-abi=ilp32 -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -target-abi=ilp32 -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll:53:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI1_0)
# |                         ^
# | <stdin>:30:11: note: scanning from here
# |  call test
# |           ^
# | <stdin>:31:2: note: possible intended match here
# |  lui a3, %hi(.LCPI1_0)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-previous-failure.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           25: # %bb.0: # %entry 
# |           26:  addi sp, sp, -16 
# |           27:  sw ra, 12(sp) # 4-byte Folded Spill 
# |           28:  lui a1, 262144 
# |           29:  li a0, 0 
# |           30:  call test 
# | next:53'0               X error: no match found
# |           31:  lui a3, %hi(.LCPI1_0) 
# | next:53'0     ~~~~~~~~~~~~~~~~~~~~~~~
# | next:53'1      ?                      possible intended match
# |           32:  lw a2, %lo(.LCPI1_0)(a3) 
# | next:53'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           33:  addi a3, a3, %lo(.LCPI1_0) 
# | next:53'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           34:  lw a3, 4(a3) 
# | next:53'0     ~~~~~~~~~~~~~~
# |           35:  flt.d a2, a0, a2 
# | next:53'0     ~~~~~~~~~~~~~~~~~~
# |           36:  bnez a2, .LBB1_3 
# | next:53'0     ~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/RISCV/double-round-conv-sat.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll    -target-abi=ilp32d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+d -verify-machineinstrs -target-abi=ilp32d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV32IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll    -target-abi=lp64d | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv64 -mattr=+d -verify-machineinstrs -target-abi=lp64d
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECKIFD,RV64IFD /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll    -target-abi=ilp32 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=RV32IZFINXZDINX /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:102:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI1_0)
# |                         ^
# | <stdin>:40:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:41:2: note: possible intended match here
# |  lui a3, %hi(.LCPI1_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:224:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI3_0)
# |                         ^
# | <stdin>:108:12: note: scanning from here
# |  call floor
# |            ^
# | <stdin>:109:2: note: possible intended match here
# |  lui a3, %hi(.LCPI3_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:351:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI5_0)
# |                         ^
# | <stdin>:169:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:170:2: note: possible intended match here
# |  lui a3, %hi(.LCPI5_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:473:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI7_0)
# |                         ^
# | <stdin>:237:11: note: scanning from here
# |  call ceil
# |           ^
# | <stdin>:238:2: note: possible intended match here
# |  lui a3, %hi(.LCPI7_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:600:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI9_0)
# |                         ^
# | <stdin>:298:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:299:2: note: possible intended match here
# |  lui a3, %hi(.LCPI9_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:722:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI11_0)
# |                         ^
# | <stdin>:366:12: note: scanning from here
# |  call trunc
# |            ^
# | <stdin>:367:2: note: possible intended match here
# |  lui a3, %hi(.LCPI11_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:849:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI13_0)
# |                         ^
# | <stdin>:427:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:428:2: note: possible intended match here
# |  lui a3, %hi(.LCPI13_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:971:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI15_0)
# |                         ^
# | <stdin>:495:12: note: scanning from here
# |  call round
# |            ^
# | <stdin>:496:2: note: possible intended match here
# |  lui a3, %hi(.LCPI15_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:1098:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI17_0)
# |                         ^
# | <stdin>:556:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:557:2: note: possible intended match here
# |  lui a3, %hi(.LCPI17_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:1220:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI19_0)
# |                         ^
# | <stdin>:624:16: note: scanning from here
# |  call roundeven
# |                ^
# | <stdin>:625:2: note: possible intended match here
# |  lui a3, %hi(.LCPI19_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:1347:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI21_0)
# |                         ^
# | <stdin>:685:16: note: scanning from here
# |  call __fixdfdi
# |                ^
# | <stdin>:686:2: note: possible intended match here
# |  lui a3, %hi(.LCPI21_0)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll:1469:25: error: RV32IZFINXZDINX-NEXT: expected string not found in input
# | ; RV32IZFINXZDINX-NEXT: lui a2, %hi(.LCPI23_0)
# |                         ^
# | <stdin>:753:11: note: scanning from here
# |  call rint
# |           ^
# | <stdin>:754:2: note: possible intended match here
# |  lui a3, %hi(.LCPI23_0)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/RISCV/double-round-conv-sat.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             35:  sw s0, 8(sp) # 4-byte Folded Spill 
# |             36:  sw s1, 4(sp) # 4-byte Folded Spill 
# |             37:  call floor 
# |             38:  mv s0, a0 
# |             39:  mv s1, a1 
# |             40:  call __fixdfdi 
# | next:102'0                     X error: no match found
# |             41:  lui a3, %hi(.LCPI1_0) 
# | next:102'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:102'1       ?                      possible intended match
# |             42:  lw a2, %lo(.LCPI1_0)(a3) 
# | next:102'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             43:  addi a3, a3, %lo(.LCPI1_0) 
# | next:102'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             44:  lw a3, 4(a3) 
# | next:102'0      ~~~~~~~~~~~~~~
# |             45:  fle.d a3, a2, s0 
# | next:102'0      ~~~~~~~~~~~~~~~~~~
# |             46:  lui a4, 524288 
# | next:102'0      ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            103:  addi sp, sp, -16 
# |            104:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            105:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            106:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            107:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            108:  call floor 
# | next:224'0                 X error: no match found
# |            109:  lui a3, %hi(.LCPI3_0) 
# | next:224'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:224'1       ?                      possible intended match
# |            110:  lw a2, %lo(.LCPI3_0)(a3) 
# | next:224'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            111:  addi a3, a3, %lo(.LCPI3_0) 
# | next:224'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            112:  lw a3, 4(a3) 
# | next:224'0      ~~~~~~~~~~~~~~
# |            113:  mv s0, a0 
# | next:224'0      ~~~~~~~~~~~
# |            114:  mv s1, a1 
# | next:224'0      ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            164:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            165:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            166:  call ceil 
# |            167:  mv s0, a0 
# |            168:  mv s1, a1 
# |            169:  call __fixdfdi 
# | next:351'0                     X error: no match found
# |            170:  lui a3, %hi(.LCPI5_0) 
# | next:351'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:351'1       ?                      possible intended match
# |            171:  lw a2, %lo(.LCPI5_0)(a3) 
# | next:351'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            172:  addi a3, a3, %lo(.LCPI5_0) 
# | next:351'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            173:  lw a3, 4(a3) 
# | next:351'0      ~~~~~~~~~~~~~~
# |            174:  fle.d a3, a2, s0 
# | next:351'0      ~~~~~~~~~~~~~~~~~~
# |            175:  lui a4, 524288 
# | next:351'0      ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            232:  addi sp, sp, -16 
# |            233:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            234:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            235:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            236:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            237:  call ceil 
# | next:473'0                X error: no match found
# |            238:  lui a3, %hi(.LCPI7_0) 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:473'1       ?                      possible intended match
# |            239:  lw a2, %lo(.LCPI7_0)(a3) 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            240:  addi a3, a3, %lo(.LCPI7_0) 
# | next:473'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            241:  lw a3, 4(a3) 
# | next:473'0      ~~~~~~~~~~~~~~
# |            242:  mv s0, a0 
# | next:473'0      ~~~~~~~~~~~
# |            243:  mv s1, a1 
# | next:473'0      ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            293:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            294:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            295:  call trunc 
# |            296:  mv s0, a0 
# |            297:  mv s1, a1 
# |            298:  call __fixdfdi 
# | next:600'0                     X error: no match found
# |            299:  lui a3, %hi(.LCPI9_0) 
# | next:600'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:600'1       ?                      possible intended match
# |            300:  lw a2, %lo(.LCPI9_0)(a3) 
# | next:600'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            301:  addi a3, a3, %lo(.LCPI9_0) 
# | next:600'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            302:  lw a3, 4(a3) 
# | next:600'0      ~~~~~~~~~~~~~~
# |            303:  fle.d a3, a2, s0 
# | next:600'0      ~~~~~~~~~~~~~~~~~~
# |            304:  lui a4, 524288 
# | next:600'0      ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            361:  addi sp, sp, -16 
# |            362:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            363:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            364:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            365:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            366:  call trunc 
# | next:722'0                 X error: no match found
# |            367:  lui a3, %hi(.LCPI11_0) 
# | next:722'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:722'1       ?                       possible intended match
# |            368:  lw a2, %lo(.LCPI11_0)(a3) 
# | next:722'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            369:  addi a3, a3, %lo(.LCPI11_0) 
# | next:722'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            370:  lw a3, 4(a3) 
# | next:722'0      ~~~~~~~~~~~~~~
# |            371:  mv s0, a0 
# | next:722'0      ~~~~~~~~~~~
# |            372:  mv s1, a1 
# | next:722'0      ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            422:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            423:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            424:  call round 
# |            425:  mv s0, a0 
# |            426:  mv s1, a1 
# |            427:  call __fixdfdi 
# | next:849'0                     X error: no match found
# |            428:  lui a3, %hi(.LCPI13_0) 
# | next:849'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:849'1       ?                       possible intended match
# |            429:  lw a2, %lo(.LCPI13_0)(a3) 
# | next:849'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            430:  addi a3, a3, %lo(.LCPI13_0) 
# | next:849'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            431:  lw a3, 4(a3) 
# | next:849'0      ~~~~~~~~~~~~~~
# |            432:  fle.d a3, a2, s0 
# | next:849'0      ~~~~~~~~~~~~~~~~~~
# |            433:  lui a4, 524288 
# | next:849'0      ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            490:  addi sp, sp, -16 
# |            491:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            492:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            493:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            494:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            495:  call round 
# | next:971'0                 X error: no match found
# |            496:  lui a3, %hi(.LCPI15_0) 
# | next:971'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:971'1       ?                       possible intended match
# |            497:  lw a2, %lo(.LCPI15_0)(a3) 
# | next:971'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            498:  addi a3, a3, %lo(.LCPI15_0) 
# | next:971'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            499:  lw a3, 4(a3) 
# | next:971'0      ~~~~~~~~~~~~~~
# |            500:  mv s0, a0 
# | next:971'0      ~~~~~~~~~~~
# |            501:  mv s1, a1 
# | next:971'0      ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            551:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            552:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            553:  call roundeven 
# |            554:  mv s0, a0 
# |            555:  mv s1, a1 
# |            556:  call __fixdfdi 
# | next:1098'0                    X error: no match found
# |            557:  lui a3, %hi(.LCPI17_0) 
# | next:1098'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1098'1      ?                       possible intended match
# |            558:  lw a2, %lo(.LCPI17_0)(a3) 
# | next:1098'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            559:  addi a3, a3, %lo(.LCPI17_0) 
# | next:1098'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            560:  lw a3, 4(a3) 
# | next:1098'0     ~~~~~~~~~~~~~~
# |            561:  fle.d a3, a2, s0 
# | next:1098'0     ~~~~~~~~~~~~~~~~~~
# |            562:  lui a4, 524288 
# | next:1098'0     ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            619:  addi sp, sp, -16 
# |            620:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            621:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            622:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            623:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            624:  call roundeven 
# | next:1220'0                    X error: no match found
# |            625:  lui a3, %hi(.LCPI19_0) 
# | next:1220'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1220'1      ?                       possible intended match
# |            626:  lw a2, %lo(.LCPI19_0)(a3) 
# | next:1220'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            627:  addi a3, a3, %lo(.LCPI19_0) 
# | next:1220'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            628:  lw a3, 4(a3) 
# | next:1220'0     ~~~~~~~~~~~~~~
# |            629:  mv s0, a0 
# | next:1220'0     ~~~~~~~~~~~
# |            630:  mv s1, a1 
# | next:1220'0     ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            680:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            681:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            682:  call rint 
# |            683:  mv s0, a0 
# |            684:  mv s1, a1 
# |            685:  call __fixdfdi 
# | next:1347'0                    X error: no match found
# |            686:  lui a3, %hi(.LCPI21_0) 
# | next:1347'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1347'1      ?                       possible intended match
# |            687:  lw a2, %lo(.LCPI21_0)(a3) 
# | next:1347'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            688:  addi a3, a3, %lo(.LCPI21_0) 
# | next:1347'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            689:  lw a3, 4(a3) 
# | next:1347'0     ~~~~~~~~~~~~~~
# |            690:  fle.d a3, a2, s0 
# | next:1347'0     ~~~~~~~~~~~~~~~~~~
# |            691:  lui a4, 524288 
# | next:1347'0     ~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            748:  addi sp, sp, -16 
# |            749:  sw ra, 12(sp) # 4-byte Folded Spill 
# |            750:  sw s0, 8(sp) # 4-byte Folded Spill 
# |            751:  sw s1, 4(sp) # 4-byte Folded Spill 
# |            752:  sw s2, 0(sp) # 4-byte Folded Spill 
# |            753:  call rint 
# | next:1469'0               X error: no match found
# |            754:  lui a3, %hi(.LCPI23_0) 
# | next:1469'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1469'1      ?                       possible intended match
# |            755:  lw a2, %lo(.LCPI23_0)(a3) 
# | next:1469'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            756:  addi a3, a3, %lo(.LCPI23_0) 
# | next:1469'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            757:  lw a3, 4(a3) 
# | next:1469'0     ~~~~~~~~~~~~~~
# |            758:  mv s0, a0 
# | next:1469'0     ~~~~~~~~~~~
# |            759:  mv s1, a1 
# | next:1469'0     ~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

let hasSideEffects = false;
let mayLoad = true;
let mayStore = false;
let isCodeGenOnly = true;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought isCodeGenOnly was set by Pseudo already.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh it might be. I should have checked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants