[llvm] [llvm][RISCV] Handle miscompile of fma in zvfbfa codegen (PR #192412)

Brandon Wu via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 16 02:08:30 PDT 2026


https://github.com/4vtomat created https://github.com/llvm/llvm-project/pull/192412

None

>From d81f0a24fe300f71a9bb54208f7b5fb82c5bf782 Mon Sep 17 00:00:00 2001
From: Brandon Wu <brandon.wu at sifive.com>
Date: Thu, 16 Apr 2026 17:07:09 +0800
Subject: [PATCH] [llvm][RISCV] Handle miscompile of fma in zvfbfa codegen

---
 .../Target/RISCV/RISCVInstrInfoVSDPatterns.td | 24 +++---
 .../Target/RISCV/RISCVInstrInfoVVLPatterns.td |  5 +-
 .../RISCV/rvv/fixed-vectors-vfwmacc.ll        | 80 +++++++++----------
 llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll | 80 +++++++++----------
 4 files changed, 97 insertions(+), 92 deletions(-)

diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
index 4c558c4524c5b..9fdb7a19d9ce9 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
@@ -691,6 +691,7 @@ multiclass VPatWidenFPMulAccSDNode_VV_VF_RM<string instruction_name,
     defvar vti = vtiToWti.Vti;
     defvar wti = vtiToWti.Wti;
     defvar suffix = vti.LMul.MX # "_E" # vti.SEW;
+    defvar alt = !if(!eq(vti.Scalar, bf16), "_ALT", "");
     let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
                                  GetVTypePredicates<wti>.Predicates) in {
       def : Pat<(fma (wti.Vector (riscv_fpextend_vl_sameuser
@@ -700,7 +701,7 @@ multiclass VPatWidenFPMulAccSDNode_VV_VF_RM<string instruction_name,
                                       (vti.Vector vti.RegClass:$rs2),
                                       (vti.Mask true_mask), (XLenVT srcvalue))),
                      (wti.Vector wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_VV_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_VV_"#suffix)
                    wti.RegClass:$rd, vti.RegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -712,7 +713,7 @@ multiclass VPatWidenFPMulAccSDNode_VV_VF_RM<string instruction_name,
                                       (vti.Vector vti.RegClass:$rs2),
                                       (vti.Mask true_mask), (XLenVT srcvalue))),
                      (wti.Vector wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -727,6 +728,7 @@ multiclass VPatWidenFPNegMulAccSDNode_VV_VF_RM<string instruction_name> {
     defvar vti = vtiToWti.Vti;
     defvar wti = vtiToWti.Wti;
     defvar suffix = vti.LMul.MX # "_E" # vti.SEW;
+    defvar alt = !if(!eq(vti.Scalar, bf16), "_ALT", "");
     let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
                                  GetVTypePredicates<wti>.Predicates) in {
       def : Pat<(fma (fneg (wti.Vector (riscv_fpextend_vl_oneuse
@@ -735,7 +737,7 @@ multiclass VPatWidenFPNegMulAccSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_oneuse (vti.Vector vti.RegClass:$rs2),
                                                (vti.Mask true_mask), (XLenVT srcvalue)),
                      (fneg wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_VV_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_VV_"#suffix)
                    wti.RegClass:$rd, vti.RegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -746,7 +748,7 @@ multiclass VPatWidenFPNegMulAccSDNode_VV_VF_RM<string instruction_name> {
                                             (vti.Vector vti.RegClass:$rs2),
                                             (vti.Mask true_mask), (XLenVT srcvalue)))),
                      (fneg wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -756,7 +758,7 @@ multiclass VPatWidenFPNegMulAccSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_oneuse (vti.Vector vti.RegClass:$rs2),
                                                (vti.Mask true_mask), (XLenVT srcvalue)),
                      (fneg wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -771,6 +773,7 @@ multiclass VPatWidenFPMulSacSDNode_VV_VF_RM<string instruction_name> {
     defvar vti = vtiToWti.Vti;
     defvar wti = vtiToWti.Wti;
     defvar suffix = vti.LMul.MX # "_E" # vti.SEW;
+    defvar alt = !if(!eq(vti.Scalar, bf16), "_ALT", "");
     let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
                                  GetVTypePredicates<wti>.Predicates) in {
       def : Pat<(fma (wti.Vector (riscv_fpextend_vl_sameuser
@@ -779,7 +782,7 @@ multiclass VPatWidenFPMulSacSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_sameuser (vti.Vector vti.RegClass:$rs2),
                                                  (vti.Mask true_mask), (XLenVT srcvalue)),
                      (fneg wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_VV_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_VV_"#suffix)
                    wti.RegClass:$rd, vti.RegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -789,7 +792,7 @@ multiclass VPatWidenFPMulSacSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_oneuse (vti.Vector vti.RegClass:$rs2),
                                                (vti.Mask true_mask), (XLenVT srcvalue)),
                      (fneg wti.RegClass:$rd)),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -804,6 +807,7 @@ multiclass VPatWidenFPNegMulSacSDNode_VV_VF_RM<string instruction_name> {
     defvar vti = vtiToWti.Vti;
     defvar wti = vtiToWti.Wti;
     defvar suffix = vti.LMul.MX # "_E" # vti.SEW;
+    defvar alt = !if(!eq(vti.Scalar, bf16), "_ALT", "");
     let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
                                  GetVTypePredicates<wti>.Predicates) in {
       def : Pat<(fma (fneg (wti.Vector (riscv_fpextend_vl_oneuse
@@ -812,7 +816,7 @@ multiclass VPatWidenFPNegMulSacSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_oneuse (vti.Vector vti.RegClass:$rs2),
                                                (vti.Mask true_mask), (XLenVT srcvalue)),
                      wti.RegClass:$rd),
-                (!cast<Instruction>(instruction_name#"_VV_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_VV_"#suffix)
                    wti.RegClass:$rd, vti.RegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -823,7 +827,7 @@ multiclass VPatWidenFPNegMulSacSDNode_VV_VF_RM<string instruction_name> {
                                             (vti.Vector vti.RegClass:$rs2),
                                             (vti.Mask true_mask), (XLenVT srcvalue)))),
                      wti.RegClass:$rd),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
@@ -833,7 +837,7 @@ multiclass VPatWidenFPNegMulSacSDNode_VV_VF_RM<string instruction_name> {
                      (riscv_fpextend_vl_oneuse (vti.Vector vti.RegClass:$rs2),
                                                (vti.Mask true_mask), (XLenVT srcvalue)),
                      wti.RegClass:$rd),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix)
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix)
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    // Value to indicate no rounding mode change in
                    // RISCVInsertReadWriteCSR
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
index 2a99492bc5596..9e3df3dc6c714 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
@@ -1876,13 +1876,14 @@ multiclass VPatWidenFPMulAccVL_VV_VF_RM<SDNode vop, string instruction_name,
     defvar vti = vtiToWti.Vti;
     defvar wti = vtiToWti.Wti;
     defvar suffix = vti.LMul.MX # "_E" # vti.SEW;
+    defvar alt = !if(!eq(vti.Scalar, bf16), "_ALT", "");
     let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
                                  GetVTypePredicates<wti>.Predicates) in {
       def : Pat<(vop (vti.Vector vti.RegClass:$rs1),
                      (vti.Vector vti.RegClass:$rs2),
                      (wti.Vector wti.RegClass:$rd), (vti.Mask VMV0:$vm),
                      VLOpFrag),
-                (!cast<Instruction>(instruction_name#"_VV_"#suffix#"_MASK")
+                (!cast<Instruction>(instruction_name#alt#"_VV_"#suffix#"_MASK")
                    wti.RegClass:$rd, vti.RegClass:$rs1, vti.RegClass:$rs2,
                    (vti.Mask VMV0:$vm),
                    // Value to indicate no rounding mode change in
@@ -1893,7 +1894,7 @@ multiclass VPatWidenFPMulAccVL_VV_VF_RM<SDNode vop, string instruction_name,
                      (vti.Vector vti.RegClass:$rs2),
                      (wti.Vector wti.RegClass:$rd), (vti.Mask VMV0:$vm),
                      VLOpFrag),
-                (!cast<Instruction>(instruction_name#"_V"#vti.ScalarSuffix#"_"#suffix#"_MASK")
+                (!cast<Instruction>(instruction_name#alt#"_V"#vti.ScalarSuffix#"_"#suffix#"_MASK")
                    wti.RegClass:$rd, vti.ScalarRegClass:$rs1, vti.RegClass:$rs2,
                    (vti.Mask VMV0:$vm),
                    // Value to indicate no rounding mode change in
diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll
index c58520b640521..de4e5a9906158 100644
--- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll
@@ -2084,7 +2084,7 @@ define <1 x float> @vfwmaccbf16_vv_v1f32(<1 x float> %va, <1 x bfloat> %vb, <1 x
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <1 x bfloat> %vb to <1 x float>
@@ -2107,7 +2107,7 @@ define <1 x float> @vfwmaccbf16_vf_v1f32(<1 x float> %va, <1 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <1 x bfloat> poison, bfloat %c, i32 0
@@ -2130,7 +2130,7 @@ define <1 x float> @vfwnmaccbf16_vv_v1f32(<1 x float> %va, <1 x bfloat> %vb, <1
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <1 x bfloat> %vb to <1 x float>
@@ -2155,7 +2155,7 @@ define <1 x float> @vfwnmaccbf16_vf_v1f32(<1 x float> %va, <1 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <1 x bfloat> poison, bfloat %c, i32 0
@@ -2180,7 +2180,7 @@ define <1 x float> @vfwmsacbf16_vv_v1f32(<1 x float> %va, <1 x bfloat> %vb, <1 x
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <1 x bfloat> %vb to <1 x float>
@@ -2204,7 +2204,7 @@ define <1 x float> @vfwmsacbf16_vf_v1f32(<1 x float> %va, <1 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <1 x bfloat> poison, bfloat %c, i32 0
@@ -2228,7 +2228,7 @@ define <1 x float> @vfwnmsacbf16_vv_v1f32(<1 x float> %va, <1 x bfloat> %vb, <1
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <1 x bfloat> %vb to <1 x float>
@@ -2252,7 +2252,7 @@ define <1 x float> @vfwnmsacbf16_vf_v1f32(<1 x float> %va, <1 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_v1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 1, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 1, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <1 x bfloat> poison, bfloat %c, i32 0
@@ -2276,7 +2276,7 @@ define <2 x float> @vfwmaccbf16_vv_v2f32(<2 x float> %va, <2 x bfloat> %vb, <2 x
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <2 x bfloat> %vb to <2 x float>
@@ -2299,7 +2299,7 @@ define <2 x float> @vfwmaccbf16_vf_v2f32(<2 x float> %va, <2 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <2 x bfloat> poison, bfloat %c, i32 0
@@ -2322,7 +2322,7 @@ define <2 x float> @vfwnmaccbf16_vv_v2f32(<2 x float> %va, <2 x bfloat> %vb, <2
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <2 x bfloat> %vb to <2 x float>
@@ -2347,7 +2347,7 @@ define <2 x float> @vfwnmaccbf16_vf_v2f32(<2 x float> %va, <2 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <2 x bfloat> poison, bfloat %c, i32 0
@@ -2372,7 +2372,7 @@ define <2 x float> @vfwmsacbf16_vv_v2f32(<2 x float> %va, <2 x bfloat> %vb, <2 x
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <2 x bfloat> %vb to <2 x float>
@@ -2396,7 +2396,7 @@ define <2 x float> @vfwmsacbf16_vf_v2f32(<2 x float> %va, <2 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <2 x bfloat> poison, bfloat %c, i32 0
@@ -2420,7 +2420,7 @@ define <2 x float> @vfwnmsacbf16_vv_v2f32(<2 x float> %va, <2 x bfloat> %vb, <2
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <2 x bfloat> %vb to <2 x float>
@@ -2444,7 +2444,7 @@ define <2 x float> @vfwnmsacbf16_vf_v2f32(<2 x float> %va, <2 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_v2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 2, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 2, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <2 x bfloat> poison, bfloat %c, i32 0
@@ -2468,7 +2468,7 @@ define <4 x float> @vfwmaccbf16_vv_v4f32(<4 x float> %va, <4 x bfloat> %vb, <4 x
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <4 x bfloat> %vb to <4 x float>
@@ -2491,7 +2491,7 @@ define <4 x float> @vfwmaccbf16_vf_v4f32(<4 x float> %va, <4 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <4 x bfloat> poison, bfloat %c, i32 0
@@ -2514,7 +2514,7 @@ define <4 x float> @vfwnmaccbf16_vv_v4f32(<4 x float> %va, <4 x bfloat> %vb, <4
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <4 x bfloat> %vb to <4 x float>
@@ -2539,7 +2539,7 @@ define <4 x float> @vfwnmaccbf16_vf_v4f32(<4 x float> %va, <4 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <4 x bfloat> poison, bfloat %c, i32 0
@@ -2564,7 +2564,7 @@ define <4 x float> @vfwmsacbf16_vv_v4f32(<4 x float> %va, <4 x bfloat> %vb, <4 x
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <4 x bfloat> %vb to <4 x float>
@@ -2588,7 +2588,7 @@ define <4 x float> @vfwmsacbf16_vf_v4f32(<4 x float> %va, <4 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <4 x bfloat> poison, bfloat %c, i32 0
@@ -2612,7 +2612,7 @@ define <4 x float> @vfwnmsacbf16_vv_v4f32(<4 x float> %va, <4 x bfloat> %vb, <4
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <4 x bfloat> %vb to <4 x float>
@@ -2636,7 +2636,7 @@ define <4 x float> @vfwnmsacbf16_vf_v4f32(<4 x float> %va, <4 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_v4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 4, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 4, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <4 x bfloat> poison, bfloat %c, i32 0
@@ -2660,7 +2660,7 @@ define <8 x float> @vfwmaccbf16_vv_v8f32(<8 x float> %va, <8 x bfloat> %vb, <8 x
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <8 x bfloat> %vb to <8 x float>
@@ -2683,7 +2683,7 @@ define <8 x float> @vfwmaccbf16_vf_v8f32(<8 x float> %va, <8 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <8 x bfloat> poison, bfloat %c, i32 0
@@ -2706,7 +2706,7 @@ define <8 x float> @vfwnmaccbf16_vv_v8f32(<8 x float> %va, <8 x bfloat> %vb, <8
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <8 x bfloat> %vb to <8 x float>
@@ -2731,7 +2731,7 @@ define <8 x float> @vfwnmaccbf16_vf_v8f32(<8 x float> %va, <8 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <8 x bfloat> poison, bfloat %c, i32 0
@@ -2756,7 +2756,7 @@ define <8 x float> @vfwmsacbf16_vv_v8f32(<8 x float> %va, <8 x bfloat> %vb, <8 x
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <8 x bfloat> %vb to <8 x float>
@@ -2780,7 +2780,7 @@ define <8 x float> @vfwmsacbf16_vf_v8f32(<8 x float> %va, <8 x bfloat> %vb, bflo
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <8 x bfloat> poison, bfloat %c, i32 0
@@ -2804,7 +2804,7 @@ define <8 x float> @vfwnmsacbf16_vv_v8f32(<8 x float> %va, <8 x bfloat> %vb, <8
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <8 x bfloat> %vb to <8 x float>
@@ -2828,7 +2828,7 @@ define <8 x float> @vfwnmsacbf16_vf_v8f32(<8 x float> %va, <8 x bfloat> %vb, bfl
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_v8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 8, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 8, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <8 x bfloat> poison, bfloat %c, i32 0
@@ -2852,7 +2852,7 @@ define <16 x float> @vfwmaccbf16_vv_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <16 x bfloat> %vb to <16 x float>
@@ -2875,7 +2875,7 @@ define <16 x float> @vfwmaccbf16_vf_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <16 x bfloat> poison, bfloat %c, i32 0
@@ -2898,7 +2898,7 @@ define <16 x float> @vfwnmaccbf16_vv_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <16 x bfloat> %vb to <16 x float>
@@ -2923,7 +2923,7 @@ define <16 x float> @vfwnmaccbf16_vf_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <16 x bfloat> poison, bfloat %c, i32 0
@@ -2948,7 +2948,7 @@ define <16 x float> @vfwmsacbf16_vv_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <16 x bfloat> %vb to <16 x float>
@@ -2972,7 +2972,7 @@ define <16 x float> @vfwmsacbf16_vf_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <16 x bfloat> poison, bfloat %c, i32 0
@@ -2996,7 +2996,7 @@ define <16 x float> @vfwnmsacbf16_vv_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %vd = fpext <16 x bfloat> %vb to <16 x float>
@@ -3020,7 +3020,7 @@ define <16 x float> @vfwnmsacbf16_vf_v16f32(<16 x float> %va, <16 x bfloat> %vb,
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_v16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetivli zero, 16, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetivli zero, 16, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %head = insertelement <16 x bfloat> poison, bfloat %c, i32 0
diff --git a/llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll b/llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll
index 82982bb7b267c..91631cc91b1cd 100644
--- a/llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll
@@ -24,7 +24,7 @@ define <vscale x 1 x float> @vfwmaccbf16_vv_nxv1f32(<vscale x 1 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 1 x bfloat> %b to <vscale x 1 x float>
@@ -45,7 +45,7 @@ define <vscale x 1 x float> @vfwmaccbf16_vf_nxv1f32(<vscale x 1 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0
@@ -68,7 +68,7 @@ define <vscale x 2 x float> @vfwmaccbf16_vv_nxv2f32(<vscale x 2 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 2 x bfloat> %b to <vscale x 2 x float>
@@ -89,7 +89,7 @@ define <vscale x 2 x float> @vfwmaccbf16_vf_nxv2f32(<vscale x 2 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 2 x bfloat> poison, bfloat %b, i32 0
@@ -112,7 +112,7 @@ define <vscale x 4 x float> @vfwmaccbf16_vv_nxv4f32(<vscale x 4 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 4 x bfloat> %b to <vscale x 4 x float>
@@ -133,7 +133,7 @@ define <vscale x 4 x float> @vfwmaccbf16_vf_nxv4f32(<vscale x 4 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 4 x bfloat> poison, bfloat %b, i32 0
@@ -156,7 +156,7 @@ define <vscale x 8 x float> @vfwmaccbf16_vv_nxv8f32(<vscale x 8 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 8 x bfloat> %b to <vscale x 8 x float>
@@ -177,7 +177,7 @@ define <vscale x 8 x float> @vfwmaccbf16_vf_nxv8f32(<vscale x 8 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0
@@ -200,7 +200,7 @@ define <vscale x 16 x float> @vfwmaccbf16_vv_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vv_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vv v8, v16, v20
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 16 x bfloat> %b to <vscale x 16 x float>
@@ -221,7 +221,7 @@ define <vscale x 16 x float> @vfwmaccbf16_vf_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwmaccbf16_vf_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwmacc.vf v8, fa0, v16
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 16 x bfloat> poison, bfloat %b, i32 0
@@ -244,7 +244,7 @@ define <vscale x 1 x float> @vfwmsacbf16_vv_nxv1f32(<vscale x 1 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 1 x bfloat> %b to <vscale x 1 x float>
@@ -266,7 +266,7 @@ define <vscale x 1 x float> @vfwmsacbf16_vf_nxv1f32(<vscale x 1 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0
@@ -290,7 +290,7 @@ define <vscale x 2 x float> @vfwmsacbf16_vv_nxv2f32(<vscale x 2 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 2 x bfloat> %b to <vscale x 2 x float>
@@ -312,7 +312,7 @@ define <vscale x 2 x float> @vfwmsacbf16_vf_nxv2f32(<vscale x 2 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 2 x bfloat> poison, bfloat %b, i32 0
@@ -336,7 +336,7 @@ define <vscale x 4 x float> @vfwmsacbf16_vv_nxv4f32(<vscale x 4 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 4 x bfloat> %b to <vscale x 4 x float>
@@ -358,7 +358,7 @@ define <vscale x 4 x float> @vfwmsacbf16_vf_nxv4f32(<vscale x 4 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 4 x bfloat> poison, bfloat %b, i32 0
@@ -382,7 +382,7 @@ define <vscale x 8 x float> @vfwmsacbf16_vv_nxv8f32(<vscale x 8 x float> %a, <vs
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 8 x bfloat> %b to <vscale x 8 x float>
@@ -404,7 +404,7 @@ define <vscale x 8 x float> @vfwmsacbf16_vf_nxv8f32(<vscale x 8 x float> %a, bfl
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0
@@ -428,7 +428,7 @@ define <vscale x 16 x float> @vfwmsacbf16_vv_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vv_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vv v8, v16, v20
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 16 x bfloat> %b to <vscale x 16 x float>
@@ -450,7 +450,7 @@ define <vscale x 16 x float> @vfwmsacbf16_vf_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwmsacbf16_vf_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwmsac.vf v8, fa0, v16
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 16 x bfloat> poison, bfloat %b, i32 0
@@ -474,7 +474,7 @@ define <vscale x 1 x float> @vfwnmaccbf16_vv_nxv1f32(<vscale x 1 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 1 x bfloat> %b to <vscale x 1 x float>
@@ -497,7 +497,7 @@ define <vscale x 1 x float> @vfwnmaccbf16_vf_nxv1f32(<vscale x 1 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0
@@ -522,7 +522,7 @@ define <vscale x 2 x float> @vfwnmaccbf16_vv_nxv2f32(<vscale x 2 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 2 x bfloat> %b to <vscale x 2 x float>
@@ -545,7 +545,7 @@ define <vscale x 2 x float> @vfwnmaccbf16_vf_nxv2f32(<vscale x 2 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 2 x bfloat> poison, bfloat %b, i32 0
@@ -570,7 +570,7 @@ define <vscale x 4 x float> @vfwnmaccbf16_vv_nxv4f32(<vscale x 4 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 4 x bfloat> %b to <vscale x 4 x float>
@@ -593,7 +593,7 @@ define <vscale x 4 x float> @vfwnmaccbf16_vf_nxv4f32(<vscale x 4 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 4 x bfloat> poison, bfloat %b, i32 0
@@ -618,7 +618,7 @@ define <vscale x 8 x float> @vfwnmaccbf16_vv_nxv8f32(<vscale x 8 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 8 x bfloat> %b to <vscale x 8 x float>
@@ -641,7 +641,7 @@ define <vscale x 8 x float> @vfwnmaccbf16_vf_nxv8f32(<vscale x 8 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0
@@ -666,7 +666,7 @@ define <vscale x 16 x float> @vfwnmaccbf16_vv_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vv_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vv v8, v16, v20
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 16 x bfloat> %b to <vscale x 16 x float>
@@ -689,7 +689,7 @@ define <vscale x 16 x float> @vfwnmaccbf16_vf_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwnmaccbf16_vf_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmacc.vf v8, fa0, v16
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 16 x bfloat> poison, bfloat %b, i32 0
@@ -714,7 +714,7 @@ define <vscale x 1 x float> @vfwnmsacbf16_vv_nxv1f32(<vscale x 1 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 1 x bfloat> %b to <vscale x 1 x float>
@@ -736,7 +736,7 @@ define <vscale x 1 x float> @vfwnmsacbf16_vf_nxv1f32(<vscale x 1 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_nxv1f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 1 x bfloat> poison, bfloat %b, i32 0
@@ -760,7 +760,7 @@ define <vscale x 2 x float> @vfwnmsacbf16_vv_nxv2f32(<vscale x 2 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v9, v10
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 2 x bfloat> %b to <vscale x 2 x float>
@@ -782,7 +782,7 @@ define <vscale x 2 x float> @vfwnmsacbf16_vf_nxv2f32(<vscale x 2 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_nxv2f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, mf2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, mf2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v9
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 2 x bfloat> poison, bfloat %b, i32 0
@@ -806,7 +806,7 @@ define <vscale x 4 x float> @vfwnmsacbf16_vv_nxv4f32(<vscale x 4 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v10, v11
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 4 x bfloat> %b to <vscale x 4 x float>
@@ -828,7 +828,7 @@ define <vscale x 4 x float> @vfwnmsacbf16_vf_nxv4f32(<vscale x 4 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_nxv4f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m1, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m1, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v10
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 4 x bfloat> poison, bfloat %b, i32 0
@@ -852,7 +852,7 @@ define <vscale x 8 x float> @vfwnmsacbf16_vv_nxv8f32(<vscale x 8 x float> %a, <v
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v12, v14
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 8 x bfloat> %b to <vscale x 8 x float>
@@ -874,7 +874,7 @@ define <vscale x 8 x float> @vfwnmsacbf16_vf_nxv8f32(<vscale x 8 x float> %a, bf
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_nxv8f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m2, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m2, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v12
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 8 x bfloat> poison, bfloat %b, i32 0
@@ -898,7 +898,7 @@ define <vscale x 16 x float> @vfwnmsacbf16_vv_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vv_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vv v8, v16, v20
 ; ZVFBFA-NEXT:    ret
   %b.ext = fpext <vscale x 16 x bfloat> %b to <vscale x 16 x float>
@@ -920,7 +920,7 @@ define <vscale x 16 x float> @vfwnmsacbf16_vf_nxv16f32(<vscale x 16 x float> %a,
 ;
 ; ZVFBFA-LABEL: vfwnmsacbf16_vf_nxv16f32:
 ; ZVFBFA:       # %bb.0:
-; ZVFBFA-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
+; ZVFBFA-NEXT:    vsetvli a0, zero, e16alt, m4, ta, ma
 ; ZVFBFA-NEXT:    vfwnmsac.vf v8, fa0, v16
 ; ZVFBFA-NEXT:    ret
   %b.head = insertelement <vscale x 16 x bfloat> poison, bfloat %b, i32 0



More information about the llvm-commits mailing list