|  | 
|  | 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 | 
|  | 2 | +; RUN: llc -mtriple=riscv64 -mattr='+v,+zvl512b' < %s | FileCheck %s | 
|  | 3 | + | 
|  | 4 | +define <2 x float> @redundant_vfmv(<2 x float> %arg0, <64 x float> %arg1, <64 x float> %arg2) { | 
|  | 5 | +; CHECK-LABEL: redundant_vfmv: | 
|  | 6 | +; CHECK: # %bb.0: | 
|  | 7 | +; CHECK-NEXT: li a0, 64 | 
|  | 8 | +; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma | 
|  | 9 | +; CHECK-NEXT: vfredusum.vs v9, v12, v8 | 
|  | 10 | +; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma | 
|  | 11 | +; CHECK-NEXT: vslidedown.vi v8, v8, 1 | 
|  | 12 | +; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma | 
|  | 13 | +; CHECK-NEXT: vfredusum.vs v8, v16, v8 | 
|  | 14 | +; CHECK-NEXT: vfmv.f.s fa5, v8 | 
|  | 15 | +; CHECK-NEXT: vsetivli zero, 2, e32, mf2, ta, ma | 
|  | 16 | +; CHECK-NEXT: vrgather.vi v8, v9, 0 | 
|  | 17 | +; CHECK-NEXT: vfslide1down.vf v8, v8, fa5 | 
|  | 18 | +; CHECK-NEXT: ret | 
|  | 19 | + %s0 = extractelement <2 x float> %arg0, i64 0 | 
|  | 20 | + %r0 = tail call reassoc float @llvm.vector.reduce.fadd.v64f32(float %s0, <64 x float> %arg1) | 
|  | 21 | + %a0 = insertelement <2 x float> poison, float %r0, i64 0 | 
|  | 22 | + %s1 = extractelement <2 x float> %arg0, i64 1 | 
|  | 23 | + %r1 = tail call reassoc float @llvm.vector.reduce.fadd.v64f32(float %s1, <64 x float> %arg2) | 
|  | 24 | + %a1 = insertelement <2 x float> %a0, float %r1, i64 1 | 
|  | 25 | + ret <2 x float> %a1 | 
|  | 26 | +} | 
0 commit comments