Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RISCV] Expand vp.stride.load to splat of a scalar load. #98140

Merged
merged 3 commits into from
Jul 11, 2024

Conversation

yetingk
Copy link
Contributor

@yetingk yetingk commented Jul 9, 2024

It's a similar patch as a214c52 for vp.stride.load. Some targets prefer pattern (vmv.v.x (load)) instead of vlse with zero stride.

It's IR version of #97798.

It's a similar patch as a214c52 for vp.stride.load.
Some targets prefer pattern (vmv.v.x (load)) instead of vlse with zero stride.
Copy link
Contributor

@lukel97 lukel97 left a comment

Choose a reason for hiding this comment

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

LGTM

@yetingk yetingk marked this pull request as ready for review July 10, 2024 05:39
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 10, 2024

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

Author: Yeting Kuo (yetingk)

Changes

It's a similar patch as a214c52 for vp.stride.load. Some targets prefer pattern (vmv.v.x (load)) instead of vlse with zero stride.

It's IR version of #97798.


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

3 Files Affected:

  • (modified) llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp (+50)
  • (modified) llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll (+46-4)
  • (modified) llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll (+44-2)
diff --git a/llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp b/llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
index 6e0f429c34b2f..10e0496f16d4f 100644
--- a/llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
+++ b/llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
@@ -18,9 +18,11 @@
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Analysis/ValueTracking.h"
 #include "llvm/CodeGen/TargetPassConfig.h"
+#include "llvm/IR/Dominators.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/InstVisitor.h"
 #include "llvm/IR/Intrinsics.h"
+#include "llvm/IR/IntrinsicsRISCV.h"
 #include "llvm/IR/PatternMatch.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
@@ -35,6 +37,7 @@ namespace {
 class RISCVCodeGenPrepare : public FunctionPass,
                             public InstVisitor<RISCVCodeGenPrepare, bool> {
   const DataLayout *DL;
+  const DominatorTree *DT;
   const RISCVSubtarget *ST;
 
 public:
@@ -48,12 +51,14 @@ class RISCVCodeGenPrepare : public FunctionPass,
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
+    AU.addRequired<DominatorTreeWrapperPass>();
     AU.addRequired<TargetPassConfig>();
   }
 
   bool visitInstruction(Instruction &I) { return false; }
   bool visitAnd(BinaryOperator &BO);
   bool visitIntrinsicInst(IntrinsicInst &I);
+  bool expandVPStrideLoad(IntrinsicInst &I);
 };
 
 } // end anonymous namespace
@@ -128,6 +133,9 @@ bool RISCVCodeGenPrepare::visitAnd(BinaryOperator &BO) {
 // Which eliminates the scalar -> vector -> scalar crossing during instruction
 // selection.
 bool RISCVCodeGenPrepare::visitIntrinsicInst(IntrinsicInst &I) {
+  if (expandVPStrideLoad(I))
+    return true;
+
   if (I.getIntrinsicID() != Intrinsic::vector_reduce_fadd)
     return false;
 
@@ -155,6 +163,47 @@ bool RISCVCodeGenPrepare::visitIntrinsicInst(IntrinsicInst &I) {
   return true;
 }
 
+bool RISCVCodeGenPrepare::expandVPStrideLoad(IntrinsicInst &II) {
+  if (ST->hasOptimizedZeroStrideLoad())
+    return false;
+
+  Value *BasePtr, *VL;
+  using namespace PatternMatch;
+  if (!match(&II, m_Intrinsic<Intrinsic::experimental_vp_strided_load>(
+                      m_Value(BasePtr), m_Zero(), m_AllOnes(), m_Value(VL))))
+    return false;
+
+  if (!isKnownNonZero(VL, {*DL, DT, nullptr, &II}))
+    return false;
+
+  auto *VTy = cast<VectorType>(II.getType());
+
+  IRBuilder<> Builder(&II);
+
+  // Extend VL from i32 to XLen if needed.
+  if (ST->is64Bit())
+    VL = Builder.CreateZExt(VL, Builder.getInt64Ty());
+
+  Type *STy = VTy->getElementType();
+  Value *Val = Builder.CreateLoad(STy, BasePtr);
+  const auto &TLI = *ST->getTargetLowering();
+  Value *Res;
+
+  // TODO: Also support fixed/illegal vector types to splat with evl = vl.
+  if (isa<ScalableVectorType>(VTy) && TLI.isTypeLegal(EVT::getEVT(VTy))) {
+    unsigned VMVOp = STy->isFloatingPointTy() ? Intrinsic::riscv_vfmv_v_f
+                                              : Intrinsic::riscv_vmv_v_x;
+    Res = Builder.CreateIntrinsic(VMVOp, {VTy, VL->getType()},
+                                  {PoisonValue::get(VTy), Val, VL});
+  } else {
+    Res = Builder.CreateVectorSplat(VTy->getElementCount(), Val);
+  }
+
+  II.replaceAllUsesWith(Res);
+  II.eraseFromParent();
+  return true;
+}
+
 bool RISCVCodeGenPrepare::runOnFunction(Function &F) {
   if (skipFunction(F))
     return false;
@@ -164,6 +213,7 @@ bool RISCVCodeGenPrepare::runOnFunction(Function &F) {
   ST = &TM.getSubtarget<RISCVSubtarget>(F);
 
   DL = &F.getDataLayout();
+  DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
 
   bool MadeChange = false;
   for (auto &BB : F)
diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
index 5e64e9fbc1a2f..86359043a90d9 100644
--- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
@@ -1,10 +1,16 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh \
-; RUN:   -verify-machineinstrs < %s \
-; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV32
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV32
 ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh \
-; RUN:   -verify-machineinstrs < %s \
-; RUN:   | FileCheck %s --check-prefixes=CHECK,CHECK-RV64
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh,+no-optimized-zero-stride-load \
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV32,CHECK-NOOPT
+; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh,+no-optimized-zero-stride-load  \
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV64,CHECK-NOOPT
 
 declare <2 x i8> @llvm.experimental.vp.strided.load.v2i8.p0.i8(ptr, i8, <2 x i1>, i32)
 
@@ -626,3 +632,39 @@ define <33 x double> @strided_load_v33f64(ptr %ptr, i64 %stride, <33 x i1> %mask
 }
 
 declare <33 x double> @llvm.experimental.vp.strided.load.v33f64.p0.i64(ptr, i64, <33 x i1>, i32)
+
+; Test unmasked integer zero strided
+define <4 x i8> @zero_strided_unmasked_vpload_4i8_i8(ptr %ptr) {
+; CHECK-OPT-LABEL: zero_strided_unmasked_vpload_4i8_i8:
+; CHECK-OPT:       # %bb.0:
+; CHECK-OPT-NEXT:    vsetivli zero, 4, e8, mf4, ta, ma
+; CHECK-OPT-NEXT:    vlse8.v v8, (a0), zero
+; CHECK-OPT-NEXT:    ret
+;
+; CHECK-NOOPT-LABEL: zero_strided_unmasked_vpload_4i8_i8:
+; CHECK-NOOPT:       # %bb.0:
+; CHECK-NOOPT-NEXT:    lbu a0, 0(a0)
+; CHECK-NOOPT-NEXT:    vsetivli zero, 4, e8, mf4, ta, ma
+; CHECK-NOOPT-NEXT:    vmv.v.x v8, a0
+; CHECK-NOOPT-NEXT:    ret
+  %load = call <4 x i8> @llvm.experimental.vp.strided.load.4i8.p0.i8(ptr %ptr, i8 0, <4 x i1> splat (i1 true), i32 4)
+  ret <4 x i8> %load
+}
+
+; Test unmasked float zero strided
+define <4 x half> @zero_strided_unmasked_vpload_4f16(ptr %ptr) {
+; CHECK-OPT-LABEL: zero_strided_unmasked_vpload_4f16:
+; CHECK-OPT:       # %bb.0:
+; CHECK-OPT-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; CHECK-OPT-NEXT:    vlse16.v v8, (a0), zero
+; CHECK-OPT-NEXT:    ret
+;
+; CHECK-NOOPT-LABEL: zero_strided_unmasked_vpload_4f16:
+; CHECK-NOOPT:       # %bb.0:
+; CHECK-NOOPT-NEXT:    flh fa5, 0(a0)
+; CHECK-NOOPT-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; CHECK-NOOPT-NEXT:    vfmv.v.f v8, fa5
+; CHECK-NOOPT-NEXT:    ret
+  %load = call <4 x half> @llvm.experimental.vp.strided.load.4f16.p0.i32(ptr %ptr, i32 0, <4 x i1> splat (i1 true), i32 4)
+  ret <4 x half> %load
+}
diff --git a/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll b/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll
index 4d3bced0bcb50..d422ed5dcfc22 100644
--- a/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll
@@ -1,10 +1,16 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh \
 ; RUN:     -verify-machineinstrs < %s | FileCheck %s \
-; RUN:     -check-prefixes=CHECK,CHECK-RV32
+; RUN:     -check-prefixes=CHECK,CHECK-RV32,CHECK-OPT
 ; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh \
 ; RUN:     -verify-machineinstrs < %s | FileCheck %s \
-; RUN:     -check-prefixes=CHECK,CHECK-RV64
+; RUN:     -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+; RUN: llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh,+no-optimized-zero-stride-load \
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV32,CHECK-NOOPT
+; RUN: llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh,+no-optimized-zero-stride-load  \
+; RUN:     -verify-machineinstrs < %s | FileCheck %s \
+; RUN:     -check-prefixes=CHECK,CHECK-RV64,CHECK-NOOPT
 
 declare <vscale x 1 x i8> @llvm.experimental.vp.strided.load.nxv1i8.p0.i8(ptr, i8, <vscale x 1 x i1>, i32)
 
@@ -780,3 +786,39 @@ define <vscale x 16 x double> @strided_load_nxv17f64(ptr %ptr, i64 %stride, <vsc
 declare <vscale x 17 x double> @llvm.experimental.vp.strided.load.nxv17f64.p0.i64(ptr, i64, <vscale x 17 x i1>, i32)
 declare <vscale x 1 x double> @llvm.experimental.vector.extract.nxv1f64(<vscale x 17 x double> %vec, i64 %idx)
 declare <vscale x 16 x double> @llvm.experimental.vector.extract.nxv16f64(<vscale x 17 x double> %vec, i64 %idx)
+
+; Test unmasked integer zero strided
+define <vscale x 1 x i8> @zero_strided_unmasked_vpload_nxv1i8_i8(ptr %ptr) {
+; CHECK-OPT-LABEL: zero_strided_unmasked_vpload_nxv1i8_i8:
+; CHECK-OPT:       # %bb.0:
+; CHECK-OPT-NEXT:    vsetivli zero, 4, e8, mf8, ta, ma
+; CHECK-OPT-NEXT:    vlse8.v v8, (a0), zero
+; CHECK-OPT-NEXT:    ret
+;
+; CHECK-NOOPT-LABEL: zero_strided_unmasked_vpload_nxv1i8_i8:
+; CHECK-NOOPT:       # %bb.0:
+; CHECK-NOOPT-NEXT:    lbu a0, 0(a0)
+; CHECK-NOOPT-NEXT:    vsetivli zero, 4, e8, mf8, ta, ma
+; CHECK-NOOPT-NEXT:    vmv.v.x v8, a0
+; CHECK-NOOPT-NEXT:    ret
+  %load = call <vscale x 1 x i8> @llvm.experimental.vp.strided.load.nxv1i8.p0.i8(ptr %ptr, i8 0, <vscale x 1 x i1> splat (i1 true), i32 4)
+  ret <vscale x 1 x i8> %load
+}
+
+; Test unmasked float zero strided
+define <vscale x 1 x half> @zero_strided_unmasked_vpload_nxv1f16(ptr %ptr) {
+; CHECK-OPT-LABEL: zero_strided_unmasked_vpload_nxv1f16:
+; CHECK-OPT:       # %bb.0:
+; CHECK-OPT-NEXT:    vsetivli zero, 4, e16, mf4, ta, ma
+; CHECK-OPT-NEXT:    vlse16.v v8, (a0), zero
+; CHECK-OPT-NEXT:    ret
+;
+; CHECK-NOOPT-LABEL: zero_strided_unmasked_vpload_nxv1f16:
+; CHECK-NOOPT:       # %bb.0:
+; CHECK-NOOPT-NEXT:    flh fa5, 0(a0)
+; CHECK-NOOPT-NEXT:    vsetivli zero, 4, e16, mf4, ta, ma
+; CHECK-NOOPT-NEXT:    vfmv.v.f v8, fa5
+; CHECK-NOOPT-NEXT:    ret
+  %load = call <vscale x 1 x half> @llvm.experimental.vp.strided.load.nxv1f16.p0.i32(ptr %ptr, i32 0, <vscale x 1 x i1> splat (i1 true), i32 4)
+  ret <vscale x 1 x half> %load
+}

@yetingk
Copy link
Contributor Author

yetingk commented Jul 10, 2024

@topperc and @lukel97 Do you have a plan to implement vp.splat? I could go to implement it if you don't have a a plan of it.

@lukel97
Copy link
Contributor

lukel97 commented Jul 10, 2024

@topperc and @lukel97 Do you have a plan to implement vp.splat? I could go to implement it if you don't have a a plan of it.

No plans here! Would you still plan on landing this PR before vp.splat is added?

@yetingk
Copy link
Contributor Author

yetingk commented Jul 10, 2024

No plans here! Would you still plan on landing this PR before vp.splat is added?

I plan to wait new comments of this PR for around 12 hours. If no another comments appeared, I will merge it.

@yetingk yetingk merged commit cda245a into llvm:main Jul 11, 2024
7 of 10 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-rel-x86-64 running on ml-opt-rel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/185/builds/1537

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
+ /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
RUN: at line 5: /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/ml-opt-rel-x86-64-b1/build/bin/FileCheck /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/ml-opt-rel-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-dev-x86-64 running on ml-opt-dev-x86-64-b2 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/137/builds/1548

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
RUN: at line 5: /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/ml-opt-dev-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/ml-opt-dev-x86-64-b1/build/bin/FileCheck /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
/b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/ml-opt-dev-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder clang-x86_64-debian-fast running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/56/builds/2089

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/1/clang-x86_64-debian-fast/llvm.obj/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
RUN: at line 5: /b/1/clang-x86_64-debian-fast/llvm.obj/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/FileCheck /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/1/clang-x86_64-debian-fast/llvm.obj/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/1/clang-x86_64-debian-fast/llvm.src/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

nico added a commit that referenced this pull request Jul 11, 2024
nico added a commit that referenced this pull request Jul 11, 2024
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-expensive-checks-debian running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/16/builds/1547

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
RUN: at line 5: /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/1538

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
RUN: at line 5: /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/ml-opt-devrel-x86-64-b1/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/ml-opt-devrel-x86-64-b1/build/bin/FileCheck /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 7 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/2190

Here is the relevant piece of the build log for the reference:

Step 7 (test-build-unified-tree-check-llvm) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32
+ /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32
+ /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
RUN: at line 5: /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
+ /b/1/llvm-x86_64-debian-dylib/build/bin/llc -mtriple=riscv64 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
+ /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll -check-prefixes=CHECK,CHECK-RV64,CHECK-OPT
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:640:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf4, ta, ma
                  ^
<stdin>:688:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf4, ta, ma
 ^
<stdin>:686:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:687:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll:658:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
                  ^
<stdin>:703:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf2, ta, ma
 ^
<stdin>:701:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:702:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        683:  .variant_cc zero_strided_unmasked_vpload_4i8_i8 
        684: zero_strided_unmasked_vpload_4i8_i8: # @zero_strided_unmasked_vpload_4i8_i8 
        685:  .cfi_startproc 
        686: # %bb.0: 
...

@lukel97
Copy link
Contributor

lukel97 commented Jul 11, 2024

Woops, I think this needs rebased after #98205. I wish we had a merge queue to catch these types of things

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 11, 2024

LLVM Buildbot has detected a new failure on builder lld-x86_64-ubuntu-fast running on as-builder-4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/33/builds/422

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM :: CodeGen/RISCV/rvv/strided-vpload.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh      -verify-machineinstrs < /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll | /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll      -check-prefixes=CHECK,CHECK-RV32,CHECK-OPT
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll -check-prefixes=CHECK,CHECK-RV32,CHECK-OPT
+ /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/bin/llc -mtriple=riscv32 -mattr=+m,+d,+zfh,+v,+zvfh -verify-machineinstrs
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll:794:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e8, mf8, ta, ma
                  ^
<stdin>:814:2: note: 'next' match was here
 vsetivli zero, 4, e8, mf8, ta, ma
 ^
<stdin>:812:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:813:1: note: non-matching line after previous match is here
 lbu a0, 0(a0)
^
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll:812:19: error: CHECK-OPT-NEXT: is not on the line after the previous match
; CHECK-OPT-NEXT: vsetivli zero, 4, e16, mf4, ta, ma
                  ^
<stdin>:829:2: note: 'next' match was here
 vsetivli zero, 4, e16, mf4, ta, ma
 ^
<stdin>:827:9: note: previous match ended here
# %bb.0:
        ^
<stdin>:828:1: note: non-matching line after previous match is here
 flh fa5, 0(a0)
^

Input file: <stdin>
Check file: /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          .
          .
          .
        809:  .variant_cc zero_strided_unmasked_vpload_nxv1i8_i8 
        810: zero_strided_unmasked_vpload_nxv1i8_i8: # @zero_strided_unmasked_vpload_nxv1i8_i8 
        811:  .cfi_startproc 
        812: # %bb.0: 
        813:  lbu a0, 0(a0) 
        814:  vsetivli zero, 4, e8, mf8, ta, ma 
next:794      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
...

yetingk pushed a commit to yetingk/llvm-project that referenced this pull request Jul 12, 2024
This is recommit of llvm#98140. It should be based on llvm#98205 which changes
the feature of hardware zero stride optimization.

It's a similar patch as a214c52 for vp.stride.load.
Some targets prefer pattern (vmv.v.x (load)) instead of vlse with zero stride.
yetingk pushed a commit to yetingk/llvm-project that referenced this pull request Jul 12, 2024
This is recommit of llvm#98140. It should be based on llvm#98205 which changes
the feature of hardware zero stride optimization.

It's a similar patch as a214c52 for vp.stride.load.
Some targets prefer pattern (vmv.v.x (load)) instead of vlse with zero stride.
aaryanshukla pushed a commit to aaryanshukla/llvm-project that referenced this pull request Jul 14, 2024
It's a similar patch as a214c52 for
vp.stride.load. Some targets prefer pattern (vmv.v.x (load)) instead of
vlse with zero stride.

It's IR version of llvm#97798.
aaryanshukla pushed a commit to aaryanshukla/llvm-project that referenced this pull request Jul 14, 2024
yetingk added a commit that referenced this pull request Jul 15, 2024
…98579)

This is a recommit of #98140. The old commit should be rebased on #98205
which changes the feature of hardware zero stride optimization.

It's a similar patch as a214c52 for
vp.stride.load. Some targets prefer pattern (vmv.v.x (load)) instead of
vlse with zero stride.
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.

5 participants