1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py 2 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+sse2 | FileCheck %s --check-prefixes=CHECK,SSE,SSE2 3 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+sse4.2 | FileCheck %s --check-prefixes=CHECK,SSE,SSE42 4 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+avx | FileCheck %s --check-prefixes=CHECK,AVX,AVX1 5 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+avx2 | FileCheck %s --check-prefixes=CHECK,AVX,AVX2 6 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+avx512f | FileCheck %s --check-prefixes=CHECK,AVX512,AVX512F 7 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+avx512f,+avx512dq | FileCheck %s --check-prefixes=CHECK,AVX512,AVX512DQ 8 ; 9 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mcpu=slm | FileCheck %s --check-prefixes=CHECK,SSE,SSE42 10 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mcpu=goldmont | FileCheck %s --check-prefixes=CHECK,SSE,SSE42 11 ; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mcpu=btver2 | FileCheck %s --check-prefixes=BTVER2 12 13 define i32 @fptoui_double_i64(i32 %arg) { 14 ; SSE-LABEL: 'fptoui_double_i64' 15 ; SSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui double undef to i64 16 ; SSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x double> undef to <2 x i64> 17 ; SSE-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V4I64 = fptoui <4 x double> undef to <4 x i64> 18 ; SSE-NEXT: Cost Model: Found an estimated cost of 51 for instruction: %V8I64 = fptoui <8 x double> undef to <8 x i64> 19 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 20 ; 21 ; AVX-LABEL: 'fptoui_double_i64' 22 ; AVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui double undef to i64 23 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x double> undef to <2 x i64> 24 ; AVX-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V4I64 = fptoui <4 x double> undef to <4 x i64> 25 ; AVX-NEXT: Cost Model: Found an estimated cost of 49 for instruction: %V8I64 = fptoui <8 x double> undef to <8 x i64> 26 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 27 ; 28 ; AVX512F-LABEL: 'fptoui_double_i64' 29 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I64 = fptoui double undef to i64 30 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I64 = fptoui <2 x double> undef to <2 x i64> 31 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I64 = fptoui <4 x double> undef to <4 x i64> 32 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V8I64 = fptoui <8 x double> undef to <8 x i64> 33 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 34 ; 35 ; AVX512DQ-LABEL: 'fptoui_double_i64' 36 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I64 = fptoui double undef to i64 37 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V2I64 = fptoui <2 x double> undef to <2 x i64> 38 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I64 = fptoui <4 x double> undef to <4 x i64> 39 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I64 = fptoui <8 x double> undef to <8 x i64> 40 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 41 ; 42 ; BTVER2-LABEL: 'fptoui_double_i64' 43 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui double undef to i64 44 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x double> undef to <2 x i64> 45 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V4I64 = fptoui <4 x double> undef to <4 x i64> 46 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 49 for instruction: %V8I64 = fptoui <8 x double> undef to <8 x i64> 47 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 48 ; 49 %I64 = fptoui double undef to i64 50 %V2I64 = fptoui <2 x double> undef to <2 x i64> 51 %V4I64 = fptoui <4 x double> undef to <4 x i64> 52 %V8I64 = fptoui <8 x double> undef to <8 x i64> 53 ret i32 undef 54 } 55 56 define i32 @fptoui_double_i32(i32 %arg) { 57 ; SSE-LABEL: 'fptoui_double_i32' 58 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui double undef to i32 59 ; SSE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I32 = fptoui <2 x double> undef to <2 x i32> 60 ; SSE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %V4I32 = fptoui <4 x double> undef to <4 x i32> 61 ; SSE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %V8I32 = fptoui <8 x double> undef to <8 x i32> 62 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 63 ; 64 ; AVX-LABEL: 'fptoui_double_i32' 65 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui double undef to i32 66 ; AVX-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I32 = fptoui <2 x double> undef to <2 x i32> 67 ; AVX-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V4I32 = fptoui <4 x double> undef to <4 x i32> 68 ; AVX-NEXT: Cost Model: Found an estimated cost of 33 for instruction: %V8I32 = fptoui <8 x double> undef to <8 x i32> 69 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 70 ; 71 ; AVX512F-LABEL: 'fptoui_double_i32' 72 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui double undef to i32 73 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I32 = fptoui <2 x double> undef to <2 x i32> 74 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V4I32 = fptoui <4 x double> undef to <4 x i32> 75 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I32 = fptoui <8 x double> undef to <8 x i32> 76 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 77 ; 78 ; AVX512DQ-LABEL: 'fptoui_double_i32' 79 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui double undef to i32 80 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V2I32 = fptoui <2 x double> undef to <2 x i32> 81 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V4I32 = fptoui <4 x double> undef to <4 x i32> 82 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I32 = fptoui <8 x double> undef to <8 x i32> 83 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 84 ; 85 ; BTVER2-LABEL: 'fptoui_double_i32' 86 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui double undef to i32 87 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I32 = fptoui <2 x double> undef to <2 x i32> 88 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V4I32 = fptoui <4 x double> undef to <4 x i32> 89 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 33 for instruction: %V8I32 = fptoui <8 x double> undef to <8 x i32> 90 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 91 ; 92 %I32 = fptoui double undef to i32 93 %V2I32 = fptoui <2 x double> undef to <2 x i32> 94 %V4I32 = fptoui <4 x double> undef to <4 x i32> 95 %V8I32 = fptoui <8 x double> undef to <8 x i32> 96 ret i32 undef 97 } 98 99 define i32 @fptoui_double_i16(i32 %arg) { 100 ; SSE-LABEL: 'fptoui_double_i16' 101 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui double undef to i16 102 ; SSE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I16 = fptoui <2 x double> undef to <2 x i16> 103 ; SSE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %V4I16 = fptoui <4 x double> undef to <4 x i16> 104 ; SSE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %V8I16 = fptoui <8 x double> undef to <8 x i16> 105 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 106 ; 107 ; AVX-LABEL: 'fptoui_double_i16' 108 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui double undef to i16 109 ; AVX-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I16 = fptoui <2 x double> undef to <2 x i16> 110 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I16 = fptoui <4 x double> undef to <4 x i16> 111 ; AVX-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I16 = fptoui <8 x double> undef to <8 x i16> 112 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 113 ; 114 ; AVX512F-LABEL: 'fptoui_double_i16' 115 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui double undef to i16 116 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I16 = fptoui <2 x double> undef to <2 x i16> 117 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I16 = fptoui <4 x double> undef to <4 x i16> 118 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V8I16 = fptoui <8 x double> undef to <8 x i16> 119 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 120 ; 121 ; AVX512DQ-LABEL: 'fptoui_double_i16' 122 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui double undef to i16 123 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V2I16 = fptoui <2 x double> undef to <2 x i16> 124 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I16 = fptoui <4 x double> undef to <4 x i16> 125 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V8I16 = fptoui <8 x double> undef to <8 x i16> 126 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 127 ; 128 ; BTVER2-LABEL: 'fptoui_double_i16' 129 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui double undef to i16 130 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I16 = fptoui <2 x double> undef to <2 x i16> 131 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I16 = fptoui <4 x double> undef to <4 x i16> 132 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I16 = fptoui <8 x double> undef to <8 x i16> 133 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 134 ; 135 %I16 = fptoui double undef to i16 136 %V2I16 = fptoui <2 x double> undef to <2 x i16> 137 %V4I16 = fptoui <4 x double> undef to <4 x i16> 138 %V8I16 = fptoui <8 x double> undef to <8 x i16> 139 ret i32 undef 140 } 141 142 define i32 @fptoui_double_i8(i32 %arg) { 143 ; SSE-LABEL: 'fptoui_double_i8' 144 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui double undef to i8 145 ; SSE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I8 = fptoui <2 x double> undef to <2 x i8> 146 ; SSE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %V4I8 = fptoui <4 x double> undef to <4 x i8> 147 ; SSE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %V8I8 = fptoui <8 x double> undef to <8 x i8> 148 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 149 ; 150 ; AVX-LABEL: 'fptoui_double_i8' 151 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui double undef to i8 152 ; AVX-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I8 = fptoui <2 x double> undef to <2 x i8> 153 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I8 = fptoui <4 x double> undef to <4 x i8> 154 ; AVX-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I8 = fptoui <8 x double> undef to <8 x i8> 155 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 156 ; 157 ; AVX512F-LABEL: 'fptoui_double_i8' 158 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui double undef to i8 159 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I8 = fptoui <2 x double> undef to <2 x i8> 160 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I8 = fptoui <4 x double> undef to <4 x i8> 161 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V8I8 = fptoui <8 x double> undef to <8 x i8> 162 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 163 ; 164 ; AVX512DQ-LABEL: 'fptoui_double_i8' 165 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui double undef to i8 166 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V2I8 = fptoui <2 x double> undef to <2 x i8> 167 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I8 = fptoui <4 x double> undef to <4 x i8> 168 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V8I8 = fptoui <8 x double> undef to <8 x i8> 169 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 170 ; 171 ; BTVER2-LABEL: 'fptoui_double_i8' 172 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui double undef to i8 173 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I8 = fptoui <2 x double> undef to <2 x i8> 174 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I8 = fptoui <4 x double> undef to <4 x i8> 175 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I8 = fptoui <8 x double> undef to <8 x i8> 176 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 177 ; 178 %I8 = fptoui double undef to i8 179 %V2I8 = fptoui <2 x double> undef to <2 x i8> 180 %V4I8 = fptoui <4 x double> undef to <4 x i8> 181 %V8I8 = fptoui <8 x double> undef to <8 x i8> 182 ret i32 undef 183 } 184 185 define i32 @fptoui_float_i64(i32 %arg) { 186 ; SSE-LABEL: 'fptoui_float_i64' 187 ; SSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui float undef to i64 188 ; SSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x float> undef to <2 x i64> 189 ; SSE-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V4I64 = fptoui <4 x float> undef to <4 x i64> 190 ; SSE-NEXT: Cost Model: Found an estimated cost of 51 for instruction: %V8I64 = fptoui <8 x float> undef to <8 x i64> 191 ; SSE-NEXT: Cost Model: Found an estimated cost of 103 for instruction: %V16I64 = fptoui <16 x float> undef to <16 x i64> 192 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 193 ; 194 ; AVX-LABEL: 'fptoui_float_i64' 195 ; AVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui float undef to i64 196 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x float> undef to <2 x i64> 197 ; AVX-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V4I64 = fptoui <4 x float> undef to <4 x i64> 198 ; AVX-NEXT: Cost Model: Found an estimated cost of 49 for instruction: %V8I64 = fptoui <8 x float> undef to <8 x i64> 199 ; AVX-NEXT: Cost Model: Found an estimated cost of 99 for instruction: %V16I64 = fptoui <16 x float> undef to <16 x i64> 200 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 201 ; 202 ; AVX512F-LABEL: 'fptoui_float_i64' 203 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I64 = fptoui float undef to i64 204 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V2I64 = fptoui <2 x float> undef to <2 x i64> 205 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I64 = fptoui <4 x float> undef to <4 x i64> 206 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V8I64 = fptoui <8 x float> undef to <8 x i64> 207 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 49 for instruction: %V16I64 = fptoui <16 x float> undef to <16 x i64> 208 ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 209 ; 210 ; AVX512DQ-LABEL: 'fptoui_float_i64' 211 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I64 = fptoui float undef to i64 212 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V2I64 = fptoui <2 x float> undef to <2 x i64> 213 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I64 = fptoui <4 x float> undef to <4 x i64> 214 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I64 = fptoui <8 x float> undef to <8 x i64> 215 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V16I64 = fptoui <16 x float> undef to <16 x i64> 216 ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 217 ; 218 ; BTVER2-LABEL: 'fptoui_float_i64' 219 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %I64 = fptoui float undef to i64 220 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V2I64 = fptoui <2 x float> undef to <2 x i64> 221 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %V4I64 = fptoui <4 x float> undef to <4 x i64> 222 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 49 for instruction: %V8I64 = fptoui <8 x float> undef to <8 x i64> 223 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 99 for instruction: %V16I64 = fptoui <16 x float> undef to <16 x i64> 224 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 225 ; 226 %I64 = fptoui float undef to i64 227 %V2I64 = fptoui <2 x float> undef to <2 x i64> 228 %V4I64 = fptoui <4 x float> undef to <4 x i64> 229 %V8I64 = fptoui <8 x float> undef to <8 x i64> 230 %V16I64 = fptoui <16 x float> undef to <16 x i64> 231 ret i32 undef 232 } 233 234 define i32 @fptoui_float_i32(i32 %arg) { 235 ; SSE-LABEL: 'fptoui_float_i32' 236 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui float undef to i32 237 ; SSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I32 = fptoui <4 x float> undef to <4 x i32> 238 ; SSE-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I32 = fptoui <8 x float> undef to <8 x i32> 239 ; SSE-NEXT: Cost Model: Found an estimated cost of 51 for instruction: %V16I32 = fptoui <16 x float> undef to <16 x i32> 240 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 241 ; 242 ; AVX-LABEL: 'fptoui_float_i32' 243 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui float undef to i32 244 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I32 = fptoui <4 x float> undef to <4 x i32> 245 ; AVX-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %V8I32 = fptoui <8 x float> undef to <8 x i32> 246 ; AVX-NEXT: Cost Model: Found an estimated cost of 65 for instruction: %V16I32 = fptoui <16 x float> undef to <16 x i32> 247 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 248 ; 249 ; AVX512-LABEL: 'fptoui_float_i32' 250 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui float undef to i32 251 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I32 = fptoui <4 x float> undef to <4 x i32> 252 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I32 = fptoui <8 x float> undef to <8 x i32> 253 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V16I32 = fptoui <16 x float> undef to <16 x i32> 254 ; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 255 ; 256 ; BTVER2-LABEL: 'fptoui_float_i32' 257 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I32 = fptoui float undef to i32 258 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I32 = fptoui <4 x float> undef to <4 x i32> 259 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %V8I32 = fptoui <8 x float> undef to <8 x i32> 260 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 65 for instruction: %V16I32 = fptoui <16 x float> undef to <16 x i32> 261 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 262 ; 263 %I32 = fptoui float undef to i32 264 %V4I32 = fptoui <4 x float> undef to <4 x i32> 265 %V8I32 = fptoui <8 x float> undef to <8 x i32> 266 %V16I32 = fptoui <16 x float> undef to <16 x i32> 267 ret i32 undef 268 } 269 270 define i32 @fptoui_float_i16(i32 %arg) { 271 ; SSE-LABEL: 'fptoui_float_i16' 272 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui float undef to i16 273 ; SSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I16 = fptoui <4 x float> undef to <4 x i16> 274 ; SSE-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I16 = fptoui <8 x float> undef to <8 x i16> 275 ; SSE-NEXT: Cost Model: Found an estimated cost of 51 for instruction: %V16I16 = fptoui <16 x float> undef to <16 x i16> 276 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 277 ; 278 ; AVX-LABEL: 'fptoui_float_i16' 279 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui float undef to i16 280 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I16 = fptoui <4 x float> undef to <4 x i16> 281 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I16 = fptoui <8 x float> undef to <8 x i16> 282 ; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V16I16 = fptoui <16 x float> undef to <16 x i16> 283 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 284 ; 285 ; AVX512-LABEL: 'fptoui_float_i16' 286 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui float undef to i16 287 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I16 = fptoui <4 x float> undef to <4 x i16> 288 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I16 = fptoui <8 x float> undef to <8 x i16> 289 ; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V16I16 = fptoui <16 x float> undef to <16 x i16> 290 ; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 291 ; 292 ; BTVER2-LABEL: 'fptoui_float_i16' 293 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I16 = fptoui float undef to i16 294 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I16 = fptoui <4 x float> undef to <4 x i16> 295 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I16 = fptoui <8 x float> undef to <8 x i16> 296 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V16I16 = fptoui <16 x float> undef to <16 x i16> 297 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 298 ; 299 %I16 = fptoui float undef to i16 300 %V4I16 = fptoui <4 x float> undef to <4 x i16> 301 %V8I16 = fptoui <8 x float> undef to <8 x i16> 302 %V16I16 = fptoui <16 x float> undef to <16 x i16> 303 ret i32 undef 304 } 305 306 define i32 @fptoui_float_i8(i32 %arg) { 307 ; SSE-LABEL: 'fptoui_float_i8' 308 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui float undef to i8 309 ; SSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I8 = fptoui <4 x float> undef to <4 x i8> 310 ; SSE-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %V8I8 = fptoui <8 x float> undef to <8 x i8> 311 ; SSE-NEXT: Cost Model: Found an estimated cost of 51 for instruction: %V16I8 = fptoui <16 x float> undef to <16 x i8> 312 ; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 313 ; 314 ; AVX-LABEL: 'fptoui_float_i8' 315 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui float undef to i8 316 ; AVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I8 = fptoui <4 x float> undef to <4 x i8> 317 ; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I8 = fptoui <8 x float> undef to <8 x i8> 318 ; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V16I8 = fptoui <16 x float> undef to <16 x i8> 319 ; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 320 ; 321 ; AVX512-LABEL: 'fptoui_float_i8' 322 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui float undef to i8 323 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V4I8 = fptoui <4 x float> undef to <4 x i8> 324 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I8 = fptoui <8 x float> undef to <8 x i8> 325 ; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %V16I8 = fptoui <16 x float> undef to <16 x i8> 326 ; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 327 ; 328 ; BTVER2-LABEL: 'fptoui_float_i8' 329 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %I8 = fptoui float undef to i8 330 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V4I8 = fptoui <4 x float> undef to <4 x i8> 331 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %V8I8 = fptoui <8 x float> undef to <8 x i8> 332 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V16I8 = fptoui <16 x float> undef to <16 x i8> 333 ; BTVER2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 334 ; 335 %I8 = fptoui float undef to i8 336 %V4I8 = fptoui <4 x float> undef to <4 x i8> 337 %V8I8 = fptoui <8 x float> undef to <8 x i8> 338 %V16I8 = fptoui <16 x float> undef to <16 x i8> 339 ret i32 undef 340 } 341