xref: /llvm-project/llvm/test/Analysis/CostModel/RISCV/reduce-fmaximum.ll (revision 400b725c2740ee29560bac9ad870b4ddb56bf3f2)
1a826a0c2SShih-Po Hung; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 4
2*400b725cSLuke Lau; RUN: opt < %s -mtriple=riscv32 -mattr=+v -passes="print<cost-model>" -cost-kind=throughput 2>&1 -disable-output | FileCheck %s
3*400b725cSLuke Lau; RUN: opt < %s -mtriple=riscv64 -mattr=+v -passes="print<cost-model>" -cost-kind=throughput 2>&1 -disable-output | FileCheck %s
4*400b725cSLuke Lau; RUN: opt < %s -mtriple=riscv32 -mattr=+v -passes="print<cost-model>" -cost-kind=code-size 2>&1 -disable-output | FileCheck %s --check-prefix=SIZE
5*400b725cSLuke Lau; RUN: opt < %s -mtriple=riscv64 -mattr=+v -passes="print<cost-model>" -cost-kind=code-size 2>&1 -disable-output | FileCheck %s --check-prefix=SIZE
6a826a0c2SShih-Po Hung
7a826a0c2SShih-Po Hungdefine float @reduce_fmaximum_f32(float %arg) {
8a826a0c2SShih-Po Hung; CHECK-LABEL: 'reduce_fmaximum_f32'
93cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V2 = call float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
103cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V4 = call float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
11*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V8 = call float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
12*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %V16 = call float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
13*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %V32 = call float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
14*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %V64 = call float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
15*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %V128 = call float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
163cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = call fast float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
173cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = call fast float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
183cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %3 = call fast float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
193cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %4 = call fast float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
203cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %5 = call fast float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
21*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %6 = call fast float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
22*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %7 = call fast float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
23a826a0c2SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret float undef
24a826a0c2SShih-Po Hung;
25a826a0c2SShih-Po Hung; SIZE-LABEL: 'reduce_fmaximum_f32'
263cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V2 = call float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
273cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V4 = call float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
283cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
293cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V16 = call float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
303cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V32 = call float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
313cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V64 = call float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
323cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V128 = call float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
333cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = call fast float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
343cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = call fast float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
353cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %3 = call fast float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
363cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %4 = call fast float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
373cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %5 = call fast float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
383cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %6 = call fast float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
393cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %7 = call fast float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
40a826a0c2SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret float undef
41a826a0c2SShih-Po Hung;
42a826a0c2SShih-Po Hung%V2   = call float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
43a826a0c2SShih-Po Hung%V4   = call float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
44a826a0c2SShih-Po Hung%V8   = call float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
45a826a0c2SShih-Po Hung%V16   = call float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
46a826a0c2SShih-Po Hung%V32   = call float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
47a826a0c2SShih-Po Hung%V64   = call float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
48a826a0c2SShih-Po Hung%V128   = call float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
493cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v2f32(<2 x float> undef)
503cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> undef)
513cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v8f32(<8 x float> undef)
523cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v16f32(<16 x float> undef)
533cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v32f32(<32 x float> undef)
543cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v64f32(<64 x float> undef)
553cb02419SShih-Po Hungcall fast float @llvm.vector.reduce.fmaximum.v128f32(<128 x float> undef)
56a826a0c2SShih-Po Hungret float undef
57a826a0c2SShih-Po Hung}
58a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v2f32(<2 x float>)
59a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v4f32(<4 x float>)
60a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v8f32(<8 x float>)
61a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v16f32(<16 x float>)
62a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v32f32(<32 x float>)
63a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v64f32(<64 x float>)
64a826a0c2SShih-Po Hungdeclare float @llvm.vector.reduce.fmaximum.v128f32(<128 x float>)
65a826a0c2SShih-Po Hung
66a826a0c2SShih-Po Hungdefine double @reduce_fmaximum_f64(double %arg) {
67a826a0c2SShih-Po Hung; CHECK-LABEL: 'reduce_fmaximum_f64'
683cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V2 = call double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
69*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %V4 = call double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
70*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V8 = call double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
71*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %V16 = call double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
72*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %V32 = call double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
73*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %V64 = call double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
743cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = call fast double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
753cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = call fast double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
763cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %3 = call fast double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
773cb02419SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %4 = call fast double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
78*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %5 = call fast double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
79*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %6 = call fast double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
80a826a0c2SShih-Po Hung; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret double undef
81a826a0c2SShih-Po Hung;
82a826a0c2SShih-Po Hung; SIZE-LABEL: 'reduce_fmaximum_f64'
833cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V2 = call double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
843cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V4 = call double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
853cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
863cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V16 = call double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
873cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V32 = call double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
883cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V64 = call double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
893cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = call fast double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
903cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = call fast double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
913cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %3 = call fast double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
923cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %4 = call fast double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
933cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %5 = call fast double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
943cb02419SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %6 = call fast double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
95a826a0c2SShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret double undef
96a826a0c2SShih-Po Hung;
97a826a0c2SShih-Po Hung%V2   = call double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
98a826a0c2SShih-Po Hung%V4   = call double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
99a826a0c2SShih-Po Hung%V8   = call double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
100a826a0c2SShih-Po Hung%V16   = call double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
101a826a0c2SShih-Po Hung%V32   = call double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
102a826a0c2SShih-Po Hung%V64   = call double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
1033cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v2f64(<2 x double> undef)
1043cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v4f64(<4 x double> undef)
1053cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v8f64(<8 x double> undef)
1063cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v16f64(<16 x double> undef)
1073cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v32f64(<32 x double> undef)
1083cb02419SShih-Po Hungcall fast double @llvm.vector.reduce.fmaximum.v64f64(<64 x double> undef)
109a826a0c2SShih-Po Hungret double undef
110a826a0c2SShih-Po Hung}
111a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v2f64(<2 x double>)
112a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v4f64(<4 x double>)
113a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v8f64(<8 x double>)
114a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v16f64(<16 x double>)
115a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v32f64(<32 x double>)
116a826a0c2SShih-Po Hungdeclare double @llvm.vector.reduce.fmaximum.v64f64(<64 x double>)
117