Skip to content

Commit d6b3d9f

Browse files
committed
Precommit tests
1 parent 66ba9dc commit d6b3d9f

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,3 +1215,17 @@ define <vscale x 2 x i32> @unfoldable_mismatched_sew(<vscale x 2 x i32> %passthr
12151215
)
12161216
ret <vscale x 2 x i32> %b
12171217
}
1218+
1219+
define <vscale x 2 x float> @commute_vfmadd(<vscale x 2 x float> %passthru, <vscale x 2 x float> %x, <vscale x 2 x float> %y, <vscale x 2 x i1> %mask, i32 zeroext %evl) {
1220+
; CHECK-LABEL: commute_vfmadd:
1221+
; CHECK: # %bb.0:
1222+
; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1223+
; CHECK-NEXT: vfmadd.vv v9, v10, v8
1224+
; CHECK-NEXT: vsetvli zero, zero, e32, m1, tu, ma
1225+
; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
1226+
; CHECK-NEXT: ret
1227+
%fmul = fmul contract <vscale x 2 x float> %x, %y
1228+
%fadd = fadd contract <vscale x 2 x float> %fmul, %passthru
1229+
%merge = call <vscale x 2 x float> @llvm.vp.merge(<vscale x 2 x i1> %mask, <vscale x 2 x float> %fadd, <vscale x 2 x float> %passthru, i32 %evl)
1230+
ret <vscale x 2 x float> %merge
1231+
}

llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,26 @@ body: |
9494
%mask:vmv0 = COPY $v0
9595
%y:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %x, %mask, %avl, 5 /* e32 */
9696
...
97+
---
98+
name: commute_vfmadd
99+
body: |
100+
bb.0:
101+
liveins: $x8, $v0, $v8, $v9, $v10
102+
; CHECK-LABEL: name: commute_vfmadd
103+
; CHECK: liveins: $x8, $v0, $v8, $v9, $v10
104+
; CHECK-NEXT: {{ $}}
105+
; CHECK-NEXT: %avl:gprnox0 = COPY $x8
106+
; CHECK-NEXT: %mask:vmv0 = COPY $v0
107+
; CHECK-NEXT: %passthru:vrnov0 = COPY $v8
108+
; CHECK-NEXT: %x:vr = COPY $v9
109+
; CHECK-NEXT: %y:vr = COPY $v10
110+
; CHECK-NEXT: %vfmadd:vrnov0 = nofpexcept PseudoVFMADD_VV_M1_E32 %x, %y, %passthru, 7, %avl, 5 /* e32 */, 3 /* ta, ma */, implicit $frm
111+
; CHECK-NEXT: %vmerge:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %vfmadd, %mask, %avl, 5 /* e32 */
112+
%avl:gprnox0 = COPY $x8
113+
%mask:vmv0 = COPY $v0
114+
%passthru:vrnov0 = COPY $v8
115+
%x:vr = COPY $v9
116+
%y:vr = COPY $v10
117+
%vfmadd:vrnov0 = nofpexcept PseudoVFMADD_VV_M1_E32 %x, %y, %passthru, 7, -1, 5 /* e32 */, 3 /* ta, ma */, implicit $frm
118+
%vmerge:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %vfmadd, %mask, %avl, 5
119+
...

0 commit comments

Comments
 (0)