| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py | 
| Craig Topper | 381b4fb | 2018-12-05 07:56:50 +0000 | [diff] [blame^] | 2 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+sse2 | FileCheck %s --check-prefixes=CHECK,SSE,SSE2 | 
|  | 3 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+ssse3 | FileCheck %s --check-prefixes=CHECK,SSE,SSSE3 | 
|  | 4 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+sse4.2 | FileCheck %s --check-prefixes=CHECK,SSE,SSE42 | 
|  | 5 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+avx | FileCheck %s --check-prefixes=CHECK,AVX,AVX1 | 
|  | 6 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+avx2 | FileCheck %s --check-prefixes=CHECK,AVX,AVX2 | 
|  | 7 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+avx512f | FileCheck %s --check-prefixes=CHECK,AVX512,AVX512F | 
|  | 8 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=CHECK,AVX512,AVX512BW | 
|  | 9 | ; RUN: opt < %s -cost-model -mtriple=x86_64-apple-darwin -analyze -mattr=+avx512f,+avx512dq | FileCheck %s --check-prefixes=CHECK,AVX512,AVX512DQ | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 10 |  | 
|  | 11 | define i32 @reduce_i64(i32 %arg) { | 
|  | 12 | ; SSE-LABEL: 'reduce_i64' | 
|  | 13 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 14 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64> undef) | 
|  | 15 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64> undef) | 
|  | 16 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V8 = call i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64> undef) | 
|  | 17 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %V16 = call i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 18 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 19 | ; | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 20 | ; AVX1-LABEL: 'reduce_i64' | 
|  | 21 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 22 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64> undef) | 
|  | 23 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V4 = call i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64> undef) | 
|  | 24 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V8 = call i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64> undef) | 
|  | 25 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %V16 = call i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 26 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 27 | ; | 
|  | 28 | ; AVX2-LABEL: 'reduce_i64' | 
|  | 29 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 30 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64> undef) | 
|  | 31 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64> undef) | 
|  | 32 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64> undef) | 
|  | 33 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V16 = call i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 34 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 35 | ; | 
|  | 36 | ; AVX512-LABEL: 'reduce_i64' | 
|  | 37 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 38 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64> undef) | 
|  | 39 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64> undef) | 
|  | 40 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64> undef) | 
|  | 41 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 42 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 43 | ; | 
|  | 44 | %V1  = call i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64> undef) | 
|  | 45 | %V2  = call i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64> undef) | 
|  | 46 | %V4  = call i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64> undef) | 
|  | 47 | %V8  = call i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64> undef) | 
|  | 48 | %V16 = call i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64> undef) | 
|  | 49 | ret i32 undef | 
|  | 50 | } | 
|  | 51 |  | 
|  | 52 | define i32 @reduce_i32(i32 %arg) { | 
|  | 53 | ; SSE-LABEL: 'reduce_i32' | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 54 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32> undef) | 
|  | 55 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32> undef) | 
|  | 56 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32> undef) | 
|  | 57 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V16 = call i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32> undef) | 
|  | 58 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V32 = call i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 59 | ; SSE-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 60 | ; | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 61 | ; AVX1-LABEL: 'reduce_i32' | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 62 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32> undef) | 
|  | 63 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32> undef) | 
|  | 64 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %V8 = call i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32> undef) | 
|  | 65 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %V16 = call i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32> undef) | 
|  | 66 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %V32 = call i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 67 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 68 | ; | 
|  | 69 | ; AVX2-LABEL: 'reduce_i32' | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 70 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32> undef) | 
|  | 71 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32> undef) | 
|  | 72 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32> undef) | 
|  | 73 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32> undef) | 
|  | 74 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %V32 = call i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 75 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 76 | ; | 
|  | 77 | ; AVX512-LABEL: 'reduce_i32' | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 78 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32> undef) | 
|  | 79 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32> undef) | 
|  | 80 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32> undef) | 
|  | 81 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32> undef) | 
|  | 82 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 83 | ; AVX512-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 84 | ; | 
|  | 85 | %V2  = call i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32> undef) | 
|  | 86 | %V4  = call i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32> undef) | 
|  | 87 | %V8  = call i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32> undef) | 
|  | 88 | %V16 = call i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32> undef) | 
|  | 89 | %V32 = call i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32> undef) | 
|  | 90 | ret i32 undef | 
|  | 91 | } | 
|  | 92 |  | 
|  | 93 | define i32 @reduce_i16(i32 %arg) { | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 94 | ; SSE2-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 95 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 96 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 97 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 98 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 99 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 25 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 100 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 33 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 101 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 102 | ; | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 103 | ; SSSE3-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 104 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 105 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 106 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 107 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 108 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 109 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 110 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 111 | ; | 
|  | 112 | ; SSE42-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 113 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 114 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 115 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 116 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 117 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 118 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 119 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 120 | ; | 
|  | 121 | ; AVX1-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 122 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 123 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 124 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 125 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 37 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 126 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 39 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 127 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 43 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 128 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 129 | ; | 
|  | 130 | ; AVX2-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 131 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 132 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 133 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 134 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 135 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 136 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 27 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 137 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 138 | ; | 
|  | 139 | ; AVX512F-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 140 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 141 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 142 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 143 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 144 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 145 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 27 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 146 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 147 | ; | 
|  | 148 | ; AVX512BW-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 149 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 150 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 151 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 152 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 153 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 154 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 155 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 156 | ; | 
|  | 157 | ; AVX512DQ-LABEL: 'reduce_i16' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 158 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 159 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 160 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 161 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 162 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 163 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 27 for instruction: %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 164 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 165 | ; | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 166 | %V2  = call i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 167 | %V4  = call i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16> undef) | 
|  | 168 | %V8  = call i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16> undef) | 
|  | 169 | %V16 = call i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16> undef) | 
|  | 170 | %V32 = call i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16> undef) | 
|  | 171 | %V64 = call i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16> undef) | 
|  | 172 | ret i32 undef | 
|  | 173 | } | 
|  | 174 |  | 
|  | 175 | define i32 @reduce_i8(i32 %arg) { | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 176 | ; SSE2-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 177 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 178 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 179 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 180 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 45 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 181 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 47 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 182 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 51 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 183 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 59 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 184 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 185 | ; | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 186 | ; SSSE3-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 187 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 188 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 189 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 190 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 191 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 192 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 193 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 194 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 195 | ; | 
|  | 196 | ; SSE42-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 197 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 198 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 199 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 200 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 201 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 202 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 203 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 204 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 205 | ; | 
|  | 206 | ; AVX1-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 207 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 208 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 209 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 210 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 211 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 46 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 212 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 48 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 213 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 52 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 214 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 215 | ; | 
|  | 216 | ; AVX2-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 217 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 218 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 219 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 220 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 221 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 26 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 222 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 28 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 223 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 224 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 225 | ; | 
|  | 226 | ; AVX512F-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 227 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 228 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 229 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 230 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 231 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 26 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 232 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 28 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 233 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 234 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 235 | ; | 
|  | 236 | ; AVX512BW-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 237 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 238 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 239 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 240 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 241 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 242 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 55 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 243 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 57 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 244 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 245 | ; | 
|  | 246 | ; AVX512DQ-LABEL: 'reduce_i8' | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 247 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 248 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 249 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 250 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 251 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 26 for instruction: %V32 = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 252 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 28 for instruction: %V64 = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 253 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 254 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 255 | ; | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 256 | %V2   = call i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8> undef) | 
|  | 257 | %V4   = call i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 258 | %V8   = call i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8> undef) | 
|  | 259 | %V16  = call i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8> undef) | 
|  | 260 | %V32  = call i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8> undef) | 
|  | 261 | %V64  = call i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8> undef) | 
|  | 262 | %V128 = call i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8> undef) | 
|  | 263 | ret i32 undef | 
|  | 264 | } | 
|  | 265 |  | 
|  | 266 | define i32 @reduce_i1(i32 %arg) { | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 267 | ; SSE2-LABEL: 'reduce_i1' | 
|  | 268 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 269 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 270 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 271 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 272 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 45 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 273 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 47 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 274 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 51 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 275 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 59 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 276 | ; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 277 | ; | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 278 | ; SSSE3-LABEL: 'reduce_i1' | 
|  | 279 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 280 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 281 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 282 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 283 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 284 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 285 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 286 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 287 | ; SSSE3-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 288 | ; | 
|  | 289 | ; SSE42-LABEL: 'reduce_i1' | 
|  | 290 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 291 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 292 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 293 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 294 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 295 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 296 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 297 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 298 | ; SSE42-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 299 | ; | 
|  | 300 | ; AVX1-LABEL: 'reduce_i1' | 
|  | 301 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 302 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 303 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 304 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 305 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 306 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 46 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 307 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 48 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 308 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 52 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 309 | ; AVX1-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 310 | ; | 
|  | 311 | ; AVX2-LABEL: 'reduce_i1' | 
|  | 312 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 313 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 314 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 315 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 316 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 317 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 26 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 318 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 28 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 319 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | 44a9a71 | 2018-10-30 18:10:02 +0000 | [diff] [blame] | 320 | ; AVX2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 321 | ; | 
|  | 322 | ; AVX512F-LABEL: 'reduce_i1' | 
|  | 323 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 324 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 325 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 326 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 52 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 327 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 133 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 328 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 135 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 329 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 139 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 330 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 147 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 331 | ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 332 | ; | 
|  | 333 | ; AVX512BW-LABEL: 'reduce_i1' | 
|  | 334 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 335 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 336 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 337 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 52 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 338 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 133 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 339 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 326 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 340 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 775 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 341 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 777 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 342 | ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 343 | ; | 
|  | 344 | ; AVX512DQ-LABEL: 'reduce_i1' | 
|  | 345 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %V1 = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
| Simon Pilgrim | 102854f | 2018-12-01 14:18:31 +0000 | [diff] [blame] | 346 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %V2 = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 347 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %V4 = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 348 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 52 for instruction: %V8 = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 349 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 133 for instruction: %V16 = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 350 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 135 for instruction: %V32 = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 351 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 139 for instruction: %V64 = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 352 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 147 for instruction: %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 353 | ; AVX512DQ-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef | 
|  | 354 | ; | 
|  | 355 | %V1   = call i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1> undef) | 
|  | 356 | %V2   = call i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1> undef) | 
|  | 357 | %V4   = call i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1> undef) | 
|  | 358 | %V8   = call i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1> undef) | 
|  | 359 | %V16  = call i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1> undef) | 
|  | 360 | %V32  = call i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1> undef) | 
|  | 361 | %V64  = call i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1> undef) | 
|  | 362 | %V128 = call i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1> undef) | 
|  | 363 | ret i32 undef | 
|  | 364 | } | 
|  | 365 |  | 
|  | 366 | declare i64 @llvm.experimental.vector.reduce.or.i64.v1i64(<1 x i64>) | 
|  | 367 | declare i64 @llvm.experimental.vector.reduce.or.i64.v2i64(<2 x i64>) | 
|  | 368 | declare i64 @llvm.experimental.vector.reduce.or.i64.v4i64(<4 x i64>) | 
|  | 369 | declare i64 @llvm.experimental.vector.reduce.or.i64.v8i64(<8 x i64>) | 
|  | 370 | declare i64 @llvm.experimental.vector.reduce.or.i64.v16i64(<16 x i64>) | 
|  | 371 |  | 
|  | 372 | declare i32 @llvm.experimental.vector.reduce.or.i32.v2i32(<2 x i32>) | 
|  | 373 | declare i32 @llvm.experimental.vector.reduce.or.i32.v4i32(<4 x i32>) | 
|  | 374 | declare i32 @llvm.experimental.vector.reduce.or.i32.v8i32(<8 x i32>) | 
|  | 375 | declare i32 @llvm.experimental.vector.reduce.or.i32.v16i32(<16 x i32>) | 
|  | 376 | declare i32 @llvm.experimental.vector.reduce.or.i32.v32i32(<32 x i32>) | 
|  | 377 |  | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 378 | declare i16 @llvm.experimental.vector.reduce.or.i16.v2i16(<2 x i16>) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 379 | declare i16 @llvm.experimental.vector.reduce.or.i16.v4i16(<4 x i16>) | 
|  | 380 | declare i16 @llvm.experimental.vector.reduce.or.i16.v8i16(<8 x i16>) | 
|  | 381 | declare i16 @llvm.experimental.vector.reduce.or.i16.v16i16(<16 x i16>) | 
|  | 382 | declare i16 @llvm.experimental.vector.reduce.or.i16.v32i16(<32 x i16>) | 
|  | 383 | declare i16 @llvm.experimental.vector.reduce.or.i16.v64i16(<64 x i16>) | 
|  | 384 |  | 
| Craig Topper | b4719e5 | 2018-12-05 07:26:57 +0000 | [diff] [blame] | 385 | declare i8 @llvm.experimental.vector.reduce.or.i8.v2i8(<2 x i8>) | 
|  | 386 | declare i8 @llvm.experimental.vector.reduce.or.i8.v4i8(<4 x i8>) | 
| Simon Pilgrim | e612ab0 | 2018-10-20 14:29:59 +0000 | [diff] [blame] | 387 | declare i8 @llvm.experimental.vector.reduce.or.i8.v8i8(<8 x i8>) | 
|  | 388 | declare i8 @llvm.experimental.vector.reduce.or.i8.v16i8(<16 x i8>) | 
|  | 389 | declare i8 @llvm.experimental.vector.reduce.or.i8.v32i8(<32 x i8>) | 
|  | 390 | declare i8 @llvm.experimental.vector.reduce.or.i8.v64i8(<64 x i8>) | 
|  | 391 | declare i8 @llvm.experimental.vector.reduce.or.i8.v128i8(<128 x i8>) | 
|  | 392 |  | 
|  | 393 | declare i1 @llvm.experimental.vector.reduce.or.i1.v1i1(<1 x i1>) | 
|  | 394 | declare i1 @llvm.experimental.vector.reduce.or.i1.v2i1(<2 x i1>) | 
|  | 395 | declare i1 @llvm.experimental.vector.reduce.or.i1.v4i1(<4 x i1>) | 
|  | 396 | declare i1 @llvm.experimental.vector.reduce.or.i1.v8i1(<8 x i1>) | 
|  | 397 | declare i1 @llvm.experimental.vector.reduce.or.i1.v16i1(<16 x i1>) | 
|  | 398 | declare i1 @llvm.experimental.vector.reduce.or.i1.v32i1(<32 x i1>) | 
|  | 399 | declare i1 @llvm.experimental.vector.reduce.or.i1.v64i1(<64 x i1>) | 
|  | 400 | declare i1 @llvm.experimental.vector.reduce.or.i1.v128i1(<128 x i1>) |