You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: llvm/test/CodeGen/RISCV/rvv/vl-opt-instrs.ll
+21Lines changed: 21 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1143,6 +1143,27 @@ define <vscale x 4 x i32> @vmacc_vv(<vscale x 4 x i32> %a, <vscale x 4 x i32> %b
1143
1143
ret <vscale x 4 x i32> %2
1144
1144
}
1145
1145
1146
+
define <vscale x 4 x i32> @vmacc_vv_use(<vscale x 4 x i32> %a, <vscale x 4 x i32> %b, iXLen %vl) {
1147
+
; NOVLOPT-LABEL: vmacc_vv_use:
1148
+
; NOVLOPT: # %bb.0:
1149
+
; NOVLOPT-NEXT: vsetvli a1, zero, e32, m2, ta, ma
1150
+
; NOVLOPT-NEXT: vmul.vv v12, v8, v10
1151
+
; NOVLOPT-NEXT: vsetvli zero, a0, e32, m2, tu, ma
1152
+
; NOVLOPT-NEXT: vmacc.vv v8, v12, v10
1153
+
; NOVLOPT-NEXT: ret
1154
+
;
1155
+
; VLOPT-LABEL: vmacc_vv_use:
1156
+
; VLOPT: # %bb.0:
1157
+
; VLOPT-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1158
+
; VLOPT-NEXT: vmul.vv v12, v8, v10
1159
+
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1160
+
; VLOPT-NEXT: vmacc.vv v8, v12, v10
1161
+
; VLOPT-NEXT: ret
1162
+
%1 = call <vscale x 4 x i32> @llvm.riscv.vmul.nxv4i32.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> %a, <vscale x 4 x i32> %b, iXLen -1)
1163
+
%2 = call <vscale x 4 x i32> @llvm.riscv.vmacc.nxv4i32.nxv4i32(<vscale x 4 x i32> %a, <vscale x 4 x i32> %1, <vscale x 4 x i32> %b, iXLen %vl, iXLen 0)
1164
+
ret <vscale x 4 x i32> %2
1165
+
}
1166
+
1146
1167
define <vscale x 4 x i32> @vmacc_vx(<vscale x 4 x i32> %a, i32%b, iXLen %vl) {
0 commit comments