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