@@ -120,9 +120,8 @@ define <vscale x 1 x bfloat> @vfadd_vf_nxv1bf16(<vscale x 1 x bfloat> %va, bfloa
120120;
121121; ZVFBFA-LABEL: vfadd_vf_nxv1bf16:
122122; ZVFBFA: # %bb.0:
123- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
124123; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf4, ta, ma
125- ; ZVFBFA-NEXT: vmv .v.x v9, a1
124+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
126125; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8, v0.t
127126; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9, v0.t
128127; ZVFBFA-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
@@ -165,9 +164,8 @@ define <vscale x 1 x bfloat> @vfadd_vf_nxv1bf16_commute(<vscale x 1 x bfloat> %v
165164;
166165; ZVFBFA-LABEL: vfadd_vf_nxv1bf16_commute:
167166; ZVFBFA: # %bb.0:
168- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
169167; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf4, ta, ma
170- ; ZVFBFA-NEXT: vmv .v.x v9, a1
168+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
171169; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8, v0.t
172170; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9, v0.t
173171; ZVFBFA-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
@@ -210,9 +208,8 @@ define <vscale x 1 x bfloat> @vfadd_vf_nxv1bf16_unmasked(<vscale x 1 x bfloat> %
210208;
211209; ZVFBFA-LABEL: vfadd_vf_nxv1bf16_unmasked:
212210; ZVFBFA: # %bb.0:
213- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
214211; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf4, ta, ma
215- ; ZVFBFA-NEXT: vmv .v.x v9, a1
212+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
216213; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8
217214; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9
218215; ZVFBFA-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
@@ -255,9 +252,8 @@ define <vscale x 1 x bfloat> @vfadd_vf_nxv1bf16_unmasked_commute(<vscale x 1 x b
255252;
256253; ZVFBFA-LABEL: vfadd_vf_nxv1bf16_unmasked_commute:
257254; ZVFBFA: # %bb.0:
258- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
259255; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf4, ta, ma
260- ; ZVFBFA-NEXT: vmv .v.x v9, a1
256+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
261257; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8
262258; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9
263259; ZVFBFA-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
@@ -376,9 +372,8 @@ define <vscale x 2 x bfloat> @vfadd_vf_nxv2bf16(<vscale x 2 x bfloat> %va, bfloa
376372;
377373; ZVFBFA-LABEL: vfadd_vf_nxv2bf16:
378374; ZVFBFA: # %bb.0:
379- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
380375; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf2, ta, ma
381- ; ZVFBFA-NEXT: vmv .v.x v9, a1
376+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
382377; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8, v0.t
383378; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9, v0.t
384379; ZVFBFA-NEXT: vsetvli zero, zero, e32, m1, ta, ma
@@ -421,9 +416,8 @@ define <vscale x 2 x bfloat> @vfadd_vf_nxv2bf16_unmasked(<vscale x 2 x bfloat> %
421416;
422417; ZVFBFA-LABEL: vfadd_vf_nxv2bf16_unmasked:
423418; ZVFBFA: # %bb.0:
424- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
425419; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, mf2, ta, ma
426- ; ZVFBFA-NEXT: vmv .v.x v9, a1
420+ ; ZVFBFA-NEXT: vfmv .v.f v9, fa0
427421; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8
428422; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v9
429423; ZVFBFA-NEXT: vsetvli zero, zero, e32, m1, ta, ma
@@ -542,9 +536,8 @@ define <vscale x 4 x bfloat> @vfadd_vf_nxv4bf16(<vscale x 4 x bfloat> %va, bfloa
542536;
543537; ZVFBFA-LABEL: vfadd_vf_nxv4bf16:
544538; ZVFBFA: # %bb.0:
545- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
546539; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m1, ta, ma
547- ; ZVFBFA-NEXT: vmv .v.x v12, a1
540+ ; ZVFBFA-NEXT: vfmv .v.f v12, fa0
548541; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8, v0.t
549542; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v12, v0.t
550543; ZVFBFA-NEXT: vsetvli zero, zero, e32, m2, ta, ma
@@ -587,9 +580,8 @@ define <vscale x 4 x bfloat> @vfadd_vf_nxv4bf16_unmasked(<vscale x 4 x bfloat> %
587580;
588581; ZVFBFA-LABEL: vfadd_vf_nxv4bf16_unmasked:
589582; ZVFBFA: # %bb.0:
590- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
591583; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m1, ta, ma
592- ; ZVFBFA-NEXT: vmv .v.x v12, a1
584+ ; ZVFBFA-NEXT: vfmv .v.f v12, fa0
593585; ZVFBFA-NEXT: vfwcvt.f.f.v v10, v8
594586; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v12
595587; ZVFBFA-NEXT: vsetvli zero, zero, e32, m2, ta, ma
@@ -708,9 +700,8 @@ define <vscale x 8 x bfloat> @vfadd_vf_nxv8bf16(<vscale x 8 x bfloat> %va, bfloa
708700;
709701; ZVFBFA-LABEL: vfadd_vf_nxv8bf16:
710702; ZVFBFA: # %bb.0:
711- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
712703; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m2, ta, ma
713- ; ZVFBFA-NEXT: vmv .v.x v16, a1
704+ ; ZVFBFA-NEXT: vfmv .v.f v16, fa0
714705; ZVFBFA-NEXT: vfwcvt.f.f.v v12, v8, v0.t
715706; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v16, v0.t
716707; ZVFBFA-NEXT: vsetvli zero, zero, e32, m4, ta, ma
@@ -753,9 +744,8 @@ define <vscale x 8 x bfloat> @vfadd_vf_nxv8bf16_unmasked(<vscale x 8 x bfloat> %
753744;
754745; ZVFBFA-LABEL: vfadd_vf_nxv8bf16_unmasked:
755746; ZVFBFA: # %bb.0:
756- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
757747; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m2, ta, ma
758- ; ZVFBFA-NEXT: vmv .v.x v16, a1
748+ ; ZVFBFA-NEXT: vfmv .v.f v16, fa0
759749; ZVFBFA-NEXT: vfwcvt.f.f.v v12, v8
760750; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v16
761751; ZVFBFA-NEXT: vsetvli zero, zero, e32, m4, ta, ma
@@ -874,9 +864,8 @@ define <vscale x 16 x bfloat> @vfadd_vf_nxv16bf16(<vscale x 16 x bfloat> %va, bf
874864;
875865; ZVFBFA-LABEL: vfadd_vf_nxv16bf16:
876866; ZVFBFA: # %bb.0:
877- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
878867; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m4, ta, ma
879- ; ZVFBFA-NEXT: vmv .v.x v24, a1
868+ ; ZVFBFA-NEXT: vfmv .v.f v24, fa0
880869; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v8, v0.t
881870; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v24, v0.t
882871; ZVFBFA-NEXT: vsetvli zero, zero, e32, m8, ta, ma
@@ -919,9 +908,8 @@ define <vscale x 16 x bfloat> @vfadd_vf_nxv16bf16_unmasked(<vscale x 16 x bfloat
919908;
920909; ZVFBFA-LABEL: vfadd_vf_nxv16bf16_unmasked:
921910; ZVFBFA: # %bb.0:
922- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
923911; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m4, ta, ma
924- ; ZVFBFA-NEXT: vmv .v.x v24, a1
912+ ; ZVFBFA-NEXT: vfmv .v.f v24, fa0
925913; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v8
926914; ZVFBFA-NEXT: vfwcvt.f.f.v v8, v24
927915; ZVFBFA-NEXT: vsetvli zero, zero, e32, m8, ta, ma
@@ -1369,26 +1357,22 @@ define <vscale x 32 x bfloat> @vfadd_vf_nxv32bf16(<vscale x 32 x bfloat> %va, bf
13691357; ZVFBFA-NEXT: addi sp, sp, -16
13701358; ZVFBFA-NEXT: .cfi_def_cfa_offset 16
13711359; ZVFBFA-NEXT: csrr a1, vlenb
1372- ; ZVFBFA-NEXT: slli a1, a1, 4
1360+ ; ZVFBFA-NEXT: slli a1, a1, 3
13731361; ZVFBFA-NEXT: sub sp, sp, a1
1374- ; ZVFBFA-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x10 , 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 16 * vlenb
1375- ; ZVFBFA-NEXT: vsetvli a1, zero, e16 , m8, ta, ma
1362+ ; ZVFBFA-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08 , 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
1363+ ; ZVFBFA-NEXT: vsetvli a1, zero, e16alt , m8, ta, ma
13761364; ZVFBFA-NEXT: vmv1r.v v7, v0
1377- ; ZVFBFA-NEXT: fmv.x.h a1 , fa0
1365+ ; ZVFBFA-NEXT: vfmv.v.f v24 , fa0
13781366; ZVFBFA-NEXT: csrr a2, vlenb
1379- ; ZVFBFA-NEXT: vmv.v.x v24, a1
13801367; ZVFBFA-NEXT: slli a1, a2, 1
13811368; ZVFBFA-NEXT: srli a2, a2, 2
13821369; ZVFBFA-NEXT: sub a3, a0, a1
1383- ; ZVFBFA-NEXT: vsetvli a4, zero, e8 , mf2, ta, ma
1370+ ; ZVFBFA-NEXT: vsetvli a4, zero, e8alt , mf2, ta, ma
13841371; ZVFBFA-NEXT: vslidedown.vx v0, v0, a2
13851372; ZVFBFA-NEXT: sltu a2, a0, a3
13861373; ZVFBFA-NEXT: addi a2, a2, -1
13871374; ZVFBFA-NEXT: and a2, a2, a3
1388- ; ZVFBFA-NEXT: csrr a3, vlenb
1389- ; ZVFBFA-NEXT: slli a3, a3, 3
1390- ; ZVFBFA-NEXT: add a3, sp, a3
1391- ; ZVFBFA-NEXT: addi a3, a3, 16
1375+ ; ZVFBFA-NEXT: addi a3, sp, 16
13921376; ZVFBFA-NEXT: vs8r.v v24, (a3) # vscale x 64-byte Folded Spill
13931377; ZVFBFA-NEXT: vsetvli zero, a2, e16alt, m4, ta, ma
13941378; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v28, v0.t
@@ -1402,24 +1386,17 @@ define <vscale x 32 x bfloat> @vfadd_vf_nxv32bf16(<vscale x 32 x bfloat> %va, bf
14021386; ZVFBFA-NEXT: mv a0, a1
14031387; ZVFBFA-NEXT: .LBB24_2:
14041388; ZVFBFA-NEXT: vmv1r.v v0, v7
1389+ ; ZVFBFA-NEXT: addi a1, sp, 16
1390+ ; ZVFBFA-NEXT: vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
14051391; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m4, ta, ma
1406- ; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v8, v0.t
1407- ; ZVFBFA-NEXT: addi a0, sp, 16
1408- ; ZVFBFA-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
1409- ; ZVFBFA-NEXT: csrr a0, vlenb
1410- ; ZVFBFA-NEXT: slli a0, a0, 3
1411- ; ZVFBFA-NEXT: add a0, sp, a0
1412- ; ZVFBFA-NEXT: addi a0, a0, 16
1413- ; ZVFBFA-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
1414- ; ZVFBFA-NEXT: vfwcvt.f.f.v v24, v16, v0.t
1415- ; ZVFBFA-NEXT: addi a0, sp, 16
1416- ; ZVFBFA-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
1392+ ; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v24, v0.t
1393+ ; ZVFBFA-NEXT: vfwcvt.f.f.v v24, v8, v0.t
14171394; ZVFBFA-NEXT: vsetvli zero, zero, e32, m8, ta, ma
1418- ; ZVFBFA-NEXT: vfadd.vv v16, v16, v24 , v0.t
1395+ ; ZVFBFA-NEXT: vfadd.vv v16, v24, v16 , v0.t
14191396; ZVFBFA-NEXT: vsetvli zero, zero, e16alt, m4, ta, ma
14201397; ZVFBFA-NEXT: vfncvt.f.f.w v8, v16, v0.t
14211398; ZVFBFA-NEXT: csrr a0, vlenb
1422- ; ZVFBFA-NEXT: slli a0, a0, 4
1399+ ; ZVFBFA-NEXT: slli a0, a0, 3
14231400; ZVFBFA-NEXT: add sp, sp, a0
14241401; ZVFBFA-NEXT: .cfi_def_cfa sp, 16
14251402; ZVFBFA-NEXT: addi sp, sp, 16
@@ -1542,15 +1519,14 @@ define <vscale x 32 x bfloat> @vfadd_vf_nxv32bf16_unmasked(<vscale x 32 x bfloat
15421519; ZVFBFA-NEXT: slli a1, a1, 3
15431520; ZVFBFA-NEXT: sub sp, sp, a1
15441521; ZVFBFA-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
1545- ; ZVFBFA-NEXT: fmv.x.h a1, fa0
1522+ ; ZVFBFA-NEXT: vsetvli a1, zero, e16alt, m8, ta, ma
1523+ ; ZVFBFA-NEXT: vfmv.v.f v16, fa0
15461524; ZVFBFA-NEXT: csrr a2, vlenb
1547- ; ZVFBFA-NEXT: vsetvli a3, zero, e16, m8, ta, ma
15481525; ZVFBFA-NEXT: vmset.m v24
1549- ; ZVFBFA-NEXT: vmv.v.x v16, a1
15501526; ZVFBFA-NEXT: slli a1, a2, 1
15511527; ZVFBFA-NEXT: srli a2, a2, 2
15521528; ZVFBFA-NEXT: sub a3, a0, a1
1553- ; ZVFBFA-NEXT: vsetvli a4, zero, e8 , mf2, ta, ma
1529+ ; ZVFBFA-NEXT: vsetvli a4, zero, e8alt , mf2, ta, ma
15541530; ZVFBFA-NEXT: vslidedown.vx v0, v24, a2
15551531; ZVFBFA-NEXT: sltu a2, a0, a3
15561532; ZVFBFA-NEXT: addi a2, a2, -1
@@ -1568,13 +1544,13 @@ define <vscale x 32 x bfloat> @vfadd_vf_nxv32bf16_unmasked(<vscale x 32 x bfloat
15681544; ZVFBFA-NEXT: # %bb.1:
15691545; ZVFBFA-NEXT: mv a0, a1
15701546; ZVFBFA-NEXT: .LBB25_2:
1547+ ; ZVFBFA-NEXT: addi a1, sp, 16
1548+ ; ZVFBFA-NEXT: vl8r.v v24, (a1) # vscale x 64-byte Folded Reload
15711549; ZVFBFA-NEXT: vsetvli zero, a0, e16alt, m4, ta, ma
1572- ; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v8
1573- ; ZVFBFA-NEXT: addi a0, sp, 16
1574- ; ZVFBFA-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
1575- ; ZVFBFA-NEXT: vfwcvt.f.f.v v24, v0
1550+ ; ZVFBFA-NEXT: vfwcvt.f.f.v v16, v24
1551+ ; ZVFBFA-NEXT: vfwcvt.f.f.v v24, v8
15761552; ZVFBFA-NEXT: vsetvli zero, zero, e32, m8, ta, ma
1577- ; ZVFBFA-NEXT: vfadd.vv v16, v16, v24
1553+ ; ZVFBFA-NEXT: vfadd.vv v16, v24, v16
15781554; ZVFBFA-NEXT: vsetvli zero, zero, e16alt, m4, ta, ma
15791555; ZVFBFA-NEXT: vfncvt.f.f.w v8, v16
15801556; ZVFBFA-NEXT: csrr a0, vlenb
0 commit comments