[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