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
+42Lines changed: 42 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -3293,3 +3293,45 @@ define <vscale x 4 x float> @vfrdiv_vf(<vscale x 4 x float> %a, float %b, iXLen
3293
3293
%2 = call <vscale x 4 x float> @llvm.riscv.vfadd.nxv4f32.nxv4f32(<vscale x 4 x float> poison, <vscale x 4 x float> %1, <vscale x 4 x float> %a, iXLen 7, iXLen %vl)
3294
3294
ret <vscale x 4 x float> %2
3295
3295
}
3296
+
3297
+
define <vscale x 4 x double> @vfwmul_vv(<vscale x 4 x float> %a, <vscale x 4 x float> %b, iXLen %vl) {
3298
+
; NOVLOPT-LABEL: vfwmul_vv:
3299
+
; NOVLOPT: # %bb.0:
3300
+
; NOVLOPT-NEXT: vsetvli a1, zero, e32, m2, ta, ma
3301
+
; NOVLOPT-NEXT: vfwmul.vv v12, v8, v10
3302
+
; NOVLOPT-NEXT: vsetvli zero, a0, e64, m4, ta, ma
3303
+
; NOVLOPT-NEXT: vfadd.vv v8, v12, v12
3304
+
; NOVLOPT-NEXT: ret
3305
+
;
3306
+
; VLOPT-LABEL: vfwmul_vv:
3307
+
; VLOPT: # %bb.0:
3308
+
; VLOPT-NEXT: vsetvli zero, a0, e32, m2, ta, ma
3309
+
; VLOPT-NEXT: vfwmul.vv v12, v8, v10
3310
+
; VLOPT-NEXT: vsetvli zero, zero, e64, m4, ta, ma
3311
+
; VLOPT-NEXT: vfadd.vv v8, v12, v12
3312
+
; VLOPT-NEXT: ret
3313
+
%1 = call <vscale x 4 x double> @llvm.riscv.vfwmul.nxv4f64.nxv4f32.nxv4f32(<vscale x 4 x double> poison, <vscale x 4 x float> %a, <vscale x 4 x float> %b, iXLen 7, iXLen -1)
3314
+
%2 = call <vscale x 4 x double> @llvm.riscv.vfadd.nxv4f64.nxv4f64(<vscale x 4 x double> poison, <vscale x 4 x double> %1, <vscale x 4 x double> %1, iXLen 7, iXLen %vl)
3315
+
ret <vscale x 4 x double> %2
3316
+
}
3317
+
3318
+
define <vscale x 4 x double> @vfwmul_vf(<vscale x 4 x float> %a, float%b, iXLen %vl) {
3319
+
; NOVLOPT-LABEL: vfwmul_vf:
3320
+
; NOVLOPT: # %bb.0:
3321
+
; NOVLOPT-NEXT: vsetvli a1, zero, e32, m2, ta, ma
3322
+
; NOVLOPT-NEXT: vfwmul.vf v12, v8, fa0
3323
+
; NOVLOPT-NEXT: vsetvli zero, a0, e64, m4, ta, ma
3324
+
; NOVLOPT-NEXT: vfadd.vv v8, v12, v12
3325
+
; NOVLOPT-NEXT: ret
3326
+
;
3327
+
; VLOPT-LABEL: vfwmul_vf:
3328
+
; VLOPT: # %bb.0:
3329
+
; VLOPT-NEXT: vsetvli zero, a0, e32, m2, ta, ma
3330
+
; VLOPT-NEXT: vfwmul.vf v12, v8, fa0
3331
+
; VLOPT-NEXT: vsetvli zero, zero, e64, m4, ta, ma
3332
+
; VLOPT-NEXT: vfadd.vv v8, v12, v12
3333
+
; VLOPT-NEXT: ret
3334
+
%1 = call <vscale x 4 x double> @llvm.riscv.vfwmul.nxv4f64.nxv4f32.f32(<vscale x 4 x double> poison, <vscale x 4 x float> %a, float%b, iXLen 7, iXLen -1)
3335
+
%2 = call <vscale x 4 x double> @llvm.riscv.vfadd.nxv4f64.nxv4f64(<vscale x 4 x double> poison, <vscale x 4 x double> %1, <vscale x 4 x double> %1, iXLen 7, iXLen %vl)
0 commit comments