Skip to content

[SDAG] Drop select -> fmax/min folding in SelectionDAGBuilder#93575

Open
dtcxzyw wants to merge 4 commits intollvm:mainfrom
dtcxzyw:fix-93414
Open

[SDAG] Drop select -> fmax/min folding in SelectionDAGBuilder#93575
dtcxzyw wants to merge 4 commits intollvm:mainfrom
dtcxzyw:fix-93414

Conversation

@dtcxzyw
Copy link
Copy Markdown
Member

@dtcxzyw dtcxzyw commented May 28, 2024

As we already handle this pattern in InstCombine/DAGCombiner, I think it is ok to drop this folding in SelectionDAGBuilder to handle signed zero correctly.

Note: GlobalISel still suffers from this issue.

Fixes #93414.

@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented May 28, 2024

@llvm/pr-subscribers-backend-risc-v
@llvm/pr-subscribers-backend-arm
@llvm/pr-subscribers-backend-amdgpu
@llvm/pr-subscribers-backend-systemz
@llvm/pr-subscribers-backend-aarch64

@llvm/pr-subscribers-llvm-selectiondag

Author: Yingwei Zheng (dtcxzyw)

Changes

As we already handle this pattern in InstCombine/DAGCombiner, I think it is ok to drop this folding in SelectionDAGBuilder to handle signed zero correctly.

Fixes #93414.


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

6 Files Affected:

  • (modified) llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (+2-26)
  • (modified) llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll (+3-2)
  • (modified) llvm/test/CodeGen/AArch64/arm64-fmax.ll (+6-3)
  • (modified) llvm/test/CodeGen/AArch64/select_fmf.ll (+13-12)
  • (modified) llvm/test/CodeGen/AArch64/sve-pred-selectop.ll (+16-12)
  • (modified) llvm/test/CodeGen/RISCV/float-select-fcmp.ll (+26)
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index ca352da5d36eb..799f748fb786e 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -3725,32 +3725,8 @@ void SelectionDAGBuilder::visitSelect(const User &I) {
     case SPF_UMAX:    Opc = ISD::UMAX; break;
     case SPF_UMIN:    Opc = ISD::UMIN; break;
     case SPF_SMAX:    Opc = ISD::SMAX; break;
-    case SPF_SMIN:    Opc = ISD::SMIN; break;
-    case SPF_FMINNUM:
-      switch (SPR.NaNBehavior) {
-      case SPNB_NA: llvm_unreachable("No NaN behavior for FP op?");
-      case SPNB_RETURNS_NAN: break;
-      case SPNB_RETURNS_OTHER: Opc = ISD::FMINNUM; break;
-      case SPNB_RETURNS_ANY:
-        if (TLI.isOperationLegalOrCustom(ISD::FMINNUM, VT) ||
-            (UseScalarMinMax &&
-             TLI.isOperationLegalOrCustom(ISD::FMINNUM, VT.getScalarType())))
-          Opc = ISD::FMINNUM;
-        break;
-      }
-      break;
-    case SPF_FMAXNUM:
-      switch (SPR.NaNBehavior) {
-      case SPNB_NA: llvm_unreachable("No NaN behavior for FP op?");
-      case SPNB_RETURNS_NAN: break;
-      case SPNB_RETURNS_OTHER: Opc = ISD::FMAXNUM; break;
-      case SPNB_RETURNS_ANY:
-        if (TLI.isOperationLegalOrCustom(ISD::FMAXNUM, VT) ||
-            (UseScalarMinMax &&
-             TLI.isOperationLegalOrCustom(ISD::FMAXNUM, VT.getScalarType())))
-          Opc = ISD::FMAXNUM;
-        break;
-      }
+    case SPF_SMIN:
+      Opc = ISD::SMIN;
       break;
     case SPF_NABS:
       Negate = true;
diff --git a/llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll b/llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll
index 550e89f4a27f9..b96c3ffbd52a8 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll
@@ -23,7 +23,7 @@ define double @test_cross(float %in) {
 }
 
 ; Same as previous, but with ordered comparison;
-; must become fminnm, not fmin.
+; must become fcmp + fcsel, not fmin/fminnm.
 define double @test_cross_fail_nan(float %in) {
 ; CHECK-LABEL: test_cross_fail_nan:
   %cmp = fcmp olt float %in, 0.000000e+00
@@ -31,7 +31,8 @@ define double @test_cross_fail_nan(float %in) {
   %longer = fpext float %val to double
   ret double %longer
 
-; CHECK: fminnm s
+; CHECK: fcmp
+; CHECK: fcsel
 }
 
 ; This isn't a min or a max, but passes the first condition for swapping the
diff --git a/llvm/test/CodeGen/AArch64/arm64-fmax.ll b/llvm/test/CodeGen/AArch64/arm64-fmax.ll
index d7d54a6e48a92..b2fd4821cc6eb 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fmax.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fmax.ll
@@ -5,7 +5,8 @@ define double @test_direct(float %in) {
 ; CHECK-LABEL: test_direct:
 ; CHECK:       // %bb.0:
 ; CHECK-NEXT:    movi d1, #0000000000000000
-; CHECK-NEXT:    fmaxnm s0, s0, s1
+; CHECK-NEXT:    fcmp s0, #0.0
+; CHECK-NEXT:    fcsel s0, s1, s0, lt
 ; CHECK-NEXT:    fcvt d0, s0
 ; CHECK-NEXT:    ret
   %cmp = fcmp nnan olt float %in, 0.000000e+00
@@ -18,7 +19,8 @@ define double @test_cross(float %in) {
 ; CHECK-LABEL: test_cross:
 ; CHECK:       // %bb.0:
 ; CHECK-NEXT:    movi d1, #0000000000000000
-; CHECK-NEXT:    fminnm s0, s0, s1
+; CHECK-NEXT:    fcmp s0, #0.0
+; CHECK-NEXT:    fcsel s0, s0, s1, lt
 ; CHECK-NEXT:    fcvt d0, s0
 ; CHECK-NEXT:    ret
   %cmp = fcmp nnan ult float %in, 0.000000e+00
@@ -33,7 +35,8 @@ define double @test_cross_fail_nan(float %in) {
 ; CHECK-LABEL: test_cross_fail_nan:
 ; CHECK:       // %bb.0:
 ; CHECK-NEXT:    movi d1, #0000000000000000
-; CHECK-NEXT:    fminnm s0, s0, s1
+; CHECK-NEXT:    fcmp s0, #0.0
+; CHECK-NEXT:    fcsel s0, s0, s1, lt
 ; CHECK-NEXT:    fcvt d0, s0
 ; CHECK-NEXT:    ret
   %cmp = fcmp nnan olt float %in, 0.000000e+00
diff --git a/llvm/test/CodeGen/AArch64/select_fmf.ll b/llvm/test/CodeGen/AArch64/select_fmf.ll
index 92d8676ca04be..938217180676f 100644
--- a/llvm/test/CodeGen/AArch64/select_fmf.ll
+++ b/llvm/test/CodeGen/AArch64/select_fmf.ll
@@ -7,13 +7,14 @@
 define float @select_select_fold_select_and(float %w, float %x, float %y, float %z) {
 ; CHECK-LABEL: select_select_fold_select_and:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    fminnm s4, s1, s2
+; CHECK-NEXT:    fcmp s0, s3
+; CHECK-NEXT:    fcsel s4, s0, s3, gt
 ; CHECK-NEXT:    fcmp s1, s2
-; CHECK-NEXT:    fmaxnm s2, s0, s3
-; CHECK-NEXT:    fmov s1, #0.50000000
-; CHECK-NEXT:    fccmp s4, s0, #4, lt
-; CHECK-NEXT:    fadd s1, s0, s1
-; CHECK-NEXT:    fcsel s2, s2, s0, gt
+; CHECK-NEXT:    fcsel s1, s1, s2, lt
+; CHECK-NEXT:    fmov s2, #0.50000000
+; CHECK-NEXT:    fccmp s1, s0, #4, lt
+; CHECK-NEXT:    fadd s1, s0, s2
+; CHECK-NEXT:    fcsel s2, s4, s0, gt
 ; CHECK-NEXT:    fadd s4, s1, s2
 ; CHECK-NEXT:    fcmp s4, s1
 ; CHECK-NEXT:    b.le .LBB0_2
@@ -65,13 +66,13 @@ exit:                                     ; preds = %if.end.i159.i.i, %if.then.i
 define float @select_select_fold_select_or(float %w, float %x, float %y, float %z) {
 ; CHECK-LABEL: select_select_fold_select_or:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    fminnm s4, s1, s2
 ; CHECK-NEXT:    fcmp s1, s2
-; CHECK-NEXT:    fmaxnm s2, s0, s3
-; CHECK-NEXT:    fmov s1, #0.50000000
-; CHECK-NEXT:    fccmp s4, s0, #0, ge
-; CHECK-NEXT:    fadd s1, s0, s1
-; CHECK-NEXT:    fcsel s2, s0, s2, gt
+; CHECK-NEXT:    fcsel s1, s1, s2, lt
+; CHECK-NEXT:    fccmp s0, s3, #0, ge
+; CHECK-NEXT:    fmov s2, #0.50000000
+; CHECK-NEXT:    fccmp s1, s0, #0, le
+; CHECK-NEXT:    fadd s1, s0, s2
+; CHECK-NEXT:    fcsel s2, s0, s3, gt
 ; CHECK-NEXT:    fadd s4, s1, s2
 ; CHECK-NEXT:    fcmp s4, s1
 ; CHECK-NEXT:    b.le .LBB1_2
diff --git a/llvm/test/CodeGen/AArch64/sve-pred-selectop.ll b/llvm/test/CodeGen/AArch64/sve-pred-selectop.ll
index 8438e9d88f5de..6c3ff79f911bc 100644
--- a/llvm/test/CodeGen/AArch64/sve-pred-selectop.ll
+++ b/llvm/test/CodeGen/AArch64/sve-pred-selectop.ll
@@ -659,9 +659,10 @@ define <vscale x 4 x float> @fcmp_fast_olt_v4f32(<vscale x 4 x float> %z, <vscal
 ; CHECK-LABEL: fcmp_fast_olt_v4f32:
 ; CHECK:       // %bb.0: // %entry
 ; CHECK-NEXT:    ptrue p0.s
-; CHECK-NEXT:    fcmeq p1.s, p0/z, z0.s, #0.0
-; CHECK-NEXT:    fminnm z1.s, p0/m, z1.s, z2.s
-; CHECK-NEXT:    mov z0.s, p1/m, z1.s
+; CHECK-NEXT:    fcmgt p1.s, p0/z, z2.s, z1.s
+; CHECK-NEXT:    fcmeq p0.s, p0/z, z0.s, #0.0
+; CHECK-NEXT:    sel z1.s, p1, z1.s, z2.s
+; CHECK-NEXT:    mov z0.s, p0/m, z1.s
 ; CHECK-NEXT:    ret
 entry:
   %c = fcmp oeq <vscale x 4 x float> %z, zeroinitializer
@@ -675,9 +676,10 @@ define <vscale x 8 x half> @fcmp_fast_olt_v8f16(<vscale x 8 x half> %z, <vscale
 ; CHECK-LABEL: fcmp_fast_olt_v8f16:
 ; CHECK:       // %bb.0: // %entry
 ; CHECK-NEXT:    ptrue p0.h
-; CHECK-NEXT:    fcmeq p1.h, p0/z, z0.h, #0.0
-; CHECK-NEXT:    fminnm z1.h, p0/m, z1.h, z2.h
-; CHECK-NEXT:    mov z0.h, p1/m, z1.h
+; CHECK-NEXT:    fcmgt p1.h, p0/z, z2.h, z1.h
+; CHECK-NEXT:    fcmeq p0.h, p0/z, z0.h, #0.0
+; CHECK-NEXT:    sel z1.h, p1, z1.h, z2.h
+; CHECK-NEXT:    mov z0.h, p0/m, z1.h
 ; CHECK-NEXT:    ret
 entry:
   %c = fcmp oeq <vscale x 8 x half> %z, zeroinitializer
@@ -691,9 +693,10 @@ define <vscale x 4 x float> @fcmp_fast_ogt_v4f32(<vscale x 4 x float> %z, <vscal
 ; CHECK-LABEL: fcmp_fast_ogt_v4f32:
 ; CHECK:       // %bb.0: // %entry
 ; CHECK-NEXT:    ptrue p0.s
-; CHECK-NEXT:    fcmeq p1.s, p0/z, z0.s, #0.0
-; CHECK-NEXT:    fmaxnm z1.s, p0/m, z1.s, z2.s
-; CHECK-NEXT:    mov z0.s, p1/m, z1.s
+; CHECK-NEXT:    fcmgt p1.s, p0/z, z1.s, z2.s
+; CHECK-NEXT:    fcmeq p0.s, p0/z, z0.s, #0.0
+; CHECK-NEXT:    sel z1.s, p1, z1.s, z2.s
+; CHECK-NEXT:    mov z0.s, p0/m, z1.s
 ; CHECK-NEXT:    ret
 entry:
   %c = fcmp oeq <vscale x 4 x float> %z, zeroinitializer
@@ -707,9 +710,10 @@ define <vscale x 8 x half> @fcmp_fast_ogt_v8f16(<vscale x 8 x half> %z, <vscale
 ; CHECK-LABEL: fcmp_fast_ogt_v8f16:
 ; CHECK:       // %bb.0: // %entry
 ; CHECK-NEXT:    ptrue p0.h
-; CHECK-NEXT:    fcmeq p1.h, p0/z, z0.h, #0.0
-; CHECK-NEXT:    fmaxnm z1.h, p0/m, z1.h, z2.h
-; CHECK-NEXT:    mov z0.h, p1/m, z1.h
+; CHECK-NEXT:    fcmgt p1.h, p0/z, z1.h, z2.h
+; CHECK-NEXT:    fcmeq p0.h, p0/z, z0.h, #0.0
+; CHECK-NEXT:    sel z1.h, p1, z1.h, z2.h
+; CHECK-NEXT:    mov z0.h, p0/m, z1.h
 ; CHECK-NEXT:    ret
 entry:
   %c = fcmp oeq <vscale x 8 x half> %z, zeroinitializer
diff --git a/llvm/test/CodeGen/RISCV/float-select-fcmp.ll b/llvm/test/CodeGen/RISCV/float-select-fcmp.ll
index a2ff0d33e2d31..9e8ffb0104340 100644
--- a/llvm/test/CodeGen/RISCV/float-select-fcmp.ll
+++ b/llvm/test/CodeGen/RISCV/float-select-fcmp.ll
@@ -451,3 +451,29 @@ define signext i32 @select_fcmp_uge_1_2(float %a, float %b) nounwind {
   %2 = select i1 %1, i32 1, i32 2
   ret i32 %2
 }
+
+; Test from PR93414
+; Make sure that we don't use fmin.s here to handle signed zero correctly.
+define float @select_fcmp_olt_pos_zero(float %x) {
+; CHECK-LABEL: select_fcmp_olt_pos_zero:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    fmv.w.x fa5, zero
+; CHECK-NEXT:    flt.s a0, fa0, fa5
+; CHECK-NEXT:    bnez a0, .LBB20_2
+; CHECK-NEXT:  # %bb.1:
+; CHECK-NEXT:    fmv.s fa0, fa5
+; CHECK-NEXT:  .LBB20_2:
+; CHECK-NEXT:    ret
+;
+; CHECKZFINX-LABEL: select_fcmp_olt_pos_zero:
+; CHECKZFINX:       # %bb.0:
+; CHECKZFINX-NEXT:    flt.s a1, a0, zero
+; CHECKZFINX-NEXT:    bnez a1, .LBB20_2
+; CHECKZFINX-NEXT:  # %bb.1:
+; CHECKZFINX-NEXT:    li a0, 0
+; CHECKZFINX-NEXT:  .LBB20_2:
+; CHECKZFINX-NEXT:    ret
+  %cmp = fcmp olt float %x, 0.000000
+  %sel = select i1 %cmp, float %x, float 0.000000
+  ret float %sel
+}

Comment on lines -3735 to -3738
if (TLI.isOperationLegalOrCustom(ISD::FMINNUM, VT) ||
(UseScalarMinMax &&
TLI.isOperationLegalOrCustom(ISD::FMINNUM, VT.getScalarType())))
Opc = ISD::FMINNUM;
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 just noticed we don't actually have the DAG combine to form nnan select -> minimum/maximum. Ideally we would implement that before dropping this

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I just noticed we don't actually have the DAG combine to form nnan select -> minimum/maximum. Ideally we would implement that before dropping this

Are you working on this?

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.

Not yet, I was considering it

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.

Are you going to work on this? If not I can probably pick this up

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

No.

@dtcxzyw
Copy link
Copy Markdown
Member Author

dtcxzyw commented Jun 25, 2024

Failed Tests (19):
LLVM :: CodeGen/AMDGPU/fmed3.ll
LLVM :: CodeGen/AMDGPU/reduction.ll
LLVM :: CodeGen/ARM/fp16-vminmaxnm-safe.ll
LLVM :: CodeGen/ARM/fp16-vminmaxnm-vector.ll
LLVM :: CodeGen/ARM/fp16-vminmaxnm.ll
LLVM :: CodeGen/ARM/minnum-maxnum-intrinsics.ll
LLVM :: CodeGen/ARM/vminmaxnm-safe.ll
LLVM :: CodeGen/ARM/vminmaxnm.ll
LLVM :: CodeGen/PowerPC/vec-min-max.ll
LLVM :: CodeGen/PowerPC/vector-reduce-fmax.ll
LLVM :: CodeGen/PowerPC/vector-reduce-fmin.ll
LLVM :: CodeGen/SystemZ/vec-max-05.ll
LLVM :: CodeGen/SystemZ/vec-max-min-zerosplat.ll
LLVM :: CodeGen/SystemZ/vec-min-05.ll
LLVM :: CodeGen/Thumb2/mve-minmax.ll
LLVM :: CodeGen/Thumb2/mve-pred-selectop.ll
LLVM :: CodeGen/Thumb2/mve-pred-selectop2.ll
LLVM :: CodeGen/Thumb2/mve-pred-selectop3.ll
LLVM :: CodeGen/Thumb2/mve-vecreduce-fminmax.ll

@dtcxzyw
Copy link
Copy Markdown
Member Author

dtcxzyw commented Jun 25, 2024

@arsenm Have all (potential) regressions been fixed?

@arsenm
Copy link
Copy Markdown
Contributor

arsenm commented Jun 25, 2024

@arsenm Have all (potential) regressions been fixed?

No. We at least should have the nnan cases to minimum/maximum combine handled

@dtcxzyw
Copy link
Copy Markdown
Member Author

dtcxzyw commented Jun 29, 2024

@arsenm Have all (potential) regressions been fixed?

No. We at least should have the nnan cases to minimum/maximum combine handled

@arsenm Ping me after most of the regressions are addressed :)

@arsenm
Copy link
Copy Markdown
Contributor

arsenm commented Jul 2, 2024

No. We at least should have the nnan cases to minimum/maximum combine handled

@arsenm Ping me after most of the regressions are addressed :)

These are only theoretical regressions and I don't think should hold this up. It would only be helpful for targets that 1. only have legal fminimum/fmaximum and no legal fmin/fmax, and also those patterns appear during legalization. I believe wasm is the only relevant target for 1

@dtcxzyw
Copy link
Copy Markdown
Member Author

dtcxzyw commented Jul 2, 2024

@arsenm All assertion failures are fixed. Can I merge this PR?

Comment thread llvm/test/CodeGen/AMDGPU/fmed3.ll Outdated
@@ -1051,7 +1054,10 @@ define amdgpu_kernel void @v_test_legacy_fmed3_r_i_i_f32(ptr addrspace(1) %out,
; GFX9-SDAG-NEXT: global_load_dword v1, v0, s[2:3]
; GFX9-SDAG-NEXT: s_waitcnt vmcnt(0)
; GFX9-SDAG-NEXT: v_add_f32_e32 v1, 1.0, v1
; GFX9-SDAG-NEXT: v_med3_f32 v1, v1, 2.0, 4.0
; GFX9-SDAG-NEXT: v_cmp_lt_f32_e32 vcc, 2.0, v1
; GFX9-SDAG-NEXT: v_cndmask_b32_e32 v1, 2.0, v1, vcc
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.

This regression actually doesn't look good. I need to look at this, but running instcombine on the test first doesn't recover the v_med3_f32

@github-actions
Copy link
Copy Markdown

⚠️ 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/CodeGen/SelectionDAG/SelectionDAGBuilder.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/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 93c46b822..aebc2b8db 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -3863,7 +3863,9 @@ void SelectionDAGBuilder::visitSelect(const User &I) {
     case SPF_UMAX:    Opc = ISD::UMAX; break;
     case SPF_UMIN:    Opc = ISD::UMIN; break;
     case SPF_SMAX:    Opc = ISD::SMAX; break;
-    case SPF_SMIN:    Opc = ISD::SMIN; break;
+    case SPF_SMIN:
+      Opc = ISD::SMIN;
+      break;
     case SPF_NABS:
       Negate = true;
       [[fallthrough]];

@dtcxzyw dtcxzyw requested review from davemgreen and nikic January 18, 2026 20:46
@github-actions
Copy link
Copy Markdown

🪟 Windows x64 Test Results

  • 129573 tests passed
  • 2871 tests skipped
  • 4 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/NVPTX/fma-relu-contract.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\NVPTX\fma-relu-contract.ll -mtriple=nvptx64 -mcpu=sm_80 -fp-contract=fast | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=nvptx64 -mcpu=sm_80 -fp-contract=fast
# 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\NVPTX\fma-relu-contract.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:18:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:63:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b16 %rs<10>;
# |               ^
# | <stdin>:40:2: note: 'next' match was here
# |  .reg .b16 %rs<10>;
# |  ^
# | <stdin>:38:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:39:1: note: non-matching line after previous match is here
# |  .reg .pred %p<2>;
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:125:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:65:2: note: 'next' match was here
# |  .reg .b16 %rs<7>;
# |  ^
# | <stdin>:63:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:64:1: note: non-matching line after previous match is here
# |  .reg .pred %p<2>;
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:222:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:103:2: note: scanning from here
# | {
# |  ^
# | <stdin>:105:2: note: possible intended match here
# |  .reg .b16 %rs<6>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:284:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:127:2: note: scanning from here
# | {
# |  ^
# | <stdin>:129:2: note: possible intended match here
# |  .reg .b16 %rs<6>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:343:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<11>;
# |               ^
# | <stdin>:151:2: note: scanning from here
# | {
# |  ^
# | <stdin>:153:2: note: possible intended match here
# |  .reg .b16 %rs<10>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:501:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:197:2: note: scanning from here
# | {
# |  ^
# | <stdin>:200:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:552:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b32 %r<10>;
# |               ^
# | <stdin>:225:2: note: 'next' match was here
# |  .reg .b32 %r<10>;
# |  ^
# | <stdin>:222:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:223:1: note: non-matching line after previous match is here
# |  .reg .pred %p<3>;
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:618:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:251:2: note: scanning from here
# | {
# |  ^
# | <stdin>:254:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:723:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:294:2: note: scanning from here
# | {
# |  ^
# | <stdin>:297:2: note: possible intended match here
# |  .reg .b32 %r<9>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:805:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:323:2: note: scanning from here
# | {
# |  ^
# | <stdin>:326:2: note: possible intended match here
# |  .reg .b32 %r<9>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll:884:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<11>;
# |               ^
# | <stdin>:352:2: note: scanning from here
# | {
# |  ^
# | <stdin>:355:2: note: possible intended match here
# |  .reg .b32 %r<14>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-contract.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_expanded_no_nans( 
# |            12:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_0[2], 
# |            13:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_1[2], 
# |            14:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_2[2] 
# |            15: ) 
# |            16: { 
# | next:15'0       X error: no match found
# |            17:  .reg .pred %p<2>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# |            18:  .reg .b16 %rs<7>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# | next:15'1       ?                  possible intended match
# |            19:  
# | next:15'0      ~
# |            20: // %bb.0: 
# | next:15'0      ~~~~~~~~~~
# |            21:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_param_0]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_param_1]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_param_2]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            35:  .param .align 2 .b8 fma_f16_expanded_no_nans_multiple_uses_of_fma_param_1[2], 
# |            36:  .param .align 2 .b8 fma_f16_expanded_no_nans_multiple_uses_of_fma_param_2[2] 
# |            37: ) // @fma_f16_expanded_no_nans_multiple_uses_of_fma 
# |            38: { 
# |            39:  .reg .pred %p<2>; 
# |            40:  .reg .b16 %rs<10>; 
# | next:63         !~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            41:  
# |            42: // %bb.0: 
# |            43:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# |            44:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# |            45:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# |             .
# |             .
# |             .
# |            60:  .param .align 2 .b8 fma_f16_expanded_unsafe_with_nans_param_1[2], 
# |            61:  .param .align 2 .b8 fma_f16_expanded_unsafe_with_nans_param_2[2] 
# |            62: ) // @fma_f16_expanded_unsafe_with_nans 
# |            63: { 
# |            64:  .reg .pred %p<2>; 
# |            65:  .reg .b16 %rs<7>; 
# | next:125        !~~~~~~~~~~~~~~~~  error: match on wrong line
# |            66:  
# |            67: // %bb.0: 
# |            68:  ld.param.b16 %rs1, [fma_f16_expanded_unsafe_with_nans_param_0]; 
# |            69:  ld.param.b16 %rs2, [fma_f16_expanded_unsafe_with_nans_param_1]; 
# |            70:  ld.param.b16 %rs3, [fma_f16_expanded_unsafe_with_nans_param_2]; 
# |             .
# |             .
# |             .
# |            98: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_unsafe_with_nans( 
# |            99:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_0[2], 
# |           100:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_1[2], 
# |           101:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_2[2] 
# |           102: ) // @fma_bf16_expanded_unsafe_with_nans 
# |           103: { 
# | next:222'0      X error: no match found
# |           104:  .reg .pred %p<2>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~
# |           105:  .reg .b16 %rs<6>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~
# | next:222'1      ?                  possible intended match
# |           106:  .reg .b32 %r<3>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~
# |           107:  
# | next:222'0     ~
# |           108: // %bb.0: 
# | next:222'0     ~~~~~~~~~~
# |           109:  ld.param.b16 %rs1, [fma_bf16_expanded_unsafe_with_nans_param_0]; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           110:  ld.param.b16 %rs2, [fma_bf16_expanded_unsafe_with_nans_param_1]; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           122: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans( 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           123:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_0[2], 
# |           124:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_1[2], 
# |           125:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_2[2] 
# |           126: ) // @fma_bf16_expanded_no_nans 
# |           127: { 
# | next:284'0      X error: no match found
# |           128:  .reg .pred %p<2>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~
# |           129:  .reg .b16 %rs<6>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~
# | next:284'1      ?                  possible intended match
# |           130:  .reg .b32 %r<3>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~
# |           131:  
# | next:284'0     ~
# |           132: // %bb.0: 
# | next:284'0     ~~~~~~~~~~
# |           133:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_param_0]; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           134:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_param_1]; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           146: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans_multiple_uses_of_fma( 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           147:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_0[2], 
# |           148:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_1[2], 
# |           149:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_2[2] 
# |           150: ) // @fma_bf16_expanded_no_nans_multiple_uses_of_fma 
# |           151: { 
# | next:343'0      X error: no match found
# |           152:  .reg .pred %p<2>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~
# |           153:  .reg .b16 %rs<10>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~
# | next:343'1      ?                   possible intended match
# |           154:  .reg .b32 %r<3>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~
# |           155:  
# | next:343'0     ~
# |           156: // %bb.0: 
# | next:343'0     ~~~~~~~~~~
# |           157:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           158:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           192: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_no_nans( 
# |           193:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_0[4], 
# |           194:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_1[4], 
# |           195:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_2[4] 
# |           196: ) // @fma_f16x2_expanded_no_nans 
# |           197: { 
# | next:501'0      X error: no match found
# |           198:  .reg .pred %p<3>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~
# |           199:  .reg .b16 %rs<5>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~
# |           200:  .reg .b32 %r<6>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~
# | next:501'1      ?                 possible intended match
# |           201:  
# | next:501'0     ~
# |           202: // %bb.0: 
# | next:501'0     ~~~~~~~~~~
# |           203:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_param_0]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           204:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_param_1]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           205:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_param_2]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           220:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_2[4] 
# |           221: ) // @fma_f16x2_expanded_no_nans_multiple_uses_of_fma 
# |           222: { 
# |           223:  .reg .pred %p<3>; 
# |           224:  .reg .b16 %rs<5>; 
# |           225:  .reg .b32 %r<10>; 
# | next:552        !~~~~~~~~~~~~~~~~  error: match on wrong line
# |           226:  
# |           227: // %bb.0: 
# |           228:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# |           229:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# |           230:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# |             .
# |             .
# |             .
# |           246: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_unsafe_with_nans( 
# |           247:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_0[4], 
# |           248:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_1[4], 
# |           249:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_2[4] 
# |           250: ) // @fma_f16x2_expanded_unsafe_with_nans 
# |           251: { 
# | next:618'0      X error: no match found
# |           252:  .reg .pred %p<3>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~
# |           253:  .reg .b16 %rs<5>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~
# |           254:  .reg .b32 %r<6>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~
# | next:618'1      ?                 possible intended match
# |           255:  
# | next:618'0     ~
# |           256: // %bb.0: 
# | next:618'0     ~~~~~~~~~~
# |           257:  ld.param.b32 %r1, [fma_f16x2_expanded_unsafe_with_nans_param_0]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           258:  ld.param.b32 %r2, [fma_f16x2_expanded_unsafe_with_nans_param_1]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           259:  ld.param.b32 %r3, [fma_f16x2_expanded_unsafe_with_nans_param_2]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           289: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_unsafe_with_nans( 
# |           290:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_0[4], 
# |           291:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_1[4], 
# |           292:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_2[4] 
# |           293: ) // @fma_bf16x2_expanded_unsafe_with_nans 
# |           294: { 
# | next:723'0      X error: no match found
# |           295:  .reg .pred %p<3>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~
# |           296:  .reg .b16 %rs<5>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~
# |           297:  .reg .b32 %r<9>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~
# | next:723'1      ?                 possible intended match
# |           298:  
# | next:723'0     ~
# |           299: // %bb.0: 
# | next:723'0     ~~~~~~~~~~
# |           300:  ld.param.b32 %r1, [fma_bf16x2_expanded_unsafe_with_nans_param_0]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           301:  ld.param.b32 %r2, [fma_bf16x2_expanded_unsafe_with_nans_param_1]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           302:  ld.param.b32 %r3, [fma_bf16x2_expanded_unsafe_with_nans_param_2]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           318: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans( 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           319:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_0[4], 
# |           320:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_1[4], 
# |           321:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_2[4] 
# |           322: ) // @fma_bf16x2_expanded_no_nans 
# |           323: { 
# | next:805'0      X error: no match found
# |           324:  .reg .pred %p<3>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~
# |           325:  .reg .b16 %rs<5>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~
# |           326:  .reg .b32 %r<9>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~
# | next:805'1      ?                 possible intended match
# |           327:  
# | next:805'0     ~
# |           328: // %bb.0: 
# | next:805'0     ~~~~~~~~~~
# |           329:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_param_0]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           330:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_param_1]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           331:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_param_2]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           347: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans_multiple_uses_of_fma( 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           348:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_0[4], 
# |           349:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_1[4], 
# |           350:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_2[4] 
# |           351: ) // @fma_bf16x2_expanded_no_nans_multiple_uses_of_fma 
# |           352: { 
# | next:884'0      X error: no match found
# |           353:  .reg .pred %p<3>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# |           354:  .reg .b16 %rs<5>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# |           355:  .reg .b32 %r<14>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# | next:884'1      ?                  possible intended match
# |           356:  
# | next:884'0     ~
# |           357: // %bb.0: 
# | next:884'0     ~~~~~~~~~~
# |           358:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           359:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           360:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/fma-relu-fma-intrinsic.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\NVPTX\fma-relu-fma-intrinsic.ll -mtriple=nvptx64 -mcpu=sm_80 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=nvptx64 -mcpu=sm_80
# 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\NVPTX\fma-relu-fma-intrinsic.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:17:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll:160:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:75:2: note: scanning from here
# | {
# |  ^
# | <stdin>:76:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll:362:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:135:2: note: scanning from here
# | {
# |  ^
# | <stdin>:136:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll:515:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:194:2: note: scanning from here
# | {
# |  ^
# | <stdin>:195:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-fma-intrinsic.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_no_nans( 
# |            12:  .param .align 2 .b8 fma_f16_no_nans_param_0[2], 
# |            13:  .param .align 2 .b8 fma_f16_no_nans_param_1[2], 
# |            14:  .param .align 2 .b8 fma_f16_no_nans_param_2[2] 
# |            15: ) 
# |            16: { 
# | next:15'0       X error: no match found
# |            17:  .reg .b16 %rs<7>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# | next:15'1       ?                  possible intended match
# |            18:  
# | next:15'0      ~
# |            19: // %bb.0: 
# | next:15'0      ~~~~~~~~~~
# |            20:  ld.param.b16 %rs1, [fma_f16_no_nans_param_0]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            21:  ld.param.b16 %rs2, [fma_f16_no_nans_param_1]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  ld.param.b16 %rs3, [fma_f16_no_nans_param_2]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            70: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_no_nans( 
# |            71:  .param .align 2 .b8 fma_bf16_no_nans_param_0[2], 
# |            72:  .param .align 2 .b8 fma_bf16_no_nans_param_1[2], 
# |            73:  .param .align 2 .b8 fma_bf16_no_nans_param_2[2] 
# |            74: ) // @fma_bf16_no_nans 
# |            75: { 
# | next:160'0      X error: no match found
# |            76:  .reg .b16 %rs<7>; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~
# | next:160'1      ?                  possible intended match
# |            77:  
# | next:160'0     ~
# |            78: // %bb.0: 
# | next:160'0     ~~~~~~~~~~
# |            79:  ld.param.b16 %rs1, [fma_bf16_no_nans_param_0]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            80:  ld.param.b16 %rs2, [fma_bf16_no_nans_param_1]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            81:  ld.param.b16 %rs3, [fma_bf16_no_nans_param_2]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           130: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_no_nans( 
# |           131:  .param .align 4 .b8 fma_f16x2_no_nans_param_0[4], 
# |           132:  .param .align 4 .b8 fma_f16x2_no_nans_param_1[4], 
# |           133:  .param .align 4 .b8 fma_f16x2_no_nans_param_2[4] 
# |           134: ) // @fma_f16x2_no_nans 
# |           135: { 
# | next:362'0      X error: no match found
# |           136:  .reg .b32 %r<7>; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~
# | next:362'1      ?                 possible intended match
# |           137:  
# | next:362'0     ~
# |           138: // %bb.0: 
# | next:362'0     ~~~~~~~~~~
# |           139:  ld.param.b32 %r1, [fma_f16x2_no_nans_param_0]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           140:  ld.param.b32 %r2, [fma_f16x2_no_nans_param_1]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           141:  ld.param.b32 %r3, [fma_f16x2_no_nans_param_2]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           189: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_no_nans( 
# |           190:  .param .align 4 .b8 fma_bf16x2_no_nans_param_0[4], 
# |           191:  .param .align 4 .b8 fma_bf16x2_no_nans_param_1[4], 
# |           192:  .param .align 4 .b8 fma_bf16x2_no_nans_param_2[4] 
# |           193: ) // @fma_bf16x2_no_nans 
# |           194: { 
# | next:515'0      X error: no match found
# |           195:  .reg .b32 %r<7>; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~
# | next:515'1      ?                 possible intended match
# |           196:  
# | next:515'0     ~
# |           197: // %bb.0: 
# | next:515'0     ~~~~~~~~~~
# |           198:  ld.param.b32 %r1, [fma_bf16x2_no_nans_param_0]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           199:  ld.param.b32 %r2, [fma_bf16x2_no_nans_param_1]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           200:  ld.param.b32 %r3, [fma_bf16x2_no_nans_param_2]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/fma-relu-instruction-flag.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\NVPTX\fma-relu-instruction-flag.ll -mtriple=nvptx64 -mcpu=sm_80 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=nvptx64 -mcpu=sm_80
# 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\NVPTX\fma-relu-instruction-flag.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:17:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:171:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:77:2: note: scanning from here
# | {
# |  ^
# | <stdin>:78:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:392:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:139:2: note: scanning from here
# | {
# |  ^
# | <stdin>:140:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:562:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:200:2: note: scanning from here
# | {
# |  ^
# | <stdin>:201:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:872:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:262:2: note: scanning from here
# | {
# |  ^
# | <stdin>:263:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:1017:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:321:2: note: scanning from here
# | {
# |  ^
# | <stdin>:322:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:1219:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:381:2: note: scanning from here
# | {
# |  ^
# | <stdin>:384:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll:1376:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:445:2: note: scanning from here
# | {
# |  ^
# | <stdin>:446:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\fma-relu-instruction-flag.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_expanded_no_nans( 
# |             12:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_0[2], 
# |             13:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_1[2], 
# |             14:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_2[2] 
# |             15: ) 
# |             16: { 
# | next:15'0        X error: no match found
# |             17:  .reg .b16 %rs<7>; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~
# | next:15'1        ?                  possible intended match
# |             18:  
# | next:15'0       ~
# |             19: // %bb.0: 
# | next:15'0       ~~~~~~~~~~
# |             20:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_param_0]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             21:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_param_1]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             22:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_param_2]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |             72: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans( 
# |             73:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_0[2], 
# |             74:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_1[2], 
# |             75:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_2[2] 
# |             76: ) // @fma_bf16_expanded_no_nans 
# |             77: { 
# | next:171'0       X error: no match found
# |             78:  .reg .b16 %rs<7>; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~
# | next:171'1       ?                  possible intended match
# |             79:  
# | next:171'0      ~
# |             80: // %bb.0: 
# | next:171'0      ~~~~~~~~~~
# |             81:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_param_0]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             82:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_param_1]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             83:  ld.param.b16 %rs3, [fma_bf16_expanded_no_nans_param_2]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            134: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_no_nans( 
# |            135:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_0[4], 
# |            136:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_1[4], 
# |            137:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_2[4] 
# |            138: ) // @fma_f16x2_expanded_no_nans 
# |            139: { 
# | next:392'0       X error: no match found
# |            140:  .reg .b32 %r<7>; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~
# | next:392'1       ?                 possible intended match
# |            141:  
# | next:392'0      ~
# |            142: // %bb.0: 
# | next:392'0      ~~~~~~~~~~
# |            143:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_param_0]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            144:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_param_1]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            145:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_param_2]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            195: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans( 
# |            196:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_0[4], 
# |            197:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_1[4], 
# |            198:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_2[4] 
# |            199: ) // @fma_bf16x2_expanded_no_nans 
# |            200: { 
# | next:562'0       X error: no match found
# |            201:  .reg .b32 %r<7>; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~
# | next:562'1       ?                 possible intended match
# |            202:  
# | next:562'0      ~
# |            203: // %bb.0: 
# | next:562'0      ~~~~~~~~~~
# |            204:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_param_0]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            205:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_param_1]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            206:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_param_2]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            257: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_no_nans( 
# |            258:  .param .align 2 .b8 fma_f16_no_nans_param_0[2], 
# |            259:  .param .align 2 .b8 fma_f16_no_nans_param_1[2], 
# |            260:  .param .align 2 .b8 fma_f16_no_nans_param_2[2] 
# |            261: ) // @fma_f16_no_nans 
# |            262: { 
# | next:872'0       X error: no match found
# |            263:  .reg .b16 %rs<7>; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~
# | next:872'1       ?                  possible intended match
# |            264:  
# | next:872'0      ~
# |            265: // %bb.0: 
# | next:872'0      ~~~~~~~~~~
# |            266:  ld.param.b16 %rs1, [fma_f16_no_nans_param_0]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            267:  ld.param.b16 %rs2, [fma_f16_no_nans_param_1]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            268:  ld.param.b16 %rs3, [fma_f16_no_nans_param_2]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            316: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_no_nans( 
# |            317:  .param .align 2 .b8 fma_bf16_no_nans_param_0[2], 
# |            318:  .param .align 2 .b8 fma_bf16_no_nans_param_1[2], 
# |            319:  .param .align 2 .b8 fma_bf16_no_nans_param_2[2] 
# |            320: ) // @fma_bf16_no_nans 
# |            321: { 
# | next:1017'0      X error: no match found
# |            322:  .reg .b16 %rs<7>; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~
# | next:1017'1      ?                  possible intended match
# |            323:  
# | next:1017'0     ~
# |            324: // %bb.0: 
# | next:1017'0     ~~~~~~~~~~
# |            325:  ld.param.b16 %rs1, [fma_bf16_no_nans_param_0]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            326:  ld.param.b16 %rs2, [fma_bf16_no_nans_param_1]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            327:  ld.param.b16 %rs3, [fma_bf16_no_nans_param_2]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            376: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_no_nans( 
# |            377:  .param .align 4 .b8 fma_f16x2_no_nans_param_0[4], 
# |            378:  .param .align 4 .b8 fma_f16x2_no_nans_param_1[4], 
# |            379:  .param .align 4 .b8 fma_f16x2_no_nans_param_2[4] 
# |            380: ) // @fma_f16x2_no_nans 
# |            381: { 
# | next:1219'0      X error: no match found
# |            382:  .reg .pred %p<3>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~
# |            383:  .reg .b16 %rs<5>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~
# |            384:  .reg .b32 %r<6>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~
# | next:1219'1      ?                 possible intended match
# |            385:  
# | next:1219'0     ~
# |            386: // %bb.0: 
# | next:1219'0     ~~~~~~~~~~
# |            387:  ld.param.b32 %r1, [fma_f16x2_no_nans_param_0]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  ld.param.b32 %r2, [fma_f16x2_no_nans_param_1]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            389:  ld.param.b32 %r3, [fma_f16x2_no_nans_param_2]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            440: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_no_nans( 
# |            441:  .param .align 4 .b8 fma_bf16x2_no_nans_param_0[4], 
# |            442:  .param .align 4 .b8 fma_bf16x2_no_nans_param_1[4], 
# |            443:  .param .align 4 .b8 fma_bf16x2_no_nans_param_2[4] 
# |            444: ) // @fma_bf16x2_no_nans 
# |            445: { 
# | next:1376'0      X error: no match found
# |            446:  .reg .b32 %r<7>; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~
# | next:1376'1      ?                 possible intended match
# |            447:  
# | next:1376'0     ~
# |            448: // %bb.0: 
# | next:1376'0     ~~~~~~~~~~
# |            449:  ld.param.b32 %r1, [fma_bf16x2_no_nans_param_0]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            450:  ld.param.b32 %r2, [fma_bf16x2_no_nans_param_1]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            451:  ld.param.b32 %r3, [fma_bf16x2_no_nans_param_2]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/masked-load-3xhalf.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\NVPTX\masked-load-3xhalf.ll -march=nvptx64 -mcpu=sm_100 -mattr=+ptx88 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\masked-load-3xhalf.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -march=nvptx64 -mcpu=sm_100 -mattr=+ptx88
# 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\NVPTX\masked-load-3xhalf.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\masked-load-3xhalf.ll:10:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:14:2: note: scanning from here
# | {
# |  ^
# | <stdin>:16:2: note: possible intended match here
# |  .reg .b16 %rs<14>;
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\masked-load-3xhalf.ll:50:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:51:2: note: scanning from here
# | {
# |  ^
# | <stdin>:53:2: note: possible intended match here
# |  .reg .b16 %rs<14>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\NVPTX\masked-load-3xhalf.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            9:  // .globl halfx3_extend_chain // -- Begin function halfx3_extend_chain 
# |           10:  // @halfx3_extend_chain 
# |           11: .visible .func halfx3_extend_chain( 
# |           12:  .param .b64 halfx3_extend_chain_param_0 
# |           13: ) 
# |           14: { 
# | next:10'0      X error: no match found
# |           15:  .reg .pred %p<7>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~
# |           16:  .reg .b16 %rs<14>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~
# | next:10'1      ?                   possible intended match
# |           17:  .reg .b32 %r<5>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~
# |           18:  .reg .b64 %rd<2>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~
# |           19:  
# | next:10'0     ~
# |           20: // %bb.0: 
# | next:10'0     ~~~~~~~~~~
# |           21:  ld.param.b64 %rd1, [halfx3_extend_chain_param_0]; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |           46: } 
# | next:10'0     ~~
# |           47:  // .globl halfx3_no_align // -- Begin function halfx3_no_align 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           48: .visible .func halfx3_no_align( 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  .param .b64 halfx3_no_align_param_0 
# |           50: ) // @halfx3_no_align 
# |           51: { 
# | next:50'0      X error: no match found
# |           52:  .reg .pred %p<7>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~
# |           53:  .reg .b16 %rs<14>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~~
# | next:50'1      ?                   possible intended match
# |           54:  .reg .b64 %rd<2>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~
# |           55:  
# | next:50'0     ~
# |           56: // %bb.0: 
# | next:50'0     ~~~~~~~~~~
# |           57:  ld.param.b64 %rd1, [halfx3_no_align_param_0]; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           58:  ld.b16 %rs1, [%rd1+4]; 
# | next:50'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

🐧 Linux x64 Test Results

  • 168194 tests passed
  • 2996 tests skipped
  • 4 tests failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/NVPTX/fma-relu-contract.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/NVPTX/fma-relu-contract.ll -mtriple=nvptx64 -mcpu=sm_80 -fp-contract=fast | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=nvptx64 -mcpu=sm_80 -fp-contract=fast
# 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/NVPTX/fma-relu-contract.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:18:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:63:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b16 %rs<10>;
# |               ^
# | <stdin>:40:2: note: 'next' match was here
# |  .reg .b16 %rs<10>;
# |  ^
# | <stdin>:38:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:39:1: note: non-matching line after previous match is here
# |  .reg .pred %p<2>;
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:125:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:65:2: note: 'next' match was here
# |  .reg .b16 %rs<7>;
# |  ^
# | <stdin>:63:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:64:1: note: non-matching line after previous match is here
# |  .reg .pred %p<2>;
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:222:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:103:2: note: scanning from here
# | {
# |  ^
# | <stdin>:105:2: note: possible intended match here
# |  .reg .b16 %rs<6>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:284:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:127:2: note: scanning from here
# | {
# |  ^
# | <stdin>:129:2: note: possible intended match here
# |  .reg .b16 %rs<6>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:343:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<11>;
# |               ^
# | <stdin>:151:2: note: scanning from here
# | {
# |  ^
# | <stdin>:153:2: note: possible intended match here
# |  .reg .b16 %rs<10>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:501:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:197:2: note: scanning from here
# | {
# |  ^
# | <stdin>:200:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:552:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: .reg .b32 %r<10>;
# |               ^
# | <stdin>:225:2: note: 'next' match was here
# |  .reg .b32 %r<10>;
# |  ^
# | <stdin>:222:2: note: previous match ended here
# | {
# |  ^
# | <stdin>:223:1: note: non-matching line after previous match is here
# |  .reg .pred %p<3>;
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:618:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:251:2: note: scanning from here
# | {
# |  ^
# | <stdin>:254:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:723:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:294:2: note: scanning from here
# | {
# |  ^
# | <stdin>:297:2: note: possible intended match here
# |  .reg .b32 %r<9>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:805:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:323:2: note: scanning from here
# | {
# |  ^
# | <stdin>:326:2: note: possible intended match here
# |  .reg .b32 %r<9>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll:884:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<11>;
# |               ^
# | <stdin>:352:2: note: scanning from here
# | {
# |  ^
# | <stdin>:355:2: note: possible intended match here
# |  .reg .b32 %r<14>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-contract.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_expanded_no_nans( 
# |            12:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_0[2], 
# |            13:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_1[2], 
# |            14:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_2[2] 
# |            15: ) 
# |            16: { 
# | next:15'0       X error: no match found
# |            17:  .reg .pred %p<2>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# |            18:  .reg .b16 %rs<7>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# | next:15'1       ?                  possible intended match
# |            19:  
# | next:15'0      ~
# |            20: // %bb.0: 
# | next:15'0      ~~~~~~~~~~
# |            21:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_param_0]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_param_1]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_param_2]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            35:  .param .align 2 .b8 fma_f16_expanded_no_nans_multiple_uses_of_fma_param_1[2], 
# |            36:  .param .align 2 .b8 fma_f16_expanded_no_nans_multiple_uses_of_fma_param_2[2] 
# |            37: ) // @fma_f16_expanded_no_nans_multiple_uses_of_fma 
# |            38: { 
# |            39:  .reg .pred %p<2>; 
# |            40:  .reg .b16 %rs<10>; 
# | next:63         !~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            41:  
# |            42: // %bb.0: 
# |            43:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# |            44:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# |            45:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# |             .
# |             .
# |             .
# |            60:  .param .align 2 .b8 fma_f16_expanded_unsafe_with_nans_param_1[2], 
# |            61:  .param .align 2 .b8 fma_f16_expanded_unsafe_with_nans_param_2[2] 
# |            62: ) // @fma_f16_expanded_unsafe_with_nans 
# |            63: { 
# |            64:  .reg .pred %p<2>; 
# |            65:  .reg .b16 %rs<7>; 
# | next:125        !~~~~~~~~~~~~~~~~  error: match on wrong line
# |            66:  
# |            67: // %bb.0: 
# |            68:  ld.param.b16 %rs1, [fma_f16_expanded_unsafe_with_nans_param_0]; 
# |            69:  ld.param.b16 %rs2, [fma_f16_expanded_unsafe_with_nans_param_1]; 
# |            70:  ld.param.b16 %rs3, [fma_f16_expanded_unsafe_with_nans_param_2]; 
# |             .
# |             .
# |             .
# |            98: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_unsafe_with_nans( 
# |            99:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_0[2], 
# |           100:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_1[2], 
# |           101:  .param .align 2 .b8 fma_bf16_expanded_unsafe_with_nans_param_2[2] 
# |           102: ) // @fma_bf16_expanded_unsafe_with_nans 
# |           103: { 
# | next:222'0      X error: no match found
# |           104:  .reg .pred %p<2>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~
# |           105:  .reg .b16 %rs<6>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~
# | next:222'1      ?                  possible intended match
# |           106:  .reg .b32 %r<3>; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~
# |           107:  
# | next:222'0     ~
# |           108: // %bb.0: 
# | next:222'0     ~~~~~~~~~~
# |           109:  ld.param.b16 %rs1, [fma_bf16_expanded_unsafe_with_nans_param_0]; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           110:  ld.param.b16 %rs2, [fma_bf16_expanded_unsafe_with_nans_param_1]; 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           122: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans( 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           123:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_0[2], 
# |           124:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_1[2], 
# |           125:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_2[2] 
# |           126: ) // @fma_bf16_expanded_no_nans 
# |           127: { 
# | next:284'0      X error: no match found
# |           128:  .reg .pred %p<2>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~
# |           129:  .reg .b16 %rs<6>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~
# | next:284'1      ?                  possible intended match
# |           130:  .reg .b32 %r<3>; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~
# |           131:  
# | next:284'0     ~
# |           132: // %bb.0: 
# | next:284'0     ~~~~~~~~~~
# |           133:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_param_0]; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           134:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_param_1]; 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           146: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans_multiple_uses_of_fma( 
# | next:284'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           147:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_0[2], 
# |           148:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_1[2], 
# |           149:  .param .align 2 .b8 fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_2[2] 
# |           150: ) // @fma_bf16_expanded_no_nans_multiple_uses_of_fma 
# |           151: { 
# | next:343'0      X error: no match found
# |           152:  .reg .pred %p<2>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~
# |           153:  .reg .b16 %rs<10>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~
# | next:343'1      ?                   possible intended match
# |           154:  .reg .b32 %r<3>; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~
# |           155:  
# | next:343'0     ~
# |           156: // %bb.0: 
# | next:343'0     ~~~~~~~~~~
# |           157:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           158:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# | next:343'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           192: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_no_nans( 
# |           193:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_0[4], 
# |           194:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_1[4], 
# |           195:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_2[4] 
# |           196: ) // @fma_f16x2_expanded_no_nans 
# |           197: { 
# | next:501'0      X error: no match found
# |           198:  .reg .pred %p<3>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~
# |           199:  .reg .b16 %rs<5>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~
# |           200:  .reg .b32 %r<6>; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~
# | next:501'1      ?                 possible intended match
# |           201:  
# | next:501'0     ~
# |           202: // %bb.0: 
# | next:501'0     ~~~~~~~~~~
# |           203:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_param_0]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           204:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_param_1]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           205:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_param_2]; 
# | next:501'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           220:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_2[4] 
# |           221: ) // @fma_f16x2_expanded_no_nans_multiple_uses_of_fma 
# |           222: { 
# |           223:  .reg .pred %p<3>; 
# |           224:  .reg .b16 %rs<5>; 
# |           225:  .reg .b32 %r<10>; 
# | next:552        !~~~~~~~~~~~~~~~~  error: match on wrong line
# |           226:  
# |           227: // %bb.0: 
# |           228:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# |           229:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# |           230:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# |             .
# |             .
# |             .
# |           246: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_unsafe_with_nans( 
# |           247:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_0[4], 
# |           248:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_1[4], 
# |           249:  .param .align 4 .b8 fma_f16x2_expanded_unsafe_with_nans_param_2[4] 
# |           250: ) // @fma_f16x2_expanded_unsafe_with_nans 
# |           251: { 
# | next:618'0      X error: no match found
# |           252:  .reg .pred %p<3>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~
# |           253:  .reg .b16 %rs<5>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~
# |           254:  .reg .b32 %r<6>; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~
# | next:618'1      ?                 possible intended match
# |           255:  
# | next:618'0     ~
# |           256: // %bb.0: 
# | next:618'0     ~~~~~~~~~~
# |           257:  ld.param.b32 %r1, [fma_f16x2_expanded_unsafe_with_nans_param_0]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           258:  ld.param.b32 %r2, [fma_f16x2_expanded_unsafe_with_nans_param_1]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           259:  ld.param.b32 %r3, [fma_f16x2_expanded_unsafe_with_nans_param_2]; 
# | next:618'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           289: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_unsafe_with_nans( 
# |           290:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_0[4], 
# |           291:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_1[4], 
# |           292:  .param .align 4 .b8 fma_bf16x2_expanded_unsafe_with_nans_param_2[4] 
# |           293: ) // @fma_bf16x2_expanded_unsafe_with_nans 
# |           294: { 
# | next:723'0      X error: no match found
# |           295:  .reg .pred %p<3>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~
# |           296:  .reg .b16 %rs<5>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~
# |           297:  .reg .b32 %r<9>; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~
# | next:723'1      ?                 possible intended match
# |           298:  
# | next:723'0     ~
# |           299: // %bb.0: 
# | next:723'0     ~~~~~~~~~~
# |           300:  ld.param.b32 %r1, [fma_bf16x2_expanded_unsafe_with_nans_param_0]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           301:  ld.param.b32 %r2, [fma_bf16x2_expanded_unsafe_with_nans_param_1]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           302:  ld.param.b32 %r3, [fma_bf16x2_expanded_unsafe_with_nans_param_2]; 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           318: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans( 
# | next:723'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           319:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_0[4], 
# |           320:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_1[4], 
# |           321:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_2[4] 
# |           322: ) // @fma_bf16x2_expanded_no_nans 
# |           323: { 
# | next:805'0      X error: no match found
# |           324:  .reg .pred %p<3>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~
# |           325:  .reg .b16 %rs<5>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~
# |           326:  .reg .b32 %r<9>; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~
# | next:805'1      ?                 possible intended match
# |           327:  
# | next:805'0     ~
# |           328: // %bb.0: 
# | next:805'0     ~~~~~~~~~~
# |           329:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_param_0]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           330:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_param_1]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           331:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_param_2]; 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           347: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans_multiple_uses_of_fma( 
# | next:805'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           348:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_0[4], 
# |           349:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_1[4], 
# |           350:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_2[4] 
# |           351: ) // @fma_bf16x2_expanded_no_nans_multiple_uses_of_fma 
# |           352: { 
# | next:884'0      X error: no match found
# |           353:  .reg .pred %p<3>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# |           354:  .reg .b16 %rs<5>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# |           355:  .reg .b32 %r<14>; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~
# | next:884'1      ?                  possible intended match
# |           356:  
# | next:884'0     ~
# |           357: // %bb.0: 
# | next:884'0     ~~~~~~~~~~
# |           358:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_0]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           359:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_1]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           360:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_multiple_uses_of_fma_param_2]; 
# | next:884'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/fma-relu-fma-intrinsic.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/NVPTX/fma-relu-fma-intrinsic.ll -mtriple=nvptx64 -mcpu=sm_80 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=nvptx64 -mcpu=sm_80
# 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/NVPTX/fma-relu-fma-intrinsic.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:17:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll:160:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:75:2: note: scanning from here
# | {
# |  ^
# | <stdin>:76:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll:362:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:135:2: note: scanning from here
# | {
# |  ^
# | <stdin>:136:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll:515:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:194:2: note: scanning from here
# | {
# |  ^
# | <stdin>:195:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-fma-intrinsic.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_no_nans( 
# |            12:  .param .align 2 .b8 fma_f16_no_nans_param_0[2], 
# |            13:  .param .align 2 .b8 fma_f16_no_nans_param_1[2], 
# |            14:  .param .align 2 .b8 fma_f16_no_nans_param_2[2] 
# |            15: ) 
# |            16: { 
# | next:15'0       X error: no match found
# |            17:  .reg .b16 %rs<7>; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~
# | next:15'1       ?                  possible intended match
# |            18:  
# | next:15'0      ~
# |            19: // %bb.0: 
# | next:15'0      ~~~~~~~~~~
# |            20:  ld.param.b16 %rs1, [fma_f16_no_nans_param_0]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            21:  ld.param.b16 %rs2, [fma_f16_no_nans_param_1]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  ld.param.b16 %rs3, [fma_f16_no_nans_param_2]; 
# | next:15'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            70: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_no_nans( 
# |            71:  .param .align 2 .b8 fma_bf16_no_nans_param_0[2], 
# |            72:  .param .align 2 .b8 fma_bf16_no_nans_param_1[2], 
# |            73:  .param .align 2 .b8 fma_bf16_no_nans_param_2[2] 
# |            74: ) // @fma_bf16_no_nans 
# |            75: { 
# | next:160'0      X error: no match found
# |            76:  .reg .b16 %rs<7>; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~
# | next:160'1      ?                  possible intended match
# |            77:  
# | next:160'0     ~
# |            78: // %bb.0: 
# | next:160'0     ~~~~~~~~~~
# |            79:  ld.param.b16 %rs1, [fma_bf16_no_nans_param_0]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            80:  ld.param.b16 %rs2, [fma_bf16_no_nans_param_1]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            81:  ld.param.b16 %rs3, [fma_bf16_no_nans_param_2]; 
# | next:160'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           130: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_no_nans( 
# |           131:  .param .align 4 .b8 fma_f16x2_no_nans_param_0[4], 
# |           132:  .param .align 4 .b8 fma_f16x2_no_nans_param_1[4], 
# |           133:  .param .align 4 .b8 fma_f16x2_no_nans_param_2[4] 
# |           134: ) // @fma_f16x2_no_nans 
# |           135: { 
# | next:362'0      X error: no match found
# |           136:  .reg .b32 %r<7>; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~
# | next:362'1      ?                 possible intended match
# |           137:  
# | next:362'0     ~
# |           138: // %bb.0: 
# | next:362'0     ~~~~~~~~~~
# |           139:  ld.param.b32 %r1, [fma_f16x2_no_nans_param_0]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           140:  ld.param.b32 %r2, [fma_f16x2_no_nans_param_1]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           141:  ld.param.b32 %r3, [fma_f16x2_no_nans_param_2]; 
# | next:362'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           189: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_no_nans( 
# |           190:  .param .align 4 .b8 fma_bf16x2_no_nans_param_0[4], 
# |           191:  .param .align 4 .b8 fma_bf16x2_no_nans_param_1[4], 
# |           192:  .param .align 4 .b8 fma_bf16x2_no_nans_param_2[4] 
# |           193: ) // @fma_bf16x2_no_nans 
# |           194: { 
# | next:515'0      X error: no match found
# |           195:  .reg .b32 %r<7>; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~
# | next:515'1      ?                 possible intended match
# |           196:  
# | next:515'0     ~
# |           197: // %bb.0: 
# | next:515'0     ~~~~~~~~~~
# |           198:  ld.param.b32 %r1, [fma_bf16x2_no_nans_param_0]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           199:  ld.param.b32 %r2, [fma_bf16x2_no_nans_param_1]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           200:  ld.param.b32 %r3, [fma_bf16x2_no_nans_param_2]; 
# | next:515'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/fma-relu-instruction-flag.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/NVPTX/fma-relu-instruction-flag.ll -mtriple=nvptx64 -mcpu=sm_80 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=nvptx64 -mcpu=sm_80
# 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/NVPTX/fma-relu-instruction-flag.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:16:2: note: scanning from here
# | {
# |  ^
# | <stdin>:17:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:171:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:77:2: note: scanning from here
# | {
# |  ^
# | <stdin>:78:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:392:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:139:2: note: scanning from here
# | {
# |  ^
# | <stdin>:140:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:562:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:200:2: note: scanning from here
# | {
# |  ^
# | <stdin>:201:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:872:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:262:2: note: scanning from here
# | {
# |  ^
# | <stdin>:263:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:1017:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<5>;
# |               ^
# | <stdin>:321:2: note: scanning from here
# | {
# |  ^
# | <stdin>:322:2: note: possible intended match here
# |  .reg .b16 %rs<7>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:1219:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<7>;
# |               ^
# | <stdin>:381:2: note: scanning from here
# | {
# |  ^
# | <stdin>:384:2: note: possible intended match here
# |  .reg .b32 %r<6>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll:1376:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b32 %r<5>;
# |               ^
# | <stdin>:445:2: note: scanning from here
# | {
# |  ^
# | <stdin>:446:2: note: possible intended match here
# |  .reg .b32 %r<7>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/fma-relu-instruction-flag.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             11: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_expanded_no_nans( 
# |             12:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_0[2], 
# |             13:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_1[2], 
# |             14:  .param .align 2 .b8 fma_f16_expanded_no_nans_param_2[2] 
# |             15: ) 
# |             16: { 
# | next:15'0        X error: no match found
# |             17:  .reg .b16 %rs<7>; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~
# | next:15'1        ?                  possible intended match
# |             18:  
# | next:15'0       ~
# |             19: // %bb.0: 
# | next:15'0       ~~~~~~~~~~
# |             20:  ld.param.b16 %rs1, [fma_f16_expanded_no_nans_param_0]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             21:  ld.param.b16 %rs2, [fma_f16_expanded_no_nans_param_1]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             22:  ld.param.b16 %rs3, [fma_f16_expanded_no_nans_param_2]; 
# | next:15'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |             72: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_expanded_no_nans( 
# |             73:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_0[2], 
# |             74:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_1[2], 
# |             75:  .param .align 2 .b8 fma_bf16_expanded_no_nans_param_2[2] 
# |             76: ) // @fma_bf16_expanded_no_nans 
# |             77: { 
# | next:171'0       X error: no match found
# |             78:  .reg .b16 %rs<7>; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~
# | next:171'1       ?                  possible intended match
# |             79:  
# | next:171'0      ~
# |             80: // %bb.0: 
# | next:171'0      ~~~~~~~~~~
# |             81:  ld.param.b16 %rs1, [fma_bf16_expanded_no_nans_param_0]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             82:  ld.param.b16 %rs2, [fma_bf16_expanded_no_nans_param_1]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             83:  ld.param.b16 %rs3, [fma_bf16_expanded_no_nans_param_2]; 
# | next:171'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            134: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_expanded_no_nans( 
# |            135:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_0[4], 
# |            136:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_1[4], 
# |            137:  .param .align 4 .b8 fma_f16x2_expanded_no_nans_param_2[4] 
# |            138: ) // @fma_f16x2_expanded_no_nans 
# |            139: { 
# | next:392'0       X error: no match found
# |            140:  .reg .b32 %r<7>; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~
# | next:392'1       ?                 possible intended match
# |            141:  
# | next:392'0      ~
# |            142: // %bb.0: 
# | next:392'0      ~~~~~~~~~~
# |            143:  ld.param.b32 %r1, [fma_f16x2_expanded_no_nans_param_0]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            144:  ld.param.b32 %r2, [fma_f16x2_expanded_no_nans_param_1]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            145:  ld.param.b32 %r3, [fma_f16x2_expanded_no_nans_param_2]; 
# | next:392'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            195: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_expanded_no_nans( 
# |            196:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_0[4], 
# |            197:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_1[4], 
# |            198:  .param .align 4 .b8 fma_bf16x2_expanded_no_nans_param_2[4] 
# |            199: ) // @fma_bf16x2_expanded_no_nans 
# |            200: { 
# | next:562'0       X error: no match found
# |            201:  .reg .b32 %r<7>; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~
# | next:562'1       ?                 possible intended match
# |            202:  
# | next:562'0      ~
# |            203: // %bb.0: 
# | next:562'0      ~~~~~~~~~~
# |            204:  ld.param.b32 %r1, [fma_bf16x2_expanded_no_nans_param_0]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            205:  ld.param.b32 %r2, [fma_bf16x2_expanded_no_nans_param_1]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            206:  ld.param.b32 %r3, [fma_bf16x2_expanded_no_nans_param_2]; 
# | next:562'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            257: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_f16_no_nans( 
# |            258:  .param .align 2 .b8 fma_f16_no_nans_param_0[2], 
# |            259:  .param .align 2 .b8 fma_f16_no_nans_param_1[2], 
# |            260:  .param .align 2 .b8 fma_f16_no_nans_param_2[2] 
# |            261: ) // @fma_f16_no_nans 
# |            262: { 
# | next:872'0       X error: no match found
# |            263:  .reg .b16 %rs<7>; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~
# | next:872'1       ?                  possible intended match
# |            264:  
# | next:872'0      ~
# |            265: // %bb.0: 
# | next:872'0      ~~~~~~~~~~
# |            266:  ld.param.b16 %rs1, [fma_f16_no_nans_param_0]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            267:  ld.param.b16 %rs2, [fma_f16_no_nans_param_1]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            268:  ld.param.b16 %rs3, [fma_f16_no_nans_param_2]; 
# | next:872'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            316: .visible .func (.param .align 2 .b8 func_retval0[2]) fma_bf16_no_nans( 
# |            317:  .param .align 2 .b8 fma_bf16_no_nans_param_0[2], 
# |            318:  .param .align 2 .b8 fma_bf16_no_nans_param_1[2], 
# |            319:  .param .align 2 .b8 fma_bf16_no_nans_param_2[2] 
# |            320: ) // @fma_bf16_no_nans 
# |            321: { 
# | next:1017'0      X error: no match found
# |            322:  .reg .b16 %rs<7>; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~
# | next:1017'1      ?                  possible intended match
# |            323:  
# | next:1017'0     ~
# |            324: // %bb.0: 
# | next:1017'0     ~~~~~~~~~~
# |            325:  ld.param.b16 %rs1, [fma_bf16_no_nans_param_0]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            326:  ld.param.b16 %rs2, [fma_bf16_no_nans_param_1]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            327:  ld.param.b16 %rs3, [fma_bf16_no_nans_param_2]; 
# | next:1017'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            376: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_f16x2_no_nans( 
# |            377:  .param .align 4 .b8 fma_f16x2_no_nans_param_0[4], 
# |            378:  .param .align 4 .b8 fma_f16x2_no_nans_param_1[4], 
# |            379:  .param .align 4 .b8 fma_f16x2_no_nans_param_2[4] 
# |            380: ) // @fma_f16x2_no_nans 
# |            381: { 
# | next:1219'0      X error: no match found
# |            382:  .reg .pred %p<3>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~
# |            383:  .reg .b16 %rs<5>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~
# |            384:  .reg .b32 %r<6>; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~
# | next:1219'1      ?                 possible intended match
# |            385:  
# | next:1219'0     ~
# |            386: // %bb.0: 
# | next:1219'0     ~~~~~~~~~~
# |            387:  ld.param.b32 %r1, [fma_f16x2_no_nans_param_0]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            388:  ld.param.b32 %r2, [fma_f16x2_no_nans_param_1]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            389:  ld.param.b32 %r3, [fma_f16x2_no_nans_param_2]; 
# | next:1219'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            440: .visible .func (.param .align 4 .b8 func_retval0[4]) fma_bf16x2_no_nans( 
# |            441:  .param .align 4 .b8 fma_bf16x2_no_nans_param_0[4], 
# |            442:  .param .align 4 .b8 fma_bf16x2_no_nans_param_1[4], 
# |            443:  .param .align 4 .b8 fma_bf16x2_no_nans_param_2[4] 
# |            444: ) // @fma_bf16x2_no_nans 
# |            445: { 
# | next:1376'0      X error: no match found
# |            446:  .reg .b32 %r<7>; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~
# | next:1376'1      ?                 possible intended match
# |            447:  
# | next:1376'0     ~
# |            448: // %bb.0: 
# | next:1376'0     ~~~~~~~~~~
# |            449:  ld.param.b32 %r1, [fma_bf16x2_no_nans_param_0]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            450:  ld.param.b32 %r2, [fma_bf16x2_no_nans_param_1]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            451:  ld.param.b32 %r3, [fma_bf16x2_no_nans_param_2]; 
# | next:1376'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

LLVM.CodeGen/NVPTX/masked-load-3xhalf.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/NVPTX/masked-load-3xhalf.ll -march=nvptx64 -mcpu=sm_100 -mattr=+ptx88 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -march=nvptx64 -mcpu=sm_100 -mattr=+ptx88
# 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/NVPTX/masked-load-3xhalf.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll:10:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:14:2: note: scanning from here
# | {
# |  ^
# | <stdin>:16:2: note: possible intended match here
# |  .reg .b16 %rs<14>;
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll:50:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: .reg .b16 %rs<7>;
# |               ^
# | <stdin>:51:2: note: scanning from here
# | {
# |  ^
# | <stdin>:53:2: note: possible intended match here
# |  .reg .b16 %rs<14>;
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            9:  // .globl halfx3_extend_chain // -- Begin function halfx3_extend_chain 
# |           10:  // @halfx3_extend_chain 
# |           11: .visible .func halfx3_extend_chain( 
# |           12:  .param .b64 halfx3_extend_chain_param_0 
# |           13: ) 
# |           14: { 
# | next:10'0      X error: no match found
# |           15:  .reg .pred %p<7>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~
# |           16:  .reg .b16 %rs<14>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~
# | next:10'1      ?                   possible intended match
# |           17:  .reg .b32 %r<5>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~
# |           18:  .reg .b64 %rd<2>; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~
# |           19:  
# | next:10'0     ~
# |           20: // %bb.0: 
# | next:10'0     ~~~~~~~~~~
# |           21:  ld.param.b64 %rd1, [halfx3_extend_chain_param_0]; 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |           46: } 
# | next:10'0     ~~
# |           47:  // .globl halfx3_no_align // -- Begin function halfx3_no_align 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           48: .visible .func halfx3_no_align( 
# | next:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  .param .b64 halfx3_no_align_param_0 
# |           50: ) // @halfx3_no_align 
# |           51: { 
# | next:50'0      X error: no match found
# |           52:  .reg .pred %p<7>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~
# |           53:  .reg .b16 %rs<14>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~~
# | next:50'1      ?                   possible intended match
# |           54:  .reg .b64 %rd<2>; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~
# |           55:  
# | next:50'0     ~
# |           56: // %bb.0: 
# | next:50'0     ~~~~~~~~~~
# |           57:  ld.param.b64 %rd1, [halfx3_no_align_param_0]; 
# | next:50'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           58:  ld.b16 %rs1, [%rd1+4]; 
# | next:50'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.

Copy link
Copy Markdown
Collaborator

@RKSimon RKSimon left a comment

Choose a reason for hiding this comment

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

CI failures

Copy link
Copy Markdown
Contributor

@arsenm arsenm left a comment

Choose a reason for hiding this comment

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

I'm not sure the combiner work ever happened?

; CHECK-LABEL: minnum_select_nsz:
%cmp = fcmp nnan ole float %x, %y
%sel = select nsz i1 %cmp, float %x, float %y
%sel = select nnan nsz i1 %cmp, float %x, float %y
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.

Why does this need to gain nnan? It should be inferrable from the compare?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

nikic added a commit that referenced this pull request Mar 5, 2026
…184590)

minnum/maxnum don't have the correct sNaN semantics, we must convert to
minimumnum/maximumnum instead.

To avoid an NVPTX regression, make it handle fmaximmumnum in one
TableGen pattern.

This is intended as a targeted fix for the miscompile, as the complete
removal of this transform (#93575) appears to be blocked.

Fixes #176624.
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.

SDAG doesn't handle signed zero correctly when folding select -> {min|max}num

4 participants