Skip to content

expandFMINNUM_FMAXNUM: Improve for backends with FMINIMUMNUM and FMINNUM_IEEE#181083

Open
wzssyqa wants to merge 4 commits intollvm:mainfrom
wzssyqa:expandFMINNUM
Open

expandFMINNUM_FMAXNUM: Improve for backends with FMINIMUMNUM and FMINNUM_IEEE#181083
wzssyqa wants to merge 4 commits intollvm:mainfrom
wzssyqa:expandFMINNUM

Conversation

@wzssyqa
Copy link
Copy Markdown
Contributor

@wzssyqa wzssyqa commented Feb 12, 2026

  1. FMINNUM_IEEE is a strict version of FMINNUM. We can map it directly.
  2. If both operands are non-SNaN, we can map FMINNUM to FMINIMUMNUM directly.

…UM_IEEE

1. FMINNUM_IEEE is a strict version of FMINNUM. We can map it directly.
2. If both operands are non-SNaN, we can map FMINNUM to FMINIMUMNUM directly.
@wzssyqa wzssyqa requested a review from arsenm February 12, 2026 03:50
@wzssyqa wzssyqa temporarily deployed to main-branch-only February 12, 2026 03:50 — with GitHub Actions Inactive
@llvmbot llvmbot temporarily deployed to main-branch-only February 12, 2026 03:50 — with GitHub Actions Inactive
@llvmbot llvmbot temporarily deployed to main-branch-only February 12, 2026 03:50 — with GitHub Actions Inactive
@llvmbot llvmbot temporarily deployed to main-branch-only February 12, 2026 03:50 — with GitHub Actions Inactive
@llvmbot llvmbot temporarily deployed to main-branch-only February 12, 2026 03:50 — with GitHub Actions Inactive
@wzssyqa wzssyqa changed the title expandFMINNUM_FMAXNUM: Improve for backend with FMINIMUMNUM and FMINN… expandFMINNUM_FMAXNUM: Improve for backends with FMINIMUMNUM and FMINNUM_IEEE Feb 12, 2026
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Feb 12, 2026

@llvm/pr-subscribers-backend-amdgpu
@llvm/pr-subscribers-backend-x86
@llvm/pr-subscribers-llvm-selectiondag

@llvm/pr-subscribers-backend-mips

Author: YunQiang Su (wzssyqa)

Changes

…UM_IEEE

  1. FMINNUM_IEEE is a strict version of FMINNUM. We can map it directly.
  2. If both operands are non-SNaN, we can map FMINNUM to FMINIMUMNUM directly.

Patch is 27.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/181083.diff

6 Files Affected:

  • (modified) llvm/include/llvm/CodeGen/ISDOpcodes.h (+2-2)
  • (modified) llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (+27-34)
  • (modified) llvm/lib/Target/Mips/MipsISelLowering.cpp (-4)
  • (added) llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll (+233)
  • (added) llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll (+189)
  • (added) llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll (+243)
diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h b/llvm/include/llvm/CodeGen/ISDOpcodes.h
index b8c6788e0bc03..e1d7b7fa85221 100644
--- a/llvm/include/llvm/CodeGen/ISDOpcodes.h
+++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h
@@ -1088,8 +1088,8 @@ enum NodeType {
   /// These treat -0 as ordered less than +0, matching the behavior of IEEE-754
   /// 2019's minimumNumber/maximumNumber.
   ///
-  /// Deprecated, and will be removed soon, as FMINNUM/FMAXNUM have the same
-  /// semantics now.
+  /// Some ISAs have such instructions, such as AArch64, MIPSr6, LoongArch etc.
+  /// Normally these ISAs claim that they have maxNum/minNum of IEEE754-2008.
   FMINNUM_IEEE,
   FMAXNUM_IEEE,
 
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 99968baec98e4..31b581e76ea02 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -8801,50 +8801,43 @@ TargetLowering::createSelectForFMINNUM_FMAXNUM(SDNode *Node,
 
 SDValue TargetLowering::expandFMINNUM_FMAXNUM(SDNode *Node,
                                               SelectionDAG &DAG) const {
-  if (SDValue Expanded = expandVectorNaryOpBySplitting(Node, DAG))
-    return Expanded;
-
   EVT VT = Node->getValueType(0);
-  if (VT.isScalableVector())
-    report_fatal_error(
-        "Expanding fminnum/fmaxnum for scalable vectors is undefined.");
-
   SDLoc dl(Node);
-  unsigned NewOp =
-      Node->getOpcode() == ISD::FMINNUM ? ISD::FMINNUM_IEEE : ISD::FMAXNUM_IEEE;
+  SDValue Op0 = Node->getOperand(0);
+  SDValue Op1 = Node->getOperand(1);
+  SDNodeFlags Flags = Node->getFlags();
+  unsigned Opc = Node->getOpcode();
 
-  if (isOperationLegalOrCustom(NewOp, VT)) {
-    SDValue Quiet0 = Node->getOperand(0);
-    SDValue Quiet1 = Node->getOperand(1);
+  unsigned NewOp = Opc == ISD::FMINNUM ? ISD::FMINNUM_IEEE : ISD::FMAXNUM_IEEE;
+  if (isOperationLegalOrCustom(NewOp, VT))
+    return DAG.getNode(NewOp, dl, VT, Op0, Op1, Flags);
 
-    if (!Node->getFlags().hasNoNaNs()) {
-      // Insert canonicalizes if it's possible we need to quiet to get correct
-      // sNaN behavior.
-      if (!DAG.isKnownNeverSNaN(Quiet0)) {
-        Quiet0 = DAG.getNode(ISD::FCANONICALIZE, dl, VT, Quiet0,
-                             Node->getFlags());
-      }
-      if (!DAG.isKnownNeverSNaN(Quiet1)) {
-        Quiet1 = DAG.getNode(ISD::FCANONICALIZE, dl, VT, Quiet1,
-                             Node->getFlags());
-      }
-    }
-
-    return DAG.getNode(NewOp, dl, VT, Quiet0, Quiet1, Node->getFlags());
+  // If the target has FMINIMUM/FMAXIMUM but not FMINNUM/FMAXNUM use that
+  // instead if there are no NaNs.
+  if (Flags.hasNoNaNs() ||
+      (DAG.isKnownNeverNaN(Op0) && DAG.isKnownNeverNaN(Op1))) {
+    unsigned IEEE2019Op = Opc == ISD::FMINNUM ? ISD::FMINIMUM : ISD::FMAXIMUM;
+    if (isOperationLegalOrCustom(IEEE2019Op, VT))
+      return DAG.getNode(IEEE2019Op, dl, VT, Op0, Op1, Flags);
   }
 
   // If the target has FMINIMUM/FMAXIMUM but not FMINNUM/FMAXNUM use that
   // instead if there are no NaNs.
-  if (Node->getFlags().hasNoNaNs() ||
-      (DAG.isKnownNeverNaN(Node->getOperand(0)) &&
-       DAG.isKnownNeverNaN(Node->getOperand(1)))) {
-    unsigned IEEE2018Op =
-        Node->getOpcode() == ISD::FMINNUM ? ISD::FMINIMUM : ISD::FMAXIMUM;
-    if (isOperationLegalOrCustom(IEEE2018Op, VT))
-      return DAG.getNode(IEEE2018Op, dl, VT, Node->getOperand(0),
-                         Node->getOperand(1), Node->getFlags());
+  if (Flags.hasNoNaNs() ||
+      (DAG.isKnownNeverSNaN(Op0) && DAG.isKnownNeverSNaN(Op1))) {
+    unsigned IEEE2019NumOp =
+        Opc == ISD::FMINNUM ? ISD::FMINIMUMNUM : ISD::FMAXIMUMNUM;
+    if (isOperationLegalOrCustom(IEEE2019NumOp, VT))
+      return DAG.getNode(IEEE2019NumOp, dl, VT, Op0, Op1, Flags);
   }
 
+  if (SDValue Expanded = expandVectorNaryOpBySplitting(Node, DAG))
+    return Expanded;
+
+  if (VT.isScalableVector())
+    report_fatal_error(
+        "Expanding fminnum/fmaxnum for scalable vectors is undefined.");
+
   if (SDValue SelCC = createSelectForFMINNUM_FMAXNUM(Node, DAG))
     return SelCC;
 
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp
index c920e912f49ac..a26b184f41c0a 100644
--- a/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp
@@ -253,12 +253,8 @@ MipsTargetLowering::MipsTargetLowering(const MipsTargetMachine &TM,
   if (Subtarget.hasMips32r6()) {
     setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
-    setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
-    setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
     setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
-    setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
-    setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
     setOperationAction(ISD::IS_FPCLASS, MVT::f32, Legal);
     setOperationAction(ISD::IS_FPCLASS, MVT::f64, Legal);
     setOperationAction(ISD::FCANONICALIZE, MVT::f32, Legal);
diff --git a/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll b/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll
new file mode 100644
index 0000000000000..3317503f9166f
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll
@@ -0,0 +1,233 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=hexagon -mcpu=hexagonv67 < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINIMUMNUM/FMAXIMUMNUM.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumNS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumNY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumSN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumSY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumYN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumYS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+
+define double @test_minnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumNN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumSS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumYY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumNS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumNY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumSN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumSY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumYN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumYS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
diff --git a/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll b/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll
new file mode 100644
index 0000000000000..2282c8f7f8e1d
--- /dev/null
+++ b/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll
@@ -0,0 +1,189 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=mipsisa32r6-linux-gnu < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINNUM_IEEE/FMAXNUM_IEEE.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumNS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumNY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumSN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumSY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumYN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumYS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+
+define double @test_minnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumNN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumSS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumYY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumNS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumNY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumSN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumSY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumYN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumYS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
diff --git a/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll b/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll
new file mode 100644
index 0000000000000..eb2931361bcc9
--- /dev/null
+++ b/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll
@@ -0,0 +1,243 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=wasm32 -disable-wasm-fallthrough-return-opt -wasm-keep-registers < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINIMUM/FMAXIMUM.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:         .functype test_maxnumNN (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    f64.max $push0=, $pop2, $pop1
+; CHECK-NEXT:    return $pop0
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:         .functype test_maxnumSS (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    call $push0=, fmax, $pop2, $pop1
+; CHECK-NEXT:    return $pop0
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:         .functype test_maxnumYY (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    call $push0=, fmax, $pop2, $pop1
+; CH...
[truncated]

@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Feb 12, 2026

@llvm/pr-subscribers-backend-hexagon

Author: YunQiang Su (wzssyqa)

Changes

…UM_IEEE

  1. FMINNUM_IEEE is a strict version of FMINNUM. We can map it directly.
  2. If both operands are non-SNaN, we can map FMINNUM to FMINIMUMNUM directly.

Patch is 27.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/181083.diff

6 Files Affected:

  • (modified) llvm/include/llvm/CodeGen/ISDOpcodes.h (+2-2)
  • (modified) llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (+27-34)
  • (modified) llvm/lib/Target/Mips/MipsISelLowering.cpp (-4)
  • (added) llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll (+233)
  • (added) llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll (+189)
  • (added) llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll (+243)
diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h b/llvm/include/llvm/CodeGen/ISDOpcodes.h
index b8c6788e0bc03..e1d7b7fa85221 100644
--- a/llvm/include/llvm/CodeGen/ISDOpcodes.h
+++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h
@@ -1088,8 +1088,8 @@ enum NodeType {
   /// These treat -0 as ordered less than +0, matching the behavior of IEEE-754
   /// 2019's minimumNumber/maximumNumber.
   ///
-  /// Deprecated, and will be removed soon, as FMINNUM/FMAXNUM have the same
-  /// semantics now.
+  /// Some ISAs have such instructions, such as AArch64, MIPSr6, LoongArch etc.
+  /// Normally these ISAs claim that they have maxNum/minNum of IEEE754-2008.
   FMINNUM_IEEE,
   FMAXNUM_IEEE,
 
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 99968baec98e4..31b581e76ea02 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -8801,50 +8801,43 @@ TargetLowering::createSelectForFMINNUM_FMAXNUM(SDNode *Node,
 
 SDValue TargetLowering::expandFMINNUM_FMAXNUM(SDNode *Node,
                                               SelectionDAG &DAG) const {
-  if (SDValue Expanded = expandVectorNaryOpBySplitting(Node, DAG))
-    return Expanded;
-
   EVT VT = Node->getValueType(0);
-  if (VT.isScalableVector())
-    report_fatal_error(
-        "Expanding fminnum/fmaxnum for scalable vectors is undefined.");
-
   SDLoc dl(Node);
-  unsigned NewOp =
-      Node->getOpcode() == ISD::FMINNUM ? ISD::FMINNUM_IEEE : ISD::FMAXNUM_IEEE;
+  SDValue Op0 = Node->getOperand(0);
+  SDValue Op1 = Node->getOperand(1);
+  SDNodeFlags Flags = Node->getFlags();
+  unsigned Opc = Node->getOpcode();
 
-  if (isOperationLegalOrCustom(NewOp, VT)) {
-    SDValue Quiet0 = Node->getOperand(0);
-    SDValue Quiet1 = Node->getOperand(1);
+  unsigned NewOp = Opc == ISD::FMINNUM ? ISD::FMINNUM_IEEE : ISD::FMAXNUM_IEEE;
+  if (isOperationLegalOrCustom(NewOp, VT))
+    return DAG.getNode(NewOp, dl, VT, Op0, Op1, Flags);
 
-    if (!Node->getFlags().hasNoNaNs()) {
-      // Insert canonicalizes if it's possible we need to quiet to get correct
-      // sNaN behavior.
-      if (!DAG.isKnownNeverSNaN(Quiet0)) {
-        Quiet0 = DAG.getNode(ISD::FCANONICALIZE, dl, VT, Quiet0,
-                             Node->getFlags());
-      }
-      if (!DAG.isKnownNeverSNaN(Quiet1)) {
-        Quiet1 = DAG.getNode(ISD::FCANONICALIZE, dl, VT, Quiet1,
-                             Node->getFlags());
-      }
-    }
-
-    return DAG.getNode(NewOp, dl, VT, Quiet0, Quiet1, Node->getFlags());
+  // If the target has FMINIMUM/FMAXIMUM but not FMINNUM/FMAXNUM use that
+  // instead if there are no NaNs.
+  if (Flags.hasNoNaNs() ||
+      (DAG.isKnownNeverNaN(Op0) && DAG.isKnownNeverNaN(Op1))) {
+    unsigned IEEE2019Op = Opc == ISD::FMINNUM ? ISD::FMINIMUM : ISD::FMAXIMUM;
+    if (isOperationLegalOrCustom(IEEE2019Op, VT))
+      return DAG.getNode(IEEE2019Op, dl, VT, Op0, Op1, Flags);
   }
 
   // If the target has FMINIMUM/FMAXIMUM but not FMINNUM/FMAXNUM use that
   // instead if there are no NaNs.
-  if (Node->getFlags().hasNoNaNs() ||
-      (DAG.isKnownNeverNaN(Node->getOperand(0)) &&
-       DAG.isKnownNeverNaN(Node->getOperand(1)))) {
-    unsigned IEEE2018Op =
-        Node->getOpcode() == ISD::FMINNUM ? ISD::FMINIMUM : ISD::FMAXIMUM;
-    if (isOperationLegalOrCustom(IEEE2018Op, VT))
-      return DAG.getNode(IEEE2018Op, dl, VT, Node->getOperand(0),
-                         Node->getOperand(1), Node->getFlags());
+  if (Flags.hasNoNaNs() ||
+      (DAG.isKnownNeverSNaN(Op0) && DAG.isKnownNeverSNaN(Op1))) {
+    unsigned IEEE2019NumOp =
+        Opc == ISD::FMINNUM ? ISD::FMINIMUMNUM : ISD::FMAXIMUMNUM;
+    if (isOperationLegalOrCustom(IEEE2019NumOp, VT))
+      return DAG.getNode(IEEE2019NumOp, dl, VT, Op0, Op1, Flags);
   }
 
+  if (SDValue Expanded = expandVectorNaryOpBySplitting(Node, DAG))
+    return Expanded;
+
+  if (VT.isScalableVector())
+    report_fatal_error(
+        "Expanding fminnum/fmaxnum for scalable vectors is undefined.");
+
   if (SDValue SelCC = createSelectForFMINNUM_FMAXNUM(Node, DAG))
     return SelCC;
 
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp
index c920e912f49ac..a26b184f41c0a 100644
--- a/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp
@@ -253,12 +253,8 @@ MipsTargetLowering::MipsTargetLowering(const MipsTargetMachine &TM,
   if (Subtarget.hasMips32r6()) {
     setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
-    setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
-    setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
     setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
-    setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
-    setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
     setOperationAction(ISD::IS_FPCLASS, MVT::f32, Legal);
     setOperationAction(ISD::IS_FPCLASS, MVT::f64, Legal);
     setOperationAction(ISD::FCANONICALIZE, MVT::f32, Legal);
diff --git a/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll b/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll
new file mode 100644
index 0000000000000..3317503f9166f
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/expandFMINNUM_FMAXNUM-v67.ll
@@ -0,0 +1,233 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=hexagon -mcpu=hexagonv67 < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINIMUMNUM/FMAXIMUMNUM.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumNS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumNY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumSN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmax(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumSY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumYN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumYS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmax
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+
+define double @test_minnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumNN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumSS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumYY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumNS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumNY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumSN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     r1:0 = dfmin(r1:0,r3:2)
+; CHECK-NEXT:     jumpr r31
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumSY:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumYN:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumYS:
+; CHECK:         .cfi_startproc
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    {
+; CHECK-NEXT:     jump fmin
+; CHECK-NEXT:    }
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
diff --git a/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll b/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll
new file mode 100644
index 0000000000000..2282c8f7f8e1d
--- /dev/null
+++ b/llvm/test/CodeGen/Mips/expandFMINNUM_FMAXNUM-r6.ll
@@ -0,0 +1,189 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=mipsisa32r6-linux-gnu < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINNUM_IEEE/FMAXNUM_IEEE.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumNS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumNY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumSN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumSY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumYN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumYS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    max.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+
+define double @test_minnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumNN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumSS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumYY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNS(double nofpclass(nan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumNS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumNY(double nofpclass(nan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumNY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSN(double nofpclass(snan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumSN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumSY(double nofpclass(snan) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_minnumSY:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYN(double nofpclass(zero) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_minnumYN:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_minnumYS(double nofpclass(zero) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_minnumYS:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    jr $ra
+; CHECK-NEXT:    min.d $f0, $f12, $f14
+entry:
+  %0 = tail call double @llvm.minnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
diff --git a/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll b/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll
new file mode 100644
index 0000000000000..eb2931361bcc9
--- /dev/null
+++ b/llvm/test/CodeGen/WebAssembly/expandFMINNUM_FMAXNUM.ll
@@ -0,0 +1,243 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=wasm32 -disable-wasm-fallthrough-return-opt -wasm-keep-registers < %s | FileCheck %s
+
+; test expandFMINNUM_FMAXNUM on backend with FMINIMUM/FMAXIMUM.
+; N -> not NaN
+; S -> not SNaN
+; Y -> may be NaN or SNaN
+
+define double @test_maxnumNN(double nofpclass(nan) %f1, double nofpclass(nan) %f2) {
+; CHECK-LABEL: test_maxnumNN:
+; CHECK:         .functype test_maxnumNN (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    f64.max $push0=, $pop2, $pop1
+; CHECK-NEXT:    return $pop0
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumSS(double nofpclass(snan) %f1, double nofpclass(snan) %f2) {
+; CHECK-LABEL: test_maxnumSS:
+; CHECK:         .functype test_maxnumSS (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    call $push0=, fmax, $pop2, $pop1
+; CHECK-NEXT:    return $pop0
+entry:
+  %0 = tail call double @llvm.maxnum.f64(double %f1, double %f2)
+  ret double %0
+}
+
+define double @test_maxnumYY(double nofpclass(zero) %f1, double nofpclass(zero) %f2) {
+; CHECK-LABEL: test_maxnumYY:
+; CHECK:         .functype test_maxnumYY (f64, f64) -> (f64)
+; CHECK-NEXT:  # %bb.0: # %entry
+; CHECK-NEXT:    local.get $push2=, 0
+; CHECK-NEXT:    local.get $push1=, 1
+; CHECK-NEXT:    call $push0=, fmax, $pop2, $pop1
+; CH...
[truncated]

@wzssyqa wzssyqa requested a review from valadaptive February 12, 2026 03:51
Copy link
Copy Markdown
Contributor

@valadaptive valadaptive left a comment

Choose a reason for hiding this comment

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

I think there's more leeway for FMINNUM and FMAXNUM now.

I'm OK with leaving that for a follow-up PR as long as it's commented here that the "never sNaN" precondition for the FMINIMUMNUM/FMAXIMUMNUM lowering is overly conservative considering the newer FMINNUM/FMAXNUM semantics.

That one comment above the FMINIMUMNUM/FMAXIMUMNUM lowering needs to be updated either way.

STRICT_FMAXNUM requires FMAXNUM to be Legal.
For test, AMDGPU is good enough.
@wzssyqa
Copy link
Copy Markdown
Contributor Author

wzssyqa commented Feb 12, 2026

I think there's more leeway for FMINNUM and FMAXNUM now.

I fully agree. I think that we can do something like we had done for fminimum and fminimumnum:

  • work with NaNs
  • work with signed zeros.

to reduce the libc calls and fully compatible with C23.

@github-actions
Copy link
Copy Markdown

🐧 Linux x64 Test Results

  • 169561 tests passed
  • 3055 tests skipped
  • 10 tests failed

Failed Tests

(click on a test name to see its output)

Clang

Clang.CodeGenOpenCL/amdgpu-ieee.cl
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=COMMON,ON /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# 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=COMMON,ON /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl    -mno-amdgpu-ieee -menable-no-nans    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=COMMON,OFF /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl -mno-amdgpu-ieee -menable-no-nans
# 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=COMMON,OFF /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# note: command had no output on stdout or stderr
# RUN: at line 8
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl    -mno-amdgpu-ieee -cl-fast-relaxed-math    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=COMMON,OFF /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl -mno-amdgpu-ieee -cl-fast-relaxed-math
# 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=COMMON,OFF /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# note: command had no output on stdout or stderr
# RUN: at line 14
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O3 -S -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl    | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=ISA-ON /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple amdgcn-amd-amdhsa -O3 -S -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# 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=ISA-ON /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl:26:12: error: ISA-ON: expected string not found in input
# | // ISA-ON: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}
# |            ^
# | <stdin>:1:1: note: scanning from here
# |  .amdgcn_target "amdgcn-amd-amdhsa--gfx700"
# | ^
# | <stdin>:14:2: note: possible intended match here
# |  v_min_f32_e32 v2, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGenOpenCL/amdgpu-ieee.cl
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1:  .amdgcn_target "amdgcn-amd-amdhsa--gfx700" 
# | check:26'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2:  .amdhsa_code_object_version 6 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             3:  .text 
# | check:26'0     ~~~~~~~
# |             4:  .globl kern ; -- Begin function kern 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             5:  .p2align 8 
# | check:26'0     ~~~~~~~~~~~~
# |             6:  .type kern,@function 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |             9:  .type .Lkern$local,@function 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            10: ; %bb.0: ; %entry 
# | check:26'0     ~~~~~~~~~~~~~~~~~~
# |            11:  s_load_dwordx4 s[0:3], s[4:5], 0x0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            12:  s_waitcnt lgkmcnt(0) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            13:  v_mov_b32_e32 v0, s3 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            14:  v_min_f32_e32 v2, s2, v0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:26'1      ?                         possible intended match
# |            15:  v_mov_b32_e32 v0, s0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            16:  v_mov_b32_e32 v1, s1 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            17:  flat_store_dword v[0:1], v2 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            18:  s_endpgm 
# | check:26'0     ~~~~~~~~~~
# |            19:  .section .rodata,"a",@progbits 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM

LLVM.CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECK,GFX90A /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None
# 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=CHECK,GFX90A /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:9402:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8641:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8642:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:9466:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8704:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8702:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:8703:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:9532:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8767:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8768:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:9596:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8830:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8828:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:8829:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:10437:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_cndmask_b32_e32 v6, -1, v0, vcc
# |                ^
# | <stdin>:9556:33: note: scanning from here
# |  v_cmp_ne_u64_e32 vcc, 0, v[0:1]
# |                                 ^
# | <stdin>:9557:2: note: possible intended match here
# |  v_cndmask_b32_e32 v4, -1, v0, vcc
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:10512:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_add_co_u32_e32 v4, vcc, 0x50, v0
# |                ^
# | <stdin>:9612:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:9613:2: note: possible intended match here
# |  v_add_co_u32_e32 v2, vcc, 0x50, v0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:10625:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_cndmask_b32_e32 v6, -1, v0, vcc
# |                ^
# | <stdin>:9712:33: note: scanning from here
# |  v_cmp_ne_u64_e32 vcc, 0, v[0:1]
# |                                 ^
# | <stdin>:9713:2: note: possible intended match here
# |  v_cndmask_b32_e32 v4, -1, v0, vcc
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:10700:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_add_co_u32_e32 v4, vcc, 0x50, v0
# |                ^
# | <stdin>:9768:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:9769:2: note: possible intended match here
# |  v_add_co_u32_e32 v2, vcc, 0x50, v0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:11549:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:10495:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:10496:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:11614:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:10558:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:10556:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:10557:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:11681:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:10621:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:10622:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:11746:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:10684:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:10682:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:10683:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:17705:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:16476:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:16477:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:17773:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:16542:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:16539:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:16540:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:17843:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:16606:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:16607:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:17911:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:16672:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:16669:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:16670:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:18746:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_mov_b32_e32 v6, s4
# |                ^
# | <stdin>:17399:26: note: scanning from here
# |  s_cselect_b32 s4, s4, -1
# |                          ^
# | <stdin>:17400:2: note: possible intended match here
# |  v_mov_b32_e32 v4, s4
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:18825:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: ; def v[2:3]
# |                ^
# | <stdin>:17461:13: note: scanning from here
# |  ;;#ASMSTART
# |             ^
# | <stdin>:17462:2: note: possible intended match here
# |  ; def v[0:1]
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:18928:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_mov_b32_e32 v6, s4
# |                ^
# | <stdin>:17554:26: note: scanning from here
# |  s_cselect_b32 s4, s4, -1
# |                          ^
# | <stdin>:17555:2: note: possible intended match here
# |  v_mov_b32_e32 v4, s4
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:19007:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: ; def v[2:3]
# |                ^
# | <stdin>:17616:13: note: scanning from here
# |  ;;#ASMSTART
# |             ^
# | <stdin>:17617:2: note: possible intended match here
# |  ; def v[0:1]
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:19846:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:18340:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:18341:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:19915:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:18406:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:18403:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:18404:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:19986:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:18470:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:18471:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll:20055:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:18536:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:18533:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:18534:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |               .
# |               .
# |               .
# |            8636: ; %bb.0: 
# |            8637:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8638:  flat_load_dword v3, v[0:1] offset:40 
# |            8639:  ;;#ASMSTART 
# |            8640:  ; def a0 
# |            8641:  ;;#ASMEND 
# | next:9402'0                X error: no match found
# |            8642:  v_accvgpr_read_b32 v4, a0 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:9402'1       ?                          possible intended match
# |            8643:  s_mov_b64 s[4:5], 0 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8644: .LBB119_1: ; %atomicrmw.start 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8645:  ; =>This Inner Loop Header: Depth=1 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8646:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8647:  v_max_f32_e32 v2, v3, v4 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8699: flat_atomic_fmax_f32_ret_av_av: ; @flat_atomic_fmax_f32_ret_av_av 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8700: ; %bb.0: 
# |            8701:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8702:  flat_load_dword v3, v[0:1] offset:40 
# |            8703:  s_mov_b64 s[4:5], 0 
# |            8704:  ;;#ASMSTART 
# | next:9466         !~~~~~~~~~~  error: match on wrong line
# |            8705:  ; def v4 
# |            8706:  ;;#ASMEND 
# |            8707: .LBB120_1: ; %atomicrmw.start 
# |            8708:  ; =>This Inner Loop Header: Depth=1 
# |            8709:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |            8762: ; %bb.0: 
# |            8763:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8764:  flat_load_dword v3, v[0:1] offset:40 
# |            8765:  ;;#ASMSTART 
# |            8766:  ; def a0 
# |            8767:  ;;#ASMEND 
# | next:9532'0                X error: no match found
# |            8768:  v_accvgpr_read_b32 v4, a0 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:9532'1       ?                          possible intended match
# |            8769:  s_mov_b64 s[4:5], 0 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8770: .LBB121_1: ; %atomicrmw.start 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8771:  ; =>This Inner Loop Header: Depth=1 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8772:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8773:  v_min_f32_e32 v2, v3, v4 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8825: flat_atomic_fmin_f32_ret_av_av: ; @flat_atomic_fmin_f32_ret_av_av 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8826: ; %bb.0: 
# |            8827:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8828:  flat_load_dword v3, v[0:1] offset:40 
# |            8829:  s_mov_b64 s[4:5], 0 
# |            8830:  ;;#ASMSTART 
# | next:9596         !~~~~~~~~~~  error: match on wrong line
# |            8831:  ; def v4 
# |            8832:  ;;#ASMEND 
# |            8833: .LBB122_1: ; %atomicrmw.start 
# |            8834:  ; =>This Inner Loop Header: Depth=1 
# |            8835:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |            9551:  ; implicit-def: $vgpr0_vgpr1 
# |            9552: .LBB131_2: ; %Flow 
# |            9553:  s_andn2_saveexec_b64 s[4:5], s[4:5] 
# |            9554:  s_cbranch_execz .LBB131_4 
# |            9555: ; %bb.3: ; %atomicrmw.private 
# |            9556:  v_cmp_ne_u64_e32 vcc, 0, v[0:1] 
# | next:10437'0                                     X error: no match found
# |            9557:  v_cndmask_b32_e32 v4, -1, v0, vcc 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10437'1      ?                                  possible intended match
# |            9558:  buffer_load_dword v0, v4, s[0:3], 0 offen 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9559:  buffer_load_dword v1, v4, s[0:3], 0 offen offset:4 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9560:  s_waitcnt vmcnt(0) 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~
# |            9561:  v_accvgpr_write_b32 a0, v0 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9562:  v_max_f64 v[2:3], v[0:1], v[2:3] 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9607:  .globl flat_atomic_fmax_f64_ret_av_av ; -- Begin function flat_atomic_fmax_f64_ret_av_av 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9608:  .p2align 2 
# | next:10437'0     ~~~~~~~~~~~~
# |            9609:  .type flat_atomic_fmax_f64_ret_av_av,@function 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9610: flat_atomic_fmax_f64_ret_av_av: ; @flat_atomic_fmax_f64_ret_av_av 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9611: ; %bb.0: 
# |            9612:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:10512'0                                             X error: no match found
# |            9613:  v_add_co_u32_e32 v2, vcc, 0x50, v0 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10512'1      ?                                   possible intended match
# |            9614:  s_mov_b64 s[4:5], src_private_base 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9615:  v_addc_co_u32_e32 v3, vcc, 0, v1, vcc 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9616:  v_cmp_ne_u32_e32 vcc, s5, v3 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9617:  ;;#ASMSTART 
# | next:10512'0     ~~~~~~~~~~~~~
# |            9618:  ; def v[4:5] 
# | next:10512'0     ~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9707:  ; implicit-def: $vgpr0_vgpr1 
# |            9708: .LBB133_2: ; %Flow 
# |            9709:  s_andn2_saveexec_b64 s[4:5], s[4:5] 
# |            9710:  s_cbranch_execz .LBB133_4 
# |            9711: ; %bb.3: ; %atomicrmw.private 
# |            9712:  v_cmp_ne_u64_e32 vcc, 0, v[0:1] 
# | next:10625'0                                     X error: no match found
# |            9713:  v_cndmask_b32_e32 v4, -1, v0, vcc 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10625'1      ?                                  possible intended match
# |            9714:  buffer_load_dword v0, v4, s[0:3], 0 offen 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9715:  buffer_load_dword v1, v4, s[0:3], 0 offen offset:4 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9716:  s_waitcnt vmcnt(0) 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~
# |            9717:  v_accvgpr_write_b32 a0, v0 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9718:  v_min_f64 v[2:3], v[0:1], v[2:3] 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9763:  .globl flat_atomic_fmin_f64_ret_av_av ; -- Begin function flat_atomic_fmin_f64_ret_av_av 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9764:  .p2align 2 
# | next:10625'0     ~~~~~~~~~~~~
# |            9765:  .type flat_atomic_fmin_f64_ret_av_av,@function 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9766: flat_atomic_fmin_f64_ret_av_av: ; @flat_atomic_fmin_f64_ret_av_av 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9767: ; %bb.0: 
# |            9768:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:10700'0                                             X error: no match found
# |            9769:  v_add_co_u32_e32 v2, vcc, 0x50, v0 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10700'1      ?                                   possible intended match
# |            9770:  s_mov_b64 s[4:5], src_private_base 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9771:  v_addc_co_u32_e32 v3, vcc, 0, v1, vcc 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9772:  v_cmp_ne_u32_e32 vcc, s5, v3 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9773:  ;;#ASMSTART 
# | next:10700'0     ~~~~~~~~~~~~~
# |            9774:  ; def v[4:5] 
# | next:10700'0     ~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10490: ; %bb.0: 
# |           10491:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10492:  flat_load_dword v3, v[0:1] offset:40 
# |           10493:  ;;#ASMSTART 
# |           10494:  ; def a0 
# |           10495:  ;;#ASMEND 
# | next:11549'0               X error: no match found
# |           10496:  v_accvgpr_read_b32 v4, a0 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:11549'1      ?                          possible intended match
# |           10497:  s_mov_b64 s[4:5], 0 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~
# |           10498: .LBB143_1: ; %atomicrmw.start 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10499:  ; =>This Inner Loop Header: Depth=1 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10500:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10501:  v_pk_max_f16 v2, v3, v4 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10553: flat_atomic_fmax_v2f16_ret_av_av: ; @flat_atomic_fmax_v2f16_ret_av_av 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10554: ; %bb.0: 
# |           10555:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10556:  flat_load_dword v3, v[0:1] offset:40 
# |           10557:  s_mov_b64 s[4:5], 0 
# |           10558:  ;;#ASMSTART 
# | next:11614        !~~~~~~~~~~  error: match on wrong line
# |           10559:  ; def v4 
# |           10560:  ;;#ASMEND 
# |           10561: .LBB144_1: ; %atomicrmw.start 
# |           10562:  ; =>This Inner Loop Header: Depth=1 
# |           10563:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           10616: ; %bb.0: 
# |           10617:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10618:  flat_load_dword v3, v[0:1] offset:40 
# |           10619:  ;;#ASMSTART 
# |           10620:  ; def a0 
# |           10621:  ;;#ASMEND 
# | next:11681'0               X error: no match found
# |           10622:  v_accvgpr_read_b32 v4, a0 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:11681'1      ?                          possible intended match
# |           10623:  s_mov_b64 s[4:5], 0 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~
# |           10624: .LBB145_1: ; %atomicrmw.start 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10625:  ; =>This Inner Loop Header: Depth=1 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10626:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10627:  v_pk_min_f16 v2, v3, v4 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10679: flat_atomic_fmin_v2f16_ret_av_av: ; @flat_atomic_fmin_v2f16_ret_av_av 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10680: ; %bb.0: 
# |           10681:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10682:  flat_load_dword v3, v[0:1] offset:40 
# |           10683:  s_mov_b64 s[4:5], 0 
# |           10684:  ;;#ASMSTART 
# | next:11746        !~~~~~~~~~~  error: match on wrong line
# |           10685:  ; def v4 
# |           10686:  ;;#ASMEND 
# |           10687: .LBB146_1: ; %atomicrmw.start 
# |           10688:  ; =>This Inner Loop Header: Depth=1 
# |           10689:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           16471:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16472:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16473:  flat_load_dword v1, v[0:1] offset:40 
# |           16474:  ;;#ASMSTART 
# |           16475:  ; def a0 
# |           16476:  ;;#ASMEND 
# | next:17705'0               X error: no match found
# |           16477:  v_accvgpr_read_b32 v4, a0 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17705'1      ?                          possible intended match
# |           16478:  s_mov_b64 s[4:5], 0 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~
# |           16479:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16480: .LBB227_1: ; %atomicrmw.start 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16481:  ; =>This Inner Loop Header: Depth=1 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16482:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           16537:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16538:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16539:  flat_load_dword v1, v[0:1] offset:40 
# |           16540:  s_mov_b64 s[4:5], 0 
# |           16541:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           16542:  ;;#ASMSTART 
# | next:17773        !~~~~~~~~~~  error: match on wrong line
# |           16543:  ; def v4 
# |           16544:  ;;#ASMEND 
# |           16545: .LBB228_1: ; %atomicrmw.start 
# |           16546:  ; =>This Inner Loop Header: Depth=1 
# |           16547:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           16601:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16602:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16603:  flat_load_dword v1, v[0:1] offset:40 
# |           16604:  ;;#ASMSTART 
# |           16605:  ; def a0 
# |           16606:  ;;#ASMEND 
# | next:17843'0               X error: no match found
# |           16607:  v_accvgpr_read_b32 v4, a0 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17843'1      ?                          possible intended match
# |           16608:  s_mov_b64 s[4:5], 0 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~
# |           16609:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16610: .LBB229_1: ; %atomicrmw.start 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16611:  ; =>This Inner Loop Header: Depth=1 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16612:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           16667:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16668:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16669:  flat_load_dword v1, v[0:1] offset:40 
# |           16670:  s_mov_b64 s[4:5], 0 
# |           16671:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           16672:  ;;#ASMSTART 
# | next:17911        !~~~~~~~~~~  error: match on wrong line
# |           16673:  ; def v4 
# |           16674:  ;;#ASMEND 
# |           16675: .LBB230_1: ; %atomicrmw.start 
# |           16676:  ; =>This Inner Loop Header: Depth=1 
# |           16677:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           17394:  s_branch .LBB239_4 
# |           17395: .LBB239_2: 
# |           17396:  ; implicit-def: $agpr0_agpr1 
# |           17397: .LBB239_3: ; %atomicrmw.private 
# |           17398:  s_cmp_lg_u64 s[4:5], 0 
# |           17399:  s_cselect_b32 s4, s4, -1 
# | next:18746'0                              X error: no match found
# |           17400:  v_mov_b32_e32 v4, s4 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~
# | next:18746'1      ?                     possible intended match
# |           17401:  buffer_load_dword v2, v4, s[0:3], 0 offen 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17402:  buffer_load_dword v3, v4, s[0:3], 0 offen offset:4 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17403:  s_waitcnt vmcnt(0) 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~
# |           17404:  v_accvgpr_write_b32 a0, v2 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17405:  v_max_f64 v[0:1], v[2:3], v[0:1] 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17456:  s_mov_b64 s[6:7], src_private_base 
# |           17457:  s_addc_u32 s5, s17, 0 
# |           17458:  s_cmp_eq_u32 s5, s7 
# |           17459:  s_cselect_b64 s[6:7], -1, 0 
# |           17460:  s_andn2_b64 vcc, exec, s[6:7] 
# |           17461:  ;;#ASMSTART 
# | next:18825'0                 X error: no match found
# |           17462:  ; def v[0:1] 
# | next:18825'0     ~~~~~~~~~~~~~~
# | next:18825'1      ?             possible intended match
# |           17463:  ;;#ASMEND 
# | next:18825'0     ~~~~~~~~~~~
# |           17464:  s_cbranch_vccz .LBB240_2 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17465: ; %bb.1: ; %atomicrmw.global 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17466:  v_pk_mov_b32 v[2:3], s[4:5], s[4:5] op_sel:[0,1] 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17467:  flat_atomic_max_f64 v[2:3], v[2:3], v[0:1] glc 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17549:  s_branch .LBB241_4 
# |           17550: .LBB241_2: 
# |           17551:  ; implicit-def: $agpr0_agpr1 
# |           17552: .LBB241_3: ; %atomicrmw.private 
# |           17553:  s_cmp_lg_u64 s[4:5], 0 
# |           17554:  s_cselect_b32 s4, s4, -1 
# | next:18928'0                              X error: no match found
# |           17555:  v_mov_b32_e32 v4, s4 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~
# | next:18928'1      ?                     possible intended match
# |           17556:  buffer_load_dword v2, v4, s[0:3], 0 offen 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17557:  buffer_load_dword v3, v4, s[0:3], 0 offen offset:4 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17558:  s_waitcnt vmcnt(0) 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~
# |           17559:  v_accvgpr_write_b32 a0, v2 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17560:  v_min_f64 v[0:1], v[2:3], v[0:1] 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17611:  s_mov_b64 s[6:7], src_private_base 
# |           17612:  s_addc_u32 s5, s17, 0 
# |           17613:  s_cmp_eq_u32 s5, s7 
# |           17614:  s_cselect_b64 s[6:7], -1, 0 
# |           17615:  s_andn2_b64 vcc, exec, s[6:7] 
# |           17616:  ;;#ASMSTART 
# | next:19007'0                 X error: no match found
# |           17617:  ; def v[0:1] 
# | next:19007'0     ~~~~~~~~~~~~~~
# | next:19007'1      ?             possible intended match
# |           17618:  ;;#ASMEND 
# | next:19007'0     ~~~~~~~~~~~
# |           17619:  s_cbranch_vccz .LBB242_2 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17620: ; %bb.1: ; %atomicrmw.global 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17621:  v_pk_mov_b32 v[2:3], s[4:5], s[4:5] op_sel:[0,1] 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17622:  flat_atomic_min_f64 v[2:3], v[2:3], v[0:1] glc 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18335:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18336:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18337:  flat_load_dword v1, v[0:1] offset:40 
# |           18338:  ;;#ASMSTART 
# |           18339:  ; def a0 
# |           18340:  ;;#ASMEND 
# | next:19846'0               X error: no match found
# |           18341:  v_accvgpr_read_b32 v4, a0 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:19846'1      ?                          possible intended match
# |           18342:  s_mov_b64 s[4:5], 0 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~
# |           18343:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18344: .LBB251_1: ; %atomicrmw.start 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18345:  ; =>This Inner Loop Header: Depth=1 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18346:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18401:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18402:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18403:  flat_load_dword v1, v[0:1] offset:40 
# |           18404:  s_mov_b64 s[4:5], 0 
# |           18405:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           18406:  ;;#ASMSTART 
# | next:19915        !~~~~~~~~~~  error: match on wrong line
# |           18407:  ; def v4 
# |           18408:  ;;#ASMEND 
# |           18409: .LBB252_1: ; %atomicrmw.start 
# |           18410:  ; =>This Inner Loop Header: Depth=1 
# |           18411:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           18465:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18466:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18467:  flat_load_dword v1, v[0:1] offset:40 
# |           18468:  ;;#ASMSTART 
# |           18469:  ; def a0 
# |           18470:  ;;#ASMEND 
# | next:19986'0               X error: no match found
# |           18471:  v_accvgpr_read_b32 v4, a0 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:19986'1      ?                          possible intended match
# |           18472:  s_mov_b64 s[4:5], 0 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~
# |           18473:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18474: .LBB253_1: ; %atomicrmw.start 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18475:  ; =>This Inner Loop Header: Depth=1 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18476:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18531:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18532:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18533:  flat_load_dword v1, v[0:1] offset:40 
# |           18534:  s_mov_b64 s[4:5], 0 
# |           18535:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           18536:  ;;#ASMSTART 
# | next:20055        !~~~~~~~~~~  error: match on wrong line
# |           18537:  ; def v4 
# |           18538:  ;;#ASMEND 
# |           18539: .LBB254_1: ; %atomicrmw.start 
# |           18540:  ; =>This Inner Loop Header: Depth=1 
# |           18541:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/a-v-global-atomicrmw.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=CHECK,GFX90A /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None
# 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=CHECK,GFX90A /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:6246:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:6972:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:6973:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:6310:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:7035:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:7033:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:7034:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:6376:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:7098:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:7099:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:6440:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:7161:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:7159:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:7160:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:7602:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8420:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8421:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:7667:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8483:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8481:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:8482:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:7734:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8546:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8547:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:7799:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8609:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8607:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:8608:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:12023:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:13447:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:13448:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:12089:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:13511:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:13509:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:13510:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:12157:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:13575:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:13576:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:12223:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:13639:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:13637:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:13638:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:13424:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:14919:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:14920:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:13491:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:14983:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:14981:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:14982:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:13560:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:15047:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:15048:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll:13627:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:15111:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:15109:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:15110:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |               .
# |               .
# |               .
# |            6967: ; %bb.0: 
# |            6968:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            6969:  global_load_dword v3, v[0:1], off offset:40 
# |            6970:  ;;#ASMSTART 
# |            6971:  ; def a0 
# |            6972:  ;;#ASMEND 
# | next:6246'0                X error: no match found
# |            6973:  v_accvgpr_read_b32 v4, a0 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:6246'1       ?                          possible intended match
# |            6974:  s_mov_b64 s[4:5], 0 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~
# |            6975: .LBB119_1: ; %atomicrmw.start 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            6976:  ; =>This Inner Loop Header: Depth=1 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            6977:  s_waitcnt vmcnt(0) 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~
# |            6978:  v_max_f32_e32 v2, v3, v4 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            7030: global_atomic_fmax_f32_ret_av_av: ; @global_atomic_fmax_f32_ret_av_av 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7031: ; %bb.0: 
# |            7032:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7033:  global_load_dword v3, v[0:1], off offset:40 
# |            7034:  s_mov_b64 s[4:5], 0 
# |            7035:  ;;#ASMSTART 
# | next:6310         !~~~~~~~~~~  error: match on wrong line
# |            7036:  ; def v4 
# |            7037:  ;;#ASMEND 
# |            7038: .LBB120_1: ; %atomicrmw.start 
# |            7039:  ; =>This Inner Loop Header: Depth=1 
# |            7040:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            7093: ; %bb.0: 
# |            7094:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7095:  global_load_dword v3, v[0:1], off offset:40 
# |            7096:  ;;#ASMSTART 
# |            7097:  ; def a0 
# |            7098:  ;;#ASMEND 
# | next:6376'0                X error: no match found
# |            7099:  v_accvgpr_read_b32 v4, a0 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:6376'1       ?                          possible intended match
# |            7100:  s_mov_b64 s[4:5], 0 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~
# |            7101: .LBB121_1: ; %atomicrmw.start 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7102:  ; =>This Inner Loop Header: Depth=1 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7103:  s_waitcnt vmcnt(0) 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~
# |            7104:  v_min_f32_e32 v2, v3, v4 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            7156: global_atomic_fmin_f32_ret_av_av: ; @global_atomic_fmin_f32_ret_av_av 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7157: ; %bb.0: 
# |            7158:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7159:  global_load_dword v3, v[0:1], off offset:40 
# |            7160:  s_mov_b64 s[4:5], 0 
# |            7161:  ;;#ASMSTART 
# | next:6440         !~~~~~~~~~~  error: match on wrong line
# |            7162:  ; def v4 
# |            7163:  ;;#ASMEND 
# |            7164: .LBB122_1: ; %atomicrmw.start 
# |            7165:  ; =>This Inner Loop Header: Depth=1 
# |            7166:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            8415: ; %bb.0: 
# |            8416:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8417:  global_load_dword v3, v[0:1], off offset:40 
# |            8418:  ;;#ASMSTART 
# |            8419:  ; def a0 
# |            8420:  ;;#ASMEND 
# | next:7602'0                X error: no match found
# |            8421:  v_accvgpr_read_b32 v4, a0 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:7602'1       ?                          possible intended match
# |            8422:  s_mov_b64 s[4:5], 0 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8423: .LBB143_1: ; %atomicrmw.start 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8424:  ; =>This Inner Loop Header: Depth=1 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8425:  s_waitcnt vmcnt(0) 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~
# |            8426:  v_pk_max_f16 v2, v3, v4 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8478: global_atomic_fmax_v2f16_ret_av_av: ; @global_atomic_fmax_v2f16_ret_av_av 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8479: ; %bb.0: 
# |            8480:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8481:  global_load_dword v3, v[0:1], off offset:40 
# |            8482:  s_mov_b64 s[4:5], 0 
# |            8483:  ;;#ASMSTART 
# | next:7667         !~~~~~~~~~~  error: match on wrong line
# |            8484:  ; def v4 
# |            8485:  ;;#ASMEND 
# |            8486: .LBB144_1: ; %atomicrmw.start 
# |            8487:  ; =>This Inner Loop Header: Depth=1 
# |            8488:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            8541: ; %bb.0: 
# |            8542:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8543:  global_load_dword v3, v[0:1], off offset:40 
# |            8544:  ;;#ASMSTART 
# |            8545:  ; def a0 
# |            8546:  ;;#ASMEND 
# | next:7734'0                X error: no match found
# |            8547:  v_accvgpr_read_b32 v4, a0 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:7734'1       ?                          possible intended match
# |            8548:  s_mov_b64 s[4:5], 0 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8549: .LBB145_1: ; %atomicrmw.start 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8550:  ; =>This Inner Loop Header: Depth=1 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8551:  s_waitcnt vmcnt(0) 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~
# |            8552:  v_pk_min_f16 v2, v3, v4 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8604: global_atomic_fmin_v2f16_ret_av_av: ; @global_atomic_fmin_v2f16_ret_av_av 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8605: ; %bb.0: 
# |            8606:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8607:  global_load_dword v3, v[0:1], off offset:40 
# |            8608:  s_mov_b64 s[4:5], 0 
# |            8609:  ;;#ASMSTART 
# | next:7799         !~~~~~~~~~~  error: match on wrong line
# |            8610:  ; def v4 
# |            8611:  ;;#ASMEND 
# |            8612: .LBB146_1: ; %atomicrmw.start 
# |            8613:  ; =>This Inner Loop Header: Depth=1 
# |            8614:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           13442:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13443:  v_mov_b32_e32 v2, 0 
# |           13444:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13445:  ;;#ASMSTART 
# |           13446:  ; def a0 
# |           13447:  ;;#ASMEND 
# | next:12023'0               X error: no match found
# |           13448:  v_accvgpr_read_b32 v3, a0 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12023'1      ?                          possible intended match
# |           13449:  s_mov_b64 s[4:5], 0 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~
# |           13450: .LBB227_1: ; %atomicrmw.start 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13451:  ; =>This Inner Loop Header: Depth=1 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13452:  s_waitcnt vmcnt(0) 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~
# |           13453:  v_max_f32_e32 v0, v1, v3 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           13506: ; %bb.0: 
# |           13507:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13508:  v_mov_b32_e32 v2, 0 
# |           13509:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13510:  s_mov_b64 s[4:5], 0 
# |           13511:  ;;#ASMSTART 
# | next:12089        !~~~~~~~~~~  error: match on wrong line
# |           13512:  ; def v3 
# |           13513:  ;;#ASMEND 
# |           13514: .LBB228_1: ; %atomicrmw.start 
# |           13515:  ; =>This Inner Loop Header: Depth=1 
# |           13516:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           13570:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13571:  v_mov_b32_e32 v2, 0 
# |           13572:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13573:  ;;#ASMSTART 
# |           13574:  ; def a0 
# |           13575:  ;;#ASMEND 
# | next:12157'0               X error: no match found
# |           13576:  v_accvgpr_read_b32 v3, a0 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12157'1      ?                          possible intended match
# |           13577:  s_mov_b64 s[4:5], 0 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~
# |           13578: .LBB229_1: ; %atomicrmw.start 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13579:  ; =>This Inner Loop Header: Depth=1 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13580:  s_waitcnt vmcnt(0) 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~
# |           13581:  v_min_f32_e32 v0, v1, v3 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           13634: ; %bb.0: 
# |           13635:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13636:  v_mov_b32_e32 v2, 0 
# |           13637:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13638:  s_mov_b64 s[4:5], 0 
# |           13639:  ;;#ASMSTART 
# | next:12223        !~~~~~~~~~~  error: match on wrong line
# |           13640:  ; def v3 
# |           13641:  ;;#ASMEND 
# |           13642: .LBB230_1: ; %atomicrmw.start 
# |           13643:  ; =>This Inner Loop Header: Depth=1 
# |           13644:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           14914:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           14915:  v_mov_b32_e32 v2, 0 
# |           14916:  global_load_dword v1, v2, s[16:17] offset:40 
# |           14917:  ;;#ASMSTART 
# |           14918:  ; def a0 
# |           14919:  ;;#ASMEND 
# | next:13424'0               X error: no match found
# |           14920:  v_accvgpr_read_b32 v3, a0 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13424'1      ?                          possible intended match
# |           14921:  s_mov_b64 s[4:5], 0 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~
# |           14922: .LBB251_1: ; %atomicrmw.start 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14923:  ; =>This Inner Loop Header: Depth=1 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14924:  s_waitcnt vmcnt(0) 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~
# |           14925:  v_pk_max_f16 v0, v1, v3 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           14978: ; %bb.0: 
# |           14979:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           14980:  v_mov_b32_e32 v2, 0 
# |           14981:  global_load_dword v1, v2, s[16:17] offset:40 
# |           14982:  s_mov_b64 s[4:5], 0 
# |           14983:  ;;#ASMSTART 
# | next:13491        !~~~~~~~~~~  error: match on wrong line
# |           14984:  ; def v3 
# |           14985:  ;;#ASMEND 
# |           14986: .LBB252_1: ; %atomicrmw.start 
# |           14987:  ; =>This Inner Loop Header: Depth=1 
# |           14988:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           15042:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           15043:  v_mov_b32_e32 v2, 0 
# |           15044:  global_load_dword v1, v2, s[16:17] offset:40 
# |           15045:  ;;#ASMSTART 
# |           15046:  ; def a0 
# |           15047:  ;;#ASMEND 
# | next:13560'0               X error: no match found
# |           15048:  v_accvgpr_read_b32 v3, a0 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13560'1      ?                          possible intended match
# |           15049:  s_mov_b64 s[4:5], 0 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~
# |           15050: .LBB253_1: ; %atomicrmw.start 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15051:  ; =>This Inner Loop Header: Depth=1 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15052:  s_waitcnt vmcnt(0) 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~
# |           15053:  v_pk_min_f16 v0, v1, v3 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           15106: ; %bb.0: 
# |           15107:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           15108:  v_mov_b32_e32 v2, 0 
# |           15109:  global_load_dword v1, v2, s[16:17] offset:40 
# |           15110:  s_mov_b64 s[4:5], 0 
# |           15111:  ;;#ASMSTART 
# | next:13627        !~~~~~~~~~~  error: match on wrong line
# |           15112:  ; def v3 
# |           15113:  ;;#ASMEND 
# |           15114: .LBB254_1: ; %atomicrmw.start 
# |           15115:  ; =>This Inner Loop Header: Depth=1 
# |           15116:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/amdgcn-ieee.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti
# 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=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:81:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:92:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:93:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:171:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:224:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:225:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:282:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:420:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:421:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:305:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:468:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:469:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:368:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:626:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:627:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll:430:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:823:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:824:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgcn-ieee.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            87:  s_mov_b32 s3, 0xf000 
# |            88:  s_mov_b32 s2, -1 
# |            89:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |            90:  s_waitcnt vmcnt(0) 
# |            91:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |            92:  s_waitcnt vmcnt(0) 
# | next:81'0                         X error: no match found
# |            93:  v_min_f32_e32 v0, v0, v1 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:81'1       ?                         possible intended match
# |            94:  buffer_store_dword v0, off, s[0:3], 0 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            95:  s_waitcnt vmcnt(0) 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~
# |            96:  s_endpgm 
# | next:81'0      ~~~~~~~~~~
# |            97: .Lfunc_end0: 
# | next:81'0      ~~~~~~~~~~~~~
# |            98:  .size kernel_ieee_mode_default, .Lfunc_end0-kernel_ieee_mode_default 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           219:  s_mov_b32 s3, 0xf000 
# |           220:  s_mov_b32 s2, -1 
# |           221:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           222:  s_waitcnt vmcnt(0) 
# |           223:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           224:  s_waitcnt vmcnt(0) 
# | next:171'0                        X error: no match found
# |           225:  v_min_f32_e32 v0, v0, v1 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:171'1      ?                         possible intended match
# |           226:  buffer_store_dword v0, off, s[0:3], 0 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           227:  s_waitcnt vmcnt(0) 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~
# |           228:  s_endpgm 
# | next:171'0     ~~~~~~~~~~
# |           229: .Lfunc_end1: 
# | next:171'0     ~~~~~~~~~~~~~
# |           230:  .size kernel_ieee_mode_on, .Lfunc_end1-kernel_ieee_mode_on 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           415:  s_mov_b32 s7, 0xf000 
# |           416:  s_mov_b32 s6, -1 
# |           417:  buffer_load_dword v0, off, s[4:7], 0 glc 
# |           418:  s_waitcnt vmcnt(0) 
# |           419:  buffer_load_dword v1, off, s[4:7], 0 glc 
# |           420:  s_waitcnt vmcnt(0) 
# | next:282'0                        X error: no match found
# |           421:  v_min_f32_e32 v0, v0, v1 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:282'1      ?                         possible intended match
# |           422:  buffer_store_dword v0, off, s[4:7], 0 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           423:  s_waitcnt vmcnt(0) expcnt(0) 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           424:  s_setpc_b64 s[30:31] 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           425: .Lfunc_end3: 
# | next:282'0     ~~~~~~~~~~~~~
# |           426:  .size func_ieee_mode_default, .Lfunc_end3-func_ieee_mode_default 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           463:  s_mov_b32 s7, 0xf000 
# |           464:  s_mov_b32 s6, -1 
# |           465:  buffer_load_dword v0, off, s[4:7], 0 glc 
# |           466:  s_waitcnt vmcnt(0) 
# |           467:  buffer_load_dword v1, off, s[4:7], 0 glc 
# |           468:  s_waitcnt vmcnt(0) 
# | next:305'0                        X error: no match found
# |           469:  v_min_f32_e32 v0, v0, v1 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:305'1      ?                         possible intended match
# |           470:  buffer_store_dword v0, off, s[4:7], 0 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           471:  s_waitcnt vmcnt(0) expcnt(0) 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           472:  s_setpc_b64 s[30:31] 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           473: .Lfunc_end4: 
# | next:305'0     ~~~~~~~~~~~~~
# |           474:  .size func_ieee_mode_on, .Lfunc_end4-func_ieee_mode_on 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           621:  s_mov_b32 s3, 0xf000 
# |           622:  s_mov_b32 s2, -1 
# |           623:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           624:  s_waitcnt vmcnt(0) 
# |           625:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           626:  s_waitcnt vmcnt(0) 
# | next:368'0                        X error: no match found
# |           627:  v_min_f32_e32 v0, v0, v1 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:368'1      ?                         possible intended match
# |           628:  buffer_store_dword v0, off, s[0:3], 0 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           629:  s_waitcnt vmcnt(0) 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~
# |           630:  s_endpgm 
# | next:368'0     ~~~~~~~~~~
# |           631: .Lfunc_end7: 
# | next:368'0     ~~~~~~~~~~~~~
# |           632:  .size cs_ieee_mode_on, .Lfunc_end7-cs_ieee_mode_on 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           818:  s_mov_b32 s3, 0xf000 
# |           819:  s_mov_b32 s2, -1 
# |           820:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           821:  s_waitcnt vmcnt(0) 
# |           822:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           823:  s_waitcnt vmcnt(0) 
# | next:430'0                        X error: no match found
# |           824:  v_min_f32_e32 v0, v0, v1 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:430'1      ?                         possible intended match
# |           825:  buffer_store_dword v0, off, s[0:3], 0 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           826:  s_waitcnt vmcnt(0) 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~
# |           827:  s_endpgm 
# | next:430'0     ~~~~~~~~~~
# |           828: .Lfunc_end10: 
# | next:430'0     ~~~~~~~~~~~~~~
# |           829:  .size ps_ieee_mode_on, .Lfunc_end10-ps_ieee_mode_on 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/atomics-system-scope.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1250 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=GFX1250 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1250
# 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=GFX1250 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll:695:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:1845:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:1875:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll:741:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:1915:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:1945:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll:811:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:2069:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:2099:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll:857:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:2139:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:2169:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |          1840:  .p2align 2 
# |          1841:  .type flat_system_atomic_fmin_f64,@function 
# |          1842: flat_system_atomic_fmin_f64: ; @flat_system_atomic_fmin_f64 
# |          1843: ; %bb.0: 
# |          1844:  s_wait_loadcnt_dscnt 0x0 
# |          1845:  s_wait_kmcnt 0x0 
# | next:695'0                      X error: no match found
# |          1846:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1847:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1848:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1849:  ; implicit-def: $vgpr4_vgpr5 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1850:  s_and_saveexec_b32 s0, vcc_lo 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1870:  scratch_store_b64 v6, v[0:1], off 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1871: .LBB38_4: ; %atomicrmw.phi 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1872:  s_wait_xcnt 0x0 
# | next:695'0     ~~~~~~~~~~~~~~~~~
# |          1873:  s_or_b32 exec_lo, exec_lo, s0 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1874:  s_wait_loadcnt_dscnt 0x0 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1875:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:695'1      ?                                               possible intended match
# |          1876:  s_set_pc_i64 s[30:31] 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          1877: .Lfunc_end38: 
# | next:695'0     ~~~~~~~~~~~~~~
# |          1878:  .size flat_system_atomic_fmin_f64, .Lfunc_end38-flat_system_atomic_fmin_f64 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1879:  ; -- End function 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~
# |          1880:  .set flat_system_atomic_fmin_f64.num_vgpr, 7 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1910:  .p2align 2 
# | next:695'0     ~~~~~~~~~~~~
# |          1911:  .type flat_one_as_atomic_fmin_f64,@function 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1912: flat_one_as_atomic_fmin_f64: ; @flat_one_as_atomic_fmin_f64 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1913: ; %bb.0: 
# |          1914:  s_wait_loadcnt_dscnt 0x0 
# |          1915:  s_wait_kmcnt 0x0 
# | next:741'0                      X error: no match found
# |          1916:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1917:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1918:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1919:  ; implicit-def: $vgpr4_vgpr5 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1920:  s_and_saveexec_b32 s0, vcc_lo 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1940:  scratch_store_b64 v6, v[0:1], off 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1941: .LBB39_4: ; %atomicrmw.phi 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1942:  s_wait_xcnt 0x0 
# | next:741'0     ~~~~~~~~~~~~~~~~~
# |          1943:  s_or_b32 exec_lo, exec_lo, s0 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1944:  s_wait_loadcnt_dscnt 0x0 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1945:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:741'1      ?                                               possible intended match
# |          1946:  s_set_pc_i64 s[30:31] 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          1947: .Lfunc_end39: 
# | next:741'0     ~~~~~~~~~~~~~~
# |          1948:  .size flat_one_as_atomic_fmin_f64, .Lfunc_end39-flat_one_as_atomic_fmin_f64 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1949:  ; -- End function 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~
# |          1950:  .set flat_one_as_atomic_fmin_f64.num_vgpr, 7 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2064:  .p2align 2 
# |          2065:  .type flat_system_atomic_fmax_f64,@function 
# |          2066: flat_system_atomic_fmax_f64: ; @flat_system_atomic_fmax_f64 
# |          2067: ; %bb.0: 
# |          2068:  s_wait_loadcnt_dscnt 0x0 
# |          2069:  s_wait_kmcnt 0x0 
# | next:811'0                      X error: no match found
# |          2070:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2071:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2072:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2073:  ; implicit-def: $vgpr4_vgpr5 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2074:  s_and_saveexec_b32 s0, vcc_lo 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2094:  scratch_store_b64 v6, v[0:1], off 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2095: .LBB42_4: ; %atomicrmw.phi 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2096:  s_wait_xcnt 0x0 
# | next:811'0     ~~~~~~~~~~~~~~~~~
# |          2097:  s_or_b32 exec_lo, exec_lo, s0 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2098:  s_wait_loadcnt_dscnt 0x0 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2099:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:811'1      ?                                               possible intended match
# |          2100:  s_set_pc_i64 s[30:31] 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          2101: .Lfunc_end42: 
# | next:811'0     ~~~~~~~~~~~~~~
# |          2102:  .size flat_system_atomic_fmax_f64, .Lfunc_end42-flat_system_atomic_fmax_f64 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2103:  ; -- End function 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~
# |          2104:  .set flat_system_atomic_fmax_f64.num_vgpr, 7 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2134:  .p2align 2 
# | next:811'0     ~~~~~~~~~~~~
# |          2135:  .type flat_one_as_atomic_fmax_f64,@function 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2136: flat_one_as_atomic_fmax_f64: ; @flat_one_as_atomic_fmax_f64 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2137: ; %bb.0: 
# |          2138:  s_wait_loadcnt_dscnt 0x0 
# |          2139:  s_wait_kmcnt 0x0 
# | next:857'0                      X error: no match found
# |          2140:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2141:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2142:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2143:  ; implicit-def: $vgpr4_vgpr5 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2144:  s_and_saveexec_b32 s0, vcc_lo 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2164:  scratch_store_b64 v6, v[0:1], off 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2165: .LBB43_4: ; %atomicrmw.phi 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2166:  s_wait_xcnt 0x0 
# | next:857'0     ~~~~~~~~~~~~~~~~~
# |          2167:  s_or_b32 exec_lo, exec_lo, s0 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2168:  s_wait_loadcnt_dscnt 0x0 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2169:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:857'1      ?                                               possible intended match
# |          2170:  s_set_pc_i64 s[30:31] 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          2171: .Lfunc_end43: 
# | next:857'0     ~~~~~~~~~~~~~~
# |          2172:  .size flat_one_as_atomic_fmax_f64, .Lfunc_end43-flat_one_as_atomic_fmax_f64 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2173:  ; -- End function 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~
# |          2174:  .set flat_one_as_atomic_fmax_f64.num_vgpr, 7 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fcanonicalize-elimination.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx801 -denormal-fp-math-f32=preserve-sign < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefixes=GCN,VI,VI-FLUSH,GCN-FLUSH /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx801 -denormal-fp-math-f32=preserve-sign
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefixes=GCN,VI,VI-FLUSH,GCN-FLUSH /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll:459:8: error: GCN: expected string not found in input
# | ; GCN: v_min_f32_e32 [[V:v[0-9]+]], 0, [[QUIET]]
# |        ^
# | <stdin>:1924:27: note: scanning from here
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:1924:27: note: with "QUIET" equal to "v2"
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:1925:5: note: possible intended match here
# |  flat_store_dword v[0:1], v2
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll:532:13: error: VI-FLUSH: expected string not found in input
# | ; VI-FLUSH: v_max_f32_e32 [[RESULT:v[0-9]+]], 0, [[QUIET]]
# |             ^
# | <stdin>:2119:27: note: scanning from here
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:2119:27: note: with "QUIET" equal to "v2"
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:2120:5: note: possible intended match here
# |  flat_store_dword v[0:1], v2
# |     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll:712:11: error: VI-DAG: expected string not found in input
# | ; VI-DAG: v_mul_f32_e32 v1, 1.0, v1
# |           ^
# | <stdin>:2825:47: note: scanning from here
# | test_fold_canonicalize_minnum_value_ieee_mode: ; @test_fold_canonicalize_minnum_value_ieee_mode
# |                                               ^
# | <stdin>:2829:2: note: possible intended match here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |           1919:  v_add_u32_e32 v0, vcc, s0, v0 
# |           1920:  v_addc_u32_e32 v1, vcc, 0, v1, vcc 
# |           1921:  flat_load_dword v2, v[0:1] 
# |           1922:  s_waitcnt vmcnt(0) 
# |           1923:  v_min_f32_e32 v2, 0, v2 
# |           1924:  v_mul_f32_e32 v2, 1.0, v2 
# | check:459'0                               X error: no match found
# | check:459'1                                 with "QUIET" equal to "v2"
# |           1925:  flat_store_dword v[0:1], v2 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:459'2         ?                         possible intended match
# |           1926:  s_endpgm 
# | check:459'0     ~~~~~~~~~~
# |           1927: .Lfunc_end29: 
# | check:459'0     ~~~~~~~~~~~~~~
# |           1928:  .size test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode, .Lfunc_end29-test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1929:  ; -- End function 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~
# |           1930:  .set test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode.num_vgpr, 3 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2114:  v_add_u32_e32 v0, vcc, s0, v0 
# |           2115:  v_addc_u32_e32 v1, vcc, 0, v1, vcc 
# |           2116:  flat_load_dword v2, v[0:1] 
# |           2117:  s_waitcnt vmcnt(0) 
# |           2118:  v_max_f32_e32 v2, 0, v2 
# |           2119:  v_mul_f32_e32 v2, 1.0, v2 
# | check:532'0                               X error: no match found
# | check:532'1                                 with "QUIET" equal to "v2"
# |           2120:  flat_store_dword v[0:1], v2 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:532'2         ?                         possible intended match
# |           2121:  s_endpgm 
# | check:532'0     ~~~~~~~~~~
# |           2122: .Lfunc_end32: 
# | check:532'0     ~~~~~~~~~~~~~~
# |           2123:  .size test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode, .Lfunc_end32-test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2124:  ; -- End function 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~
# |           2125:  .set test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode.num_vgpr, 3 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2820:  .long 0 
# |           2821:  .text 
# |           2822:  .globl test_fold_canonicalize_minnum_value_ieee_mode ; -- Begin function test_fold_canonicalize_minnum_value_ieee_mode 
# |           2823:  .p2align 2 
# |           2824:  .type test_fold_canonicalize_minnum_value_ieee_mode,@function 
# |           2825: test_fold_canonicalize_minnum_value_ieee_mode: ; @test_fold_canonicalize_minnum_value_ieee_mode 
# | dag:712'0                                                     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           2826: ; %bb.0: 
# | dag:712'0       ~~~~~~~~~
# |           2827:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2828:  v_min_f32_e32 v0, v0, v1 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2829:  v_mul_f32_e32 v0, 1.0, v0 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:712'1        ?                          possible intended match
# |           2830:  s_setpc_b64 s[30:31] 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~
# |           2831: .Lfunc_end43: 
# | dag:712'0       ~~~~~~~~~~~~~~
# |           2832:  .size test_fold_canonicalize_minnum_value_ieee_mode, .Lfunc_end43-test_fold_canonicalize_minnum_value_ieee_mode 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2833:  ; -- End function 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~
# |           2834:  .set test_fold_canonicalize_minnum_value_ieee_mode.num_vgpr, 2 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fmax3.f64.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tahiti < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=SI /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tahiti
# 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=SI /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll:10:7: error: SI: expected string not found in input
# | ; SI: v_max_f64 [[QUIET_A:v\[[0-9]+:[0-9]+\]]], [[REGA]], [[REGA]]
# |       ^
# | <stdin>:30:55: note: scanning from here
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:30:55: note: with "REGA" equal to "v[0:1]"
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:30:55: note: with "REGA" equal to "v[0:1]"
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:34:2: note: possible intended match here
# |  v_max_f64 v[0:1], v[0:1], v[2:3]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            25:  s_mov_b32 s9, s3 
# |            26:  buffer_load_dwordx2 v[0:1], off, s[8:11], 0 glc 
# |            27:  s_waitcnt vmcnt(0) 
# |            28:  buffer_load_dwordx2 v[2:3], off, s[8:11], 0 offset:8 glc 
# |            29:  s_waitcnt vmcnt(0) 
# |            30:  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc 
# | check:10'0                                                           X~~~~ error: no match found
# | check:10'1                                                                 with "REGA" equal to "v[0:1]"
# | check:10'2                                                                 with "REGA" equal to "v[0:1]"
# |            31:  s_waitcnt vmcnt(0) 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~
# |            32:  s_mov_b32 s4, s0 
# | check:10'0     ~~~~~~~~~~~~~~~~~~
# |            33:  s_mov_b32 s5, s1 
# | check:10'0     ~~~~~~~~~~~~~~~~~~
# |            34:  v_max_f64 v[0:1], v[0:1], v[2:3] 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:10'3      ?                                 possible intended match
# |            35:  v_max_f64 v[0:1], v[0:1], v[4:5] 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            36:  buffer_store_dwordx2 v[0:1], off, s[4:7], 0 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            37:  s_endpgm 
# | check:10'0     ~~~~~~~~~~
# |            38: .Lfunc_end0: 
# | check:10'0     ~~~~~~~~~~~~~
# |            39:  .size test_fmax3_f64, .Lfunc_end0-test_fmax3_f64 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fmaxnum.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmaxnum.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefix=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmaxnum.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefix=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmaxnum.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmaxnum.ll:5:8: error: GCN: expected string not found in input
# | ; GCN: v_mul_f32_e64 [[QUIET0:v[0-9]+]], 1.0, s{{[0-9]+}}
# |        ^
# | <stdin>:16:28: note: scanning from here
# | test_fmax_f32_ieee_mode_on: ; @test_fmax_f32_ieee_mode_on
# |                            ^
# | <stdin>:25:2: note: possible intended match here
# |  v_max_f32_e32 v0, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fmaxnum.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           11:  .long 0 
# |           12:  .text 
# |           13:  .globl test_fmax_f32_ieee_mode_on ; -- Begin function test_fmax_f32_ieee_mode_on 
# |           14:  .p2align 8 
# |           15:  .type test_fmax_f32_ieee_mode_on,@function 
# |           16: test_fmax_f32_ieee_mode_on: ; @test_fmax_f32_ieee_mode_on 
# | check:5'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           17: ; %bb.0: 
# | check:5'0     ~~~~~~~~~
# |           18:  s_load_dwordx4 s[0:3], s[4:5], 0x9 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  s_mov_b32 s7, 0xf000 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           20:  s_mov_b32 s6, -1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           21:  s_waitcnt lgkmcnt(0) 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           22:  s_mov_b32 s4, s0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           23:  s_mov_b32 s5, s1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           24:  v_mov_b32_e32 v0, s3 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           25:  v_max_f32_e32 v0, s2, v0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1      ?                         possible intended match
# |           26:  buffer_store_dword v0, off, s[4:7], 0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           27:  s_endpgm 
# | check:5'0     ~~~~~~~~~~
# |           28: .Lfunc_end0: 
# | check:5'0     ~~~~~~~~~~~~~
# |           29:  .size test_fmax_f32_ieee_mode_on, .Lfunc_end0-test_fmax_f32_ieee_mode_on 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           30:  ; -- End function 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fminnum.f64.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tahiti < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GCN,GFX678 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tahiti
# 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=GCN,GFX678 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll:15:12: error: GCN-DAG: expected string not found in input
# | ; GCN-DAG: v_max_f64 [[QUIETA:v\[[0-9]+:[0-9]+\]]], [[A]], [[A]]
# |            ^
# | <stdin>:19:23: note: scanning from here
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:19:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:19:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:23:2: note: possible intended match here
# |  v_min_f64 v[0:1], s[2:3], v[0:1]
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll:28:15: error: GFX678-DAG: expected string not found in input
# | ; GFX678-DAG: v_mul_f64 [[QUIETA:v\[[0-9]+:[0-9]+\]]], 1.0, [[A]]
# |               ^
# | <stdin>:82:23: note: scanning from here
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:82:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:86:2: note: possible intended match here
# |  v_min_f64 v[0:1], s[2:3], v[0:1]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          14:  .p2align 8 
# |          15:  .type test_fmin_f64_ieee_noflush,@function 
# |          16: test_fmin_f64_ieee_noflush: ; @test_fmin_f64_ieee_noflush 
# |          17: ; %bb.0: 
# |          18:  s_load_dwordx2 s[0:1], s[4:5], 0x1b 
# |          19:  s_load_dwordx2 s[2:3], s[4:5], 0x11 
# | dag:15'0                           X~~~~~~~~~~~~~~ error: no match found
# | dag:15'1                                           with "A" equal to "s[0:1]"
# | dag:15'2                                           with "A" equal to "s[0:1]"
# |          20:  s_waitcnt lgkmcnt(0) 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          21:  v_mov_b32_e32 v0, s0 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          22:  v_mov_b32_e32 v1, s1 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          23:  v_min_f64 v[0:1], s[2:3], v[0:1] 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:15'3      ?                                 possible intended match
# |          24:  s_mov_b32 s3, 0xf000 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          25:  s_mov_b32 s2, -1 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~
# |          26:  buffer_store_dwordx2 v[0:1], off, s[0:3], 0 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          27:  s_endpgm 
# | dag:15'0     ~~~~~~~~~~
# |          28: .Lfunc_end0: 
# | dag:15'0     ~~~~~~~~~~~~~
# |           .
# |           .
# |           .
# |          77:  .p2align 8 
# | dag:15'0     ~~~~~~~~~~~~
# |          78:  .type test_fmin_f64_ieee_flush,@function 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          79: test_fmin_f64_ieee_flush: ; @test_fmin_f64_ieee_flush 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |          80: ; %bb.0: 
# |          81:  s_load_dwordx2 s[0:1], s[4:5], 0x1b 
# |          82:  s_load_dwordx2 s[2:3], s[4:5], 0x11 
# | dag:28'0                           X~~~~~~~~~~~~~~ error: no match found
# | dag:28'1                                           with "A" equal to "s[0:1]"
# |          83:  s_waitcnt lgkmcnt(0) 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          84:  v_mov_b32_e32 v0, s0 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          85:  v_mov_b32_e32 v1, s1 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          86:  v_min_f64 v[0:1], s[2:3], v[0:1] 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:28'2      ?                                 possible intended match
# |          87:  s_mov_b32 s3, 0xf000 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          88:  s_mov_b32 s2, -1 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~
# |          89:  buffer_store_dwordx2 v[0:1], off, s[0:3], 0 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          90:  s_endpgm 
# | dag:28'0     ~~~~~~~~~~
# |          91: .Lfunc_end1: 
# | dag:28'0     ~~~~~~~~~~~~~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fminnum.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefix=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -enable-var-scope -check-prefix=GCN /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.ll:5:8: error: GCN: expected string not found in input
# | ; GCN: v_mul_f32_e64 [[QUIET0:v[0-9]+]], 1.0, s{{[0-9]+}}
# |        ^
# | <stdin>:16:28: note: scanning from here
# | test_fmin_f32_ieee_mode_on: ; @test_fmin_f32_ieee_mode_on
# |                            ^
# | <stdin>:25:2: note: possible intended match here
# |  v_min_f32_e32 v0, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/fminnum.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           11:  .long 0 
# |           12:  .text 
# |           13:  .globl test_fmin_f32_ieee_mode_on ; -- Begin function test_fmin_f32_ieee_mode_on 
# |           14:  .p2align 8 
# |           15:  .type test_fmin_f32_ieee_mode_on,@function 
# |           16: test_fmin_f32_ieee_mode_on: ; @test_fmin_f32_ieee_mode_on 
# | check:5'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           17: ; %bb.0: 
# | check:5'0     ~~~~~~~~~
# |           18:  s_load_dwordx4 s[0:3], s[4:5], 0x9 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  s_mov_b32 s7, 0xf000 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           20:  s_mov_b32 s6, -1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           21:  s_waitcnt lgkmcnt(0) 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           22:  s_mov_b32 s4, s0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           23:  s_mov_b32 s5, s1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           24:  v_mov_b32_e32 v0, s3 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           25:  v_min_f32_e32 v0, s2, v0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1      ?                         possible intended match
# |           26:  buffer_store_dword v0, off, s[4:7], 0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           27:  s_endpgm 
# | check:5'0     ~~~~~~~~~~
# |           28: .Lfunc_end0: 
# | check:5'0     ~~~~~~~~~~~~~
# |           29:  .size test_fmin_f32_ieee_mode_on, .Lfunc_end0-test_fmin_f32_ieee_mode_on 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           30:  ; -- End function 
# | check:5'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.

@github-actions
Copy link
Copy Markdown

🪟 Windows x64 Test Results

  • 130799 tests passed
  • 2933 tests skipped
  • 10 tests failed

Failed Tests

(click on a test name to see its output)

Clang

Clang.CodeGenOpenCL/amdgpu-ieee.cl
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=COMMON,ON C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=COMMON,ON 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl    -mno-amdgpu-ieee -menable-no-nans    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=COMMON,OFF C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl' -mno-amdgpu-ieee -menable-no-nans
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=COMMON,OFF 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# note: command had no output on stdout or stderr
# RUN: at line 8
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl    -mno-amdgpu-ieee -cl-fast-relaxed-math    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=COMMON,OFF C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl' -mno-amdgpu-ieee -cl-fast-relaxed-math
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=COMMON,OFF 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# note: command had no output on stdout or stderr
# RUN: at line 14
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple amdgcn-amd-amdhsa -O3 -S -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=ISA-ON C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple amdgcn-amd-amdhsa -O3 -S -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=ISA-ON 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl:26:12: error: ISA-ON: expected string not found in input
# | // ISA-ON: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}
# |            ^
# | <stdin>:1:1: note: scanning from here
# |  .amdgcn_target "amdgcn-amd-amdhsa--gfx700"
# | ^
# | <stdin>:14:2: note: possible intended match here
# |  v_min_f32_e32 v2, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGenOpenCL\amdgpu-ieee.cl
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1:  .amdgcn_target "amdgcn-amd-amdhsa--gfx700" 
# | check:26'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2:  .amdhsa_code_object_version 6 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             3:  .text 
# | check:26'0     ~~~~~~~
# |             4:  .globl kern ; -- Begin function kern 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             5:  .p2align 8 
# | check:26'0     ~~~~~~~~~~~~
# |             6:  .type kern,@function 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |             9:  .type .Lkern$local,@function 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            10: ; %bb.0: ; %entry 
# | check:26'0     ~~~~~~~~~~~~~~~~~~
# |            11:  s_load_dwordx4 s[0:3], s[4:5], 0x0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            12:  s_waitcnt lgkmcnt(0) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            13:  v_mov_b32_e32 v0, s3 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            14:  v_min_f32_e32 v2, s2, v0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:26'1      ?                         possible intended match
# |            15:  v_mov_b32_e32 v0, s0 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            16:  v_mov_b32_e32 v1, s1 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            17:  flat_store_dword v[0:1], v2 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            18:  s_endpgm 
# | check:26'0     ~~~~~~~~~~
# |            19:  .section .rodata,"a",@progbits 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM

LLVM.CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=CHECK,GFX90A C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=CHECK,GFX90A 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:9402:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8641:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8642:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:9466:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8704:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8702:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:8703:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:9532:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8767:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8768:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:9596:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8830:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8828:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:8829:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:10437:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_cndmask_b32_e32 v6, -1, v0, vcc
# |                ^
# | <stdin>:9556:33: note: scanning from here
# |  v_cmp_ne_u64_e32 vcc, 0, v[0:1]
# |                                 ^
# | <stdin>:9557:2: note: possible intended match here
# |  v_cndmask_b32_e32 v4, -1, v0, vcc
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:10512:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_add_co_u32_e32 v4, vcc, 0x50, v0
# |                ^
# | <stdin>:9612:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:9613:2: note: possible intended match here
# |  v_add_co_u32_e32 v2, vcc, 0x50, v0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:10625:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_cndmask_b32_e32 v6, -1, v0, vcc
# |                ^
# | <stdin>:9712:33: note: scanning from here
# |  v_cmp_ne_u64_e32 vcc, 0, v[0:1]
# |                                 ^
# | <stdin>:9713:2: note: possible intended match here
# |  v_cndmask_b32_e32 v4, -1, v0, vcc
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:10700:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_add_co_u32_e32 v4, vcc, 0x50, v0
# |                ^
# | <stdin>:9768:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:9769:2: note: possible intended match here
# |  v_add_co_u32_e32 v2, vcc, 0x50, v0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:11549:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:10495:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:10496:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:11614:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:10558:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:10556:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:10557:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:11681:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:10621:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:10622:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:11746:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:10684:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:10682:38: note: previous match ended here
# |  flat_load_dword v3, v[0:1] offset:40
# |                                      ^
# | <stdin>:10683:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:17705:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:16476:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:16477:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:17773:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:16542:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:16539:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:16540:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:17843:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:16606:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:16607:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:17911:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:16672:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:16669:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:16670:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:18746:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_mov_b32_e32 v6, s4
# |                ^
# | <stdin>:17399:26: note: scanning from here
# |  s_cselect_b32 s4, s4, -1
# |                          ^
# | <stdin>:17400:2: note: possible intended match here
# |  v_mov_b32_e32 v4, s4
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:18825:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: ; def v[2:3]
# |                ^
# | <stdin>:17461:13: note: scanning from here
# |  ;;#ASMSTART
# |             ^
# | <stdin>:17462:2: note: possible intended match here
# |  ; def v[0:1]
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:18928:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_mov_b32_e32 v6, s4
# |                ^
# | <stdin>:17554:26: note: scanning from here
# |  s_cselect_b32 s4, s4, -1
# |                          ^
# | <stdin>:17555:2: note: possible intended match here
# |  v_mov_b32_e32 v4, s4
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:19007:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: ; def v[2:3]
# |                ^
# | <stdin>:17616:13: note: scanning from here
# |  ;;#ASMSTART
# |             ^
# | <stdin>:17617:2: note: possible intended match here
# |  ; def v[0:1]
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:19846:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:18340:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:18341:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:19915:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:18406:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:18403:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:18404:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:19986:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:18470:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:18471:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll:20055:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:18536:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:18533:38: note: previous match ended here
# |  flat_load_dword v1, v[0:1] offset:40
# |                                      ^
# | <stdin>:18534:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-flat-atomicrmw.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |               .
# |               .
# |               .
# |            8636: ; %bb.0: 
# |            8637:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8638:  flat_load_dword v3, v[0:1] offset:40 
# |            8639:  ;;#ASMSTART 
# |            8640:  ; def a0 
# |            8641:  ;;#ASMEND 
# | next:9402'0                X error: no match found
# |            8642:  v_accvgpr_read_b32 v4, a0 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:9402'1       ?                          possible intended match
# |            8643:  s_mov_b64 s[4:5], 0 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8644: .LBB119_1: ; %atomicrmw.start 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8645:  ; =>This Inner Loop Header: Depth=1 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8646:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8647:  v_max_f32_e32 v2, v3, v4 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8699: flat_atomic_fmax_f32_ret_av_av: ; @flat_atomic_fmax_f32_ret_av_av 
# | next:9402'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8700: ; %bb.0: 
# |            8701:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8702:  flat_load_dword v3, v[0:1] offset:40 
# |            8703:  s_mov_b64 s[4:5], 0 
# |            8704:  ;;#ASMSTART 
# | next:9466         !~~~~~~~~~~  error: match on wrong line
# |            8705:  ; def v4 
# |            8706:  ;;#ASMEND 
# |            8707: .LBB120_1: ; %atomicrmw.start 
# |            8708:  ; =>This Inner Loop Header: Depth=1 
# |            8709:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |            8762: ; %bb.0: 
# |            8763:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8764:  flat_load_dword v3, v[0:1] offset:40 
# |            8765:  ;;#ASMSTART 
# |            8766:  ; def a0 
# |            8767:  ;;#ASMEND 
# | next:9532'0                X error: no match found
# |            8768:  v_accvgpr_read_b32 v4, a0 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:9532'1       ?                          possible intended match
# |            8769:  s_mov_b64 s[4:5], 0 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8770: .LBB121_1: ; %atomicrmw.start 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8771:  ; =>This Inner Loop Header: Depth=1 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8772:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8773:  v_min_f32_e32 v2, v3, v4 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8825: flat_atomic_fmin_f32_ret_av_av: ; @flat_atomic_fmin_f32_ret_av_av 
# | next:9532'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8826: ; %bb.0: 
# |            8827:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8828:  flat_load_dword v3, v[0:1] offset:40 
# |            8829:  s_mov_b64 s[4:5], 0 
# |            8830:  ;;#ASMSTART 
# | next:9596         !~~~~~~~~~~  error: match on wrong line
# |            8831:  ; def v4 
# |            8832:  ;;#ASMEND 
# |            8833: .LBB122_1: ; %atomicrmw.start 
# |            8834:  ; =>This Inner Loop Header: Depth=1 
# |            8835:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |            9551:  ; implicit-def: $vgpr0_vgpr1 
# |            9552: .LBB131_2: ; %Flow 
# |            9553:  s_andn2_saveexec_b64 s[4:5], s[4:5] 
# |            9554:  s_cbranch_execz .LBB131_4 
# |            9555: ; %bb.3: ; %atomicrmw.private 
# |            9556:  v_cmp_ne_u64_e32 vcc, 0, v[0:1] 
# | next:10437'0                                     X error: no match found
# |            9557:  v_cndmask_b32_e32 v4, -1, v0, vcc 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10437'1      ?                                  possible intended match
# |            9558:  buffer_load_dword v0, v4, s[0:3], 0 offen 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9559:  buffer_load_dword v1, v4, s[0:3], 0 offen offset:4 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9560:  s_waitcnt vmcnt(0) 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~
# |            9561:  v_accvgpr_write_b32 a0, v0 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9562:  v_max_f64 v[2:3], v[0:1], v[2:3] 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9607:  .globl flat_atomic_fmax_f64_ret_av_av ; -- Begin function flat_atomic_fmax_f64_ret_av_av 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9608:  .p2align 2 
# | next:10437'0     ~~~~~~~~~~~~
# |            9609:  .type flat_atomic_fmax_f64_ret_av_av,@function 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9610: flat_atomic_fmax_f64_ret_av_av: ; @flat_atomic_fmax_f64_ret_av_av 
# | next:10437'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9611: ; %bb.0: 
# |            9612:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:10512'0                                             X error: no match found
# |            9613:  v_add_co_u32_e32 v2, vcc, 0x50, v0 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10512'1      ?                                   possible intended match
# |            9614:  s_mov_b64 s[4:5], src_private_base 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9615:  v_addc_co_u32_e32 v3, vcc, 0, v1, vcc 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9616:  v_cmp_ne_u32_e32 vcc, s5, v3 
# | next:10512'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9617:  ;;#ASMSTART 
# | next:10512'0     ~~~~~~~~~~~~~
# |            9618:  ; def v[4:5] 
# | next:10512'0     ~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9707:  ; implicit-def: $vgpr0_vgpr1 
# |            9708: .LBB133_2: ; %Flow 
# |            9709:  s_andn2_saveexec_b64 s[4:5], s[4:5] 
# |            9710:  s_cbranch_execz .LBB133_4 
# |            9711: ; %bb.3: ; %atomicrmw.private 
# |            9712:  v_cmp_ne_u64_e32 vcc, 0, v[0:1] 
# | next:10625'0                                     X error: no match found
# |            9713:  v_cndmask_b32_e32 v4, -1, v0, vcc 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10625'1      ?                                  possible intended match
# |            9714:  buffer_load_dword v0, v4, s[0:3], 0 offen 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9715:  buffer_load_dword v1, v4, s[0:3], 0 offen offset:4 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9716:  s_waitcnt vmcnt(0) 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~
# |            9717:  v_accvgpr_write_b32 a0, v0 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9718:  v_min_f64 v[2:3], v[0:1], v[2:3] 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            9763:  .globl flat_atomic_fmin_f64_ret_av_av ; -- Begin function flat_atomic_fmin_f64_ret_av_av 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9764:  .p2align 2 
# | next:10625'0     ~~~~~~~~~~~~
# |            9765:  .type flat_atomic_fmin_f64_ret_av_av,@function 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9766: flat_atomic_fmin_f64_ret_av_av: ; @flat_atomic_fmin_f64_ret_av_av 
# | next:10625'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9767: ; %bb.0: 
# |            9768:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:10700'0                                             X error: no match found
# |            9769:  v_add_co_u32_e32 v2, vcc, 0x50, v0 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:10700'1      ?                                   possible intended match
# |            9770:  s_mov_b64 s[4:5], src_private_base 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9771:  v_addc_co_u32_e32 v3, vcc, 0, v1, vcc 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9772:  v_cmp_ne_u32_e32 vcc, s5, v3 
# | next:10700'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9773:  ;;#ASMSTART 
# | next:10700'0     ~~~~~~~~~~~~~
# |            9774:  ; def v[4:5] 
# | next:10700'0     ~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10490: ; %bb.0: 
# |           10491:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10492:  flat_load_dword v3, v[0:1] offset:40 
# |           10493:  ;;#ASMSTART 
# |           10494:  ; def a0 
# |           10495:  ;;#ASMEND 
# | next:11549'0               X error: no match found
# |           10496:  v_accvgpr_read_b32 v4, a0 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:11549'1      ?                          possible intended match
# |           10497:  s_mov_b64 s[4:5], 0 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~
# |           10498: .LBB143_1: ; %atomicrmw.start 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10499:  ; =>This Inner Loop Header: Depth=1 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10500:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10501:  v_pk_max_f16 v2, v3, v4 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10553: flat_atomic_fmax_v2f16_ret_av_av: ; @flat_atomic_fmax_v2f16_ret_av_av 
# | next:11549'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10554: ; %bb.0: 
# |           10555:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10556:  flat_load_dword v3, v[0:1] offset:40 
# |           10557:  s_mov_b64 s[4:5], 0 
# |           10558:  ;;#ASMSTART 
# | next:11614        !~~~~~~~~~~  error: match on wrong line
# |           10559:  ; def v4 
# |           10560:  ;;#ASMEND 
# |           10561: .LBB144_1: ; %atomicrmw.start 
# |           10562:  ; =>This Inner Loop Header: Depth=1 
# |           10563:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           10616: ; %bb.0: 
# |           10617:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10618:  flat_load_dword v3, v[0:1] offset:40 
# |           10619:  ;;#ASMSTART 
# |           10620:  ; def a0 
# |           10621:  ;;#ASMEND 
# | next:11681'0               X error: no match found
# |           10622:  v_accvgpr_read_b32 v4, a0 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:11681'1      ?                          possible intended match
# |           10623:  s_mov_b64 s[4:5], 0 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~
# |           10624: .LBB145_1: ; %atomicrmw.start 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10625:  ; =>This Inner Loop Header: Depth=1 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10626:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10627:  v_pk_min_f16 v2, v3, v4 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           10679: flat_atomic_fmin_v2f16_ret_av_av: ; @flat_atomic_fmin_v2f16_ret_av_av 
# | next:11681'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           10680: ; %bb.0: 
# |           10681:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           10682:  flat_load_dword v3, v[0:1] offset:40 
# |           10683:  s_mov_b64 s[4:5], 0 
# |           10684:  ;;#ASMSTART 
# | next:11746        !~~~~~~~~~~  error: match on wrong line
# |           10685:  ; def v4 
# |           10686:  ;;#ASMEND 
# |           10687: .LBB146_1: ; %atomicrmw.start 
# |           10688:  ; =>This Inner Loop Header: Depth=1 
# |           10689:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           16471:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16472:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16473:  flat_load_dword v1, v[0:1] offset:40 
# |           16474:  ;;#ASMSTART 
# |           16475:  ; def a0 
# |           16476:  ;;#ASMEND 
# | next:17705'0               X error: no match found
# |           16477:  v_accvgpr_read_b32 v4, a0 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17705'1      ?                          possible intended match
# |           16478:  s_mov_b64 s[4:5], 0 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~
# |           16479:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16480: .LBB227_1: ; %atomicrmw.start 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16481:  ; =>This Inner Loop Header: Depth=1 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16482:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:17705'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           16537:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16538:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16539:  flat_load_dword v1, v[0:1] offset:40 
# |           16540:  s_mov_b64 s[4:5], 0 
# |           16541:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           16542:  ;;#ASMSTART 
# | next:17773        !~~~~~~~~~~  error: match on wrong line
# |           16543:  ; def v4 
# |           16544:  ;;#ASMEND 
# |           16545: .LBB228_1: ; %atomicrmw.start 
# |           16546:  ; =>This Inner Loop Header: Depth=1 
# |           16547:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           16601:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16602:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16603:  flat_load_dword v1, v[0:1] offset:40 
# |           16604:  ;;#ASMSTART 
# |           16605:  ; def a0 
# |           16606:  ;;#ASMEND 
# | next:17843'0               X error: no match found
# |           16607:  v_accvgpr_read_b32 v4, a0 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17843'1      ?                          possible intended match
# |           16608:  s_mov_b64 s[4:5], 0 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~
# |           16609:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16610: .LBB229_1: ; %atomicrmw.start 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16611:  ; =>This Inner Loop Header: Depth=1 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16612:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:17843'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           16667:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           16668:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           16669:  flat_load_dword v1, v[0:1] offset:40 
# |           16670:  s_mov_b64 s[4:5], 0 
# |           16671:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           16672:  ;;#ASMSTART 
# | next:17911        !~~~~~~~~~~  error: match on wrong line
# |           16673:  ; def v4 
# |           16674:  ;;#ASMEND 
# |           16675: .LBB230_1: ; %atomicrmw.start 
# |           16676:  ; =>This Inner Loop Header: Depth=1 
# |           16677:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           17394:  s_branch .LBB239_4 
# |           17395: .LBB239_2: 
# |           17396:  ; implicit-def: $agpr0_agpr1 
# |           17397: .LBB239_3: ; %atomicrmw.private 
# |           17398:  s_cmp_lg_u64 s[4:5], 0 
# |           17399:  s_cselect_b32 s4, s4, -1 
# | next:18746'0                              X error: no match found
# |           17400:  v_mov_b32_e32 v4, s4 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~
# | next:18746'1      ?                     possible intended match
# |           17401:  buffer_load_dword v2, v4, s[0:3], 0 offen 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17402:  buffer_load_dword v3, v4, s[0:3], 0 offen offset:4 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17403:  s_waitcnt vmcnt(0) 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~
# |           17404:  v_accvgpr_write_b32 a0, v2 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17405:  v_max_f64 v[0:1], v[2:3], v[0:1] 
# | next:18746'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17456:  s_mov_b64 s[6:7], src_private_base 
# |           17457:  s_addc_u32 s5, s17, 0 
# |           17458:  s_cmp_eq_u32 s5, s7 
# |           17459:  s_cselect_b64 s[6:7], -1, 0 
# |           17460:  s_andn2_b64 vcc, exec, s[6:7] 
# |           17461:  ;;#ASMSTART 
# | next:18825'0                 X error: no match found
# |           17462:  ; def v[0:1] 
# | next:18825'0     ~~~~~~~~~~~~~~
# | next:18825'1      ?             possible intended match
# |           17463:  ;;#ASMEND 
# | next:18825'0     ~~~~~~~~~~~
# |           17464:  s_cbranch_vccz .LBB240_2 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17465: ; %bb.1: ; %atomicrmw.global 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17466:  v_pk_mov_b32 v[2:3], s[4:5], s[4:5] op_sel:[0,1] 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17467:  flat_atomic_max_f64 v[2:3], v[2:3], v[0:1] glc 
# | next:18825'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17549:  s_branch .LBB241_4 
# |           17550: .LBB241_2: 
# |           17551:  ; implicit-def: $agpr0_agpr1 
# |           17552: .LBB241_3: ; %atomicrmw.private 
# |           17553:  s_cmp_lg_u64 s[4:5], 0 
# |           17554:  s_cselect_b32 s4, s4, -1 
# | next:18928'0                              X error: no match found
# |           17555:  v_mov_b32_e32 v4, s4 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~
# | next:18928'1      ?                     possible intended match
# |           17556:  buffer_load_dword v2, v4, s[0:3], 0 offen 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17557:  buffer_load_dword v3, v4, s[0:3], 0 offen offset:4 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17558:  s_waitcnt vmcnt(0) 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~
# |           17559:  v_accvgpr_write_b32 a0, v2 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17560:  v_min_f64 v[0:1], v[2:3], v[0:1] 
# | next:18928'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           17611:  s_mov_b64 s[6:7], src_private_base 
# |           17612:  s_addc_u32 s5, s17, 0 
# |           17613:  s_cmp_eq_u32 s5, s7 
# |           17614:  s_cselect_b64 s[6:7], -1, 0 
# |           17615:  s_andn2_b64 vcc, exec, s[6:7] 
# |           17616:  ;;#ASMSTART 
# | next:19007'0                 X error: no match found
# |           17617:  ; def v[0:1] 
# | next:19007'0     ~~~~~~~~~~~~~~
# | next:19007'1      ?             possible intended match
# |           17618:  ;;#ASMEND 
# | next:19007'0     ~~~~~~~~~~~
# |           17619:  s_cbranch_vccz .LBB242_2 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17620: ; %bb.1: ; %atomicrmw.global 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17621:  v_pk_mov_b32 v[2:3], s[4:5], s[4:5] op_sel:[0,1] 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17622:  flat_atomic_min_f64 v[2:3], v[2:3], v[0:1] glc 
# | next:19007'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18335:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18336:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18337:  flat_load_dword v1, v[0:1] offset:40 
# |           18338:  ;;#ASMSTART 
# |           18339:  ; def a0 
# |           18340:  ;;#ASMEND 
# | next:19846'0               X error: no match found
# |           18341:  v_accvgpr_read_b32 v4, a0 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:19846'1      ?                          possible intended match
# |           18342:  s_mov_b64 s[4:5], 0 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~
# |           18343:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18344: .LBB251_1: ; %atomicrmw.start 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18345:  ; =>This Inner Loop Header: Depth=1 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18346:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:19846'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18401:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18402:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18403:  flat_load_dword v1, v[0:1] offset:40 
# |           18404:  s_mov_b64 s[4:5], 0 
# |           18405:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           18406:  ;;#ASMSTART 
# | next:19915        !~~~~~~~~~~  error: match on wrong line
# |           18407:  ; def v4 
# |           18408:  ;;#ASMEND 
# |           18409: .LBB252_1: ; %atomicrmw.start 
# |           18410:  ; =>This Inner Loop Header: Depth=1 
# |           18411:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# |           18465:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18466:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18467:  flat_load_dword v1, v[0:1] offset:40 
# |           18468:  ;;#ASMSTART 
# |           18469:  ; def a0 
# |           18470:  ;;#ASMEND 
# | next:19986'0               X error: no match found
# |           18471:  v_accvgpr_read_b32 v4, a0 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:19986'1      ?                          possible intended match
# |           18472:  s_mov_b64 s[4:5], 0 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~
# |           18473:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18474: .LBB253_1: ; %atomicrmw.start 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18475:  ; =>This Inner Loop Header: Depth=1 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18476:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# | next:19986'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           18531:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           18532:  v_pk_mov_b32 v[0:1], s[16:17], s[16:17] op_sel:[0,1] 
# |           18533:  flat_load_dword v1, v[0:1] offset:40 
# |           18534:  s_mov_b64 s[4:5], 0 
# |           18535:  v_pk_mov_b32 v[2:3], s[16:17], s[16:17] op_sel:[0,1] 
# |           18536:  ;;#ASMSTART 
# | next:20055        !~~~~~~~~~~  error: match on wrong line
# |           18537:  ; def v4 
# |           18538:  ;;#ASMEND 
# |           18539: .LBB254_1: ; %atomicrmw.start 
# |           18540:  ; =>This Inner Loop Header: Depth=1 
# |           18541:  s_waitcnt vmcnt(0) lgkmcnt(0) 
# |               .
# |               .
# |               .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/a-v-global-atomicrmw.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=CHECK,GFX90A C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx90a -amdgpu-atomic-optimizer-strategy=None
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=CHECK,GFX90A 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:6246:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:6972:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:6973:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:6310:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:7035:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:7033:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:7034:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:6376:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:7098:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:7099:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:6440:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:7161:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:7159:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:7160:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:7602:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8420:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8421:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:7667:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8483:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8481:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:8482:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:7734:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v2, a0
# |                ^
# | <stdin>:8546:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:8547:2: note: possible intended match here
# |  v_accvgpr_read_b32 v4, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:7799:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:8609:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:8607:45: note: previous match ended here
# |  global_load_dword v3, v[0:1], off offset:40
# |                                             ^
# | <stdin>:8608:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:12023:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:13447:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:13448:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:12089:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:13511:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:13509:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:13510:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:12157:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:13575:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:13576:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:12223:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:13639:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:13637:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:13638:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:13424:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:14919:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:14920:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:13491:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:14983:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:14981:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:14982:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:13560:16: error: GFX90A-NEXT: expected string not found in input
# | ; GFX90A-NEXT: v_accvgpr_read_b32 v0, a0
# |                ^
# | <stdin>:15047:11: note: scanning from here
# |  ;;#ASMEND
# |           ^
# | <stdin>:15048:2: note: possible intended match here
# |  v_accvgpr_read_b32 v3, a0
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll:13627:16: error: GFX90A-NEXT: is not on the line after the previous match
# | ; GFX90A-NEXT: ;;#ASMSTART
# |                ^
# | <stdin>:15111:2: note: 'next' match was here
# |  ;;#ASMSTART
# |  ^
# | <stdin>:15109:46: note: previous match ended here
# |  global_load_dword v1, v2, s[16:17] offset:40
# |                                              ^
# | <stdin>:15110:1: note: non-matching line after previous match is here
# |  s_mov_b64 s[4:5], 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\a-v-global-atomicrmw.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |               .
# |               .
# |               .
# |            6967: ; %bb.0: 
# |            6968:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            6969:  global_load_dword v3, v[0:1], off offset:40 
# |            6970:  ;;#ASMSTART 
# |            6971:  ; def a0 
# |            6972:  ;;#ASMEND 
# | next:6246'0                X error: no match found
# |            6973:  v_accvgpr_read_b32 v4, a0 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:6246'1       ?                          possible intended match
# |            6974:  s_mov_b64 s[4:5], 0 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~
# |            6975: .LBB119_1: ; %atomicrmw.start 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            6976:  ; =>This Inner Loop Header: Depth=1 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            6977:  s_waitcnt vmcnt(0) 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~
# |            6978:  v_max_f32_e32 v2, v3, v4 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            7030: global_atomic_fmax_f32_ret_av_av: ; @global_atomic_fmax_f32_ret_av_av 
# | next:6246'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7031: ; %bb.0: 
# |            7032:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7033:  global_load_dword v3, v[0:1], off offset:40 
# |            7034:  s_mov_b64 s[4:5], 0 
# |            7035:  ;;#ASMSTART 
# | next:6310         !~~~~~~~~~~  error: match on wrong line
# |            7036:  ; def v4 
# |            7037:  ;;#ASMEND 
# |            7038: .LBB120_1: ; %atomicrmw.start 
# |            7039:  ; =>This Inner Loop Header: Depth=1 
# |            7040:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            7093: ; %bb.0: 
# |            7094:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7095:  global_load_dword v3, v[0:1], off offset:40 
# |            7096:  ;;#ASMSTART 
# |            7097:  ; def a0 
# |            7098:  ;;#ASMEND 
# | next:6376'0                X error: no match found
# |            7099:  v_accvgpr_read_b32 v4, a0 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:6376'1       ?                          possible intended match
# |            7100:  s_mov_b64 s[4:5], 0 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~
# |            7101: .LBB121_1: ; %atomicrmw.start 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7102:  ; =>This Inner Loop Header: Depth=1 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7103:  s_waitcnt vmcnt(0) 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~
# |            7104:  v_min_f32_e32 v2, v3, v4 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            7156: global_atomic_fmin_f32_ret_av_av: ; @global_atomic_fmin_f32_ret_av_av 
# | next:6376'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7157: ; %bb.0: 
# |            7158:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            7159:  global_load_dword v3, v[0:1], off offset:40 
# |            7160:  s_mov_b64 s[4:5], 0 
# |            7161:  ;;#ASMSTART 
# | next:6440         !~~~~~~~~~~  error: match on wrong line
# |            7162:  ; def v4 
# |            7163:  ;;#ASMEND 
# |            7164: .LBB122_1: ; %atomicrmw.start 
# |            7165:  ; =>This Inner Loop Header: Depth=1 
# |            7166:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            8415: ; %bb.0: 
# |            8416:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8417:  global_load_dword v3, v[0:1], off offset:40 
# |            8418:  ;;#ASMSTART 
# |            8419:  ; def a0 
# |            8420:  ;;#ASMEND 
# | next:7602'0                X error: no match found
# |            8421:  v_accvgpr_read_b32 v4, a0 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:7602'1       ?                          possible intended match
# |            8422:  s_mov_b64 s[4:5], 0 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8423: .LBB143_1: ; %atomicrmw.start 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8424:  ; =>This Inner Loop Header: Depth=1 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8425:  s_waitcnt vmcnt(0) 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~
# |            8426:  v_pk_max_f16 v2, v3, v4 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8478: global_atomic_fmax_v2f16_ret_av_av: ; @global_atomic_fmax_v2f16_ret_av_av 
# | next:7602'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8479: ; %bb.0: 
# |            8480:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8481:  global_load_dword v3, v[0:1], off offset:40 
# |            8482:  s_mov_b64 s[4:5], 0 
# |            8483:  ;;#ASMSTART 
# | next:7667         !~~~~~~~~~~  error: match on wrong line
# |            8484:  ; def v4 
# |            8485:  ;;#ASMEND 
# |            8486: .LBB144_1: ; %atomicrmw.start 
# |            8487:  ; =>This Inner Loop Header: Depth=1 
# |            8488:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |            8541: ; %bb.0: 
# |            8542:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8543:  global_load_dword v3, v[0:1], off offset:40 
# |            8544:  ;;#ASMSTART 
# |            8545:  ; def a0 
# |            8546:  ;;#ASMEND 
# | next:7734'0                X error: no match found
# |            8547:  v_accvgpr_read_b32 v4, a0 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:7734'1       ?                          possible intended match
# |            8548:  s_mov_b64 s[4:5], 0 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~
# |            8549: .LBB145_1: ; %atomicrmw.start 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8550:  ; =>This Inner Loop Header: Depth=1 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8551:  s_waitcnt vmcnt(0) 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~
# |            8552:  v_pk_min_f16 v2, v3, v4 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |            8604: global_atomic_fmin_v2f16_ret_av_av: ; @global_atomic_fmin_v2f16_ret_av_av 
# | next:7734'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8605: ; %bb.0: 
# |            8606:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            8607:  global_load_dword v3, v[0:1], off offset:40 
# |            8608:  s_mov_b64 s[4:5], 0 
# |            8609:  ;;#ASMSTART 
# | next:7799         !~~~~~~~~~~  error: match on wrong line
# |            8610:  ; def v4 
# |            8611:  ;;#ASMEND 
# |            8612: .LBB146_1: ; %atomicrmw.start 
# |            8613:  ; =>This Inner Loop Header: Depth=1 
# |            8614:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           13442:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13443:  v_mov_b32_e32 v2, 0 
# |           13444:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13445:  ;;#ASMSTART 
# |           13446:  ; def a0 
# |           13447:  ;;#ASMEND 
# | next:12023'0               X error: no match found
# |           13448:  v_accvgpr_read_b32 v3, a0 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12023'1      ?                          possible intended match
# |           13449:  s_mov_b64 s[4:5], 0 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~
# |           13450: .LBB227_1: ; %atomicrmw.start 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13451:  ; =>This Inner Loop Header: Depth=1 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13452:  s_waitcnt vmcnt(0) 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~
# |           13453:  v_max_f32_e32 v0, v1, v3 
# | next:12023'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           13506: ; %bb.0: 
# |           13507:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13508:  v_mov_b32_e32 v2, 0 
# |           13509:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13510:  s_mov_b64 s[4:5], 0 
# |           13511:  ;;#ASMSTART 
# | next:12089        !~~~~~~~~~~  error: match on wrong line
# |           13512:  ; def v3 
# |           13513:  ;;#ASMEND 
# |           13514: .LBB228_1: ; %atomicrmw.start 
# |           13515:  ; =>This Inner Loop Header: Depth=1 
# |           13516:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           13570:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13571:  v_mov_b32_e32 v2, 0 
# |           13572:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13573:  ;;#ASMSTART 
# |           13574:  ; def a0 
# |           13575:  ;;#ASMEND 
# | next:12157'0               X error: no match found
# |           13576:  v_accvgpr_read_b32 v3, a0 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:12157'1      ?                          possible intended match
# |           13577:  s_mov_b64 s[4:5], 0 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~
# |           13578: .LBB229_1: ; %atomicrmw.start 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13579:  ; =>This Inner Loop Header: Depth=1 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13580:  s_waitcnt vmcnt(0) 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~
# |           13581:  v_min_f32_e32 v0, v1, v3 
# | next:12157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           13634: ; %bb.0: 
# |           13635:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           13636:  v_mov_b32_e32 v2, 0 
# |           13637:  global_load_dword v1, v2, s[16:17] offset:40 
# |           13638:  s_mov_b64 s[4:5], 0 
# |           13639:  ;;#ASMSTART 
# | next:12223        !~~~~~~~~~~  error: match on wrong line
# |           13640:  ; def v3 
# |           13641:  ;;#ASMEND 
# |           13642: .LBB230_1: ; %atomicrmw.start 
# |           13643:  ; =>This Inner Loop Header: Depth=1 
# |           13644:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           14914:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           14915:  v_mov_b32_e32 v2, 0 
# |           14916:  global_load_dword v1, v2, s[16:17] offset:40 
# |           14917:  ;;#ASMSTART 
# |           14918:  ; def a0 
# |           14919:  ;;#ASMEND 
# | next:13424'0               X error: no match found
# |           14920:  v_accvgpr_read_b32 v3, a0 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13424'1      ?                          possible intended match
# |           14921:  s_mov_b64 s[4:5], 0 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~
# |           14922: .LBB251_1: ; %atomicrmw.start 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14923:  ; =>This Inner Loop Header: Depth=1 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14924:  s_waitcnt vmcnt(0) 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~
# |           14925:  v_pk_max_f16 v0, v1, v3 
# | next:13424'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           14978: ; %bb.0: 
# |           14979:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           14980:  v_mov_b32_e32 v2, 0 
# |           14981:  global_load_dword v1, v2, s[16:17] offset:40 
# |           14982:  s_mov_b64 s[4:5], 0 
# |           14983:  ;;#ASMSTART 
# | next:13491        !~~~~~~~~~~  error: match on wrong line
# |           14984:  ; def v3 
# |           14985:  ;;#ASMEND 
# |           14986: .LBB252_1: ; %atomicrmw.start 
# |           14987:  ; =>This Inner Loop Header: Depth=1 
# |           14988:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# |           15042:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           15043:  v_mov_b32_e32 v2, 0 
# |           15044:  global_load_dword v1, v2, s[16:17] offset:40 
# |           15045:  ;;#ASMSTART 
# |           15046:  ; def a0 
# |           15047:  ;;#ASMEND 
# | next:13560'0               X error: no match found
# |           15048:  v_accvgpr_read_b32 v3, a0 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13560'1      ?                          possible intended match
# |           15049:  s_mov_b64 s[4:5], 0 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~
# |           15050: .LBB253_1: ; %atomicrmw.start 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15051:  ; =>This Inner Loop Header: Depth=1 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15052:  s_waitcnt vmcnt(0) 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~
# |           15053:  v_pk_min_f16 v0, v1, v3 
# | next:13560'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |               .
# |               .
# |               .
# |           15106: ; %bb.0: 
# |           15107:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           15108:  v_mov_b32_e32 v2, 0 
# |           15109:  global_load_dword v1, v2, s[16:17] offset:40 
# |           15110:  s_mov_b64 s[4:5], 0 
# |           15111:  ;;#ASMSTART 
# | next:13627        !~~~~~~~~~~  error: match on wrong line
# |           15112:  ; def v3 
# |           15113:  ;;#ASMEND 
# |           15114: .LBB254_1: ; %atomicrmw.start 
# |           15115:  ; =>This Inner Loop Header: Depth=1 
# |           15116:  s_waitcnt vmcnt(0) 
# |               .
# |               .
# |               .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/amdgcn-ieee.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=GCN C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=GCN 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:81:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:92:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:93:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:171:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:224:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:225:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:282:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:420:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:421:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:305:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:468:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:469:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:368:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:626:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:627:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll:430:13: error: GCN-NEXT: expected string not found in input
# | ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |             ^
# | <stdin>:823:20: note: scanning from here
# |  s_waitcnt vmcnt(0)
# |                    ^
# | <stdin>:824:2: note: possible intended match here
# |  v_min_f32_e32 v0, v0, v1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\amdgcn-ieee.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            87:  s_mov_b32 s3, 0xf000 
# |            88:  s_mov_b32 s2, -1 
# |            89:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |            90:  s_waitcnt vmcnt(0) 
# |            91:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |            92:  s_waitcnt vmcnt(0) 
# | next:81'0                         X error: no match found
# |            93:  v_min_f32_e32 v0, v0, v1 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:81'1       ?                         possible intended match
# |            94:  buffer_store_dword v0, off, s[0:3], 0 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            95:  s_waitcnt vmcnt(0) 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~
# |            96:  s_endpgm 
# | next:81'0      ~~~~~~~~~~
# |            97: .Lfunc_end0: 
# | next:81'0      ~~~~~~~~~~~~~
# |            98:  .size kernel_ieee_mode_default, .Lfunc_end0-kernel_ieee_mode_default 
# | next:81'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           219:  s_mov_b32 s3, 0xf000 
# |           220:  s_mov_b32 s2, -1 
# |           221:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           222:  s_waitcnt vmcnt(0) 
# |           223:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           224:  s_waitcnt vmcnt(0) 
# | next:171'0                        X error: no match found
# |           225:  v_min_f32_e32 v0, v0, v1 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:171'1      ?                         possible intended match
# |           226:  buffer_store_dword v0, off, s[0:3], 0 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           227:  s_waitcnt vmcnt(0) 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~
# |           228:  s_endpgm 
# | next:171'0     ~~~~~~~~~~
# |           229: .Lfunc_end1: 
# | next:171'0     ~~~~~~~~~~~~~
# |           230:  .size kernel_ieee_mode_on, .Lfunc_end1-kernel_ieee_mode_on 
# | next:171'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           415:  s_mov_b32 s7, 0xf000 
# |           416:  s_mov_b32 s6, -1 
# |           417:  buffer_load_dword v0, off, s[4:7], 0 glc 
# |           418:  s_waitcnt vmcnt(0) 
# |           419:  buffer_load_dword v1, off, s[4:7], 0 glc 
# |           420:  s_waitcnt vmcnt(0) 
# | next:282'0                        X error: no match found
# |           421:  v_min_f32_e32 v0, v0, v1 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:282'1      ?                         possible intended match
# |           422:  buffer_store_dword v0, off, s[4:7], 0 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           423:  s_waitcnt vmcnt(0) expcnt(0) 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           424:  s_setpc_b64 s[30:31] 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           425: .Lfunc_end3: 
# | next:282'0     ~~~~~~~~~~~~~
# |           426:  .size func_ieee_mode_default, .Lfunc_end3-func_ieee_mode_default 
# | next:282'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           463:  s_mov_b32 s7, 0xf000 
# |           464:  s_mov_b32 s6, -1 
# |           465:  buffer_load_dword v0, off, s[4:7], 0 glc 
# |           466:  s_waitcnt vmcnt(0) 
# |           467:  buffer_load_dword v1, off, s[4:7], 0 glc 
# |           468:  s_waitcnt vmcnt(0) 
# | next:305'0                        X error: no match found
# |           469:  v_min_f32_e32 v0, v0, v1 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:305'1      ?                         possible intended match
# |           470:  buffer_store_dword v0, off, s[4:7], 0 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           471:  s_waitcnt vmcnt(0) expcnt(0) 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           472:  s_setpc_b64 s[30:31] 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           473: .Lfunc_end4: 
# | next:305'0     ~~~~~~~~~~~~~
# |           474:  .size func_ieee_mode_on, .Lfunc_end4-func_ieee_mode_on 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           621:  s_mov_b32 s3, 0xf000 
# |           622:  s_mov_b32 s2, -1 
# |           623:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           624:  s_waitcnt vmcnt(0) 
# |           625:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           626:  s_waitcnt vmcnt(0) 
# | next:368'0                        X error: no match found
# |           627:  v_min_f32_e32 v0, v0, v1 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:368'1      ?                         possible intended match
# |           628:  buffer_store_dword v0, off, s[0:3], 0 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           629:  s_waitcnt vmcnt(0) 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~
# |           630:  s_endpgm 
# | next:368'0     ~~~~~~~~~~
# |           631: .Lfunc_end7: 
# | next:368'0     ~~~~~~~~~~~~~
# |           632:  .size cs_ieee_mode_on, .Lfunc_end7-cs_ieee_mode_on 
# | next:368'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           818:  s_mov_b32 s3, 0xf000 
# |           819:  s_mov_b32 s2, -1 
# |           820:  buffer_load_dword v0, off, s[0:3], 0 glc 
# |           821:  s_waitcnt vmcnt(0) 
# |           822:  buffer_load_dword v1, off, s[0:3], 0 glc 
# |           823:  s_waitcnt vmcnt(0) 
# | next:430'0                        X error: no match found
# |           824:  v_min_f32_e32 v0, v0, v1 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:430'1      ?                         possible intended match
# |           825:  buffer_store_dword v0, off, s[0:3], 0 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           826:  s_waitcnt vmcnt(0) 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~
# |           827:  s_endpgm 
# | next:430'0     ~~~~~~~~~~
# |           828: .Lfunc_end10: 
# | next:430'0     ~~~~~~~~~~~~~~
# |           829:  .size ps_ieee_mode_on, .Lfunc_end10-ps_ieee_mode_on 
# | next:430'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/atomics-system-scope.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=gfx1250 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --check-prefix=GFX1250 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx1250
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --check-prefix=GFX1250 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll:695:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:1845:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:1875:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll:741:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:1915:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:1945:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll:811:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:2069:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:2099:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll:857:17: error: GFX1250-NEXT: expected string not found in input
# | ; GFX1250-NEXT: v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v0
# |                 ^
# | <stdin>:2139:18: note: scanning from here
# |  s_wait_kmcnt 0x0
# |                  ^
# | <stdin>:2169:2: note: possible intended match here
# |  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\atomics-system-scope.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |          1840:  .p2align 2 
# |          1841:  .type flat_system_atomic_fmin_f64,@function 
# |          1842: flat_system_atomic_fmin_f64: ; @flat_system_atomic_fmin_f64 
# |          1843: ; %bb.0: 
# |          1844:  s_wait_loadcnt_dscnt 0x0 
# |          1845:  s_wait_kmcnt 0x0 
# | next:695'0                      X error: no match found
# |          1846:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1847:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1848:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1849:  ; implicit-def: $vgpr4_vgpr5 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1850:  s_and_saveexec_b32 s0, vcc_lo 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1870:  scratch_store_b64 v6, v[0:1], off 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1871: .LBB38_4: ; %atomicrmw.phi 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1872:  s_wait_xcnt 0x0 
# | next:695'0     ~~~~~~~~~~~~~~~~~
# |          1873:  s_or_b32 exec_lo, exec_lo, s0 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1874:  s_wait_loadcnt_dscnt 0x0 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1875:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:695'1      ?                                               possible intended match
# |          1876:  s_set_pc_i64 s[30:31] 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          1877: .Lfunc_end38: 
# | next:695'0     ~~~~~~~~~~~~~~
# |          1878:  .size flat_system_atomic_fmin_f64, .Lfunc_end38-flat_system_atomic_fmin_f64 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1879:  ; -- End function 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~
# |          1880:  .set flat_system_atomic_fmin_f64.num_vgpr, 7 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1910:  .p2align 2 
# | next:695'0     ~~~~~~~~~~~~
# |          1911:  .type flat_one_as_atomic_fmin_f64,@function 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1912: flat_one_as_atomic_fmin_f64: ; @flat_one_as_atomic_fmin_f64 
# | next:695'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1913: ; %bb.0: 
# |          1914:  s_wait_loadcnt_dscnt 0x0 
# |          1915:  s_wait_kmcnt 0x0 
# | next:741'0                      X error: no match found
# |          1916:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1917:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1918:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1919:  ; implicit-def: $vgpr4_vgpr5 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1920:  s_and_saveexec_b32 s0, vcc_lo 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          1940:  scratch_store_b64 v6, v[0:1], off 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1941: .LBB39_4: ; %atomicrmw.phi 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1942:  s_wait_xcnt 0x0 
# | next:741'0     ~~~~~~~~~~~~~~~~~
# |          1943:  s_or_b32 exec_lo, exec_lo, s0 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1944:  s_wait_loadcnt_dscnt 0x0 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1945:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:741'1      ?                                               possible intended match
# |          1946:  s_set_pc_i64 s[30:31] 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          1947: .Lfunc_end39: 
# | next:741'0     ~~~~~~~~~~~~~~
# |          1948:  .size flat_one_as_atomic_fmin_f64, .Lfunc_end39-flat_one_as_atomic_fmin_f64 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          1949:  ; -- End function 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~
# |          1950:  .set flat_one_as_atomic_fmin_f64.num_vgpr, 7 
# | next:741'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2064:  .p2align 2 
# |          2065:  .type flat_system_atomic_fmax_f64,@function 
# |          2066: flat_system_atomic_fmax_f64: ; @flat_system_atomic_fmax_f64 
# |          2067: ; %bb.0: 
# |          2068:  s_wait_loadcnt_dscnt 0x0 
# |          2069:  s_wait_kmcnt 0x0 
# | next:811'0                      X error: no match found
# |          2070:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2071:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2072:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2073:  ; implicit-def: $vgpr4_vgpr5 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2074:  s_and_saveexec_b32 s0, vcc_lo 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2094:  scratch_store_b64 v6, v[0:1], off 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2095: .LBB42_4: ; %atomicrmw.phi 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2096:  s_wait_xcnt 0x0 
# | next:811'0     ~~~~~~~~~~~~~~~~~
# |          2097:  s_or_b32 exec_lo, exec_lo, s0 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2098:  s_wait_loadcnt_dscnt 0x0 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2099:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:811'1      ?                                               possible intended match
# |          2100:  s_set_pc_i64 s[30:31] 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          2101: .Lfunc_end42: 
# | next:811'0     ~~~~~~~~~~~~~~
# |          2102:  .size flat_system_atomic_fmax_f64, .Lfunc_end42-flat_system_atomic_fmax_f64 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2103:  ; -- End function 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~
# |          2104:  .set flat_system_atomic_fmax_f64.num_vgpr, 7 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2134:  .p2align 2 
# | next:811'0     ~~~~~~~~~~~~
# |          2135:  .type flat_one_as_atomic_fmax_f64,@function 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2136: flat_one_as_atomic_fmax_f64: ; @flat_one_as_atomic_fmax_f64 
# | next:811'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2137: ; %bb.0: 
# |          2138:  s_wait_loadcnt_dscnt 0x0 
# |          2139:  s_wait_kmcnt 0x0 
# | next:857'0                      X error: no match found
# |          2140:  v_xor_b32_e32 v4, src_flat_scratch_base_hi, v1 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2141:  s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2142:  v_cmp_lt_u32_e32 vcc_lo, 0x3ffffff, v4 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2143:  ; implicit-def: $vgpr4_vgpr5 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2144:  s_and_saveexec_b32 s0, vcc_lo 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |          2164:  scratch_store_b64 v6, v[0:1], off 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2165: .LBB43_4: ; %atomicrmw.phi 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2166:  s_wait_xcnt 0x0 
# | next:857'0     ~~~~~~~~~~~~~~~~~
# |          2167:  s_or_b32 exec_lo, exec_lo, s0 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2168:  s_wait_loadcnt_dscnt 0x0 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2169:  v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:857'1      ?                                               possible intended match
# |          2170:  s_set_pc_i64 s[30:31] 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |          2171: .Lfunc_end43: 
# | next:857'0     ~~~~~~~~~~~~~~
# |          2172:  .size flat_one_as_atomic_fmax_f64, .Lfunc_end43-flat_one_as_atomic_fmax_f64 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          2173:  ; -- End function 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~
# |          2174:  .set flat_one_as_atomic_fmax_f64.num_vgpr, 7 
# | next:857'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fcanonicalize-elimination.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=gfx801 -denormal-fp-math-f32=preserve-sign < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -enable-var-scope -check-prefixes=GCN,VI,VI-FLUSH,GCN-FLUSH C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx801 -denormal-fp-math-f32=preserve-sign
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -enable-var-scope -check-prefixes=GCN,VI,VI-FLUSH,GCN-FLUSH 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll:459:8: error: GCN: expected string not found in input
# | ; GCN: v_min_f32_e32 [[V:v[0-9]+]], 0, [[QUIET]]
# |        ^
# | <stdin>:1924:27: note: scanning from here
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:1924:27: note: with "QUIET" equal to "v2"
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:1925:5: note: possible intended match here
# |  flat_store_dword v[0:1], v2
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll:532:13: error: VI-FLUSH: expected string not found in input
# | ; VI-FLUSH: v_max_f32_e32 [[RESULT:v[0-9]+]], 0, [[QUIET]]
# |             ^
# | <stdin>:2119:27: note: scanning from here
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:2119:27: note: with "QUIET" equal to "v2"
# |  v_mul_f32_e32 v2, 1.0, v2
# |                           ^
# | <stdin>:2120:5: note: possible intended match here
# |  flat_store_dword v[0:1], v2
# |     ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll:712:11: error: VI-DAG: expected string not found in input
# | ; VI-DAG: v_mul_f32_e32 v1, 1.0, v1
# |           ^
# | <stdin>:2825:47: note: scanning from here
# | test_fold_canonicalize_minnum_value_ieee_mode: ; @test_fold_canonicalize_minnum_value_ieee_mode
# |                                               ^
# | <stdin>:2829:2: note: possible intended match here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fcanonicalize-elimination.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |           1919:  v_add_u32_e32 v0, vcc, s0, v0 
# |           1920:  v_addc_u32_e32 v1, vcc, 0, v1, vcc 
# |           1921:  flat_load_dword v2, v[0:1] 
# |           1922:  s_waitcnt vmcnt(0) 
# |           1923:  v_min_f32_e32 v2, 0, v2 
# |           1924:  v_mul_f32_e32 v2, 1.0, v2 
# | check:459'0                               X error: no match found
# | check:459'1                                 with "QUIET" equal to "v2"
# |           1925:  flat_store_dword v[0:1], v2 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:459'2         ?                         possible intended match
# |           1926:  s_endpgm 
# | check:459'0     ~~~~~~~~~~
# |           1927: .Lfunc_end29: 
# | check:459'0     ~~~~~~~~~~~~~~
# |           1928:  .size test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode, .Lfunc_end29-test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1929:  ; -- End function 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~
# |           1930:  .set test_fold_canonicalize_minnum_value_from_load_f32_ieee_mode.num_vgpr, 3 
# | check:459'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2114:  v_add_u32_e32 v0, vcc, s0, v0 
# |           2115:  v_addc_u32_e32 v1, vcc, 0, v1, vcc 
# |           2116:  flat_load_dword v2, v[0:1] 
# |           2117:  s_waitcnt vmcnt(0) 
# |           2118:  v_max_f32_e32 v2, 0, v2 
# |           2119:  v_mul_f32_e32 v2, 1.0, v2 
# | check:532'0                               X error: no match found
# | check:532'1                                 with "QUIET" equal to "v2"
# |           2120:  flat_store_dword v[0:1], v2 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:532'2         ?                         possible intended match
# |           2121:  s_endpgm 
# | check:532'0     ~~~~~~~~~~
# |           2122: .Lfunc_end32: 
# | check:532'0     ~~~~~~~~~~~~~~
# |           2123:  .size test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode, .Lfunc_end32-test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2124:  ; -- End function 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~
# |           2125:  .set test_fold_canonicalize_maxnum_value_from_load_f32_ieee_mode.num_vgpr, 3 
# | check:532'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2820:  .long 0 
# |           2821:  .text 
# |           2822:  .globl test_fold_canonicalize_minnum_value_ieee_mode ; -- Begin function test_fold_canonicalize_minnum_value_ieee_mode 
# |           2823:  .p2align 2 
# |           2824:  .type test_fold_canonicalize_minnum_value_ieee_mode,@function 
# |           2825: test_fold_canonicalize_minnum_value_ieee_mode: ; @test_fold_canonicalize_minnum_value_ieee_mode 
# | dag:712'0                                                     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           2826: ; %bb.0: 
# | dag:712'0       ~~~~~~~~~
# |           2827:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2828:  v_min_f32_e32 v0, v0, v1 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2829:  v_mul_f32_e32 v0, 1.0, v0 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:712'1        ?                          possible intended match
# |           2830:  s_setpc_b64 s[30:31] 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~
# |           2831: .Lfunc_end43: 
# | dag:712'0       ~~~~~~~~~~~~~~
# |           2832:  .size test_fold_canonicalize_minnum_value_ieee_mode, .Lfunc_end43-test_fold_canonicalize_minnum_value_ieee_mode 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2833:  ; -- End function 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~
# |           2834:  .set test_fold_canonicalize_minnum_value_ieee_mode.num_vgpr, 2 
# | dag:712'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fmax3.f64.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=tahiti < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmax3.f64.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=SI C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmax3.f64.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=tahiti
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=SI 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmax3.f64.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmax3.f64.ll:10:7: error: SI: expected string not found in input
# | ; SI: v_max_f64 [[QUIET_A:v\[[0-9]+:[0-9]+\]]], [[REGA]], [[REGA]]
# |       ^
# | <stdin>:30:55: note: scanning from here
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:30:55: note: with "REGA" equal to "v[0:1]"
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:30:55: note: with "REGA" equal to "v[0:1]"
# |  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc
# |                                                       ^
# | <stdin>:34:2: note: possible intended match here
# |  v_max_f64 v[0:1], v[0:1], v[2:3]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmax3.f64.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            25:  s_mov_b32 s9, s3 
# |            26:  buffer_load_dwordx2 v[0:1], off, s[8:11], 0 glc 
# |            27:  s_waitcnt vmcnt(0) 
# |            28:  buffer_load_dwordx2 v[2:3], off, s[8:11], 0 offset:8 glc 
# |            29:  s_waitcnt vmcnt(0) 
# |            30:  buffer_load_dwordx2 v[4:5], off, s[8:11], 0 offset:16 glc 
# | check:10'0                                                           X~~~~ error: no match found
# | check:10'1                                                                 with "REGA" equal to "v[0:1]"
# | check:10'2                                                                 with "REGA" equal to "v[0:1]"
# |            31:  s_waitcnt vmcnt(0) 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~
# |            32:  s_mov_b32 s4, s0 
# | check:10'0     ~~~~~~~~~~~~~~~~~~
# |            33:  s_mov_b32 s5, s1 
# | check:10'0     ~~~~~~~~~~~~~~~~~~
# |            34:  v_max_f64 v[0:1], v[0:1], v[2:3] 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:10'3      ?                                 possible intended match
# |            35:  v_max_f64 v[0:1], v[0:1], v[4:5] 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            36:  buffer_store_dwordx2 v[0:1], off, s[4:7], 0 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            37:  s_endpgm 
# | check:10'0     ~~~~~~~~~~
# |            38: .Lfunc_end0: 
# | check:10'0     ~~~~~~~~~~~~~
# |            39:  .size test_fmax3_f64, .Lfunc_end0-test_fmax3_f64 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fmaxnum.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmaxnum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -enable-var-scope -check-prefix=GCN C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmaxnum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -enable-var-scope -check-prefix=GCN 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmaxnum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmaxnum.ll:5:8: error: GCN: expected string not found in input
# | ; GCN: v_mul_f32_e64 [[QUIET0:v[0-9]+]], 1.0, s{{[0-9]+}}
# |        ^
# | <stdin>:16:28: note: scanning from here
# | test_fmax_f32_ieee_mode_on: ; @test_fmax_f32_ieee_mode_on
# |                            ^
# | <stdin>:25:2: note: possible intended match here
# |  v_max_f32_e32 v0, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fmaxnum.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           11:  .long 0 
# |           12:  .text 
# |           13:  .globl test_fmax_f32_ieee_mode_on ; -- Begin function test_fmax_f32_ieee_mode_on 
# |           14:  .p2align 8 
# |           15:  .type test_fmax_f32_ieee_mode_on,@function 
# |           16: test_fmax_f32_ieee_mode_on: ; @test_fmax_f32_ieee_mode_on 
# | check:5'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           17: ; %bb.0: 
# | check:5'0     ~~~~~~~~~
# |           18:  s_load_dwordx4 s[0:3], s[4:5], 0x9 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  s_mov_b32 s7, 0xf000 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           20:  s_mov_b32 s6, -1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           21:  s_waitcnt lgkmcnt(0) 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           22:  s_mov_b32 s4, s0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           23:  s_mov_b32 s5, s1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           24:  v_mov_b32_e32 v0, s3 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           25:  v_max_f32_e32 v0, s2, v0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1      ?                         possible intended match
# |           26:  buffer_store_dword v0, off, s[4:7], 0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           27:  s_endpgm 
# | check:5'0     ~~~~~~~~~~
# |           28: .Lfunc_end0: 
# | check:5'0     ~~~~~~~~~~~~~
# |           29:  .size test_fmax_f32_ieee_mode_on, .Lfunc_end0-test_fmax_f32_ieee_mode_on 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           30:  ; -- End function 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fminnum.f64.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn -mcpu=tahiti < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GCN,GFX678 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=tahiti
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GCN,GFX678 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll:15:12: error: GCN-DAG: expected string not found in input
# | ; GCN-DAG: v_max_f64 [[QUIETA:v\[[0-9]+:[0-9]+\]]], [[A]], [[A]]
# |            ^
# | <stdin>:19:23: note: scanning from here
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:19:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:19:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:23:2: note: possible intended match here
# |  v_min_f64 v[0:1], s[2:3], v[0:1]
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll:28:15: error: GFX678-DAG: expected string not found in input
# | ; GFX678-DAG: v_mul_f64 [[QUIETA:v\[[0-9]+:[0-9]+\]]], 1.0, [[A]]
# |               ^
# | <stdin>:82:23: note: scanning from here
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:82:23: note: with "A" equal to "s[0:1]"
# |  s_load_dwordx2 s[2:3], s[4:5], 0x11
# |                       ^
# | <stdin>:86:2: note: possible intended match here
# |  v_min_f64 v[0:1], s[2:3], v[0:1]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.f64.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |          14:  .p2align 8 
# |          15:  .type test_fmin_f64_ieee_noflush,@function 
# |          16: test_fmin_f64_ieee_noflush: ; @test_fmin_f64_ieee_noflush 
# |          17: ; %bb.0: 
# |          18:  s_load_dwordx2 s[0:1], s[4:5], 0x1b 
# |          19:  s_load_dwordx2 s[2:3], s[4:5], 0x11 
# | dag:15'0                           X~~~~~~~~~~~~~~ error: no match found
# | dag:15'1                                           with "A" equal to "s[0:1]"
# | dag:15'2                                           with "A" equal to "s[0:1]"
# |          20:  s_waitcnt lgkmcnt(0) 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          21:  v_mov_b32_e32 v0, s0 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          22:  v_mov_b32_e32 v1, s1 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          23:  v_min_f64 v[0:1], s[2:3], v[0:1] 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:15'3      ?                                 possible intended match
# |          24:  s_mov_b32 s3, 0xf000 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          25:  s_mov_b32 s2, -1 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~
# |          26:  buffer_store_dwordx2 v[0:1], off, s[0:3], 0 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          27:  s_endpgm 
# | dag:15'0     ~~~~~~~~~~
# |          28: .Lfunc_end0: 
# | dag:15'0     ~~~~~~~~~~~~~
# |           .
# |           .
# |           .
# |          77:  .p2align 8 
# | dag:15'0     ~~~~~~~~~~~~
# |          78:  .type test_fmin_f64_ieee_flush,@function 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          79: test_fmin_f64_ieee_flush: ; @test_fmin_f64_ieee_flush 
# | dag:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |          80: ; %bb.0: 
# |          81:  s_load_dwordx2 s[0:1], s[4:5], 0x1b 
# |          82:  s_load_dwordx2 s[2:3], s[4:5], 0x11 
# | dag:28'0                           X~~~~~~~~~~~~~~ error: no match found
# | dag:28'1                                           with "A" equal to "s[0:1]"
# |          83:  s_waitcnt lgkmcnt(0) 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          84:  v_mov_b32_e32 v0, s0 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          85:  v_mov_b32_e32 v1, s1 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          86:  v_min_f64 v[0:1], s[2:3], v[0:1] 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | dag:28'2      ?                                 possible intended match
# |          87:  s_mov_b32 s3, 0xf000 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~
# |          88:  s_mov_b32 s2, -1 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~
# |          89:  buffer_store_dwordx2 v[0:1], off, s[0:3], 0 
# | dag:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          90:  s_endpgm 
# | dag:28'0     ~~~~~~~~~~
# |          91: .Lfunc_end1: 
# | dag:28'0     ~~~~~~~~~~~~~
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/fminnum.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -enable-var-scope -check-prefix=GCN C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -enable-var-scope -check-prefix=GCN 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.ll:5:8: error: GCN: expected string not found in input
# | ; GCN: v_mul_f32_e64 [[QUIET0:v[0-9]+]], 1.0, s{{[0-9]+}}
# |        ^
# | <stdin>:16:28: note: scanning from here
# | test_fmin_f32_ieee_mode_on: ; @test_fmin_f32_ieee_mode_on
# |                            ^
# | <stdin>:25:2: note: possible intended match here
# |  v_min_f32_e32 v0, s2, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\fminnum.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           11:  .long 0 
# |           12:  .text 
# |           13:  .globl test_fmin_f32_ieee_mode_on ; -- Begin function test_fmin_f32_ieee_mode_on 
# |           14:  .p2align 8 
# |           15:  .type test_fmin_f32_ieee_mode_on,@function 
# |           16: test_fmin_f32_ieee_mode_on: ; @test_fmin_f32_ieee_mode_on 
# | check:5'0                                X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           17: ; %bb.0: 
# | check:5'0     ~~~~~~~~~
# |           18:  s_load_dwordx4 s[0:3], s[4:5], 0x9 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  s_mov_b32 s7, 0xf000 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           20:  s_mov_b32 s6, -1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           21:  s_waitcnt lgkmcnt(0) 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           22:  s_mov_b32 s4, s0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           23:  s_mov_b32 s5, s1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~
# |           24:  v_mov_b32_e32 v0, s3 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           25:  v_min_f32_e32 v0, s2, v0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1      ?                         possible intended match
# |           26:  buffer_store_dword v0, off, s[4:7], 0 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           27:  s_endpgm 
# | check:5'0     ~~~~~~~~~~
# |           28: .Lfunc_end0: 
# | check:5'0     ~~~~~~~~~~~~~
# |           29:  .size test_fmin_f32_ieee_mode_on, .Lfunc_end0-test_fmin_f32_ieee_mode_on 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           30:  ; -- End function 
# | check:5'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.

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.

3 participants