xref: /llvm-project/llvm/test/Analysis/CostModel/RISCV/reduce-xor.ll (revision 400b725c2740ee29560bac9ad870b4ddb56bf3f2)
1ae7c6647SYeting Kuo; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
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
6ae7c6647SYeting Kuo
72b83467dSPhilip Reamesdefine i32 @reduce_i1(i32 %arg) {
82247e4deSPhilip Reames; CHECK-LABEL: 'reduce_i1'
9536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i1 @llvm.vector.reduce.xor.v1i1(<1 x i1> undef)
10536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V2 = call i1 @llvm.vector.reduce.xor.v2i1(<2 x i1> undef)
11536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V4 = call i1 @llvm.vector.reduce.xor.v4i1(<4 x i1> undef)
12536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V8 = call i1 @llvm.vector.reduce.xor.v8i1(<8 x i1> undef)
13536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V16 = call i1 @llvm.vector.reduce.xor.v16i1(<16 x i1> undef)
14536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V32 = call i1 @llvm.vector.reduce.xor.v32i1(<32 x i1> undef)
15536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V64 = call i1 @llvm.vector.reduce.xor.v64i1(<64 x i1> undef)
16536095a2SPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V128 = call i1 @llvm.vector.reduce.xor.v128i1(<128 x i1> undef)
170a5d52a7SSergey Kachkov; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
182b83467dSPhilip Reames;
19fb661e25SShihPo Hung; SIZE-LABEL: 'reduce_i1'
20fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i1 @llvm.vector.reduce.xor.v1i1(<1 x i1> undef)
21fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V2 = call i1 @llvm.vector.reduce.xor.v2i1(<2 x i1> undef)
22fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V4 = call i1 @llvm.vector.reduce.xor.v4i1(<4 x i1> undef)
23fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V8 = call i1 @llvm.vector.reduce.xor.v8i1(<8 x i1> undef)
24fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V16 = call i1 @llvm.vector.reduce.xor.v16i1(<16 x i1> undef)
25fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V32 = call i1 @llvm.vector.reduce.xor.v32i1(<32 x i1> undef)
26fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V64 = call i1 @llvm.vector.reduce.xor.v64i1(<64 x i1> undef)
27fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V128 = call i1 @llvm.vector.reduce.xor.v128i1(<128 x i1> undef)
28fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
29fb661e25SShihPo Hung;
302b83467dSPhilip Reames  %V1   = call i1 @llvm.vector.reduce.xor.v1i1(<1 x i1> undef)
312b83467dSPhilip Reames  %V2   = call i1 @llvm.vector.reduce.xor.v2i1(<2 x i1> undef)
322b83467dSPhilip Reames  %V4   = call i1 @llvm.vector.reduce.xor.v4i1(<4 x i1> undef)
332b83467dSPhilip Reames  %V8   = call i1 @llvm.vector.reduce.xor.v8i1(<8 x i1> undef)
342b83467dSPhilip Reames  %V16  = call i1 @llvm.vector.reduce.xor.v16i1(<16 x i1> undef)
352b83467dSPhilip Reames  %V32  = call i1 @llvm.vector.reduce.xor.v32i1(<32 x i1> undef)
362b83467dSPhilip Reames  %V64  = call i1 @llvm.vector.reduce.xor.v64i1(<64 x i1> undef)
372b83467dSPhilip Reames  %V128 = call i1 @llvm.vector.reduce.xor.v128i1(<128 x i1> undef)
382b83467dSPhilip Reames  ret i32 undef
392b83467dSPhilip Reames}
402b83467dSPhilip Reames
41ae7c6647SYeting Kuodefine i32 @reduce_i8(i32 %arg) {
422247e4deSPhilip Reames; CHECK-LABEL: 'reduce_i8'
432247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i8 @llvm.vector.reduce.xor.v1i8(<1 x i8> undef)
442247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.vector.reduce.xor.v2i8(<2 x i8> undef)
452247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V4 = call i8 @llvm.vector.reduce.xor.v4i8(<4 x i8> undef)
462247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V8 = call i8 @llvm.vector.reduce.xor.v8i8(<8 x i8> undef)
472247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V16 = call i8 @llvm.vector.reduce.xor.v16i8(<16 x i8> undef)
482247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V32 = call i8 @llvm.vector.reduce.xor.v32i8(<32 x i8> undef)
492247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %V64 = call i8 @llvm.vector.reduce.xor.v64i8(<64 x i8> undef)
502247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V128 = call i8 @llvm.vector.reduce.xor.v128i8(<128 x i8> undef)
510a5d52a7SSergey Kachkov; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
52ae7c6647SYeting Kuo;
53fb661e25SShihPo Hung; SIZE-LABEL: 'reduce_i8'
5484be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V1 = call i8 @llvm.vector.reduce.xor.v1i8(<1 x i8> undef)
5584be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.vector.reduce.xor.v2i8(<2 x i8> undef)
5684be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V4 = call i8 @llvm.vector.reduce.xor.v4i8(<4 x i8> undef)
5784be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V8 = call i8 @llvm.vector.reduce.xor.v8i8(<8 x i8> undef)
5884be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V16 = call i8 @llvm.vector.reduce.xor.v16i8(<16 x i8> undef)
5984be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V32 = call i8 @llvm.vector.reduce.xor.v32i8(<32 x i8> undef)
6084be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V64 = call i8 @llvm.vector.reduce.xor.v64i8(<64 x i8> undef)
6184be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V128 = call i8 @llvm.vector.reduce.xor.v128i8(<128 x i8> undef)
62fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
63fb661e25SShihPo Hung;
64ae7c6647SYeting Kuo  %V1   = call i8 @llvm.vector.reduce.xor.v1i8(<1 x i8> undef)
65ae7c6647SYeting Kuo  %V2   = call i8 @llvm.vector.reduce.xor.v2i8(<2 x i8> undef)
66ae7c6647SYeting Kuo  %V4   = call i8 @llvm.vector.reduce.xor.v4i8(<4 x i8> undef)
67ae7c6647SYeting Kuo  %V8   = call i8 @llvm.vector.reduce.xor.v8i8(<8 x i8> undef)
68ae7c6647SYeting Kuo  %V16  = call i8 @llvm.vector.reduce.xor.v16i8(<16 x i8> undef)
69ae7c6647SYeting Kuo  %V32  = call i8 @llvm.vector.reduce.xor.v32i8(<32 x i8> undef)
70ae7c6647SYeting Kuo  %V64  = call i8 @llvm.vector.reduce.xor.v64i8(<64 x i8> undef)
71ae7c6647SYeting Kuo  %V128 = call i8 @llvm.vector.reduce.xor.v128i8(<128 x i8> undef)
72ae7c6647SYeting Kuo  ret i32 undef
73ae7c6647SYeting Kuo}
74ae7c6647SYeting Kuo
75ae7c6647SYeting Kuodefine i32 @reduce_i16(i32 %arg) {
762247e4deSPhilip Reames; CHECK-LABEL: 'reduce_i16'
772247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i16 @llvm.vector.reduce.xor.v1i16(<1 x i16> undef)
782247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.vector.reduce.xor.v2i16(<2 x i16> undef)
792247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V4 = call i16 @llvm.vector.reduce.xor.v4i16(<4 x i16> undef)
802247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V8 = call i16 @llvm.vector.reduce.xor.v8i16(<8 x i16> undef)
812247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V16 = call i16 @llvm.vector.reduce.xor.v16i16(<16 x i16> undef)
822247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V32 = call i16 @llvm.vector.reduce.xor.v32i16(<32 x i16> undef)
832247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %V64 = call i16 @llvm.vector.reduce.xor.v64i16(<64 x i16> undef)
84*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %V128 = call i16 @llvm.vector.reduce.xor.v128i16(<128 x i16> undef)
850a5d52a7SSergey Kachkov; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
86ae7c6647SYeting Kuo;
87fb661e25SShihPo Hung; SIZE-LABEL: 'reduce_i16'
8884be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V1 = call i16 @llvm.vector.reduce.xor.v1i16(<1 x i16> undef)
8984be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.vector.reduce.xor.v2i16(<2 x i16> undef)
9084be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V4 = call i16 @llvm.vector.reduce.xor.v4i16(<4 x i16> undef)
9184be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V8 = call i16 @llvm.vector.reduce.xor.v8i16(<8 x i16> undef)
9284be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V16 = call i16 @llvm.vector.reduce.xor.v16i16(<16 x i16> undef)
9384be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V32 = call i16 @llvm.vector.reduce.xor.v32i16(<32 x i16> undef)
9484be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V64 = call i16 @llvm.vector.reduce.xor.v64i16(<64 x i16> undef)
95*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V128 = call i16 @llvm.vector.reduce.xor.v128i16(<128 x i16> undef)
96fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
97fb661e25SShihPo Hung;
98ae7c6647SYeting Kuo  %V1   = call i16 @llvm.vector.reduce.xor.v1i16(<1 x i16> undef)
99ae7c6647SYeting Kuo  %V2   = call i16 @llvm.vector.reduce.xor.v2i16(<2 x i16> undef)
100ae7c6647SYeting Kuo  %V4   = call i16 @llvm.vector.reduce.xor.v4i16(<4 x i16> undef)
101ae7c6647SYeting Kuo  %V8   = call i16 @llvm.vector.reduce.xor.v8i16(<8 x i16> undef)
102ae7c6647SYeting Kuo  %V16  = call i16 @llvm.vector.reduce.xor.v16i16(<16 x i16> undef)
103ae7c6647SYeting Kuo  %V32  = call i16 @llvm.vector.reduce.xor.v32i16(<32 x i16> undef)
104ae7c6647SYeting Kuo  %V64  = call i16 @llvm.vector.reduce.xor.v64i16(<64 x i16> undef)
105ae7c6647SYeting Kuo  %V128 = call i16 @llvm.vector.reduce.xor.v128i16(<128 x i16> undef)
106ae7c6647SYeting Kuo  ret i32 undef
107ae7c6647SYeting Kuo}
108ae7c6647SYeting Kuo
109ae7c6647SYeting Kuodefine i32 @reduce_i32(i32 %arg) {
1102247e4deSPhilip Reames; CHECK-LABEL: 'reduce_i32'
1112247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i32 @llvm.vector.reduce.xor.v1i32(<1 x i32> undef)
1122247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.vector.reduce.xor.v2i32(<2 x i32> undef)
1132247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V4 = call i32 @llvm.vector.reduce.xor.v4i32(<4 x i32> undef)
1142247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V8 = call i32 @llvm.vector.reduce.xor.v8i32(<8 x i32> undef)
1152247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V16 = call i32 @llvm.vector.reduce.xor.v16i32(<16 x i32> undef)
1162247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V32 = call i32 @llvm.vector.reduce.xor.v32i32(<32 x i32> undef)
117*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %V64 = call i32 @llvm.vector.reduce.xor.v64i32(<64 x i32> undef)
118*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 31 for instruction: %V128 = call i32 @llvm.vector.reduce.xor.v128i32(<128 x i32> undef)
1190a5d52a7SSergey Kachkov; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
120ae7c6647SYeting Kuo;
121fb661e25SShihPo Hung; SIZE-LABEL: 'reduce_i32'
12284be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V1 = call i32 @llvm.vector.reduce.xor.v1i32(<1 x i32> undef)
12384be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.vector.reduce.xor.v2i32(<2 x i32> undef)
12484be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V4 = call i32 @llvm.vector.reduce.xor.v4i32(<4 x i32> undef)
12584be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V8 = call i32 @llvm.vector.reduce.xor.v8i32(<8 x i32> undef)
12684be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V16 = call i32 @llvm.vector.reduce.xor.v16i32(<16 x i32> undef)
12784be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V32 = call i32 @llvm.vector.reduce.xor.v32i32(<32 x i32> undef)
128*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V64 = call i32 @llvm.vector.reduce.xor.v64i32(<64 x i32> undef)
129*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V128 = call i32 @llvm.vector.reduce.xor.v128i32(<128 x i32> undef)
130fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
131fb661e25SShihPo Hung;
132ae7c6647SYeting Kuo  %V1   = call i32 @llvm.vector.reduce.xor.v1i32(<1 x i32> undef)
133ae7c6647SYeting Kuo  %V2   = call i32 @llvm.vector.reduce.xor.v2i32(<2 x i32> undef)
134ae7c6647SYeting Kuo  %V4   = call i32 @llvm.vector.reduce.xor.v4i32(<4 x i32> undef)
135ae7c6647SYeting Kuo  %V8   = call i32 @llvm.vector.reduce.xor.v8i32(<8 x i32> undef)
136ae7c6647SYeting Kuo  %V16  = call i32 @llvm.vector.reduce.xor.v16i32(<16 x i32> undef)
137ae7c6647SYeting Kuo  %V32  = call i32 @llvm.vector.reduce.xor.v32i32(<32 x i32> undef)
138ae7c6647SYeting Kuo  %V64  = call i32 @llvm.vector.reduce.xor.v64i32(<64 x i32> undef)
139ae7c6647SYeting Kuo  %V128 = call i32 @llvm.vector.reduce.xor.v128i32(<128 x i32> undef)
140ae7c6647SYeting Kuo  ret i32 undef
141ae7c6647SYeting Kuo}
142ae7c6647SYeting Kuo
143ae7c6647SYeting Kuodefine i32 @reduce_i64(i32 %arg) {
1442247e4deSPhilip Reames; CHECK-LABEL: 'reduce_i64'
1452247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %V1 = call i64 @llvm.vector.reduce.xor.v1i64(<1 x i64> undef)
1462247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.vector.reduce.xor.v2i64(<2 x i64> undef)
1472247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V4 = call i64 @llvm.vector.reduce.xor.v4i64(<4 x i64> undef)
1482247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V8 = call i64 @llvm.vector.reduce.xor.v8i64(<8 x i64> undef)
1492247e4deSPhilip Reames; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V16 = call i64 @llvm.vector.reduce.xor.v16i64(<16 x i64> undef)
150*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 14 for instruction: %V32 = call i64 @llvm.vector.reduce.xor.v32i64(<32 x i64> undef)
151*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 30 for instruction: %V64 = call i64 @llvm.vector.reduce.xor.v64i64(<64 x i64> undef)
152*400b725cSLuke Lau; CHECK-NEXT:  Cost Model: Found an estimated cost of 62 for instruction: %V128 = call i64 @llvm.vector.reduce.xor.v128i64(<128 x i64> undef)
1530a5d52a7SSergey Kachkov; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
154ae7c6647SYeting Kuo;
155fb661e25SShihPo Hung; SIZE-LABEL: 'reduce_i64'
15684be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V1 = call i64 @llvm.vector.reduce.xor.v1i64(<1 x i64> undef)
15784be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.vector.reduce.xor.v2i64(<2 x i64> undef)
15884be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V4 = call i64 @llvm.vector.reduce.xor.v4i64(<4 x i64> undef)
15984be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V8 = call i64 @llvm.vector.reduce.xor.v8i64(<8 x i64> undef)
16084be954cSShih-Po Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V16 = call i64 @llvm.vector.reduce.xor.v16i64(<16 x i64> undef)
161*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %V32 = call i64 @llvm.vector.reduce.xor.v32i64(<32 x i64> undef)
162*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V64 = call i64 @llvm.vector.reduce.xor.v64i64(<64 x i64> undef)
163*400b725cSLuke Lau; SIZE-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %V128 = call i64 @llvm.vector.reduce.xor.v128i64(<128 x i64> undef)
164fb661e25SShihPo Hung; SIZE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
165fb661e25SShihPo Hung;
166ae7c6647SYeting Kuo  %V1   = call i64 @llvm.vector.reduce.xor.v1i64(<1 x i64> undef)
167ae7c6647SYeting Kuo  %V2   = call i64 @llvm.vector.reduce.xor.v2i64(<2 x i64> undef)
168ae7c6647SYeting Kuo  %V4   = call i64 @llvm.vector.reduce.xor.v4i64(<4 x i64> undef)
169ae7c6647SYeting Kuo  %V8   = call i64 @llvm.vector.reduce.xor.v8i64(<8 x i64> undef)
170ae7c6647SYeting Kuo  %V16  = call i64 @llvm.vector.reduce.xor.v16i64(<16 x i64> undef)
171ae7c6647SYeting Kuo  %V32  = call i64 @llvm.vector.reduce.xor.v32i64(<32 x i64> undef)
172ae7c6647SYeting Kuo  %V64  = call i64 @llvm.vector.reduce.xor.v64i64(<64 x i64> undef)
173ae7c6647SYeting Kuo  %V128 = call i64 @llvm.vector.reduce.xor.v128i64(<128 x i64> undef)
174ae7c6647SYeting Kuo  ret i32 undef
175ae7c6647SYeting Kuo}
176ae7c6647SYeting Kuo
1772b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v1i1(<1 x i1>)
1782b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v2i1(<2 x i1>)
1792b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v4i1(<4 x i1>)
1802b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v8i1(<8 x i1>)
1812b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v16i1(<16 x i1>)
1822b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v32i1(<32 x i1>)
1832b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v64i1(<64 x i1>)
1842b83467dSPhilip Reamesdeclare i1 @llvm.vector.reduce.xor.v128i1(<128 x i1>)
185ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v1i8(<1 x i8>)
186ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v2i8(<2 x i8>)
187ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v4i8(<4 x i8>)
188ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v8i8(<8 x i8>)
189ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v16i8(<16 x i8>)
190ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v32i8(<32 x i8>)
191ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v64i8(<64 x i8>)
192ae7c6647SYeting Kuodeclare i8 @llvm.vector.reduce.xor.v128i8(<128 x i8>)
193ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v1i16(<1 x i16>)
194ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v2i16(<2 x i16>)
195ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v4i16(<4 x i16>)
196ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v8i16(<8 x i16>)
197ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v16i16(<16 x i16>)
198ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v32i16(<32 x i16>)
199ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v64i16(<64 x i16>)
200ae7c6647SYeting Kuodeclare i16 @llvm.vector.reduce.xor.v128i16(<128 x i16>)
201ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v1i32(<1 x i32>)
202ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v2i32(<2 x i32>)
203ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v4i32(<4 x i32>)
204ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v8i32(<8 x i32>)
205ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v16i32(<16 x i32>)
206ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v32i32(<32 x i32>)
207ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v64i32(<64 x i32>)
208ae7c6647SYeting Kuodeclare i32 @llvm.vector.reduce.xor.v128i32(<128 x i32>)
209ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v1i64(<1 x i64>)
210ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v2i64(<2 x i64>)
211ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v4i64(<4 x i64>)
212ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v8i64(<8 x i64>)
213ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v16i64(<16 x i64>)
214ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v32i64(<32 x i64>)
215ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v64i64(<64 x i64>)
216ae7c6647SYeting Kuodeclare i64 @llvm.vector.reduce.xor.v128i64(<128 x i64>)
217