Skip to content

[AMDGPU][GISel] Fold 'min(min(x,y),z)' and 'max(max(x,y),z)' into min3 and max3#200410

Draft
xiongzile wants to merge 2 commits into
llvm:mainfrom
xiongzile:amdgpu/minmax3
Draft

[AMDGPU][GISel] Fold 'min(min(x,y),z)' and 'max(max(x,y),z)' into min3 and max3#200410
xiongzile wants to merge 2 commits into
llvm:mainfrom
xiongzile:amdgpu/minmax3

Conversation

@xiongzile
Copy link
Copy Markdown
Contributor

Original PR: #124263
Fixes: #123079

Do the optimization in the pre-legalizer phase.

@llvmorg-github-actions
Copy link
Copy Markdown

llvmorg-github-actions Bot commented May 29, 2026

@llvm/pr-subscribers-llvm-regalloc
@llvm/pr-subscribers-llvm-globalisel

@llvm/pr-subscribers-backend-amdgpu

Author: Elio (xiongzile)

Changes

Original PR: #124263
Fixes: #123079

Do the optimization in the pre-legalizer phase.


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

9 Files Affected:

  • (modified) llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp (+1-3)
  • (modified) llvm/lib/CodeGen/RegisterBankInfo.cpp (+1)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPUCombine.td (+20-1)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPUGISel.td (+6)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp (+74)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (+24)
  • (modified) llvm/lib/Target/AMDGPU/SIInstructions.td (+36)
  • (added) llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll (+103)
  • (added) llvm/test/CodeGen/AMDGPU/GlobalISel/min3-max3-combine.ll (+171)
diff --git a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
index bc6b5df99d2e7..fb1bff27f7e8b 100644
--- a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
@@ -455,7 +455,6 @@ RegBankSelect::MappingCost RegBankSelect::computeMapping(
 
   if (!InstrMapping.isValid())
     return MappingCost::ImpossibleCost();
-
   // If mapped with InstrMapping, MI will have the recorded cost.
   MappingCost Cost(MBFI ? MBFI->getBlockFreq(MI.getParent())
                         : BlockFrequency(1));
@@ -597,12 +596,12 @@ bool RegBankSelect::applyMapping(
     SmallVectorImpl<RegBankSelect::RepairingPlacement> &RepairPts) {
   // OpdMapper will hold all the information needed for the rewriting.
   std::optional<RegisterBankInfo::OperandsMapper> OpdMapper;
-
   // First, place the repairing code.
   for (RepairingPlacement &RepairPt : RepairPts) {
     if (!RepairPt.canMaterialize() ||
         RepairPt.getKind() == RepairingPlacement::Impossible)
       return false;
+
     assert(RepairPt.getKind() != RepairingPlacement::None &&
            "This should not make its way in the list");
     unsigned OpIdx = RepairPt.getOpIdx();
@@ -642,7 +641,6 @@ bool RegBankSelect::applyMapping(
   LLVM_DEBUG(dbgs() << "Actual mapping of the operands: " << *OpdMapper
                     << '\n');
   RBI->applyMapping(MIRBuilder, *OpdMapper);
-
   return true;
 }
 
diff --git a/llvm/lib/CodeGen/RegisterBankInfo.cpp b/llvm/lib/CodeGen/RegisterBankInfo.cpp
index 1049aa979ce81..29afe727b6bf1 100644
--- a/llvm/lib/CodeGen/RegisterBankInfo.cpp
+++ b/llvm/lib/CodeGen/RegisterBankInfo.cpp
@@ -407,6 +407,7 @@ RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
   const RegisterBankInfo::InstructionMapping &Mapping = getInstrMappingImpl(MI);
   if (Mapping.isValid())
     return Mapping;
+
   llvm_unreachable("The target must implement this");
 }
 
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCombine.td b/llvm/lib/Target/AMDGPU/AMDGPUCombine.td
index a2e6e6f448e8f..dea1f417e4149 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCombine.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCombine.td
@@ -157,6 +157,23 @@ def zext_of_shift_amount_combines : GICombineGroup<[
   canonicalize_zext_lshr, canonicalize_zext_ashr, canonicalize_zext_shl
 ]>;
 
+def minmax3_matchdata : GIDefMatchData<"VOP3MatchInfo">;
+
+class minmax_to_minmax3_opcodes<Instruction minmaxOpcode> : GICombineRule<
+  (defs root:$min_or_max, minmax3_matchdata:$matchinfo),
+  (match (minmaxOpcode $dst, $lhs, $rhs):$min_or_max,
+         [{ return matchMinMaxToMinMax3(*${min_or_max}, ${matchinfo}); }]),
+  (apply [{ applyVOP3(*${min_or_max}, ${matchinfo}); }])>;
+
+def smax_to_minmax3 : minmax_to_minmax3_opcodes<G_SMAX>;
+def smin_to_minmax3 : minmax_to_minmax3_opcodes<G_SMIN>;
+def umax_to_minmax3 : minmax_to_minmax3_opcodes<G_UMAX>;
+def umin_to_minmax3 : minmax_to_minmax3_opcodes<G_UMIN>;
+def fmax_to_minmax3 : minmax_to_minmax3_opcodes<G_FMAXNUM>;
+def fmin_to_minmax3 : minmax_to_minmax3_opcodes<G_FMINNUM>;
+def fmax_ieee_to_minmax3 : minmax_to_minmax3_opcodes<G_FMAXNUM_IEEE>;
+def fmin_ieee_to_minmax3 : minmax_to_minmax3_opcodes<G_FMINNUM_IEEE>;
+
 // (and/or i64:x, i64:y) -> i64:(merge (and/or lo_32(x), lo_32(y)), (and/or hi_32(x), hi_32(y)))
 // when either x or y is all ones in low or high parts
 class combine_binop_s64_with_s32_mask<Instruction opcode> : GICombineRule<
@@ -219,7 +236,9 @@ def AMDGPUPreLegalizerCombiner: GICombiner<
   "AMDGPUPreLegalizerCombinerImpl",
   [all_combines, combine_fmul_with_select_to_fldexp, clamp_i64_to_i16,
    foldable_fneg, combine_shuffle_vector, combine_shuffle_vector_to_build_vector,
-   binop_s64_with_s32_mask_combines, combine_or_s64_s32]> {
+   binop_s64_with_s32_mask_combines, combine_or_s64_s32, smax_to_minmax3, 
+   smin_to_minmax3, umax_to_minmax3, umin_to_minmax3, fmax_to_minmax3, 
+   fmin_to_minmax3, fmax_ieee_to_minmax3, fmin_ieee_to_minmax3]> {
   let CombineAllMethodName = "tryCombineAllImpl";
 }
 
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUGISel.td b/llvm/lib/Target/AMDGPU/AMDGPUGISel.td
index 51a8a476bbf7e..97957f5100067 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUGISel.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPUGISel.td
@@ -271,6 +271,12 @@ def : GINodeEquiv<G_AMDGPU_CVT_PK_I16_I32, AMDGPUpk_i16_i32_impl>;
 def : GINodeEquiv<G_AMDGPU_SMED3, AMDGPUsmed3>;
 def : GINodeEquiv<G_AMDGPU_UMED3, AMDGPUumed3>;
 def : GINodeEquiv<G_AMDGPU_FMED3, AMDGPUfmed3_impl>;
+def : GINodeEquiv<G_AMDGPU_SMAX3, AMDGPUsmax3>;
+def : GINodeEquiv<G_AMDGPU_UMAX3, AMDGPUumax3>;
+def : GINodeEquiv<G_AMDGPU_FMAX3, AMDGPUfmax3>;
+def : GINodeEquiv<G_AMDGPU_SMIN3, AMDGPUsmin3>;
+def : GINodeEquiv<G_AMDGPU_UMIN3, AMDGPUumin3>;
+def : GINodeEquiv<G_AMDGPU_FMIN3, AMDGPUfmin3>;
 def : GINodeEquiv<G_AMDGPU_CLAMP, AMDGPUclamp>;
 
 def : GINodeEquiv<G_AMDGPU_ATOMIC_CMPXCHG, AMDGPUatomic_cmp_swap>;
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp b/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
index 67c0bdd35f367..70aeb80bbeace 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
@@ -16,6 +16,7 @@
 #include "AMDGPULegalizerInfo.h"
 #include "GCNSubtarget.h"
 #include "MCTargetDesc/AMDGPUMCTargetDesc.h"
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/CodeGen/GlobalISel/CSEInfo.h"
 #include "llvm/CodeGen/GlobalISel/Combiner.h"
 #include "llvm/CodeGen/GlobalISel/CombinerHelper.h"
@@ -23,8 +24,12 @@
 #include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"
 #include "llvm/CodeGen/GlobalISel/GISelValueTracking.h"
 #include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
+#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/MachineDominators.h"
+#include "llvm/CodeGen/MachineInstr.h"
+#include "llvm/CodeGen/Register.h"
 #include "llvm/CodeGen/TargetPassConfig.h"
+#include "llvm/CodeGenTypes/LowLevelType.h"
 #include "llvm/Target/TargetMachine.h"
 
 #define GET_GICOMBINER_DEPS
@@ -66,6 +71,11 @@ class AMDGPUPreLegalizerCombinerImpl : public Combiner {
     Register Origin;
   };
 
+  struct VOP3MatchInfo {
+    unsigned Opc;
+    Register Val0, Val1, Val2;
+  };
+
   bool matchClampI64ToI16(MachineInstr &MI, const MachineRegisterInfo &MRI,
                           const MachineFunction &MF,
                           ClampI64ToI16MatchInfo &MatchInfo) const;
@@ -73,6 +83,10 @@ class AMDGPUPreLegalizerCombinerImpl : public Combiner {
   void applyClampI64ToI16(MachineInstr &MI,
                           const ClampI64ToI16MatchInfo &MatchInfo) const;
 
+  bool matchMinMaxToMinMax3(MachineInstr &MI, VOP3MatchInfo &MatchInfo) const;
+
+  void applyVOP3(MachineInstr &MI, VOP3MatchInfo &MatchInfo) const;
+
 private:
 #define GET_GICOMBINER_CLASS_MEMBERS
 #define AMDGPUSubtarget GCNSubtarget
@@ -106,6 +120,66 @@ bool AMDGPUPreLegalizerCombinerImpl::tryCombineAll(MachineInstr &MI) const {
   return false;
 }
 
+static bool matchVOP3(MachineInstr &MI, MachineRegisterInfo &MRI, unsigned op,
+                      Register &r0, Register &r1, Register &r2) {
+  auto p1 =
+      m_BinOp(op, m_OneNonDBGUse(m_BinOp(op, m_Reg(r0), m_Reg(r1))), m_Reg(r2));
+  auto p2 =
+      m_BinOp(op, m_Reg(r0), m_OneNonDBGUse(m_BinOp(op, m_Reg(r1), m_Reg(r2))));
+
+  return mi_match(MI, MRI, m_any_of(p1, p2));
+}
+
+static unsigned getMinMax3(unsigned Opc) {
+  switch (Opc) {
+  default:
+    llvm_unreachable("Unsupported opcode");
+  case AMDGPU::G_SMAX:
+    return AMDGPU::G_AMDGPU_SMAX3;
+  case AMDGPU::G_SMIN:
+    return AMDGPU::G_AMDGPU_SMIN3;
+  case AMDGPU::G_UMAX:
+    return AMDGPU::G_AMDGPU_UMAX3;
+  case AMDGPU::G_UMIN:
+    return AMDGPU::G_AMDGPU_UMIN3;
+  case AMDGPU::G_FMAXNUM:
+  case AMDGPU::G_FMAXNUM_IEEE:
+    return AMDGPU::G_AMDGPU_FMAX3;
+  case AMDGPU::G_FMINNUM:
+  case AMDGPU::G_FMINNUM_IEEE:
+    return AMDGPU::G_AMDGPU_FMIN3;
+  }
+}
+
+void AMDGPUPreLegalizerCombinerImpl::applyVOP3(MachineInstr &MI,
+                                               VOP3MatchInfo &MatchInfo) const {
+  B.buildInstr(MatchInfo.Opc, {MI.getOperand(0)},
+               {MatchInfo.Val0, MatchInfo.Val1, MatchInfo.Val2}, MI.getFlags());
+  MI.eraseFromParent();
+  return;
+}
+
+bool AMDGPUPreLegalizerCombinerImpl::matchMinMaxToMinMax3(
+    MachineInstr &MI, VOP3MatchInfo &MatchInfo) const {
+  Register dst = MI.getOperand(0).getReg();
+  LLT t = MRI.getType(dst);
+  if (t == LLT::scalar(16)) {
+    if (!STI.hasMin3Max3_16()) {
+      return false;
+    }
+  } else if (t != LLT::scalar(32)) {
+    return false;
+  }
+
+  Register R0, R1, R2;
+  unsigned opc = MI.getOpcode();
+  if (!matchVOP3(MI, MRI, opc, R0, R1, R2)) {
+    return false;
+  }
+  MatchInfo = {getMinMax3(opc), R0, R1, R2};
+  return true;
+}
+
 bool AMDGPUPreLegalizerCombinerImpl::matchClampI64ToI16(
     MachineInstr &MI, const MachineRegisterInfo &MRI, const MachineFunction &MF,
     ClampI64ToI16MatchInfo &MatchInfo) const {
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index a24df782cf28a..e4a037dc9af83 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -75,6 +75,7 @@
 #include "AMDGPUInstrInfo.h"
 #include "AMDGPULaneMaskUtils.h"
 #include "GCNSubtarget.h"
+#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
 #include "SIMachineFunctionInfo.h"
 #include "SIRegisterInfo.h"
 #include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
@@ -83,6 +84,7 @@
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/RegisterBank.h"
 #include "llvm/IR/IntrinsicsAMDGPU.h"
+#include <cassert>
 
 #define GET_TARGET_REGBANK_IMPL
 #include "AMDGPUGenRegisterBank.inc"
@@ -3959,6 +3961,28 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
   switch (MI.getOpcode()) {
   default:
     return getInvalidInstructionMapping();
+  case AMDGPU::G_AMDGPU_SMAX3:
+  case AMDGPU::G_AMDGPU_SMIN3:
+  case AMDGPU::G_AMDGPU_UMAX3:
+  case AMDGPU::G_AMDGPU_UMIN3:
+  case AMDGPU::G_AMDGPU_FMAX3:
+  case AMDGPU::G_AMDGPU_FMIN3: {
+    unsigned Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits();
+    assert(Size == 32);
+    auto op1 = getRegBankID(MI.getOperand(1).getReg(), MRI,
+                               AMDGPU::VCCRegBankID);
+    auto op2 = getRegBankID(MI.getOperand(2).getReg(), MRI,
+                               AMDGPU::VCCRegBankID);
+    auto op3 = getRegBankID(MI.getOperand(3).getReg(), MRI,
+                               AMDGPU::VCCRegBankID);
+    MI.dump();
+    assert(op1 == op2);
+    OpdsMapping[0] = AMDGPU::getValueMapping(op1, Size);
+    OpdsMapping[1] = AMDGPU::getValueMapping(op1, Size);
+    OpdsMapping[2] = AMDGPU::getValueMapping(op2, Size);
+    OpdsMapping[3] = AMDGPU::getValueMapping(op3, Size);
+    break;
+  }
 
   case AMDGPU::G_AND:
   case AMDGPU::G_OR:
diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td
index 148f15014b823..f24c2196d0af1 100644
--- a/llvm/lib/Target/AMDGPU/SIInstructions.td
+++ b/llvm/lib/Target/AMDGPU/SIInstructions.td
@@ -4702,6 +4702,42 @@ def G_AMDGPU_FMED3 : AMDGPUGenericInstruction {
   let hasSideEffects = 0;
 }
 
+def G_AMDGPU_SMIN3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
+def G_AMDGPU_UMIN3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
+def G_AMDGPU_FMIN3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
+def G_AMDGPU_SMAX3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
+def G_AMDGPU_UMAX3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
+def G_AMDGPU_FMAX3 : AMDGPUGenericInstruction {
+  let OutOperandList = (outs type0:$dst);
+  let InOperandList = (ins type0:$src0, type0:$src1, type0:$src2);
+  let hasSideEffects = 0;
+}
+
 def G_AMDGPU_CLAMP : AMDGPUGenericInstruction {
   let OutOperandList = (outs type0:$dst);
   let InOperandList = (ins type0:$src);
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll b/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
new file mode 100644
index 0000000000000..68752a1c48fa0
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
@@ -0,0 +1,103 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX10 %s
+
+define float @test_fmin3(float %a, float %b, float %c) {
+; GFX10-LABEL: test_fmin3:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max_f32_e32 v0, v0, v0
+; GFX10-NEXT:    v_max_f32_e32 v1, v1, v1
+; GFX10-NEXT:    v_max_f32_e32 v2, v2, v2
+; GFX10-NEXT:    v_min3_f32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call float @llvm.minnum.f32(float %a, float %b)
+  %min2 = call float @llvm.minnum.f32(float %min1, float %c)
+  ret float %min2
+}
+
+define float @test_fmin3_nnan(float %a, float %b, float %c) {
+; GFX10-LABEL: test_fmin3_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min3_f32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call nnan float @llvm.minnum.f32(float %a, float %b)
+  %min2 = call nnan float @llvm.minnum.f32(float %min1, float %c)
+  ret float %min2
+}
+
+define float @test_fmin3_with_constants_nnan(float %a, float %b) {
+; GFX10-LABEL: test_fmin3_with_constants_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min3_f32 v0, v0, v1, 0x40e00000
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call nnan float @llvm.minnum.f32(float %a, float %b)
+  %min2 = call nnan float @llvm.minnum.f32(float %min1, float 7.0)
+  ret float %min2
+}
+
+define <2 x float> @test_fmin3_v2f32_nnan(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
+; GFX10-LABEL: test_fmin3_v2f32_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min3_f32 v0, v0, v2, v4
+; GFX10-NEXT:    v_min3_f32 v1, v1, v3, v5
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call nnan <2 x float> @llvm.minnum.v2f32(<2 x float> %a, <2 x float> %b)
+  %min2 = call nnan <2 x float> @llvm.minnum.v2f32(<2 x float> %min1, <2 x float> %c)
+  ret <2 x float> %min2
+}
+
+define float @test_fmax3(float %a, float %b, float %c) {
+; GFX10-LABEL: test_fmax3:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max_f32_e32 v0, v0, v0
+; GFX10-NEXT:    v_max_f32_e32 v1, v1, v1
+; GFX10-NEXT:    v_max_f32_e32 v2, v2, v2
+; GFX10-NEXT:    v_max3_f32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %max1 = call float @llvm.maxnum.f32(float %a, float %b)
+  %max2 = call float @llvm.maxnum.f32(float %max1, float %c)
+  ret float %max2
+}
+
+define float @test_fmax3_nnan(float %a, float %b, float %c) {
+; GFX10-LABEL: test_fmax3_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max3_f32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %max1 = call nnan float @llvm.maxnum.f32(float %a, float %b)
+  %max2 = call nnan float @llvm.maxnum.f32(float %max1, float %c)
+  ret float %max2
+}
+
+define float @test_fmax3_with_constants_nnan(float %a, float %b) {
+; GFX10-LABEL: test_fmax3_with_constants_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max3_f32 v0, v0, v1, 0x40e00000
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %max1 = call nnan float @llvm.maxnum.f32(float %a, float %b)
+  %max2 = call nnan float @llvm.maxnum.f32(float %max1, float 7.0)
+  ret float %max2
+}
+
+define <2 x float> @test_fmax3_v2f32_nnan(<2 x float> %a, <2 x float> %b, <2 x float> %c) {
+; GFX10-LABEL: test_fmax3_v2f32_nnan:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max3_f32 v0, v0, v2, v4
+; GFX10-NEXT:    v_max3_f32 v1, v1, v3, v5
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call nnan <2 x float> @llvm.maxnum.v2f32(<2 x float> %a, <2 x float> %b)
+  %min2 = call nnan <2 x float> @llvm.maxnum.v2f32(<2 x float> %min1, <2 x float> %c)
+  ret <2 x float> %min2
+}
+
+declare float @llvm.minnum.f32(float, float)
+declare float @llvm.maxnum.f32(float, float)
+declare <2 x float> @llvm.minnum.v2f32(<2 x float> %a, <2 x float> %b)
+declare <2 x float> @llvm.maxnum.v2f32(<2 x float> %a, <2 x float> %b)
\ No newline at end of file
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/min3-max3-combine.ll b/llvm/test/CodeGen/AMDGPU/GlobalISel/min3-max3-combine.ll
new file mode 100644
index 0000000000000..e4165c090c399
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/min3-max3-combine.ll
@@ -0,0 +1,171 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX10 %s
+
+define i32 @test_smin3(i32 %a, i32 %b, i32 %c) {
+; GFX10-LABEL: test_smin3:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min3_i32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call i32 @llvm.smin.i32(i32 %a, i32 %b)
+  %min2 = call i32 @llvm.smin.i32(i32 %min1, i32 %c)
+  ret i32 %min2
+}
+
+define i32 @test_smin3_with_constants(i32 %a, i32 %b) {
+; GFX10-LABEL: test_smin3_with_constants:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min3_i32 v0, v0, v1, 7
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call i32 @llvm.smin.i32(i32 %a, i32 %b)
+  %min2 = call i32 @llvm.smin.i32(i32 %min1, i32 7)
+  ret i32 %min2
+}
+
+define i32 @test_smin3_smin_umin(i32 %a, i32 %b) {
+; GFX10-LABEL: test_smin3_smin_umin:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_min_i32_e32 v0, v0, v1
+; GFX10-NEXT:    v_min_u32_e32 v0, 7, v0
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call i32 @llvm.smin.i32(i32 %a, i32 %b)
+  %min2 = call i32 @llvm.umin.i32(i32 %min1, i32 7)
+  ret i32 %min2
+}
+
+define <2 x i16> @test_smin3_v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c) {
+; GFX10-LABEL: test_smin3_v2i16:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_pk_min_i16 v0, v0, v1
+; GFX10-NEXT:    v_pk_min_i16 v0, v0, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call <2 x i16> @llvm.smin.v2i16(<2 x i16> %a, <2 x i16> %b)
+  %min2 = call <2 x i16> @llvm.smin.v2i16(<2 x i16> %min1, <2 x i16> %c)
+  ret <2 x i16> %min2
+}
+
+define i32 @test_smax3(i32 %a, i32 %b, i32 %c) {
+; GFX10-LABEL: test_smax3:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max3_i32 v0, v0, v1, v2
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %max1 = call i32 @llvm.smax.i32(i32 %a, i32 %b)
+  %max2 = call i32 @llvm.smax.i32(i32 %max1, i32 %c)
+  ret i32 %max2
+}
+
+define i32 @test_smax3_with_constants(i32 %a, i32 %b) {
+; GFX10-LABEL: test_smax3_with_constants:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max3_i32 v0, v0, v1, 7
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call i32 @llvm.smax.i32(i32 %a, i32 %b)
+  %min2 = call i32 @llvm.smax.i32(i32 %min1, i32 7)
+  ret i32 %min2
+}
+
+define i32 @test_smin3_smax_umax(i32 %a, i32 %b) {
+; GFX10-LABEL: test_smin3_smax_umax:
+; GFX10:       ; %bb.0:
+; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-NEXT:    v_max_i32_e32 v0, v0, v1
+; GFX10-NEXT:    v_max_u32_e32 v0, 7, v0
+; GFX10-NEXT:    s_setpc_b64 s[30:31]
+  %min1 = call i32 @llvm.smax...
[truncated]

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff origin/main HEAD --extensions cpp -- llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp --diff_from_common_commit

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from clang-format here.
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp b/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
index 8fd0af7fd..060dccf85 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
@@ -74,7 +74,6 @@ public:
   void applyClampI64ToI16(MachineInstr &MI,
                           const ClampI64ToI16MatchInfo &MatchInfo) const;
 
-
 private:
 #define GET_GICOMBINER_CLASS_MEMBERS
 #define AMDGPUSubtarget GCNSubtarget
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
index 291397965..3c2be68e2 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
@@ -98,8 +98,10 @@ public:
   bool applyD16Load(unsigned D16Opc, MachineInstr &DstMI,
                     MachineInstr *SmallLoad, Register ToOverwriteD16) const;
 
-  bool matchMinMaxToMinMax3(MachineInstr &MI, MinMaxToMinMax3MatchInfo &MatchInfo) const;
-  void applyMinMaxToMinMax3(MachineInstr &MI, MinMaxToMinMax3MatchInfo &MatchInfo) const;
+  bool matchMinMaxToMinMax3(MachineInstr &MI,
+                            MinMaxToMinMax3MatchInfo &MatchInfo) const;
+  void applyMinMaxToMinMax3(MachineInstr &MI,
+                            MinMaxToMinMax3MatchInfo &MatchInfo) const;
 
 private:
   SIModeRegisterDefaults getMode() const;
@@ -517,8 +519,9 @@ bool AMDGPURegBankCombinerImpl::matchMinMaxToMinMax3(
 
   Register R0, R1, R2;
   unsigned opc = MI.getOpcode();
-  auto matchMinOrMax3 = [&](MachineInstr &MI, MachineRegisterInfo &MRI, unsigned op,
-                       Register &r0, Register &r1, Register &r2) {
+  auto matchMinOrMax3 = [&](MachineInstr &MI, MachineRegisterInfo &MRI,
+                            unsigned op, Register &r0, Register &r1,
+                            Register &r2) {
     auto p1 = m_BinOp(op, m_OneNonDBGUse(m_BinOp(op, m_Reg(r0), m_Reg(r1))),
                       m_Reg(r2));
     auto p2 = m_BinOp(op, m_Reg(r0),
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index 2b4674736..1c7add192 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -3967,12 +3967,12 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
   case AMDGPU::G_AMDGPU_FMIN3: {
     unsigned Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits();
     assert(Size == 32);
-    auto op1 = getRegBankID(MI.getOperand(1).getReg(), MRI,
-                               AMDGPU::VCCRegBankID);
-    auto op2 = getRegBankID(MI.getOperand(2).getReg(), MRI,
-                               AMDGPU::VCCRegBankID);
-    auto op3 = getRegBankID(MI.getOperand(3).getReg(), MRI,
-                               AMDGPU::VCCRegBankID);
+    auto op1 =
+        getRegBankID(MI.getOperand(1).getReg(), MRI, AMDGPU::VCCRegBankID);
+    auto op2 =
+        getRegBankID(MI.getOperand(2).getReg(), MRI, AMDGPU::VCCRegBankID);
+    auto op3 =
+        getRegBankID(MI.getOperand(3).getReg(), MRI, AMDGPU::VCCRegBankID);
     OpdsMapping[0] = AMDGPU::getValueMapping(op1, Size);
     OpdsMapping[1] = AMDGPU::getValueMapping(op1, Size);
     OpdsMapping[2] = AMDGPU::getValueMapping(op2, Size);

@xiongzile xiongzile force-pushed the amdgpu/minmax3 branch 3 times, most recently from 9f49607 to 8ff7b88 Compare May 29, 2026 14:05
@xiongzile xiongzile marked this pull request as draft May 29, 2026 14:05
}
}

void AMDGPUPreLegalizerCombinerImpl::applyVOP3(MachineInstr &MI,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would hope we can directly write this inline without the C++. I also wouldn't use the VOP3 name, that's overloaded on only indirectly related encoding

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good point. I'll change it to pattern form when it's ready to merge.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

🐧 Linux x64 Test Results

  • 174931 tests passed
  • 3406 tests skipped
  • 9 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=GFX10 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=GFX10 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll:36:15: error: GFX10-NEXT: is not on the line after the previous match
# | ; GFX10-NEXT: v_max3_f32 v0, v0, v1, v2
# |               ^
# | <stdin>:145:2: note: 'next' match was here
# |  v_max3_f32 v0, v0, v1, v2
# |  ^
# | <stdin>:141:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:142:1: note: non-matching line after previous match is here
# |  v_max_f32_e32 v0, v0, v0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |          .
# |          .
# |          .
# |        140: ; %bb.0: 
# |        141:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |        142:  v_max_f32_e32 v0, v0, v0 
# |        143:  v_max_f32_e32 v1, v1, v1 
# |        144:  v_max_f32_e32 v2, v2, v2 
# |        145:  v_max3_f32 v0, v0, v1, v2 
# | next:36      !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        146:  s_setpc_b64 s[30:31] 
# |        147: .Lfunc_end3: 
# |        148:  .size test_fmax3, .Lfunc_end3-test_fmax3 
# |        149:  ; -- End function 
# |        150:  .set .Ltest_fmax3.num_vgpr, 3 
# |          .
# |          .
# |          .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

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

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -mtriple=amdgcn | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=SI
# 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 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=SI
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=VI
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=VI
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -mtriple=r600 -mcpu=cypress | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=EG
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=r600 -mcpu=cypress
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=EG
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -mtriple=amdgcn -mcpu=gfx1010 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=GFX10
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=GFX10
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll:865:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_ffbh_u32_e32 v1, v1
# |                     ^
# | <stdin>:474:23: note: scanning from here
# |  v_ffbh_u32_e32 v0, v0
# |                       ^
# | <stdin>:475:2: note: possible intended match here
# |  v_ffbh_u32_e32 v3, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll:995:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_min_u32_e32 v1, v2, v1
# |                     ^
# | <stdin>:542:35: note: scanning from here
# |  v_add_nc_u32_e64 v1, v1, 32 clamp
# |                                   ^
# | <stdin>:543:2: note: possible intended match here
# |  v_min3_u32 v1, v2, v1, 64
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll:1747:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_ffbh_u32_e32 v1, v1
# |                     ^
# | <stdin>:930:23: note: scanning from here
# |  v_ffbh_u32_e32 v0, v0
# |                       ^
# | <stdin>:931:2: note: possible intended match here
# |  v_ffbh_u32_e32 v2, v1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/ctlz.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            469:  s_load_dwordx4 s[0:3], s[4:5], 0x24 
# |            470:  v_lshlrev_b32_e32 v2, 3, v0 
# |            471:  s_waitcnt lgkmcnt(0) 
# |            472:  global_load_dwordx2 v[0:1], v2, s[2:3] 
# |            473:  s_waitcnt vmcnt(0) 
# |            474:  v_ffbh_u32_e32 v0, v0 
# | next:865'0                            X error: no match found
# |            475:  v_ffbh_u32_e32 v3, v1 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:865'1       ?                      possible intended match
# |            476:  v_mov_b32_e32 v1, 0 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~
# |            477:  v_add_nc_u32_e64 v0, v0, 32 clamp 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            478:  v_min3_u32 v0, v3, v0, 64 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            479:  global_store_dwordx2 v2, v[0:1], s[0:1] 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            480:  s_endpgm 
# | next:865'0      ~~~~~~~~~~
# |              .
# |              .
# |              .
# |            537:  s_waitcnt lgkmcnt(0) 
# |            538:  global_load_dwordx2 v[1:2], v1, s[2:3] 
# |            539:  s_waitcnt vmcnt(0) 
# |            540:  v_ffbh_u32_e32 v1, v1 
# |            541:  v_ffbh_u32_e32 v2, v2 
# |            542:  v_add_nc_u32_e64 v1, v1, 32 clamp 
# | next:995'0                                        X error: no match found
# |            543:  v_min3_u32 v1, v2, v1, 64 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:995'1       ?                          possible intended match
# |            544:  global_store_dword v0, v1, s[0:1] 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            545:  s_endpgm 
# | next:995'0      ~~~~~~~~~~
# |            546: .Lfunc_end8: 
# | next:995'0      ~~~~~~~~~~~~~
# |            547:  .size v_ctlz_i64_trunc, .Lfunc_end8-v_ctlz_i64_trunc 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            548:  ; -- End function 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            925:  s_load_dwordx4 s[0:3], s[4:5], 0x24 
# |            926:  v_lshlrev_b32_e32 v0, 2, v0 
# |            927:  s_waitcnt lgkmcnt(0) 
# |            928:  global_load_dwordx2 v[0:1], v0, s[2:3] 
# |            929:  s_waitcnt vmcnt(0) 
# |            930:  v_ffbh_u32_e32 v0, v0 
# | next:1747'0                           X error: no match found
# |            931:  v_ffbh_u32_e32 v2, v1 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~
# | next:1747'1      ?                      possible intended match
# |            932:  v_mov_b32_e32 v1, 0 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~
# |            933:  v_add_nc_u32_e64 v0, v0, 32 clamp 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            934:  v_min3_u32 v0, v2, v0, 64 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            935:  v_cmp_ne_u64_e32 vcc_lo, 64, v[0:1] 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            936:  v_cndmask_b32_e32 v2, -1, v0, vcc_lo 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

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

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -mtriple=amdgcn | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=SI
# 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 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=SI
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=VI
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=VI
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -mtriple=r600 -mcpu=cypress | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=EG
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=r600 -mcpu=cypress
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=EG
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -mtriple=amdgcn -mcpu=gfx1010 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=GFX10
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=GFX10
# note: command had no output on stdout or stderr
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll:753:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_add_nc_u32_e64 v1, v1, 32 clamp
# |                     ^
# | <stdin>:474:23: note: scanning from here
# |  v_ffbl_b32_e32 v0, v0
# |                       ^
# | <stdin>:475:2: note: possible intended match here
# |  v_add_nc_u32_e64 v3, v1, 32 clamp
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll:864:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_min_u32_e32 v1, v1, v2
# |                     ^
# | <stdin>:541:35: note: scanning from here
# |  v_add_nc_u32_e64 v2, v2, 32 clamp
# |                                   ^
# | <stdin>:542:2: note: possible intended match here
# |  v_min3_u32 v1, v1, v2, 64
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/cttz.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           469:  v_lshlrev_b32_e32 v2, 3, v0 
# |           470:  s_waitcnt lgkmcnt(0) 
# |           471:  global_load_dwordx2 v[0:1], v2, s[2:3] 
# |           472:  s_waitcnt vmcnt(0) 
# |           473:  v_ffbl_b32_e32 v1, v1 
# |           474:  v_ffbl_b32_e32 v0, v0 
# | next:753'0                           X error: no match found
# |           475:  v_add_nc_u32_e64 v3, v1, 32 clamp 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:753'1      ?                                  possible intended match
# |           476:  v_mov_b32_e32 v1, 0 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~
# |           477:  v_min3_u32 v0, v0, v3, 64 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           478:  global_store_dwordx2 v2, v[0:1], s[0:1] 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           479:  s_endpgm 
# | next:753'0     ~~~~~~~~~~
# |           480: .Lfunc_end7: 
# | next:753'0     ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           536:  s_waitcnt lgkmcnt(0) 
# |           537:  global_load_dwordx2 v[1:2], v1, s[2:3] 
# |           538:  s_waitcnt vmcnt(0) 
# |           539:  v_ffbl_b32_e32 v2, v2 
# |           540:  v_ffbl_b32_e32 v1, v1 
# |           541:  v_add_nc_u32_e64 v2, v2, 32 clamp 
# | next:864'0                                       X error: no match found
# |           542:  v_min3_u32 v1, v1, v2, 64 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:864'1      ?                          possible intended match
# |           543:  global_store_dword v0, v1, s[0:1] 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           544:  s_endpgm 
# | next:864'0     ~~~~~~~~~~
# |           545: .Lfunc_end8: 
# | next:864'0     ~~~~~~~~~~~~~
# |           546:  .size v_cttz_i64_trunc, .Lfunc_end8-v_cttz_i64_trunc 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           547:  ; -- End function 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-fmax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll:2085:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_f32_e32 v0, v0, v1
# |                    ^
# | <stdin>:385:27: note: scanning from here
# |  v_mul_f32_e32 v1, 1.0, v1
# |                           ^
# | <stdin>:386:2: note: possible intended match here
# |  v_mul_f32_e32 v2, 1.0, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll:2208:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:429:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:426:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:427:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll:2364:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:479:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:471:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:472:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll:2586:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:540:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:523:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:524:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            380:  .type test_vector_reduce_fmax_v3float,@function 
# |            381: test_vector_reduce_fmax_v3float: ; @test_vector_reduce_fmax_v3float 
# |            382: ; %bb.0: ; %entry 
# |            383:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            384:  v_mul_f32_e32 v0, 1.0, v0 
# |            385:  v_mul_f32_e32 v1, 1.0, v1 
# | next:2085'0                               X error: no match found
# |            386:  v_mul_f32_e32 v2, 1.0, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2085'1      ?                          possible intended match
# |            387:  v_max3_f32 v0, v0, v1, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  s_setpc_b64 s[30:31] 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            389: .Lfunc_end6: 
# | next:2085'0     ~~~~~~~~~~~~~
# |            390:  .size test_vector_reduce_fmax_v3float, .Lfunc_end6-test_vector_reduce_fmax_v3float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            391:  ; -- End function 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            424: test_vector_reduce_fmax_v4float: ; @test_vector_reduce_fmax_v4float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            425: ; %bb.0: ; %entry 
# |            426:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            427:  v_mul_f32_e32 v2, 1.0, v2 
# |            428:  v_mul_f32_e32 v3, 1.0, v3 
# |            429:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2208        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            430:  v_mul_f32_e32 v1, 1.0, v1 
# |            431:  v_max_f32_e32 v2, v2, v3 
# |            432:  v_max3_f32 v0, v0, v1, v2 
# |            433:  s_setpc_b64 s[30:31] 
# |            434: .Lfunc_end7: 
# |              .
# |              .
# |              .
# |            474:  v_max_f32_e32 v2, v2, v3 
# |            475:  v_mul_f32_e32 v3, 1.0, v4 
# |            476:  v_mul_f32_e32 v4, 1.0, v5 
# |            477:  v_mul_f32_e32 v5, 1.0, v6 
# |            478:  v_mul_f32_e32 v6, 1.0, v7 
# |            479:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2364        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            480:  v_mul_f32_e32 v1, 1.0, v1 
# |            481:  v_max_f32_e32 v5, v5, v6 
# |            482:  v_max3_f32 v0, v0, v1, v2 
# |            483:  v_max3_f32 v1, v3, v4, v5 
# |            484:  v_max_f32_e32 v0, v0, v1 
# |              .
# |              .
# |              .
# |            535:  v_mul_f32_e32 v9, 1.0, v11 
# |            536:  v_max_f32_e32 v8, v8, v9 
# |            537:  v_mul_f32_e32 v9, 1.0, v12 
# |            538:  v_mul_f32_e32 v11, 1.0, v14 
# |            539:  v_mul_f32_e32 v12, 1.0, v15 
# |            540:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2586        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            541:  v_mul_f32_e32 v1, 1.0, v1 
# |            542:  v_mul_f32_e32 v10, 1.0, v13 
# |            543:  v_max_f32_e32 v11, v11, v12 
# |            544:  v_max3_f32 v0, v0, v1, v2 
# |            545:  v_max3_f32 v1, v3, v4, v5 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-fmin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll:2085:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v1
# |                    ^
# | <stdin>:385:27: note: scanning from here
# |  v_mul_f32_e32 v1, 1.0, v1
# |                           ^
# | <stdin>:386:2: note: possible intended match here
# |  v_mul_f32_e32 v2, 1.0, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll:2208:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:429:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:426:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:427:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll:2364:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:479:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:471:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:472:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll:2586:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:540:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:523:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:524:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            380:  .type test_vector_reduce_fmin_v3float,@function 
# |            381: test_vector_reduce_fmin_v3float: ; @test_vector_reduce_fmin_v3float 
# |            382: ; %bb.0: ; %entry 
# |            383:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            384:  v_mul_f32_e32 v0, 1.0, v0 
# |            385:  v_mul_f32_e32 v1, 1.0, v1 
# | next:2085'0                               X error: no match found
# |            386:  v_mul_f32_e32 v2, 1.0, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2085'1      ?                          possible intended match
# |            387:  v_min3_f32 v0, v0, v1, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  s_setpc_b64 s[30:31] 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            389: .Lfunc_end6: 
# | next:2085'0     ~~~~~~~~~~~~~
# |            390:  .size test_vector_reduce_fmin_v3float, .Lfunc_end6-test_vector_reduce_fmin_v3float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            391:  ; -- End function 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            424: test_vector_reduce_fmin_v4float: ; @test_vector_reduce_fmin_v4float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            425: ; %bb.0: ; %entry 
# |            426:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            427:  v_mul_f32_e32 v2, 1.0, v2 
# |            428:  v_mul_f32_e32 v3, 1.0, v3 
# |            429:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2208        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            430:  v_mul_f32_e32 v1, 1.0, v1 
# |            431:  v_min_f32_e32 v2, v2, v3 
# |            432:  v_min3_f32 v0, v0, v1, v2 
# |            433:  s_setpc_b64 s[30:31] 
# |            434: .Lfunc_end7: 
# |              .
# |              .
# |              .
# |            474:  v_min_f32_e32 v2, v2, v3 
# |            475:  v_mul_f32_e32 v3, 1.0, v4 
# |            476:  v_mul_f32_e32 v4, 1.0, v5 
# |            477:  v_mul_f32_e32 v5, 1.0, v6 
# |            478:  v_mul_f32_e32 v6, 1.0, v7 
# |            479:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2364        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            480:  v_mul_f32_e32 v1, 1.0, v1 
# |            481:  v_min_f32_e32 v5, v5, v6 
# |            482:  v_min3_f32 v0, v0, v1, v2 
# |            483:  v_min3_f32 v1, v3, v4, v5 
# |            484:  v_min_f32_e32 v0, v0, v1 
# |              .
# |              .
# |              .
# |            535:  v_mul_f32_e32 v9, 1.0, v11 
# |            536:  v_min_f32_e32 v8, v8, v9 
# |            537:  v_mul_f32_e32 v9, 1.0, v12 
# |            538:  v_mul_f32_e32 v11, 1.0, v14 
# |            539:  v_mul_f32_e32 v12, 1.0, v15 
# |            540:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2586        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            541:  v_mul_f32_e32 v1, 1.0, v1 
# |            542:  v_mul_f32_e32 v10, 1.0, v13 
# |            543:  v_min_f32_e32 v11, v11, v12 
# |            544:  v_min3_f32 v0, v0, v1, v2 
# |            545:  v_min3_f32 v1, v3, v4, v5 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-smax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:152:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:24: note: scanning from here
# |  v_bfe_i32 v1, v1, 0, 8
# |                        ^
# | <stdin>:64:2: note: possible intended match here
# |  v_max3_i32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:315:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v1, v1, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:625:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:168:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:162:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:163:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v2, v2, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:1060:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:245:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:228:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:229:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v4, v4, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:1777:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v2, v0
# |                    ^
# | <stdin>:356:26: note: scanning from here
# |  v_bfe_i32 v0, v0, 16, 16
# |                          ^
# | <stdin>:358:2: note: possible intended match here
# |  v_max3_i32 v0, v2, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:1922:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v2, v2, v3
# |                    ^
# | <stdin>:401:26: note: scanning from here
# |  v_bfe_i32 v1, v1, 16, 16
# |                          ^
# | <stdin>:402:2: note: possible intended match here
# |  v_max_i32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2075:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v4, v0, 0, 16
# |                    ^
# | <stdin>:452:2: note: 'next' match was here
# |  v_bfe_i32 v4, v0, 0, 16
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v6, v1, 0, 16
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2288:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v8, v0, 0, 16
# |                    ^
# | <stdin>:515:2: note: 'next' match was here
# |  v_bfe_i32 v8, v0, 0, 16
# |  ^
# | <stdin>:504:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:505:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v12, v2, 0, 16
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2598:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:614:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:615:2: note: possible intended match here
# |  v_max3_i32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2692:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v2
# |                    ^
# | <stdin>:654:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:655:2: note: possible intended match here
# |  v_max_i32_e32 v1, v1, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2801:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v4
# |                    ^
# | <stdin>:695:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:700:2: note: possible intended match here
# |  v_max_i32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll:2952:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v8
# |                    ^
# | <stdin>:739:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:740:2: note: possible intended match here
# |  v_max_i32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_smax_v3i8,@function 
# |             58: test_vector_reduce_smax_v3i8: ; @test_vector_reduce_smax_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_bfe_i32 v0, v0, 0, 8 
# |             62:  v_bfe_i32 v1, v1, 0, 8 
# | next:152'0                             X error: no match found
# |             63:  v_bfe_i32 v2, v2, 0, 8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_max3_i32 v0, v0, v1, v2 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:152'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:152'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_smax_v3i8, .Lfunc_end1-test_vector_reduce_smax_v3i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_smax_v3i8.num_vgpr, 3 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_smax_v4i8: ; @test_vector_reduce_smax_v4i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_bfe_i32 v1, v1, 0, 8 
# |            105:  v_bfe_i32 v3, v3, 0, 8 
# |            106:  v_bfe_i32 v0, v0, 0, 8 
# | next:315         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_bfe_i32 v2, v2, 0, 8 
# |            108:  v_max_i32_e32 v1, v1, v3 
# |            109:  s_sext_i32_i8 s4, s4 
# |            110:  v_max3_i32 v0, v0, v2, v1 
# |            111:  v_max_i32_e32 v1, s4, v1 
# |              .
# |              .
# |              .
# |            163:  v_bfe_i32 v2, v2, 0, 8 
# |            164:  v_bfe_i32 v6, v6, 0, 8 
# |            165:  v_max_i32_e32 v2, v2, v6 
# |            166:  v_bfe_i32 v3, v3, 0, 8 
# |            167:  v_bfe_i32 v6, v7, 0, 8 
# |            168:  v_bfe_i32 v0, v0, 0, 8 
# | next:625         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            169:  v_bfe_i32 v4, v4, 0, 8 
# |            170:  v_bfe_i32 v1, v1, 0, 8 
# |            171:  v_bfe_i32 v5, v5, 0, 8 
# |            172:  v_max_i32_e32 v3, v3, v6 
# |            173:  s_sext_i32_i8 s4, s4 
# |              .
# |              .
# |              .
# |            240:  v_bfe_i32 v1, v1, 0, 8 
# |            241:  v_bfe_i32 v9, v9, 0, 8 
# |            242:  v_bfe_i32 v3, v3, 0, 8 
# |            243:  v_bfe_i32 v11, v11, 0, 8 
# |            244:  v_max_i32_e32 v7, v7, v12 
# |            245:  v_bfe_i32 v0, v0, 0, 8 
# | next:1060        !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            246:  v_bfe_i32 v8, v8, 0, 8 
# |            247:  v_bfe_i32 v2, v2, 0, 8 
# |            248:  v_bfe_i32 v10, v10, 0, 8 
# |            249:  v_max3_i32 v1, v1, v9, v5 
# |            250:  v_max3_i32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            351:  .type test_vector_reduce_smax_v3i16,@function 
# |            352: test_vector_reduce_smax_v3i16: ; @test_vector_reduce_smax_v3i16 
# |            353: ; %bb.0: ; %entry 
# |            354:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            355:  v_bfe_i32 v2, v0, 0, 16 
# |            356:  v_bfe_i32 v0, v0, 16, 16 
# | next:1777'0                              X error: no match found
# |            357:  v_bfe_i32 v1, v1, 0, 16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            358:  v_max3_i32 v0, v2, v0, v1 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1777'1      ?                          possible intended match
# |            359:  s_setpc_b64 s[30:31] 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            360: .Lfunc_end6: 
# | next:1777'0     ~~~~~~~~~~~~~
# |            361:  .size test_vector_reduce_smax_v3i16, .Lfunc_end6-test_vector_reduce_smax_v3i16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            362:  ; -- End function 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~
# |            363:  .set .Ltest_vector_reduce_smax_v3i16.num_vgpr, 3 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            396: ; %bb.0: ; %entry 
# |            397:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            398:  v_bfe_i32 v2, v0, 0, 16 
# |            399:  v_bfe_i32 v3, v1, 0, 16 
# |            400:  v_bfe_i32 v0, v0, 16, 16 
# |            401:  v_bfe_i32 v1, v1, 16, 16 
# | next:1922'0                              X error: no match found
# |            402:  v_max_i32_e32 v0, v0, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1922'1      ?                         possible intended match
# |            403:  v_max3_i32 v1, v2, v3, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            404:  v_max_i32_e32 v0, 0, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            405:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            406:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            407:  v_lshlrev_b32_e32 v0, 16, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            447:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            448:  v_bfe_i32 v6, v1, 0, 16 
# |            449:  v_bfe_i32 v7, v3, 0, 16 
# |            450:  v_bfe_i32 v1, v1, 16, 16 
# |            451:  v_bfe_i32 v3, v3, 16, 16 
# |            452:  v_bfe_i32 v4, v0, 0, 16 
# | next:2075        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            453:  v_bfe_i32 v5, v2, 0, 16 
# |            454:  v_bfe_i32 v0, v0, 16, 16 
# |            455:  v_bfe_i32 v2, v2, 16, 16 
# |            456:  v_max_i32_e32 v6, v6, v7 
# |            457:  v_max_i32_e32 v1, v1, v3 
# |              .
# |              .
# |              .
# |            510:  v_max_i32_e32 v2, v2, v6 
# |            511:  v_bfe_i32 v6, v3, 0, 16 
# |            512:  v_bfe_i32 v13, v7, 0, 16 
# |            513:  v_bfe_i32 v3, v3, 16, 16 
# |            514:  v_bfe_i32 v7, v7, 16, 16 
# |            515:  v_bfe_i32 v8, v0, 0, 16 
# | next:2288        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            516:  v_bfe_i32 v9, v4, 0, 16 
# |            517:  v_bfe_i32 v0, v0, 16, 16 
# |            518:  v_bfe_i32 v4, v4, 16, 16 
# |            519:  v_bfe_i32 v10, v1, 0, 16 
# |            520:  v_bfe_i32 v11, v5, 0, 16 
# |              .
# |              .
# |              .
# |            609:  .globl test_vector_reduce_smax_v3i32 ; -- Begin function test_vector_reduce_smax_v3i32 
# |            610:  .p2align 6 
# |            611:  .type test_vector_reduce_smax_v3i32,@function 
# |            612: test_vector_reduce_smax_v3i32: ; @test_vector_reduce_smax_v3i32 
# |            613: ; %bb.0: ; %entry 
# |            614:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2598'0                                             X error: no match found
# |            615:  v_max3_i32 v0, v0, v1, v2 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2598'1      ?                          possible intended match
# |            616:  s_setpc_b64 s[30:31] 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            617: .Lfunc_end11: 
# | next:2598'0     ~~~~~~~~~~~~~~
# |            618:  .size test_vector_reduce_smax_v3i32, .Lfunc_end11-test_vector_reduce_smax_v3i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            619:  ; -- End function 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~
# |            620:  .set .Ltest_vector_reduce_smax_v3i32.num_vgpr, 3 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            649:  .globl test_vector_reduce_smax_v4i32 ; -- Begin function test_vector_reduce_smax_v4i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            650:  .p2align 6 
# | next:2598'0     ~~~~~~~~~~~~
# |            651:  .type test_vector_reduce_smax_v4i32,@function 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            652: test_vector_reduce_smax_v4i32: ; @test_vector_reduce_smax_v4i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            653: ; %bb.0: ; %entry 
# |            654:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2692'0                                             X error: no match found
# |            655:  v_max_i32_e32 v1, v1, v3 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2692'1      ?                         possible intended match
# |            656:  v_max3_i32 v0, v0, v2, v1 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            657:  s_setpc_b64 s[30:31] 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            658: .Lfunc_end12: 
# | next:2692'0     ~~~~~~~~~~~~~~
# |            659:  .size test_vector_reduce_smax_v4i32, .Lfunc_end12-test_vector_reduce_smax_v4i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            660:  ; -- End function 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            690:  .globl test_vector_reduce_smax_v8i32 ; -- Begin function test_vector_reduce_smax_v8i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            691:  .p2align 6 
# | next:2692'0     ~~~~~~~~~~~~
# |            692:  .type test_vector_reduce_smax_v8i32,@function 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            693: test_vector_reduce_smax_v8i32: ; @test_vector_reduce_smax_v8i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            694: ; %bb.0: ; %entry 
# |            695:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2801'0                                             X error: no match found
# |            696:  v_max_i32_e32 v2, v2, v6 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            697:  v_max_i32_e32 v3, v3, v7 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            698:  v_max3_i32 v0, v0, v4, v2 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            699:  v_max3_i32 v1, v1, v5, v3 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            700:  v_max_i32_e32 v0, v0, v1 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2801'1      ?                         possible intended match
# |            701:  s_setpc_b64 s[30:31] 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            702: .Lfunc_end13: 
# | next:2801'0     ~~~~~~~~~~~~~~
# |            703:  .size test_vector_reduce_smax_v8i32, .Lfunc_end13-test_vector_reduce_smax_v8i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            704:  ; -- End function 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~
# |            705:  .set .Ltest_vector_reduce_smax_v8i32.num_vgpr, 8 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            734:  .globl test_vector_reduce_smax_v16i32 ; -- Begin function test_vector_reduce_smax_v16i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            735:  .p2align 6 
# | next:2801'0     ~~~~~~~~~~~~
# |            736:  .type test_vector_reduce_smax_v16i32,@function 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            737: test_vector_reduce_smax_v16i32: ; @test_vector_reduce_smax_v16i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            738: ; %bb.0: ; %entry 
# |            739:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2952'0                                             X error: no match found
# |            740:  v_max_i32_e32 v5, v5, v13 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2952'1      ?                          possible intended match
# |            741:  v_max_i32_e32 v7, v7, v15 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            742:  v_max_i32_e32 v4, v4, v12 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            743:  v_max_i32_e32 v6, v6, v14 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            744:  v_max3_i32 v1, v1, v9, v5 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            745:  v_max3_i32 v3, v3, v11, v7 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-smin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:152:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:24: note: scanning from here
# |  v_bfe_i32 v1, v1, 0, 8
# |                        ^
# | <stdin>:64:2: note: possible intended match here
# |  v_min3_i32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:315:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v1, v1, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:625:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:168:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:162:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:163:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v2, v2, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:1060:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:245:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:228:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:229:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v4, v4, 0, 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:1777:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v2, v0
# |                    ^
# | <stdin>:356:26: note: scanning from here
# |  v_bfe_i32 v0, v0, 16, 16
# |                          ^
# | <stdin>:358:2: note: possible intended match here
# |  v_min3_i32 v0, v2, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:1922:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v2, v2, v3
# |                    ^
# | <stdin>:401:26: note: scanning from here
# |  v_bfe_i32 v1, v1, 16, 16
# |                          ^
# | <stdin>:402:2: note: possible intended match here
# |  v_min_i32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2075:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v4, v0, 0, 16
# |                    ^
# | <stdin>:452:2: note: 'next' match was here
# |  v_bfe_i32 v4, v0, 0, 16
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v6, v1, 0, 16
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2287:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v8, v0, 0, 16
# |                    ^
# | <stdin>:515:2: note: 'next' match was here
# |  v_bfe_i32 v8, v0, 0, 16
# |  ^
# | <stdin>:504:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:505:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v12, v2, 0, 16
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2597:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:614:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:615:2: note: possible intended match here
# |  v_min3_i32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2691:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v2
# |                    ^
# | <stdin>:654:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:655:2: note: possible intended match here
# |  v_min_i32_e32 v1, v1, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2800:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v4
# |                    ^
# | <stdin>:695:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:700:2: note: possible intended match here
# |  v_min_i32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll:2951:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v8
# |                    ^
# | <stdin>:739:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:740:2: note: possible intended match here
# |  v_min_i32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_smin_v3i8,@function 
# |             58: test_vector_reduce_smin_v3i8: ; @test_vector_reduce_smin_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_bfe_i32 v0, v0, 0, 8 
# |             62:  v_bfe_i32 v1, v1, 0, 8 
# | next:152'0                             X error: no match found
# |             63:  v_bfe_i32 v2, v2, 0, 8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_min3_i32 v0, v0, v1, v2 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:152'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:152'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_smin_v3i8, .Lfunc_end1-test_vector_reduce_smin_v3i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_smin_v3i8.num_vgpr, 3 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_smin_v4i8: ; @test_vector_reduce_smin_v4i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_bfe_i32 v1, v1, 0, 8 
# |            105:  v_bfe_i32 v3, v3, 0, 8 
# |            106:  v_bfe_i32 v0, v0, 0, 8 
# | next:315         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_bfe_i32 v2, v2, 0, 8 
# |            108:  v_min_i32_e32 v1, v1, v3 
# |            109:  s_sext_i32_i8 s4, s4 
# |            110:  v_min3_i32 v0, v0, v2, v1 
# |            111:  v_min_i32_e32 v1, s4, v1 
# |              .
# |              .
# |              .
# |            163:  v_bfe_i32 v2, v2, 0, 8 
# |            164:  v_bfe_i32 v6, v6, 0, 8 
# |            165:  v_min_i32_e32 v2, v2, v6 
# |            166:  v_bfe_i32 v3, v3, 0, 8 
# |            167:  v_bfe_i32 v6, v7, 0, 8 
# |            168:  v_bfe_i32 v0, v0, 0, 8 
# | next:625         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            169:  v_bfe_i32 v4, v4, 0, 8 
# |            170:  v_bfe_i32 v1, v1, 0, 8 
# |            171:  v_bfe_i32 v5, v5, 0, 8 
# |            172:  v_min_i32_e32 v3, v3, v6 
# |            173:  s_sext_i32_i8 s4, s4 
# |              .
# |              .
# |              .
# |            240:  v_bfe_i32 v1, v1, 0, 8 
# |            241:  v_bfe_i32 v9, v9, 0, 8 
# |            242:  v_bfe_i32 v3, v3, 0, 8 
# |            243:  v_bfe_i32 v11, v11, 0, 8 
# |            244:  v_min_i32_e32 v7, v7, v12 
# |            245:  v_bfe_i32 v0, v0, 0, 8 
# | next:1060        !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            246:  v_bfe_i32 v8, v8, 0, 8 
# |            247:  v_bfe_i32 v2, v2, 0, 8 
# |            248:  v_bfe_i32 v10, v10, 0, 8 
# |            249:  v_min3_i32 v1, v1, v9, v5 
# |            250:  v_min3_i32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            351:  .type test_vector_reduce_smin_v3i16,@function 
# |            352: test_vector_reduce_smin_v3i16: ; @test_vector_reduce_smin_v3i16 
# |            353: ; %bb.0: ; %entry 
# |            354:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            355:  v_bfe_i32 v2, v0, 0, 16 
# |            356:  v_bfe_i32 v0, v0, 16, 16 
# | next:1777'0                              X error: no match found
# |            357:  v_bfe_i32 v1, v1, 0, 16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            358:  v_min3_i32 v0, v2, v0, v1 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1777'1      ?                          possible intended match
# |            359:  s_setpc_b64 s[30:31] 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            360: .Lfunc_end6: 
# | next:1777'0     ~~~~~~~~~~~~~
# |            361:  .size test_vector_reduce_smin_v3i16, .Lfunc_end6-test_vector_reduce_smin_v3i16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            362:  ; -- End function 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~
# |            363:  .set .Ltest_vector_reduce_smin_v3i16.num_vgpr, 3 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            396: ; %bb.0: ; %entry 
# |            397:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            398:  v_bfe_i32 v2, v0, 0, 16 
# |            399:  v_bfe_i32 v3, v1, 0, 16 
# |            400:  v_bfe_i32 v0, v0, 16, 16 
# |            401:  v_bfe_i32 v1, v1, 16, 16 
# | next:1922'0                              X error: no match found
# |            402:  v_min_i32_e32 v0, v0, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1922'1      ?                         possible intended match
# |            403:  v_min3_i32 v1, v2, v3, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            404:  v_min_i32_e32 v0, 0, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            405:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            406:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            407:  v_lshlrev_b32_e32 v0, 16, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            447:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            448:  v_bfe_i32 v6, v1, 0, 16 
# |            449:  v_bfe_i32 v7, v3, 0, 16 
# |            450:  v_bfe_i32 v1, v1, 16, 16 
# |            451:  v_bfe_i32 v3, v3, 16, 16 
# |            452:  v_bfe_i32 v4, v0, 0, 16 
# | next:2075        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            453:  v_bfe_i32 v5, v2, 0, 16 
# |            454:  v_bfe_i32 v0, v0, 16, 16 
# |            455:  v_bfe_i32 v2, v2, 16, 16 
# |            456:  v_min_i32_e32 v6, v6, v7 
# |            457:  v_min_i32_e32 v1, v1, v3 
# |              .
# |              .
# |              .
# |            510:  v_min_i32_e32 v2, v2, v6 
# |            511:  v_bfe_i32 v6, v3, 0, 16 
# |            512:  v_bfe_i32 v13, v7, 0, 16 
# |            513:  v_bfe_i32 v3, v3, 16, 16 
# |            514:  v_bfe_i32 v7, v7, 16, 16 
# |            515:  v_bfe_i32 v8, v0, 0, 16 
# | next:2287        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            516:  v_bfe_i32 v9, v4, 0, 16 
# |            517:  v_bfe_i32 v0, v0, 16, 16 
# |            518:  v_bfe_i32 v4, v4, 16, 16 
# |            519:  v_bfe_i32 v10, v1, 0, 16 
# |            520:  v_bfe_i32 v11, v5, 0, 16 
# |              .
# |              .
# |              .
# |            609:  .globl test_vector_reduce_smin_v3i32 ; -- Begin function test_vector_reduce_smin_v3i32 
# |            610:  .p2align 6 
# |            611:  .type test_vector_reduce_smin_v3i32,@function 
# |            612: test_vector_reduce_smin_v3i32: ; @test_vector_reduce_smin_v3i32 
# |            613: ; %bb.0: ; %entry 
# |            614:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2597'0                                             X error: no match found
# |            615:  v_min3_i32 v0, v0, v1, v2 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2597'1      ?                          possible intended match
# |            616:  s_setpc_b64 s[30:31] 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            617: .Lfunc_end11: 
# | next:2597'0     ~~~~~~~~~~~~~~
# |            618:  .size test_vector_reduce_smin_v3i32, .Lfunc_end11-test_vector_reduce_smin_v3i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            619:  ; -- End function 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~
# |            620:  .set .Ltest_vector_reduce_smin_v3i32.num_vgpr, 3 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            649:  .globl test_vector_reduce_smin_v4i32 ; -- Begin function test_vector_reduce_smin_v4i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            650:  .p2align 6 
# | next:2597'0     ~~~~~~~~~~~~
# |            651:  .type test_vector_reduce_smin_v4i32,@function 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            652: test_vector_reduce_smin_v4i32: ; @test_vector_reduce_smin_v4i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            653: ; %bb.0: ; %entry 
# |            654:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2691'0                                             X error: no match found
# |            655:  v_min_i32_e32 v1, v1, v3 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2691'1      ?                         possible intended match
# |            656:  v_min3_i32 v0, v0, v2, v1 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            657:  s_setpc_b64 s[30:31] 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            658: .Lfunc_end12: 
# | next:2691'0     ~~~~~~~~~~~~~~
# |            659:  .size test_vector_reduce_smin_v4i32, .Lfunc_end12-test_vector_reduce_smin_v4i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            660:  ; -- End function 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            690:  .globl test_vector_reduce_smin_v8i32 ; -- Begin function test_vector_reduce_smin_v8i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            691:  .p2align 6 
# | next:2691'0     ~~~~~~~~~~~~
# |            692:  .type test_vector_reduce_smin_v8i32,@function 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            693: test_vector_reduce_smin_v8i32: ; @test_vector_reduce_smin_v8i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            694: ; %bb.0: ; %entry 
# |            695:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2800'0                                             X error: no match found
# |            696:  v_min_i32_e32 v2, v2, v6 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            697:  v_min_i32_e32 v3, v3, v7 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            698:  v_min3_i32 v0, v0, v4, v2 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            699:  v_min3_i32 v1, v1, v5, v3 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            700:  v_min_i32_e32 v0, v0, v1 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2800'1      ?                         possible intended match
# |            701:  s_setpc_b64 s[30:31] 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            702: .Lfunc_end13: 
# | next:2800'0     ~~~~~~~~~~~~~~
# |            703:  .size test_vector_reduce_smin_v8i32, .Lfunc_end13-test_vector_reduce_smin_v8i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            704:  ; -- End function 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~
# |            705:  .set .Ltest_vector_reduce_smin_v8i32.num_vgpr, 8 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            734:  .globl test_vector_reduce_smin_v16i32 ; -- Begin function test_vector_reduce_smin_v16i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            735:  .p2align 6 
# | next:2800'0     ~~~~~~~~~~~~
# |            736:  .type test_vector_reduce_smin_v16i32,@function 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            737: test_vector_reduce_smin_v16i32: ; @test_vector_reduce_smin_v16i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            738: ; %bb.0: ; %entry 
# |            739:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2951'0                                             X error: no match found
# |            740:  v_min_i32_e32 v5, v5, v13 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2951'1      ?                          possible intended match
# |            741:  v_min_i32_e32 v7, v7, v15 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            742:  v_min_i32_e32 v4, v4, v12 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            743:  v_min_i32_e32 v6, v6, v14 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            744:  v_min3_i32 v1, v1, v9, v5 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            745:  v_min3_i32 v3, v3, v11, v7 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-umax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:150:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:28: note: scanning from here
# |  v_and_b32_e32 v1, 0xff, v1
# |                            ^
# | <stdin>:64:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:297:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v1, 0xff, v1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:591:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:163:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:157:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:158:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v2, 0xff, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:986:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:235:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:218:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:219:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v4, 0xff, v4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:1664:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:339:30: note: scanning from here
# |  v_and_b32_e32 v0, 0xffff, v0
# |                              ^
# | <stdin>:341:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v2, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:1803:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:384:30: note: scanning from here
# |  v_and_b32_e32 v1, 0xffff, v1
# |                              ^
# | <stdin>:385:2: note: possible intended match here
# |  v_max_u32_e32 v2, v2, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:1954:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v0
# |                    ^
# | <stdin>:433:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v4, 16, v0
# |  ^
# | <stdin>:428:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:429:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v5, 16, v1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:2165:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v8, 16, v0
# |                    ^
# | <stdin>:492:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v8, 16, v0
# |  ^
# | <stdin>:483:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:484:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v10, 16, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:2473:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:591:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:592:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:2567:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:631:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:632:2: note: possible intended match here
# |  v_max_u32_e32 v1, v1, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:2676:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v4
# |                    ^
# | <stdin>:672:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:677:2: note: possible intended match here
# |  v_max_u32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll:2827:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v8
# |                    ^
# | <stdin>:716:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:717:2: note: possible intended match here
# |  v_max_u32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_umax_v3i8,@function 
# |             58: test_vector_reduce_umax_v3i8: ; @test_vector_reduce_umax_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_and_b32_e32 v0, 0xff, v0 
# |             62:  v_and_b32_e32 v1, 0xff, v1 
# | next:150'0                                 X error: no match found
# |             63:  v_and_b32_e32 v2, 0xff, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_max3_u32 v0, v0, v1, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:150'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:150'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_umax_v3i8, .Lfunc_end1-test_vector_reduce_umax_v3i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_umax_v3i8.num_vgpr, 3 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_umax_v4i8: ; @test_vector_reduce_umax_v4i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_and_b32_e32 v1, 0xff, v1 
# |            105:  v_and_b32_e32 v3, 0xff, v3 
# |            106:  v_and_b32_e32 v0, 0xff, v0 
# | next:297         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_and_b32_e32 v2, 0xff, v2 
# |            108:  v_max_u32_e32 v1, v1, v3 
# |            109:  v_max3_u32 v0, v0, v2, v1 
# |            110:  v_max_u32_e32 v1, 0, v1 
# |            111:  v_max3_u32 v2, v2, 0, 0 
# |              .
# |              .
# |              .
# |            158:  v_and_b32_e32 v2, 0xff, v2 
# |            159:  v_and_b32_e32 v6, 0xff, v6 
# |            160:  v_max_u32_e32 v2, v2, v6 
# |            161:  v_and_b32_e32 v3, 0xff, v3 
# |            162:  v_and_b32_e32 v6, 0xff, v7 
# |            163:  v_and_b32_e32 v0, 0xff, v0 
# | next:591         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            164:  v_and_b32_e32 v4, 0xff, v4 
# |            165:  v_and_b32_e32 v1, 0xff, v1 
# |            166:  v_and_b32_e32 v5, 0xff, v5 
# |            167:  v_max_u32_e32 v3, v3, v6 
# |            168:  v_max3_u32 v0, v0, v4, v2 
# |              .
# |              .
# |              .
# |            230:  v_and_b32_e32 v1, 0xff, v1 
# |            231:  v_and_b32_e32 v9, 0xff, v9 
# |            232:  v_and_b32_e32 v3, 0xff, v3 
# |            233:  v_and_b32_e32 v11, 0xff, v11 
# |            234:  v_max_u32_e32 v7, v7, v12 
# |            235:  v_and_b32_e32 v0, 0xff, v0 
# | next:986         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            236:  v_and_b32_e32 v8, 0xff, v8 
# |            237:  v_and_b32_e32 v2, 0xff, v2 
# |            238:  v_and_b32_e32 v10, 0xff, v10 
# |            239:  v_max3_u32 v1, v1, v9, v5 
# |            240:  v_max3_u32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            334:  .type test_vector_reduce_umax_v3i16,@function 
# |            335: test_vector_reduce_umax_v3i16: ; @test_vector_reduce_umax_v3i16 
# |            336: ; %bb.0: ; %entry 
# |            337:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            338:  v_lshrrev_b32_e32 v2, 16, v0 
# |            339:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1664'0                                  X error: no match found
# |            340:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            341:  v_max3_u32 v0, v0, v2, v1 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1664'1      ?                          possible intended match
# |            342:  s_setpc_b64 s[30:31] 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            343: .Lfunc_end6: 
# | next:1664'0     ~~~~~~~~~~~~~
# |            344:  .size test_vector_reduce_umax_v3i16, .Lfunc_end6-test_vector_reduce_umax_v3i16 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            345:  ; -- End function 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~
# |            346:  .set .Ltest_vector_reduce_umax_v3i16.num_vgpr, 3 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            379: ; %bb.0: ; %entry 
# |            380:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            381:  v_lshrrev_b32_e32 v2, 16, v0 
# |            382:  v_lshrrev_b32_e32 v3, 16, v1 
# |            383:  v_and_b32_e32 v0, 0xffff, v0 
# |            384:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1803'0                                  X error: no match found
# |            385:  v_max_u32_e32 v2, v2, v3 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1803'1      ?                         possible intended match
# |            386:  v_max3_u32 v0, v0, v1, v2 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            387:  v_max_u32_e32 v1, 0, v2 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  v_lshlrev_b32_e32 v1, 16, v1 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            389:  v_or_b32_e32 v0, v0, v1 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            390:  s_setpc_b64 s[30:31] 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            428:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            429:  v_lshrrev_b32_e32 v5, 16, v1 
# |            430:  v_lshrrev_b32_e32 v7, 16, v3 
# |            431:  v_and_b32_e32 v1, 0xffff, v1 
# |            432:  v_and_b32_e32 v3, 0xffff, v3 
# |            433:  v_lshrrev_b32_e32 v4, 16, v0 
# | next:1954        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            434:  v_lshrrev_b32_e32 v6, 16, v2 
# |            435:  v_and_b32_e32 v0, 0xffff, v0 
# |            436:  v_and_b32_e32 v2, 0xffff, v2 
# |            437:  v_max_u32_e32 v1, v1, v3 
# |            438:  v_max_u32_e32 v3, v5, v7 
# |              .
# |              .
# |              .
# |            487:  v_lshrrev_b32_e32 v15, 16, v7 
# |            488:  v_and_b32_e32 v2, 0xffff, v2 
# |            489:  v_and_b32_e32 v6, 0xffff, v6 
# |            490:  v_and_b32_e32 v3, 0xffff, v3 
# |            491:  v_and_b32_e32 v7, 0xffff, v7 
# |            492:  v_lshrrev_b32_e32 v8, 16, v0 
# | next:2165        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            493:  v_lshrrev_b32_e32 v9, 16, v1 
# |            494:  v_lshrrev_b32_e32 v12, 16, v4 
# |            495:  v_lshrrev_b32_e32 v13, 16, v5 
# |            496:  v_and_b32_e32 v0, 0xffff, v0 
# |            497:  v_and_b32_e32 v4, 0xffff, v4 
# |              .
# |              .
# |              .
# |            586:  .globl test_vector_reduce_umax_v3i32 ; -- Begin function test_vector_reduce_umax_v3i32 
# |            587:  .p2align 6 
# |            588:  .type test_vector_reduce_umax_v3i32,@function 
# |            589: test_vector_reduce_umax_v3i32: ; @test_vector_reduce_umax_v3i32 
# |            590: ; %bb.0: ; %entry 
# |            591:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2473'0                                             X error: no match found
# |            592:  v_max3_u32 v0, v0, v1, v2 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2473'1      ?                          possible intended match
# |            593:  s_setpc_b64 s[30:31] 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            594: .Lfunc_end11: 
# | next:2473'0     ~~~~~~~~~~~~~~
# |            595:  .size test_vector_reduce_umax_v3i32, .Lfunc_end11-test_vector_reduce_umax_v3i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            596:  ; -- End function 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~
# |            597:  .set .Ltest_vector_reduce_umax_v3i32.num_vgpr, 3 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            626:  .globl test_vector_reduce_umax_v4i32 ; -- Begin function test_vector_reduce_umax_v4i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            627:  .p2align 6 
# | next:2473'0     ~~~~~~~~~~~~
# |            628:  .type test_vector_reduce_umax_v4i32,@function 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            629: test_vector_reduce_umax_v4i32: ; @test_vector_reduce_umax_v4i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            630: ; %bb.0: ; %entry 
# |            631:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2567'0                                             X error: no match found
# |            632:  v_max_u32_e32 v1, v1, v3 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2567'1      ?                         possible intended match
# |            633:  v_max3_u32 v0, v0, v2, v1 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            634:  s_setpc_b64 s[30:31] 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            635: .Lfunc_end12: 
# | next:2567'0     ~~~~~~~~~~~~~~
# |            636:  .size test_vector_reduce_umax_v4i32, .Lfunc_end12-test_vector_reduce_umax_v4i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            637:  ; -- End function 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            667:  .globl test_vector_reduce_umax_v8i32 ; -- Begin function test_vector_reduce_umax_v8i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            668:  .p2align 6 
# | next:2567'0     ~~~~~~~~~~~~
# |            669:  .type test_vector_reduce_umax_v8i32,@function 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            670: test_vector_reduce_umax_v8i32: ; @test_vector_reduce_umax_v8i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            671: ; %bb.0: ; %entry 
# |            672:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2676'0                                             X error: no match found
# |            673:  v_max_u32_e32 v2, v2, v6 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            674:  v_max_u32_e32 v3, v3, v7 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            675:  v_max3_u32 v0, v0, v4, v2 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            676:  v_max3_u32 v1, v1, v5, v3 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            677:  v_max_u32_e32 v0, v0, v1 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2676'1      ?                         possible intended match
# |            678:  s_setpc_b64 s[30:31] 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            679: .Lfunc_end13: 
# | next:2676'0     ~~~~~~~~~~~~~~
# |            680:  .size test_vector_reduce_umax_v8i32, .Lfunc_end13-test_vector_reduce_umax_v8i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            681:  ; -- End function 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~
# |            682:  .set .Ltest_vector_reduce_umax_v8i32.num_vgpr, 8 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            711:  .globl test_vector_reduce_umax_v16i32 ; -- Begin function test_vector_reduce_umax_v16i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            712:  .p2align 6 
# | next:2676'0     ~~~~~~~~~~~~
# |            713:  .type test_vector_reduce_umax_v16i32,@function 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            714: test_vector_reduce_umax_v16i32: ; @test_vector_reduce_umax_v16i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            715: ; %bb.0: ; %entry 
# |            716:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2827'0                                             X error: no match found
# |            717:  v_max_u32_e32 v5, v5, v13 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2827'1      ?                          possible intended match
# |            718:  v_max_u32_e32 v7, v7, v15 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            719:  v_max_u32_e32 v4, v4, v12 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            720:  v_max_u32_e32 v6, v6, v14 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            721:  v_max3_u32 v1, v1, v9, v5 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            722:  v_max3_u32 v3, v3, v11, v7 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-umin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-SDAG /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefixes=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# 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=GFX7,GFX7-GISEL /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:150:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:28: note: scanning from here
# |  v_and_b32_e32 v1, 0xff, v1
# |                            ^
# | <stdin>:64:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:297:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v1, 0xff, v1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:504:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:154:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:148:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:149:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v2, 0xff, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:816:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:217:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:200:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:201:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v4, 0xff, v4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:1403:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:309:30: note: scanning from here
# |  v_and_b32_e32 v0, 0xffff, v0
# |                              ^
# | <stdin>:311:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v2, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:1543:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:354:30: note: scanning from here
# |  v_and_b32_e32 v1, 0xffff, v1
# |                              ^
# | <stdin>:355:2: note: possible intended match here
# |  v_min_u32_e32 v2, v2, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:1691:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v0
# |                    ^
# | <stdin>:400:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v4, 16, v0
# |  ^
# | <stdin>:395:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:396:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v5, 16, v1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:1899:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v8, 16, v0
# |                    ^
# | <stdin>:456:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v8, 16, v0
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v10, 16, v2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:2204:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:552:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:553:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:2298:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:592:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:593:2: note: possible intended match here
# |  v_min_u32_e32 v1, v1, v3
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:2407:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v4
# |                    ^
# | <stdin>:633:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:638:2: note: possible intended match here
# |  v_min_u32_e32 v0, v0, v1
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll:2558:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v8
# |                    ^
# | <stdin>:677:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:678:2: note: possible intended match here
# |  v_min_u32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_umin_v3i8,@function 
# |             58: test_vector_reduce_umin_v3i8: ; @test_vector_reduce_umin_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_and_b32_e32 v0, 0xff, v0 
# |             62:  v_and_b32_e32 v1, 0xff, v1 
# | next:150'0                                 X error: no match found
# |             63:  v_and_b32_e32 v2, 0xff, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_min3_u32 v0, v0, v1, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:150'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:150'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_umin_v3i8, .Lfunc_end1-test_vector_reduce_umin_v3i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_umin_v3i8.num_vgpr, 3 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_umin_v4i8: ; @test_vector_reduce_umin_v4i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_and_b32_e32 v1, 0xff, v1 
# |            105:  v_and_b32_e32 v3, 0xff, v3 
# |            106:  v_and_b32_e32 v0, 0xff, v0 
# | next:297         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_and_b32_e32 v2, 0xff, v2 
# |            108:  v_min_u32_e32 v1, v1, v3 
# |            109:  v_min3_u32 v0, v0, v2, v1 
# |            110:  s_setpc_b64 s[30:31] 
# |            111: .Lfunc_end2: 
# |              .
# |              .
# |              .
# |            149:  v_and_b32_e32 v2, 0xff, v2 
# |            150:  v_and_b32_e32 v6, 0xff, v6 
# |            151:  v_min_u32_e32 v2, v2, v6 
# |            152:  v_and_b32_e32 v3, 0xff, v3 
# |            153:  v_and_b32_e32 v6, 0xff, v7 
# |            154:  v_and_b32_e32 v0, 0xff, v0 
# | next:504         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            155:  v_and_b32_e32 v4, 0xff, v4 
# |            156:  v_and_b32_e32 v1, 0xff, v1 
# |            157:  v_and_b32_e32 v5, 0xff, v5 
# |            158:  v_min_u32_e32 v3, v3, v6 
# |            159:  v_min3_u32 v0, v0, v4, v2 
# |              .
# |              .
# |              .
# |            212:  v_and_b32_e32 v1, 0xff, v1 
# |            213:  v_and_b32_e32 v9, 0xff, v9 
# |            214:  v_and_b32_e32 v3, 0xff, v3 
# |            215:  v_and_b32_e32 v11, 0xff, v11 
# |            216:  v_min_u32_e32 v7, v7, v12 
# |            217:  v_and_b32_e32 v0, 0xff, v0 
# | next:816         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            218:  v_and_b32_e32 v8, 0xff, v8 
# |            219:  v_and_b32_e32 v2, 0xff, v2 
# |            220:  v_and_b32_e32 v10, 0xff, v10 
# |            221:  v_min3_u32 v1, v1, v9, v5 
# |            222:  v_min3_u32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            304:  .type test_vector_reduce_umin_v3i16,@function 
# |            305: test_vector_reduce_umin_v3i16: ; @test_vector_reduce_umin_v3i16 
# |            306: ; %bb.0: ; %entry 
# |            307:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            308:  v_lshrrev_b32_e32 v2, 16, v0 
# |            309:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1403'0                                  X error: no match found
# |            310:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            311:  v_min3_u32 v0, v0, v2, v1 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1403'1      ?                          possible intended match
# |            312:  s_setpc_b64 s[30:31] 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            313: .Lfunc_end6: 
# | next:1403'0     ~~~~~~~~~~~~~
# |            314:  .size test_vector_reduce_umin_v3i16, .Lfunc_end6-test_vector_reduce_umin_v3i16 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            315:  ; -- End function 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~
# |            316:  .set .Ltest_vector_reduce_umin_v3i16.num_vgpr, 3 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            349: ; %bb.0: ; %entry 
# |            350:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            351:  v_lshrrev_b32_e32 v2, 16, v0 
# |            352:  v_lshrrev_b32_e32 v3, 16, v1 
# |            353:  v_and_b32_e32 v0, 0xffff, v0 
# |            354:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1543'0                                  X error: no match found
# |            355:  v_min_u32_e32 v2, v2, v3 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1543'1      ?                         possible intended match
# |            356:  v_min3_u32 v0, v0, v1, v2 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            357:  s_setpc_b64 s[30:31] 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            358: .Lfunc_end7: 
# | next:1543'0     ~~~~~~~~~~~~~
# |            359:  .size test_vector_reduce_umin_v4i16, .Lfunc_end7-test_vector_reduce_umin_v4i16 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            360:  ; -- End function 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            395:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            396:  v_lshrrev_b32_e32 v5, 16, v1 
# |            397:  v_lshrrev_b32_e32 v7, 16, v3 
# |            398:  v_and_b32_e32 v1, 0xffff, v1 
# |            399:  v_and_b32_e32 v3, 0xffff, v3 
# |            400:  v_lshrrev_b32_e32 v4, 16, v0 
# | next:1691        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            401:  v_lshrrev_b32_e32 v6, 16, v2 
# |            402:  v_and_b32_e32 v0, 0xffff, v0 
# |            403:  v_and_b32_e32 v2, 0xffff, v2 
# |            404:  v_min_u32_e32 v1, v1, v3 
# |            405:  v_min_u32_e32 v3, v5, v7 
# |              .
# |              .
# |              .
# |            451:  v_lshrrev_b32_e32 v15, 16, v7 
# |            452:  v_and_b32_e32 v2, 0xffff, v2 
# |            453:  v_and_b32_e32 v6, 0xffff, v6 
# |            454:  v_and_b32_e32 v3, 0xffff, v3 
# |            455:  v_and_b32_e32 v7, 0xffff, v7 
# |            456:  v_lshrrev_b32_e32 v8, 16, v0 
# | next:1899        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            457:  v_lshrrev_b32_e32 v9, 16, v1 
# |            458:  v_lshrrev_b32_e32 v12, 16, v4 
# |            459:  v_lshrrev_b32_e32 v13, 16, v5 
# |            460:  v_and_b32_e32 v0, 0xffff, v0 
# |            461:  v_and_b32_e32 v4, 0xffff, v4 
# |              .
# |              .
# |              .
# |            547:  .globl test_vector_reduce_umin_v3i32 ; -- Begin function test_vector_reduce_umin_v3i32 
# |            548:  .p2align 6 
# |            549:  .type test_vector_reduce_umin_v3i32,@function 
# |            550: test_vector_reduce_umin_v3i32: ; @test_vector_reduce_umin_v3i32 
# |            551: ; %bb.0: ; %entry 
# |            552:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2204'0                                             X error: no match found
# |            553:  v_min3_u32 v0, v0, v1, v2 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2204'1      ?                          possible intended match
# |            554:  s_setpc_b64 s[30:31] 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            555: .Lfunc_end11: 
# | next:2204'0     ~~~~~~~~~~~~~~
# |            556:  .size test_vector_reduce_umin_v3i32, .Lfunc_end11-test_vector_reduce_umin_v3i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            557:  ; -- End function 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~
# |            558:  .set .Ltest_vector_reduce_umin_v3i32.num_vgpr, 3 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            587:  .globl test_vector_reduce_umin_v4i32 ; -- Begin function test_vector_reduce_umin_v4i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            588:  .p2align 6 
# | next:2204'0     ~~~~~~~~~~~~
# |            589:  .type test_vector_reduce_umin_v4i32,@function 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            590: test_vector_reduce_umin_v4i32: ; @test_vector_reduce_umin_v4i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            591: ; %bb.0: ; %entry 
# |            592:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2298'0                                             X error: no match found
# |            593:  v_min_u32_e32 v1, v1, v3 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2298'1      ?                         possible intended match
# |            594:  v_min3_u32 v0, v0, v2, v1 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            595:  s_setpc_b64 s[30:31] 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            596: .Lfunc_end12: 
# | next:2298'0     ~~~~~~~~~~~~~~
# |            597:  .size test_vector_reduce_umin_v4i32, .Lfunc_end12-test_vector_reduce_umin_v4i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            598:  ; -- End function 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            628:  .globl test_vector_reduce_umin_v8i32 ; -- Begin function test_vector_reduce_umin_v8i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            629:  .p2align 6 
# | next:2298'0     ~~~~~~~~~~~~
# |            630:  .type test_vector_reduce_umin_v8i32,@function 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            631: test_vector_reduce_umin_v8i32: ; @test_vector_reduce_umin_v8i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            632: ; %bb.0: ; %entry 
# |            633:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2407'0                                             X error: no match found
# |            634:  v_min_u32_e32 v2, v2, v6 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            635:  v_min_u32_e32 v3, v3, v7 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            636:  v_min3_u32 v0, v0, v4, v2 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            637:  v_min3_u32 v1, v1, v5, v3 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            638:  v_min_u32_e32 v0, v0, v1 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2407'1      ?                         possible intended match
# |            639:  s_setpc_b64 s[30:31] 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            640: .Lfunc_end13: 
# | next:2407'0     ~~~~~~~~~~~~~~
# |            641:  .size test_vector_reduce_umin_v8i32, .Lfunc_end13-test_vector_reduce_umin_v8i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            642:  ; -- End function 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~
# |            643:  .set .Ltest_vector_reduce_umin_v8i32.num_vgpr, 8 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            672:  .globl test_vector_reduce_umin_v16i32 ; -- Begin function test_vector_reduce_umin_v16i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            673:  .p2align 6 
# | next:2407'0     ~~~~~~~~~~~~
# |            674:  .type test_vector_reduce_umin_v16i32,@function 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            675: test_vector_reduce_umin_v16i32: ; @test_vector_reduce_umin_v16i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            676: ; %bb.0: ; %entry 
# |            677:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2558'0                                             X error: no match found
# |            678:  v_min_u32_e32 v5, v5, v13 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2558'1      ?                          possible intended match
# |            679:  v_min_u32_e32 v7, v7, v15 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            680:  v_min_u32_e32 v4, v4, v12 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            681:  v_min_u32_e32 v6, v6, v14 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            682:  v_min3_u32 v1, v1, v9, v5 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            683:  v_min3_u32 v3, v3, v11, v7 
# | next:2558'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

github-actions Bot commented May 29, 2026

🪟 Windows x64 Test Results

  • 135279 tests passed
  • 3343 tests skipped
  • 9 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\GlobalISel\fmin3-fmax3-combine.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=GFX10 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\GlobalISel\fmin3-fmax3-combine.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel -mtriple=amdgcn-amd-mesa3d -mcpu=gfx1010 -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=GFX10 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\GlobalISel\fmin3-fmax3-combine.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\GlobalISel\fmin3-fmax3-combine.ll:36:15: error: GFX10-NEXT: is not on the line after the previous match
# | ; GFX10-NEXT: v_max3_f32 v0, v0, v1, v2
# |               ^
# | <stdin>:145:2: note: 'next' match was here
# |  v_max3_f32 v0, v0, v1, v2
# |  ^
# | <stdin>:141:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:142:1: note: non-matching line after previous match is here
# |  v_max_f32_e32 v0, v0, v0
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\GlobalISel\fmin3-fmax3-combine.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |          .
# |          .
# |          .
# |        140: ; %bb.0: 
# |        141:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |        142:  v_max_f32_e32 v0, v0, v0 
# |        143:  v_max_f32_e32 v1, v1, v1 
# |        144:  v_max_f32_e32 v2, v2, v2 
# |        145:  v_max3_f32 v0, v0, v1, v2 
# | next:36      !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        146:  s_setpc_b64 s[30:31] 
# |        147: .Lfunc_end3: 
# |        148:  .size test_fmax3, .Lfunc_end3-test_fmax3 
# |        149:  ; -- End function 
# |        150:  .set .Ltest_fmax3.num_vgpr, 3 
# |          .
# |          .
# |          .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

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

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -mtriple=amdgcn | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -enable-var-scope --check-prefix=SI
# 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' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll' -enable-var-scope --check-prefix=SI
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -enable-var-scope --check-prefix=VI
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll' -enable-var-scope --check-prefix=VI
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -mtriple=r600 -mcpu=cypress | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -enable-var-scope --check-prefix=EG
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=r600 -mcpu=cypress
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll' -enable-var-scope --check-prefix=EG
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -mtriple=amdgcn -mcpu=gfx1010 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -enable-var-scope --check-prefix=GFX10
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll' -enable-var-scope --check-prefix=GFX10
# note: command had no output on stdout or stderr
# RUN: at line 6
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll' -enable-var-scope --check-prefix=GFX10-GISEL
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll:865:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_ffbh_u32_e32 v1, v1
# |                     ^
# | <stdin>:474:23: note: scanning from here
# |  v_ffbh_u32_e32 v0, v0
# |                       ^
# | <stdin>:475:2: note: possible intended match here
# |  v_ffbh_u32_e32 v3, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll:995:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_min_u32_e32 v1, v2, v1
# |                     ^
# | <stdin>:542:35: note: scanning from here
# |  v_add_nc_u32_e64 v1, v1, 32 clamp
# |                                   ^
# | <stdin>:543:2: note: possible intended match here
# |  v_min3_u32 v1, v2, v1, 64
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll:1747:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_ffbh_u32_e32 v1, v1
# |                     ^
# | <stdin>:930:23: note: scanning from here
# |  v_ffbh_u32_e32 v0, v0
# |                       ^
# | <stdin>:931:2: note: possible intended match here
# |  v_ffbh_u32_e32 v2, v1
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\ctlz.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            469:  s_load_dwordx4 s[0:3], s[4:5], 0x24 
# |            470:  v_lshlrev_b32_e32 v2, 3, v0 
# |            471:  s_waitcnt lgkmcnt(0) 
# |            472:  global_load_dwordx2 v[0:1], v2, s[2:3] 
# |            473:  s_waitcnt vmcnt(0) 
# |            474:  v_ffbh_u32_e32 v0, v0 
# | next:865'0                            X error: no match found
# |            475:  v_ffbh_u32_e32 v3, v1 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:865'1       ?                      possible intended match
# |            476:  v_mov_b32_e32 v1, 0 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~
# |            477:  v_add_nc_u32_e64 v0, v0, 32 clamp 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            478:  v_min3_u32 v0, v3, v0, 64 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            479:  global_store_dwordx2 v2, v[0:1], s[0:1] 
# | next:865'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            480:  s_endpgm 
# | next:865'0      ~~~~~~~~~~
# |              .
# |              .
# |              .
# |            537:  s_waitcnt lgkmcnt(0) 
# |            538:  global_load_dwordx2 v[1:2], v1, s[2:3] 
# |            539:  s_waitcnt vmcnt(0) 
# |            540:  v_ffbh_u32_e32 v1, v1 
# |            541:  v_ffbh_u32_e32 v2, v2 
# |            542:  v_add_nc_u32_e64 v1, v1, 32 clamp 
# | next:995'0                                        X error: no match found
# |            543:  v_min3_u32 v1, v2, v1, 64 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:995'1       ?                          possible intended match
# |            544:  global_store_dword v0, v1, s[0:1] 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            545:  s_endpgm 
# | next:995'0      ~~~~~~~~~~
# |            546: .Lfunc_end8: 
# | next:995'0      ~~~~~~~~~~~~~
# |            547:  .size v_ctlz_i64_trunc, .Lfunc_end8-v_ctlz_i64_trunc 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            548:  ; -- End function 
# | next:995'0      ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            925:  s_load_dwordx4 s[0:3], s[4:5], 0x24 
# |            926:  v_lshlrev_b32_e32 v0, 2, v0 
# |            927:  s_waitcnt lgkmcnt(0) 
# |            928:  global_load_dwordx2 v[0:1], v0, s[2:3] 
# |            929:  s_waitcnt vmcnt(0) 
# |            930:  v_ffbh_u32_e32 v0, v0 
# | next:1747'0                           X error: no match found
# |            931:  v_ffbh_u32_e32 v2, v1 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~
# | next:1747'1      ?                      possible intended match
# |            932:  v_mov_b32_e32 v1, 0 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~
# |            933:  v_add_nc_u32_e64 v0, v0, 32 clamp 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            934:  v_min3_u32 v0, v2, v0, 64 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            935:  v_cmp_ne_u64_e32 vcc_lo, 64, v[0:1] 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            936:  v_cndmask_b32_e32 v2, -1, v0, vcc_lo 
# | next:1747'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

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

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -mtriple=amdgcn | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -enable-var-scope --check-prefix=SI
# 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' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll' -enable-var-scope --check-prefix=SI
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -enable-var-scope --check-prefix=VI
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll' -enable-var-scope --check-prefix=VI
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -mtriple=r600 -mcpu=cypress | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -enable-var-scope --check-prefix=EG
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=r600 -mcpu=cypress
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll' -enable-var-scope --check-prefix=EG
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -mtriple=amdgcn -mcpu=gfx1010 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -enable-var-scope --check-prefix=GFX10
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll' -enable-var-scope --check-prefix=GFX10
# note: command had no output on stdout or stderr
# RUN: at line 6
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll -enable-var-scope --check-prefix=GFX10-GISEL
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx1010
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll' -enable-var-scope --check-prefix=GFX10-GISEL
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll:753:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_add_nc_u32_e64 v1, v1, 32 clamp
# |                     ^
# | <stdin>:474:23: note: scanning from here
# |  v_ffbl_b32_e32 v0, v0
# |                       ^
# | <stdin>:475:2: note: possible intended match here
# |  v_add_nc_u32_e64 v3, v1, 32 clamp
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll:864:21: error: GFX10-GISEL-NEXT: expected string not found in input
# | ; GFX10-GISEL-NEXT: v_min_u32_e32 v1, v1, v2
# |                     ^
# | <stdin>:541:35: note: scanning from here
# |  v_add_nc_u32_e64 v2, v2, 32 clamp
# |                                   ^
# | <stdin>:542:2: note: possible intended match here
# |  v_min3_u32 v1, v1, v2, 64
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\cttz.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           469:  v_lshlrev_b32_e32 v2, 3, v0 
# |           470:  s_waitcnt lgkmcnt(0) 
# |           471:  global_load_dwordx2 v[0:1], v2, s[2:3] 
# |           472:  s_waitcnt vmcnt(0) 
# |           473:  v_ffbl_b32_e32 v1, v1 
# |           474:  v_ffbl_b32_e32 v0, v0 
# | next:753'0                           X error: no match found
# |           475:  v_add_nc_u32_e64 v3, v1, 32 clamp 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:753'1      ?                                  possible intended match
# |           476:  v_mov_b32_e32 v1, 0 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~
# |           477:  v_min3_u32 v0, v0, v3, 64 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           478:  global_store_dwordx2 v2, v[0:1], s[0:1] 
# | next:753'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           479:  s_endpgm 
# | next:753'0     ~~~~~~~~~~
# |           480: .Lfunc_end7: 
# | next:753'0     ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           536:  s_waitcnt lgkmcnt(0) 
# |           537:  global_load_dwordx2 v[1:2], v1, s[2:3] 
# |           538:  s_waitcnt vmcnt(0) 
# |           539:  v_ffbl_b32_e32 v2, v2 
# |           540:  v_ffbl_b32_e32 v1, v1 
# |           541:  v_add_nc_u32_e64 v2, v2, 32 clamp 
# | next:864'0                                       X error: no match found
# |           542:  v_min3_u32 v1, v1, v2, 64 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:864'1      ?                          possible intended match
# |           543:  global_store_dword v0, v1, s[0:1] 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           544:  s_endpgm 
# | next:864'0     ~~~~~~~~~~
# |           545: .Lfunc_end8: 
# | next:864'0     ~~~~~~~~~~~~~
# |           546:  .size v_cttz_i64_trunc, .Lfunc_end8-v_cttz_i64_trunc 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           547:  ; -- End function 
# | next:864'0     ~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-fmax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll:2085:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_f32_e32 v0, v0, v1
# |                    ^
# | <stdin>:385:27: note: scanning from here
# |  v_mul_f32_e32 v1, 1.0, v1
# |                           ^
# | <stdin>:386:2: note: possible intended match here
# |  v_mul_f32_e32 v2, 1.0, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll:2208:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:429:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:426:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:427:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll:2364:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:479:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:471:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:472:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll:2586:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:540:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:523:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:524:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            380:  .type test_vector_reduce_fmax_v3float,@function 
# |            381: test_vector_reduce_fmax_v3float: ; @test_vector_reduce_fmax_v3float 
# |            382: ; %bb.0: ; %entry 
# |            383:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            384:  v_mul_f32_e32 v0, 1.0, v0 
# |            385:  v_mul_f32_e32 v1, 1.0, v1 
# | next:2085'0                               X error: no match found
# |            386:  v_mul_f32_e32 v2, 1.0, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2085'1      ?                          possible intended match
# |            387:  v_max3_f32 v0, v0, v1, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  s_setpc_b64 s[30:31] 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            389: .Lfunc_end6: 
# | next:2085'0     ~~~~~~~~~~~~~
# |            390:  .size test_vector_reduce_fmax_v3float, .Lfunc_end6-test_vector_reduce_fmax_v3float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            391:  ; -- End function 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            424: test_vector_reduce_fmax_v4float: ; @test_vector_reduce_fmax_v4float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            425: ; %bb.0: ; %entry 
# |            426:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            427:  v_mul_f32_e32 v2, 1.0, v2 
# |            428:  v_mul_f32_e32 v3, 1.0, v3 
# |            429:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2208        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            430:  v_mul_f32_e32 v1, 1.0, v1 
# |            431:  v_max_f32_e32 v2, v2, v3 
# |            432:  v_max3_f32 v0, v0, v1, v2 
# |            433:  s_setpc_b64 s[30:31] 
# |            434: .Lfunc_end7: 
# |              .
# |              .
# |              .
# |            474:  v_max_f32_e32 v2, v2, v3 
# |            475:  v_mul_f32_e32 v3, 1.0, v4 
# |            476:  v_mul_f32_e32 v4, 1.0, v5 
# |            477:  v_mul_f32_e32 v5, 1.0, v6 
# |            478:  v_mul_f32_e32 v6, 1.0, v7 
# |            479:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2364        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            480:  v_mul_f32_e32 v1, 1.0, v1 
# |            481:  v_max_f32_e32 v5, v5, v6 
# |            482:  v_max3_f32 v0, v0, v1, v2 
# |            483:  v_max3_f32 v1, v3, v4, v5 
# |            484:  v_max_f32_e32 v0, v0, v1 
# |              .
# |              .
# |              .
# |            535:  v_mul_f32_e32 v9, 1.0, v11 
# |            536:  v_max_f32_e32 v8, v8, v9 
# |            537:  v_mul_f32_e32 v9, 1.0, v12 
# |            538:  v_mul_f32_e32 v11, 1.0, v14 
# |            539:  v_mul_f32_e32 v12, 1.0, v15 
# |            540:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2586        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            541:  v_mul_f32_e32 v1, 1.0, v1 
# |            542:  v_mul_f32_e32 v10, 1.0, v13 
# |            543:  v_max_f32_e32 v11, v11, v12 
# |            544:  v_max3_f32 v0, v0, v1, v2 
# |            545:  v_max3_f32 v1, v3, v4, v5 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-fmin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll:2085:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_f32_e32 v0, v0, v1
# |                    ^
# | <stdin>:385:27: note: scanning from here
# |  v_mul_f32_e32 v1, 1.0, v1
# |                           ^
# | <stdin>:386:2: note: possible intended match here
# |  v_mul_f32_e32 v2, 1.0, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll:2208:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:429:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:426:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:427:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll:2364:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:479:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:471:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:472:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll:2586:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_mul_f32_e32 v0, 1.0, v0
# |                    ^
# | <stdin>:540:2: note: 'next' match was here
# |  v_mul_f32_e32 v0, 1.0, v0
# |  ^
# | <stdin>:523:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:524:1: note: non-matching line after previous match is here
# |  v_mul_f32_e32 v2, 1.0, v2
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-fmin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            380:  .type test_vector_reduce_fmin_v3float,@function 
# |            381: test_vector_reduce_fmin_v3float: ; @test_vector_reduce_fmin_v3float 
# |            382: ; %bb.0: ; %entry 
# |            383:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            384:  v_mul_f32_e32 v0, 1.0, v0 
# |            385:  v_mul_f32_e32 v1, 1.0, v1 
# | next:2085'0                               X error: no match found
# |            386:  v_mul_f32_e32 v2, 1.0, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2085'1      ?                          possible intended match
# |            387:  v_min3_f32 v0, v0, v1, v2 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  s_setpc_b64 s[30:31] 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            389: .Lfunc_end6: 
# | next:2085'0     ~~~~~~~~~~~~~
# |            390:  .size test_vector_reduce_fmin_v3float, .Lfunc_end6-test_vector_reduce_fmin_v3float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            391:  ; -- End function 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            424: test_vector_reduce_fmin_v4float: ; @test_vector_reduce_fmin_v4float 
# | next:2085'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            425: ; %bb.0: ; %entry 
# |            426:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            427:  v_mul_f32_e32 v2, 1.0, v2 
# |            428:  v_mul_f32_e32 v3, 1.0, v3 
# |            429:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2208        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            430:  v_mul_f32_e32 v1, 1.0, v1 
# |            431:  v_min_f32_e32 v2, v2, v3 
# |            432:  v_min3_f32 v0, v0, v1, v2 
# |            433:  s_setpc_b64 s[30:31] 
# |            434: .Lfunc_end7: 
# |              .
# |              .
# |              .
# |            474:  v_min_f32_e32 v2, v2, v3 
# |            475:  v_mul_f32_e32 v3, 1.0, v4 
# |            476:  v_mul_f32_e32 v4, 1.0, v5 
# |            477:  v_mul_f32_e32 v5, 1.0, v6 
# |            478:  v_mul_f32_e32 v6, 1.0, v7 
# |            479:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2364        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            480:  v_mul_f32_e32 v1, 1.0, v1 
# |            481:  v_min_f32_e32 v5, v5, v6 
# |            482:  v_min3_f32 v0, v0, v1, v2 
# |            483:  v_min3_f32 v1, v3, v4, v5 
# |            484:  v_min_f32_e32 v0, v0, v1 
# |              .
# |              .
# |              .
# |            535:  v_mul_f32_e32 v9, 1.0, v11 
# |            536:  v_min_f32_e32 v8, v8, v9 
# |            537:  v_mul_f32_e32 v9, 1.0, v12 
# |            538:  v_mul_f32_e32 v11, 1.0, v14 
# |            539:  v_mul_f32_e32 v12, 1.0, v15 
# |            540:  v_mul_f32_e32 v0, 1.0, v0 
# | next:2586        !~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            541:  v_mul_f32_e32 v1, 1.0, v1 
# |            542:  v_mul_f32_e32 v10, 1.0, v13 
# |            543:  v_min_f32_e32 v11, v11, v12 
# |            544:  v_min3_f32 v0, v0, v1, v2 
# |            545:  v_min3_f32 v1, v3, v4, v5 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-smax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:152:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:24: note: scanning from here
# |  v_bfe_i32 v1, v1, 0, 8
# |                        ^
# | <stdin>:64:2: note: possible intended match here
# |  v_max3_i32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:315:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v1, v1, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:625:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:168:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:162:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:163:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v2, v2, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:1060:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:245:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:228:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:229:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v4, v4, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:1777:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v2, v0
# |                    ^
# | <stdin>:356:26: note: scanning from here
# |  v_bfe_i32 v0, v0, 16, 16
# |                          ^
# | <stdin>:358:2: note: possible intended match here
# |  v_max3_i32 v0, v2, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:1922:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v2, v2, v3
# |                    ^
# | <stdin>:401:26: note: scanning from here
# |  v_bfe_i32 v1, v1, 16, 16
# |                          ^
# | <stdin>:402:2: note: possible intended match here
# |  v_max_i32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2075:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v4, v0, 0, 16
# |                    ^
# | <stdin>:452:2: note: 'next' match was here
# |  v_bfe_i32 v4, v0, 0, 16
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v6, v1, 0, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2288:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v8, v0, 0, 16
# |                    ^
# | <stdin>:515:2: note: 'next' match was here
# |  v_bfe_i32 v8, v0, 0, 16
# |  ^
# | <stdin>:504:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:505:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v12, v2, 0, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2598:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:614:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:615:2: note: possible intended match here
# |  v_max3_i32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2692:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v2
# |                    ^
# | <stdin>:654:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:655:2: note: possible intended match here
# |  v_max_i32_e32 v1, v1, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2801:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v4
# |                    ^
# | <stdin>:695:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:700:2: note: possible intended match here
# |  v_max_i32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll:2952:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_i32_e32 v0, v0, v8
# |                    ^
# | <stdin>:739:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:740:2: note: possible intended match here
# |  v_max_i32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_smax_v3i8,@function 
# |             58: test_vector_reduce_smax_v3i8: ; @test_vector_reduce_smax_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_bfe_i32 v0, v0, 0, 8 
# |             62:  v_bfe_i32 v1, v1, 0, 8 
# | next:152'0                             X error: no match found
# |             63:  v_bfe_i32 v2, v2, 0, 8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_max3_i32 v0, v0, v1, v2 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:152'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:152'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_smax_v3i8, .Lfunc_end1-test_vector_reduce_smax_v3i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_smax_v3i8.num_vgpr, 3 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_smax_v4i8: ; @test_vector_reduce_smax_v4i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_bfe_i32 v1, v1, 0, 8 
# |            105:  v_bfe_i32 v3, v3, 0, 8 
# |            106:  v_bfe_i32 v0, v0, 0, 8 
# | next:315         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_bfe_i32 v2, v2, 0, 8 
# |            108:  v_max_i32_e32 v1, v1, v3 
# |            109:  s_sext_i32_i8 s4, s4 
# |            110:  v_max3_i32 v0, v0, v2, v1 
# |            111:  v_max_i32_e32 v1, s4, v1 
# |              .
# |              .
# |              .
# |            163:  v_bfe_i32 v2, v2, 0, 8 
# |            164:  v_bfe_i32 v6, v6, 0, 8 
# |            165:  v_max_i32_e32 v2, v2, v6 
# |            166:  v_bfe_i32 v3, v3, 0, 8 
# |            167:  v_bfe_i32 v6, v7, 0, 8 
# |            168:  v_bfe_i32 v0, v0, 0, 8 
# | next:625         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            169:  v_bfe_i32 v4, v4, 0, 8 
# |            170:  v_bfe_i32 v1, v1, 0, 8 
# |            171:  v_bfe_i32 v5, v5, 0, 8 
# |            172:  v_max_i32_e32 v3, v3, v6 
# |            173:  s_sext_i32_i8 s4, s4 
# |              .
# |              .
# |              .
# |            240:  v_bfe_i32 v1, v1, 0, 8 
# |            241:  v_bfe_i32 v9, v9, 0, 8 
# |            242:  v_bfe_i32 v3, v3, 0, 8 
# |            243:  v_bfe_i32 v11, v11, 0, 8 
# |            244:  v_max_i32_e32 v7, v7, v12 
# |            245:  v_bfe_i32 v0, v0, 0, 8 
# | next:1060        !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            246:  v_bfe_i32 v8, v8, 0, 8 
# |            247:  v_bfe_i32 v2, v2, 0, 8 
# |            248:  v_bfe_i32 v10, v10, 0, 8 
# |            249:  v_max3_i32 v1, v1, v9, v5 
# |            250:  v_max3_i32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            351:  .type test_vector_reduce_smax_v3i16,@function 
# |            352: test_vector_reduce_smax_v3i16: ; @test_vector_reduce_smax_v3i16 
# |            353: ; %bb.0: ; %entry 
# |            354:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            355:  v_bfe_i32 v2, v0, 0, 16 
# |            356:  v_bfe_i32 v0, v0, 16, 16 
# | next:1777'0                              X error: no match found
# |            357:  v_bfe_i32 v1, v1, 0, 16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            358:  v_max3_i32 v0, v2, v0, v1 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1777'1      ?                          possible intended match
# |            359:  s_setpc_b64 s[30:31] 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            360: .Lfunc_end6: 
# | next:1777'0     ~~~~~~~~~~~~~
# |            361:  .size test_vector_reduce_smax_v3i16, .Lfunc_end6-test_vector_reduce_smax_v3i16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            362:  ; -- End function 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~
# |            363:  .set .Ltest_vector_reduce_smax_v3i16.num_vgpr, 3 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            396: ; %bb.0: ; %entry 
# |            397:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            398:  v_bfe_i32 v2, v0, 0, 16 
# |            399:  v_bfe_i32 v3, v1, 0, 16 
# |            400:  v_bfe_i32 v0, v0, 16, 16 
# |            401:  v_bfe_i32 v1, v1, 16, 16 
# | next:1922'0                              X error: no match found
# |            402:  v_max_i32_e32 v0, v0, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1922'1      ?                         possible intended match
# |            403:  v_max3_i32 v1, v2, v3, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            404:  v_max_i32_e32 v0, 0, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            405:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            406:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            407:  v_lshlrev_b32_e32 v0, 16, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            447:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            448:  v_bfe_i32 v6, v1, 0, 16 
# |            449:  v_bfe_i32 v7, v3, 0, 16 
# |            450:  v_bfe_i32 v1, v1, 16, 16 
# |            451:  v_bfe_i32 v3, v3, 16, 16 
# |            452:  v_bfe_i32 v4, v0, 0, 16 
# | next:2075        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            453:  v_bfe_i32 v5, v2, 0, 16 
# |            454:  v_bfe_i32 v0, v0, 16, 16 
# |            455:  v_bfe_i32 v2, v2, 16, 16 
# |            456:  v_max_i32_e32 v6, v6, v7 
# |            457:  v_max_i32_e32 v1, v1, v3 
# |              .
# |              .
# |              .
# |            510:  v_max_i32_e32 v2, v2, v6 
# |            511:  v_bfe_i32 v6, v3, 0, 16 
# |            512:  v_bfe_i32 v13, v7, 0, 16 
# |            513:  v_bfe_i32 v3, v3, 16, 16 
# |            514:  v_bfe_i32 v7, v7, 16, 16 
# |            515:  v_bfe_i32 v8, v0, 0, 16 
# | next:2288        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            516:  v_bfe_i32 v9, v4, 0, 16 
# |            517:  v_bfe_i32 v0, v0, 16, 16 
# |            518:  v_bfe_i32 v4, v4, 16, 16 
# |            519:  v_bfe_i32 v10, v1, 0, 16 
# |            520:  v_bfe_i32 v11, v5, 0, 16 
# |              .
# |              .
# |              .
# |            609:  .globl test_vector_reduce_smax_v3i32 ; -- Begin function test_vector_reduce_smax_v3i32 
# |            610:  .p2align 6 
# |            611:  .type test_vector_reduce_smax_v3i32,@function 
# |            612: test_vector_reduce_smax_v3i32: ; @test_vector_reduce_smax_v3i32 
# |            613: ; %bb.0: ; %entry 
# |            614:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2598'0                                             X error: no match found
# |            615:  v_max3_i32 v0, v0, v1, v2 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2598'1      ?                          possible intended match
# |            616:  s_setpc_b64 s[30:31] 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            617: .Lfunc_end11: 
# | next:2598'0     ~~~~~~~~~~~~~~
# |            618:  .size test_vector_reduce_smax_v3i32, .Lfunc_end11-test_vector_reduce_smax_v3i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            619:  ; -- End function 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~
# |            620:  .set .Ltest_vector_reduce_smax_v3i32.num_vgpr, 3 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            649:  .globl test_vector_reduce_smax_v4i32 ; -- Begin function test_vector_reduce_smax_v4i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            650:  .p2align 6 
# | next:2598'0     ~~~~~~~~~~~~
# |            651:  .type test_vector_reduce_smax_v4i32,@function 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            652: test_vector_reduce_smax_v4i32: ; @test_vector_reduce_smax_v4i32 
# | next:2598'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            653: ; %bb.0: ; %entry 
# |            654:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2692'0                                             X error: no match found
# |            655:  v_max_i32_e32 v1, v1, v3 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2692'1      ?                         possible intended match
# |            656:  v_max3_i32 v0, v0, v2, v1 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            657:  s_setpc_b64 s[30:31] 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            658: .Lfunc_end12: 
# | next:2692'0     ~~~~~~~~~~~~~~
# |            659:  .size test_vector_reduce_smax_v4i32, .Lfunc_end12-test_vector_reduce_smax_v4i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            660:  ; -- End function 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            690:  .globl test_vector_reduce_smax_v8i32 ; -- Begin function test_vector_reduce_smax_v8i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            691:  .p2align 6 
# | next:2692'0     ~~~~~~~~~~~~
# |            692:  .type test_vector_reduce_smax_v8i32,@function 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            693: test_vector_reduce_smax_v8i32: ; @test_vector_reduce_smax_v8i32 
# | next:2692'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            694: ; %bb.0: ; %entry 
# |            695:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2801'0                                             X error: no match found
# |            696:  v_max_i32_e32 v2, v2, v6 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            697:  v_max_i32_e32 v3, v3, v7 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            698:  v_max3_i32 v0, v0, v4, v2 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            699:  v_max3_i32 v1, v1, v5, v3 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            700:  v_max_i32_e32 v0, v0, v1 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2801'1      ?                         possible intended match
# |            701:  s_setpc_b64 s[30:31] 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            702: .Lfunc_end13: 
# | next:2801'0     ~~~~~~~~~~~~~~
# |            703:  .size test_vector_reduce_smax_v8i32, .Lfunc_end13-test_vector_reduce_smax_v8i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            704:  ; -- End function 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~
# |            705:  .set .Ltest_vector_reduce_smax_v8i32.num_vgpr, 8 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            734:  .globl test_vector_reduce_smax_v16i32 ; -- Begin function test_vector_reduce_smax_v16i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            735:  .p2align 6 
# | next:2801'0     ~~~~~~~~~~~~
# |            736:  .type test_vector_reduce_smax_v16i32,@function 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            737: test_vector_reduce_smax_v16i32: ; @test_vector_reduce_smax_v16i32 
# | next:2801'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            738: ; %bb.0: ; %entry 
# |            739:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2952'0                                             X error: no match found
# |            740:  v_max_i32_e32 v5, v5, v13 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2952'1      ?                          possible intended match
# |            741:  v_max_i32_e32 v7, v7, v15 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            742:  v_max_i32_e32 v4, v4, v12 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            743:  v_max_i32_e32 v6, v6, v14 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            744:  v_max3_i32 v1, v1, v9, v5 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            745:  v_max3_i32 v3, v3, v11, v7 
# | next:2952'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-smin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:152:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:24: note: scanning from here
# |  v_bfe_i32 v1, v1, 0, 8
# |                        ^
# | <stdin>:64:2: note: possible intended match here
# |  v_min3_i32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:315:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v1, v1, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:625:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:168:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:162:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:163:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v2, v2, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:1060:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v0, v0, 0, 8
# |                    ^
# | <stdin>:245:2: note: 'next' match was here
# |  v_bfe_i32 v0, v0, 0, 8
# |  ^
# | <stdin>:228:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:229:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v4, v4, 0, 8
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:1777:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v2, v0
# |                    ^
# | <stdin>:356:26: note: scanning from here
# |  v_bfe_i32 v0, v0, 16, 16
# |                          ^
# | <stdin>:358:2: note: possible intended match here
# |  v_min3_i32 v0, v2, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:1922:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v2, v2, v3
# |                    ^
# | <stdin>:401:26: note: scanning from here
# |  v_bfe_i32 v1, v1, 16, 16
# |                          ^
# | <stdin>:402:2: note: possible intended match here
# |  v_min_i32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2075:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v4, v0, 0, 16
# |                    ^
# | <stdin>:452:2: note: 'next' match was here
# |  v_bfe_i32 v4, v0, 0, 16
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v6, v1, 0, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2287:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_bfe_i32 v8, v0, 0, 16
# |                    ^
# | <stdin>:515:2: note: 'next' match was here
# |  v_bfe_i32 v8, v0, 0, 16
# |  ^
# | <stdin>:504:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:505:1: note: non-matching line after previous match is here
# |  v_bfe_i32 v12, v2, 0, 16
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2597:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v1
# |                    ^
# | <stdin>:614:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:615:2: note: possible intended match here
# |  v_min3_i32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2691:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v2
# |                    ^
# | <stdin>:654:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:655:2: note: possible intended match here
# |  v_min_i32_e32 v1, v1, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2800:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v4
# |                    ^
# | <stdin>:695:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:700:2: note: possible intended match here
# |  v_min_i32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll:2951:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_i32_e32 v0, v0, v8
# |                    ^
# | <stdin>:739:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:740:2: note: possible intended match here
# |  v_min_i32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-smin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_smin_v3i8,@function 
# |             58: test_vector_reduce_smin_v3i8: ; @test_vector_reduce_smin_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_bfe_i32 v0, v0, 0, 8 
# |             62:  v_bfe_i32 v1, v1, 0, 8 
# | next:152'0                             X error: no match found
# |             63:  v_bfe_i32 v2, v2, 0, 8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_min3_i32 v0, v0, v1, v2 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:152'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:152'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_smin_v3i8, .Lfunc_end1-test_vector_reduce_smin_v3i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_smin_v3i8.num_vgpr, 3 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_smin_v4i8: ; @test_vector_reduce_smin_v4i8 
# | next:152'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_bfe_i32 v1, v1, 0, 8 
# |            105:  v_bfe_i32 v3, v3, 0, 8 
# |            106:  v_bfe_i32 v0, v0, 0, 8 
# | next:315         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_bfe_i32 v2, v2, 0, 8 
# |            108:  v_min_i32_e32 v1, v1, v3 
# |            109:  s_sext_i32_i8 s4, s4 
# |            110:  v_min3_i32 v0, v0, v2, v1 
# |            111:  v_min_i32_e32 v1, s4, v1 
# |              .
# |              .
# |              .
# |            163:  v_bfe_i32 v2, v2, 0, 8 
# |            164:  v_bfe_i32 v6, v6, 0, 8 
# |            165:  v_min_i32_e32 v2, v2, v6 
# |            166:  v_bfe_i32 v3, v3, 0, 8 
# |            167:  v_bfe_i32 v6, v7, 0, 8 
# |            168:  v_bfe_i32 v0, v0, 0, 8 
# | next:625         !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            169:  v_bfe_i32 v4, v4, 0, 8 
# |            170:  v_bfe_i32 v1, v1, 0, 8 
# |            171:  v_bfe_i32 v5, v5, 0, 8 
# |            172:  v_min_i32_e32 v3, v3, v6 
# |            173:  s_sext_i32_i8 s4, s4 
# |              .
# |              .
# |              .
# |            240:  v_bfe_i32 v1, v1, 0, 8 
# |            241:  v_bfe_i32 v9, v9, 0, 8 
# |            242:  v_bfe_i32 v3, v3, 0, 8 
# |            243:  v_bfe_i32 v11, v11, 0, 8 
# |            244:  v_min_i32_e32 v7, v7, v12 
# |            245:  v_bfe_i32 v0, v0, 0, 8 
# | next:1060        !~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            246:  v_bfe_i32 v8, v8, 0, 8 
# |            247:  v_bfe_i32 v2, v2, 0, 8 
# |            248:  v_bfe_i32 v10, v10, 0, 8 
# |            249:  v_min3_i32 v1, v1, v9, v5 
# |            250:  v_min3_i32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            351:  .type test_vector_reduce_smin_v3i16,@function 
# |            352: test_vector_reduce_smin_v3i16: ; @test_vector_reduce_smin_v3i16 
# |            353: ; %bb.0: ; %entry 
# |            354:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            355:  v_bfe_i32 v2, v0, 0, 16 
# |            356:  v_bfe_i32 v0, v0, 16, 16 
# | next:1777'0                              X error: no match found
# |            357:  v_bfe_i32 v1, v1, 0, 16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            358:  v_min3_i32 v0, v2, v0, v1 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1777'1      ?                          possible intended match
# |            359:  s_setpc_b64 s[30:31] 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            360: .Lfunc_end6: 
# | next:1777'0     ~~~~~~~~~~~~~
# |            361:  .size test_vector_reduce_smin_v3i16, .Lfunc_end6-test_vector_reduce_smin_v3i16 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            362:  ; -- End function 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~
# |            363:  .set .Ltest_vector_reduce_smin_v3i16.num_vgpr, 3 
# | next:1777'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            396: ; %bb.0: ; %entry 
# |            397:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            398:  v_bfe_i32 v2, v0, 0, 16 
# |            399:  v_bfe_i32 v3, v1, 0, 16 
# |            400:  v_bfe_i32 v0, v0, 16, 16 
# |            401:  v_bfe_i32 v1, v1, 16, 16 
# | next:1922'0                              X error: no match found
# |            402:  v_min_i32_e32 v0, v0, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1922'1      ?                         possible intended match
# |            403:  v_min3_i32 v1, v2, v3, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            404:  v_min_i32_e32 v0, 0, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            405:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            406:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            407:  v_lshlrev_b32_e32 v0, 16, v0 
# | next:1922'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            447:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            448:  v_bfe_i32 v6, v1, 0, 16 
# |            449:  v_bfe_i32 v7, v3, 0, 16 
# |            450:  v_bfe_i32 v1, v1, 16, 16 
# |            451:  v_bfe_i32 v3, v3, 16, 16 
# |            452:  v_bfe_i32 v4, v0, 0, 16 
# | next:2075        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            453:  v_bfe_i32 v5, v2, 0, 16 
# |            454:  v_bfe_i32 v0, v0, 16, 16 
# |            455:  v_bfe_i32 v2, v2, 16, 16 
# |            456:  v_min_i32_e32 v6, v6, v7 
# |            457:  v_min_i32_e32 v1, v1, v3 
# |              .
# |              .
# |              .
# |            510:  v_min_i32_e32 v2, v2, v6 
# |            511:  v_bfe_i32 v6, v3, 0, 16 
# |            512:  v_bfe_i32 v13, v7, 0, 16 
# |            513:  v_bfe_i32 v3, v3, 16, 16 
# |            514:  v_bfe_i32 v7, v7, 16, 16 
# |            515:  v_bfe_i32 v8, v0, 0, 16 
# | next:2287        !~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            516:  v_bfe_i32 v9, v4, 0, 16 
# |            517:  v_bfe_i32 v0, v0, 16, 16 
# |            518:  v_bfe_i32 v4, v4, 16, 16 
# |            519:  v_bfe_i32 v10, v1, 0, 16 
# |            520:  v_bfe_i32 v11, v5, 0, 16 
# |              .
# |              .
# |              .
# |            609:  .globl test_vector_reduce_smin_v3i32 ; -- Begin function test_vector_reduce_smin_v3i32 
# |            610:  .p2align 6 
# |            611:  .type test_vector_reduce_smin_v3i32,@function 
# |            612: test_vector_reduce_smin_v3i32: ; @test_vector_reduce_smin_v3i32 
# |            613: ; %bb.0: ; %entry 
# |            614:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2597'0                                             X error: no match found
# |            615:  v_min3_i32 v0, v0, v1, v2 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2597'1      ?                          possible intended match
# |            616:  s_setpc_b64 s[30:31] 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            617: .Lfunc_end11: 
# | next:2597'0     ~~~~~~~~~~~~~~
# |            618:  .size test_vector_reduce_smin_v3i32, .Lfunc_end11-test_vector_reduce_smin_v3i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            619:  ; -- End function 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~
# |            620:  .set .Ltest_vector_reduce_smin_v3i32.num_vgpr, 3 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            649:  .globl test_vector_reduce_smin_v4i32 ; -- Begin function test_vector_reduce_smin_v4i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            650:  .p2align 6 
# | next:2597'0     ~~~~~~~~~~~~
# |            651:  .type test_vector_reduce_smin_v4i32,@function 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            652: test_vector_reduce_smin_v4i32: ; @test_vector_reduce_smin_v4i32 
# | next:2597'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            653: ; %bb.0: ; %entry 
# |            654:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2691'0                                             X error: no match found
# |            655:  v_min_i32_e32 v1, v1, v3 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2691'1      ?                         possible intended match
# |            656:  v_min3_i32 v0, v0, v2, v1 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            657:  s_setpc_b64 s[30:31] 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            658: .Lfunc_end12: 
# | next:2691'0     ~~~~~~~~~~~~~~
# |            659:  .size test_vector_reduce_smin_v4i32, .Lfunc_end12-test_vector_reduce_smin_v4i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            660:  ; -- End function 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            690:  .globl test_vector_reduce_smin_v8i32 ; -- Begin function test_vector_reduce_smin_v8i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            691:  .p2align 6 
# | next:2691'0     ~~~~~~~~~~~~
# |            692:  .type test_vector_reduce_smin_v8i32,@function 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            693: test_vector_reduce_smin_v8i32: ; @test_vector_reduce_smin_v8i32 
# | next:2691'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            694: ; %bb.0: ; %entry 
# |            695:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2800'0                                             X error: no match found
# |            696:  v_min_i32_e32 v2, v2, v6 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            697:  v_min_i32_e32 v3, v3, v7 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            698:  v_min3_i32 v0, v0, v4, v2 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            699:  v_min3_i32 v1, v1, v5, v3 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            700:  v_min_i32_e32 v0, v0, v1 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2800'1      ?                         possible intended match
# |            701:  s_setpc_b64 s[30:31] 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            702: .Lfunc_end13: 
# | next:2800'0     ~~~~~~~~~~~~~~
# |            703:  .size test_vector_reduce_smin_v8i32, .Lfunc_end13-test_vector_reduce_smin_v8i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            704:  ; -- End function 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~
# |            705:  .set .Ltest_vector_reduce_smin_v8i32.num_vgpr, 8 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            734:  .globl test_vector_reduce_smin_v16i32 ; -- Begin function test_vector_reduce_smin_v16i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            735:  .p2align 6 
# | next:2800'0     ~~~~~~~~~~~~
# |            736:  .type test_vector_reduce_smin_v16i32,@function 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            737: test_vector_reduce_smin_v16i32: ; @test_vector_reduce_smin_v16i32 
# | next:2800'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            738: ; %bb.0: ; %entry 
# |            739:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2951'0                                             X error: no match found
# |            740:  v_min_i32_e32 v5, v5, v13 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2951'1      ?                          possible intended match
# |            741:  v_min_i32_e32 v7, v7, v15 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            742:  v_min_i32_e32 v4, v4, v12 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            743:  v_min_i32_e32 v6, v6, v14 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            744:  v_min3_i32 v1, v1, v9, v5 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            745:  v_min3_i32 v3, v3, v11, v7 
# | next:2951'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-umax.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:150:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:28: note: scanning from here
# |  v_and_b32_e32 v1, 0xff, v1
# |                            ^
# | <stdin>:64:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:297:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v1, 0xff, v1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:591:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:163:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:157:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:158:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v2, 0xff, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:986:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:235:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:218:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:219:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v4, 0xff, v4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:1664:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:339:30: note: scanning from here
# |  v_and_b32_e32 v0, 0xffff, v0
# |                              ^
# | <stdin>:341:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v2, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:1803:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:384:30: note: scanning from here
# |  v_and_b32_e32 v1, 0xffff, v1
# |                              ^
# | <stdin>:385:2: note: possible intended match here
# |  v_max_u32_e32 v2, v2, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:1954:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v0
# |                    ^
# | <stdin>:433:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v4, 16, v0
# |  ^
# | <stdin>:428:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:429:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v5, 16, v1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:2165:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v8, 16, v0
# |                    ^
# | <stdin>:492:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v8, 16, v0
# |  ^
# | <stdin>:483:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:484:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v10, 16, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:2473:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:591:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:592:2: note: possible intended match here
# |  v_max3_u32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:2567:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:631:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:632:2: note: possible intended match here
# |  v_max_u32_e32 v1, v1, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:2676:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v4
# |                    ^
# | <stdin>:672:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:677:2: note: possible intended match here
# |  v_max_u32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll:2827:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_max_u32_e32 v0, v0, v8
# |                    ^
# | <stdin>:716:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:717:2: note: possible intended match here
# |  v_max_u32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umax.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_umax_v3i8,@function 
# |             58: test_vector_reduce_umax_v3i8: ; @test_vector_reduce_umax_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_and_b32_e32 v0, 0xff, v0 
# |             62:  v_and_b32_e32 v1, 0xff, v1 
# | next:150'0                                 X error: no match found
# |             63:  v_and_b32_e32 v2, 0xff, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_max3_u32 v0, v0, v1, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:150'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:150'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_umax_v3i8, .Lfunc_end1-test_vector_reduce_umax_v3i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_umax_v3i8.num_vgpr, 3 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_umax_v4i8: ; @test_vector_reduce_umax_v4i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_and_b32_e32 v1, 0xff, v1 
# |            105:  v_and_b32_e32 v3, 0xff, v3 
# |            106:  v_and_b32_e32 v0, 0xff, v0 
# | next:297         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_and_b32_e32 v2, 0xff, v2 
# |            108:  v_max_u32_e32 v1, v1, v3 
# |            109:  v_max3_u32 v0, v0, v2, v1 
# |            110:  v_max_u32_e32 v1, 0, v1 
# |            111:  v_max3_u32 v2, v2, 0, 0 
# |              .
# |              .
# |              .
# |            158:  v_and_b32_e32 v2, 0xff, v2 
# |            159:  v_and_b32_e32 v6, 0xff, v6 
# |            160:  v_max_u32_e32 v2, v2, v6 
# |            161:  v_and_b32_e32 v3, 0xff, v3 
# |            162:  v_and_b32_e32 v6, 0xff, v7 
# |            163:  v_and_b32_e32 v0, 0xff, v0 
# | next:591         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            164:  v_and_b32_e32 v4, 0xff, v4 
# |            165:  v_and_b32_e32 v1, 0xff, v1 
# |            166:  v_and_b32_e32 v5, 0xff, v5 
# |            167:  v_max_u32_e32 v3, v3, v6 
# |            168:  v_max3_u32 v0, v0, v4, v2 
# |              .
# |              .
# |              .
# |            230:  v_and_b32_e32 v1, 0xff, v1 
# |            231:  v_and_b32_e32 v9, 0xff, v9 
# |            232:  v_and_b32_e32 v3, 0xff, v3 
# |            233:  v_and_b32_e32 v11, 0xff, v11 
# |            234:  v_max_u32_e32 v7, v7, v12 
# |            235:  v_and_b32_e32 v0, 0xff, v0 
# | next:986         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            236:  v_and_b32_e32 v8, 0xff, v8 
# |            237:  v_and_b32_e32 v2, 0xff, v2 
# |            238:  v_and_b32_e32 v10, 0xff, v10 
# |            239:  v_max3_u32 v1, v1, v9, v5 
# |            240:  v_max3_u32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            334:  .type test_vector_reduce_umax_v3i16,@function 
# |            335: test_vector_reduce_umax_v3i16: ; @test_vector_reduce_umax_v3i16 
# |            336: ; %bb.0: ; %entry 
# |            337:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            338:  v_lshrrev_b32_e32 v2, 16, v0 
# |            339:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1664'0                                  X error: no match found
# |            340:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            341:  v_max3_u32 v0, v0, v2, v1 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1664'1      ?                          possible intended match
# |            342:  s_setpc_b64 s[30:31] 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            343: .Lfunc_end6: 
# | next:1664'0     ~~~~~~~~~~~~~
# |            344:  .size test_vector_reduce_umax_v3i16, .Lfunc_end6-test_vector_reduce_umax_v3i16 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            345:  ; -- End function 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~
# |            346:  .set .Ltest_vector_reduce_umax_v3i16.num_vgpr, 3 
# | next:1664'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            379: ; %bb.0: ; %entry 
# |            380:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            381:  v_lshrrev_b32_e32 v2, 16, v0 
# |            382:  v_lshrrev_b32_e32 v3, 16, v1 
# |            383:  v_and_b32_e32 v0, 0xffff, v0 
# |            384:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1803'0                                  X error: no match found
# |            385:  v_max_u32_e32 v2, v2, v3 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1803'1      ?                         possible intended match
# |            386:  v_max3_u32 v0, v0, v1, v2 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            387:  v_max_u32_e32 v1, 0, v2 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  v_lshlrev_b32_e32 v1, 16, v1 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            389:  v_or_b32_e32 v0, v0, v1 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            390:  s_setpc_b64 s[30:31] 
# | next:1803'0     ~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            428:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            429:  v_lshrrev_b32_e32 v5, 16, v1 
# |            430:  v_lshrrev_b32_e32 v7, 16, v3 
# |            431:  v_and_b32_e32 v1, 0xffff, v1 
# |            432:  v_and_b32_e32 v3, 0xffff, v3 
# |            433:  v_lshrrev_b32_e32 v4, 16, v0 
# | next:1954        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            434:  v_lshrrev_b32_e32 v6, 16, v2 
# |            435:  v_and_b32_e32 v0, 0xffff, v0 
# |            436:  v_and_b32_e32 v2, 0xffff, v2 
# |            437:  v_max_u32_e32 v1, v1, v3 
# |            438:  v_max_u32_e32 v3, v5, v7 
# |              .
# |              .
# |              .
# |            487:  v_lshrrev_b32_e32 v15, 16, v7 
# |            488:  v_and_b32_e32 v2, 0xffff, v2 
# |            489:  v_and_b32_e32 v6, 0xffff, v6 
# |            490:  v_and_b32_e32 v3, 0xffff, v3 
# |            491:  v_and_b32_e32 v7, 0xffff, v7 
# |            492:  v_lshrrev_b32_e32 v8, 16, v0 
# | next:2165        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            493:  v_lshrrev_b32_e32 v9, 16, v1 
# |            494:  v_lshrrev_b32_e32 v12, 16, v4 
# |            495:  v_lshrrev_b32_e32 v13, 16, v5 
# |            496:  v_and_b32_e32 v0, 0xffff, v0 
# |            497:  v_and_b32_e32 v4, 0xffff, v4 
# |              .
# |              .
# |              .
# |            586:  .globl test_vector_reduce_umax_v3i32 ; -- Begin function test_vector_reduce_umax_v3i32 
# |            587:  .p2align 6 
# |            588:  .type test_vector_reduce_umax_v3i32,@function 
# |            589: test_vector_reduce_umax_v3i32: ; @test_vector_reduce_umax_v3i32 
# |            590: ; %bb.0: ; %entry 
# |            591:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2473'0                                             X error: no match found
# |            592:  v_max3_u32 v0, v0, v1, v2 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2473'1      ?                          possible intended match
# |            593:  s_setpc_b64 s[30:31] 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            594: .Lfunc_end11: 
# | next:2473'0     ~~~~~~~~~~~~~~
# |            595:  .size test_vector_reduce_umax_v3i32, .Lfunc_end11-test_vector_reduce_umax_v3i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            596:  ; -- End function 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~
# |            597:  .set .Ltest_vector_reduce_umax_v3i32.num_vgpr, 3 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            626:  .globl test_vector_reduce_umax_v4i32 ; -- Begin function test_vector_reduce_umax_v4i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            627:  .p2align 6 
# | next:2473'0     ~~~~~~~~~~~~
# |            628:  .type test_vector_reduce_umax_v4i32,@function 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            629: test_vector_reduce_umax_v4i32: ; @test_vector_reduce_umax_v4i32 
# | next:2473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            630: ; %bb.0: ; %entry 
# |            631:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2567'0                                             X error: no match found
# |            632:  v_max_u32_e32 v1, v1, v3 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2567'1      ?                         possible intended match
# |            633:  v_max3_u32 v0, v0, v2, v1 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            634:  s_setpc_b64 s[30:31] 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            635: .Lfunc_end12: 
# | next:2567'0     ~~~~~~~~~~~~~~
# |            636:  .size test_vector_reduce_umax_v4i32, .Lfunc_end12-test_vector_reduce_umax_v4i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            637:  ; -- End function 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            667:  .globl test_vector_reduce_umax_v8i32 ; -- Begin function test_vector_reduce_umax_v8i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            668:  .p2align 6 
# | next:2567'0     ~~~~~~~~~~~~
# |            669:  .type test_vector_reduce_umax_v8i32,@function 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            670: test_vector_reduce_umax_v8i32: ; @test_vector_reduce_umax_v8i32 
# | next:2567'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            671: ; %bb.0: ; %entry 
# |            672:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2676'0                                             X error: no match found
# |            673:  v_max_u32_e32 v2, v2, v6 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            674:  v_max_u32_e32 v3, v3, v7 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            675:  v_max3_u32 v0, v0, v4, v2 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            676:  v_max3_u32 v1, v1, v5, v3 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            677:  v_max_u32_e32 v0, v0, v1 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2676'1      ?                         possible intended match
# |            678:  s_setpc_b64 s[30:31] 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            679: .Lfunc_end13: 
# | next:2676'0     ~~~~~~~~~~~~~~
# |            680:  .size test_vector_reduce_umax_v8i32, .Lfunc_end13-test_vector_reduce_umax_v8i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            681:  ; -- End function 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~
# |            682:  .set .Ltest_vector_reduce_umax_v8i32.num_vgpr, 8 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            711:  .globl test_vector_reduce_umax_v16i32 ; -- Begin function test_vector_reduce_umax_v16i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            712:  .p2align 6 
# | next:2676'0     ~~~~~~~~~~~~
# |            713:  .type test_vector_reduce_umax_v16i32,@function 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            714: test_vector_reduce_umax_v16i32: ; @test_vector_reduce_umax_v16i32 
# | next:2676'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            715: ; %bb.0: ; %entry 
# |            716:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2827'0                                             X error: no match found
# |            717:  v_max_u32_e32 v5, v5, v13 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2827'1      ?                          possible intended match
# |            718:  v_max_u32_e32 v7, v7, v15 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            719:  v_max_u32_e32 v4, v4, v12 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            720:  v_max_u32_e32 v6, v6, v14 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            721:  v_max3_u32 v1, v1, v9, v5 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            722:  v_max3_u32 v3, v3, v11, v7 
# | next:2827'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/AMDGPU/vector-reduce-umin.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=0 -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-SDAG C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=0 -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-SDAG 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX7,GFX7-GISEL C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -global-isel=1 -new-reg-bank-select -mtriple=amdgcn -mcpu=gfx700
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX7,GFX7-GISEL 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:150:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:62:28: note: scanning from here
# |  v_and_b32_e32 v1, 0xff, v1
# |                            ^
# | <stdin>:64:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:297:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:106:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:103:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:104:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v1, 0xff, v1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:504:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:154:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:148:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:149:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v2, 0xff, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:816:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_and_b32_e32 v0, 0xff, v0
# |                    ^
# | <stdin>:217:2: note: 'next' match was here
# |  v_and_b32_e32 v0, 0xff, v0
# |  ^
# | <stdin>:200:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:201:1: note: non-matching line after previous match is here
# |  v_and_b32_e32 v4, 0xff, v4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:1403:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:309:30: note: scanning from here
# |  v_and_b32_e32 v0, 0xffff, v0
# |                              ^
# | <stdin>:311:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v2, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:1543:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:354:30: note: scanning from here
# |  v_and_b32_e32 v1, 0xffff, v1
# |                              ^
# | <stdin>:355:2: note: possible intended match here
# |  v_min_u32_e32 v2, v2, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:1691:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v0
# |                    ^
# | <stdin>:400:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v4, 16, v0
# |  ^
# | <stdin>:395:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:396:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v5, 16, v1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:1899:20: error: GFX7-GISEL-NEXT: is not on the line after the previous match
# | ; GFX7-GISEL-NEXT: v_lshrrev_b32_e32 v8, 16, v0
# |                    ^
# | <stdin>:456:2: note: 'next' match was here
# |  v_lshrrev_b32_e32 v8, 16, v0
# |  ^
# | <stdin>:447:41: note: previous match ended here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:448:1: note: non-matching line after previous match is here
# |  v_lshrrev_b32_e32 v10, 16, v2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:2204:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v1
# |                    ^
# | <stdin>:552:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:553:2: note: possible intended match here
# |  v_min3_u32 v0, v0, v1, v2
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:2298:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v2
# |                    ^
# | <stdin>:592:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:593:2: note: possible intended match here
# |  v_min_u32_e32 v1, v1, v3
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:2407:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v4
# |                    ^
# | <stdin>:633:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:638:2: note: possible intended match here
# |  v_min_u32_e32 v0, v0, v1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll:2558:20: error: GFX7-GISEL-NEXT: expected string not found in input
# | ; GFX7-GISEL-NEXT: v_min_u32_e32 v0, v0, v8
# |                    ^
# | <stdin>:677:41: note: scanning from here
# |  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# |                                         ^
# | <stdin>:678:2: note: possible intended match here
# |  v_min_u32_e32 v5, v5, v13
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\vector-reduce-umin.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             57:  .type test_vector_reduce_umin_v3i8,@function 
# |             58: test_vector_reduce_umin_v3i8: ; @test_vector_reduce_umin_v3i8 
# |             59: ; %bb.0: ; %entry 
# |             60:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |             61:  v_and_b32_e32 v0, 0xff, v0 
# |             62:  v_and_b32_e32 v1, 0xff, v1 
# | next:150'0                                 X error: no match found
# |             63:  v_and_b32_e32 v2, 0xff, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             64:  v_min3_u32 v0, v0, v1, v2 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:150'1       ?                          possible intended match
# |             65:  s_setpc_b64 s[30:31] 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~
# |             66: .Lfunc_end1: 
# | next:150'0      ~~~~~~~~~~~~~
# |             67:  .size test_vector_reduce_umin_v3i8, .Lfunc_end1-test_vector_reduce_umin_v3i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             68:  ; -- End function 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~
# |             69:  .set .Ltest_vector_reduce_umin_v3i8.num_vgpr, 3 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            101: test_vector_reduce_umin_v4i8: ; @test_vector_reduce_umin_v4i8 
# | next:150'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: ; %bb.0: ; %entry 
# |            103:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            104:  v_and_b32_e32 v1, 0xff, v1 
# |            105:  v_and_b32_e32 v3, 0xff, v3 
# |            106:  v_and_b32_e32 v0, 0xff, v0 
# | next:297         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            107:  v_and_b32_e32 v2, 0xff, v2 
# |            108:  v_min_u32_e32 v1, v1, v3 
# |            109:  v_min3_u32 v0, v0, v2, v1 
# |            110:  s_setpc_b64 s[30:31] 
# |            111: .Lfunc_end2: 
# |              .
# |              .
# |              .
# |            149:  v_and_b32_e32 v2, 0xff, v2 
# |            150:  v_and_b32_e32 v6, 0xff, v6 
# |            151:  v_min_u32_e32 v2, v2, v6 
# |            152:  v_and_b32_e32 v3, 0xff, v3 
# |            153:  v_and_b32_e32 v6, 0xff, v7 
# |            154:  v_and_b32_e32 v0, 0xff, v0 
# | next:504         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            155:  v_and_b32_e32 v4, 0xff, v4 
# |            156:  v_and_b32_e32 v1, 0xff, v1 
# |            157:  v_and_b32_e32 v5, 0xff, v5 
# |            158:  v_min_u32_e32 v3, v3, v6 
# |            159:  v_min3_u32 v0, v0, v4, v2 
# |              .
# |              .
# |              .
# |            212:  v_and_b32_e32 v1, 0xff, v1 
# |            213:  v_and_b32_e32 v9, 0xff, v9 
# |            214:  v_and_b32_e32 v3, 0xff, v3 
# |            215:  v_and_b32_e32 v11, 0xff, v11 
# |            216:  v_min_u32_e32 v7, v7, v12 
# |            217:  v_and_b32_e32 v0, 0xff, v0 
# | next:816         !~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            218:  v_and_b32_e32 v8, 0xff, v8 
# |            219:  v_and_b32_e32 v2, 0xff, v2 
# |            220:  v_and_b32_e32 v10, 0xff, v10 
# |            221:  v_min3_u32 v1, v1, v9, v5 
# |            222:  v_min3_u32 v3, v3, v11, v7 
# |              .
# |              .
# |              .
# |            304:  .type test_vector_reduce_umin_v3i16,@function 
# |            305: test_vector_reduce_umin_v3i16: ; @test_vector_reduce_umin_v3i16 
# |            306: ; %bb.0: ; %entry 
# |            307:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            308:  v_lshrrev_b32_e32 v2, 16, v0 
# |            309:  v_and_b32_e32 v0, 0xffff, v0 
# | next:1403'0                                  X error: no match found
# |            310:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            311:  v_min3_u32 v0, v0, v2, v1 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1403'1      ?                          possible intended match
# |            312:  s_setpc_b64 s[30:31] 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            313: .Lfunc_end6: 
# | next:1403'0     ~~~~~~~~~~~~~
# |            314:  .size test_vector_reduce_umin_v3i16, .Lfunc_end6-test_vector_reduce_umin_v3i16 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            315:  ; -- End function 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~
# |            316:  .set .Ltest_vector_reduce_umin_v3i16.num_vgpr, 3 
# | next:1403'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            349: ; %bb.0: ; %entry 
# |            350:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            351:  v_lshrrev_b32_e32 v2, 16, v0 
# |            352:  v_lshrrev_b32_e32 v3, 16, v1 
# |            353:  v_and_b32_e32 v0, 0xffff, v0 
# |            354:  v_and_b32_e32 v1, 0xffff, v1 
# | next:1543'0                                  X error: no match found
# |            355:  v_min_u32_e32 v2, v2, v3 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1543'1      ?                         possible intended match
# |            356:  v_min3_u32 v0, v0, v1, v2 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            357:  s_setpc_b64 s[30:31] 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            358: .Lfunc_end7: 
# | next:1543'0     ~~~~~~~~~~~~~
# |            359:  .size test_vector_reduce_umin_v4i16, .Lfunc_end7-test_vector_reduce_umin_v4i16 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            360:  ; -- End function 
# | next:1543'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            395:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            396:  v_lshrrev_b32_e32 v5, 16, v1 
# |            397:  v_lshrrev_b32_e32 v7, 16, v3 
# |            398:  v_and_b32_e32 v1, 0xffff, v1 
# |            399:  v_and_b32_e32 v3, 0xffff, v3 
# |            400:  v_lshrrev_b32_e32 v4, 16, v0 
# | next:1691        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            401:  v_lshrrev_b32_e32 v6, 16, v2 
# |            402:  v_and_b32_e32 v0, 0xffff, v0 
# |            403:  v_and_b32_e32 v2, 0xffff, v2 
# |            404:  v_min_u32_e32 v1, v1, v3 
# |            405:  v_min_u32_e32 v3, v5, v7 
# |              .
# |              .
# |              .
# |            451:  v_lshrrev_b32_e32 v15, 16, v7 
# |            452:  v_and_b32_e32 v2, 0xffff, v2 
# |            453:  v_and_b32_e32 v6, 0xffff, v6 
# |            454:  v_and_b32_e32 v3, 0xffff, v3 
# |            455:  v_and_b32_e32 v7, 0xffff, v7 
# |            456:  v_lshrrev_b32_e32 v8, 16, v0 
# | next:1899        !~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            457:  v_lshrrev_b32_e32 v9, 16, v1 
# |            458:  v_lshrrev_b32_e32 v12, 16, v4 
# |            459:  v_lshrrev_b32_e32 v13, 16, v5 
# |            460:  v_and_b32_e32 v0, 0xffff, v0 
# |            461:  v_and_b32_e32 v4, 0xffff, v4 
# |              .
# |              .
# |              .
# |            547:  .globl test_vector_reduce_umin_v3i32 ; -- Begin function test_vector_reduce_umin_v3i32 
# |            548:  .p2align 6 
# |            549:  .type test_vector_reduce_umin_v3i32,@function 
# |            550: test_vector_reduce_umin_v3i32: ; @test_vector_reduce_umin_v3i32 
# |            551: ; %bb.0: ; %entry 
# |            552:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2204'0                                             X error: no match found
# |            553:  v_min3_u32 v0, v0, v1, v2 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2204'1      ?                          possible intended match
# |            554:  s_setpc_b64 s[30:31] 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            555: .Lfunc_end11: 
# | next:2204'0     ~~~~~~~~~~~~~~
# |            556:  .size test_vector_reduce_umin_v3i32, .Lfunc_end11-test_vector_reduce_umin_v3i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            557:  ; -- End function 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~
# |            558:  .set .Ltest_vector_reduce_umin_v3i32.num_vgpr, 3 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            587:  .globl test_vector_reduce_umin_v4i32 ; -- Begin function test_vector_reduce_umin_v4i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            588:  .p2align 6 
# | next:2204'0     ~~~~~~~~~~~~
# |            589:  .type test_vector_reduce_umin_v4i32,@function 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            590: test_vector_reduce_umin_v4i32: ; @test_vector_reduce_umin_v4i32 
# | next:2204'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            591: ; %bb.0: ; %entry 
# |            592:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2298'0                                             X error: no match found
# |            593:  v_min_u32_e32 v1, v1, v3 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2298'1      ?                         possible intended match
# |            594:  v_min3_u32 v0, v0, v2, v1 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            595:  s_setpc_b64 s[30:31] 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            596: .Lfunc_end12: 
# | next:2298'0     ~~~~~~~~~~~~~~
# |            597:  .size test_vector_reduce_umin_v4i32, .Lfunc_end12-test_vector_reduce_umin_v4i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            598:  ; -- End function 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            628:  .globl test_vector_reduce_umin_v8i32 ; -- Begin function test_vector_reduce_umin_v8i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            629:  .p2align 6 
# | next:2298'0     ~~~~~~~~~~~~
# |            630:  .type test_vector_reduce_umin_v8i32,@function 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            631: test_vector_reduce_umin_v8i32: ; @test_vector_reduce_umin_v8i32 
# | next:2298'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            632: ; %bb.0: ; %entry 
# |            633:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2407'0                                             X error: no match found
# |            634:  v_min_u32_e32 v2, v2, v6 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            635:  v_min_u32_e32 v3, v3, v7 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            636:  v_min3_u32 v0, v0, v4, v2 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            637:  v_min3_u32 v1, v1, v5, v3 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            638:  v_min_u32_e32 v0, v0, v1 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2407'1      ?                         possible intended match
# |            639:  s_setpc_b64 s[30:31] 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            640: .Lfunc_end13: 
# | next:2407'0     ~~~~~~~~~~~~~~
# |            641:  .size test_vector_reduce_umin_v8i32, .Lfunc_end13-test_vector_reduce_umin_v8i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            642:  ; -- End function 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~
# |            643:  .set .Ltest_vector_reduce_umin_v8i32.num_vgpr, 8 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            672:  .globl test_vector_reduce_umin_v16i32 ; -- Begin function test_vector_reduce_umin_v16i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            673:  .p2align 6 
# | next:2407'0     ~~~~~~~~~~~~
# |            674:  .type test_vector_reduce_umin_v16i32,@function 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            675: test_vector_reduce_umin_v16i32: ; @test_vector_reduce_umin_v16i32 
# | next:2407'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            676: ; %bb.0: ; %entry 
# |            677:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | next:2558'0                                             X error: no match found
# |            678:  v_min_u32_e32 v5, v5, v13 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2558'1      ?                          possible intended match
# |            679:  v_min_u32_e32 v7, v7, v15 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            680:  v_min_u32_e32 v4, v4, v12 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            681:  v_min_u32_e32 v6, v6, v14 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            682:  v_min3_u32 v1, v1, v9, v5 
# | next:2558'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            683:  v_min3_u32 v3, v3, v11, v7 
# | next:2558'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.

@petar-avramovic
Copy link
Copy Markdown
Contributor

consider test with uniform input

define float @test_fmin3(float inreg %a, float inreg %b, float inreg %c) {
  %min1 = call float @llvm.minnum.f32(float %a, float %b)
  %min2 = call float @llvm.minnum.f32(float %min1, float %c)
  ret float %min2
}

new gpus will want to keep this on salu and select S_MIN_NUM_F32,
combine happens to early, needs to do to regbank combiner so perform combine only for vgprs.
try to write this for global-isel -new-reg-bank-select

also there might be some complications with canonicalization and variant of min/max used and different ieee formats. I assume it will not be easy like in this patch

@xiongzile xiongzile force-pushed the amdgpu/minmax3 branch 2 times, most recently from a9d849a to 45b0066 Compare May 29, 2026 18:20
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.

[AMDGPU][GISel] Missing FMAX3 use

3 participants