1*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+sse2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE --check-prefix=SSE2 %s 2*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX1 %s 3*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX2 %s 4*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx512f -cost-model -analyze < %s | FileCheck --check-prefix=AVX512F %s 5*9880d681SAndroid Build Coastguard Worker; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+avx512dq -cost-model -analyze < %s | FileCheck --check-prefix=AVX512DQ %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @uitofpv2i8v2double(<2 x i8> %a) { 8*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i8v2double 9*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 20 {{.*}} uitofp 10*9880d681SAndroid Build Coastguard Worker ; 11*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i8v2double 12*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 13*9880d681SAndroid Build Coastguard Worker ; 14*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i8v2double 15*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 16*9880d681SAndroid Build Coastguard Worker ; 17*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i8v2double 18*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 19*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i8> %a to <2 x double> 20*9880d681SAndroid Build Coastguard Worker ret <2 x double> %1 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @uitofpv4i8v4double(<4 x i8> %a) { 24*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i8v4double 25*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 40 {{.*}} uitofp 26*9880d681SAndroid Build Coastguard Worker ; 27*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i8v4double 28*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 2 {{.*}} uitofp 29*9880d681SAndroid Build Coastguard Worker ; 30*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i8v4double 31*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 2 {{.*}} uitofp 32*9880d681SAndroid Build Coastguard Worker ; 33*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i8v4double 34*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 35*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i8> %a to <4 x double> 36*9880d681SAndroid Build Coastguard Worker ret <4 x double> %1 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @uitofpv8i8v8double(<8 x i8> %a) { 40*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i8v8double 41*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 80 {{.*}} uitofp 42*9880d681SAndroid Build Coastguard Worker ; 43*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i8v8double 44*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 5 {{.*}} uitofp 45*9880d681SAndroid Build Coastguard Worker ; 46*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i8v8double 47*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 5 {{.*}} uitofp 48*9880d681SAndroid Build Coastguard Worker ; 49*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i8v8double 50*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 51*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i8> %a to <8 x double> 52*9880d681SAndroid Build Coastguard Worker ret <8 x double> %1 53*9880d681SAndroid Build Coastguard Worker} 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @uitofpv16i8v16double(<16 x i8> %a) { 56*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i8v16double 57*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 160 {{.*}} uitofp 58*9880d681SAndroid Build Coastguard Worker ; 59*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i8v16double 60*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 11 {{.*}} uitofp 61*9880d681SAndroid Build Coastguard Worker ; 62*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i8v16double 63*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 11 {{.*}} uitofp 64*9880d681SAndroid Build Coastguard Worker ; 65*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i8v16double 66*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 67*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i8> %a to <16 x double> 68*9880d681SAndroid Build Coastguard Worker ret <16 x double> %1 69*9880d681SAndroid Build Coastguard Worker} 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @uitofpv32i8v32double(<32 x i8> %a) { 72*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i8v32double 73*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 320 {{.*}} uitofp 74*9880d681SAndroid Build Coastguard Worker ; 75*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i8v32double 76*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 23 {{.*}} uitofp 77*9880d681SAndroid Build Coastguard Worker ; 78*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i8v32double 79*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 23 {{.*}} uitofp 80*9880d681SAndroid Build Coastguard Worker ; 81*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i8v32double 82*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 11 {{.*}} uitofp 83*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i8> %a to <32 x double> 84*9880d681SAndroid Build Coastguard Worker ret <32 x double> %1 85*9880d681SAndroid Build Coastguard Worker} 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @uitofpv2i16v2double(<2 x i16> %a) { 88*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i16v2double 89*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 20 {{.*}} uitofp 90*9880d681SAndroid Build Coastguard Worker ; 91*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i16v2double 92*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 93*9880d681SAndroid Build Coastguard Worker ; 94*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i16v2double 95*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 96*9880d681SAndroid Build Coastguard Worker ; 97*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i16v2double 98*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 99*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i16> %a to <2 x double> 100*9880d681SAndroid Build Coastguard Worker ret <2 x double> %1 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @uitofpv4i16v4double(<4 x i16> %a) { 104*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i16v4double 105*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 40 {{.*}} uitofp 106*9880d681SAndroid Build Coastguard Worker ; 107*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i16v4double 108*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 2 {{.*}} uitofp 109*9880d681SAndroid Build Coastguard Worker ; 110*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i16v4double 111*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 2 {{.*}} uitofp 112*9880d681SAndroid Build Coastguard Worker ; 113*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i16v4double 114*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 115*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i16> %a to <4 x double> 116*9880d681SAndroid Build Coastguard Worker ret <4 x double> %1 117*9880d681SAndroid Build Coastguard Worker} 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @uitofpv8i16v8double(<8 x i16> %a) { 120*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i16v8double 121*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 80 {{.*}} uitofp 122*9880d681SAndroid Build Coastguard Worker ; 123*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i16v8double 124*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 5 {{.*}} uitofp 125*9880d681SAndroid Build Coastguard Worker ; 126*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i16v8double 127*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 5 {{.*}} uitofp 128*9880d681SAndroid Build Coastguard Worker ; 129*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i16v8double 130*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 131*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i16> %a to <8 x double> 132*9880d681SAndroid Build Coastguard Worker ret <8 x double> %1 133*9880d681SAndroid Build Coastguard Worker} 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @uitofpv16i16v16double(<16 x i16> %a) { 136*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i16v16double 137*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 160 {{.*}} uitofp 138*9880d681SAndroid Build Coastguard Worker ; 139*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i16v16double 140*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 11 {{.*}} uitofp 141*9880d681SAndroid Build Coastguard Worker ; 142*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i16v16double 143*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 11 {{.*}} uitofp 144*9880d681SAndroid Build Coastguard Worker ; 145*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i16v16double 146*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 147*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i16> %a to <16 x double> 148*9880d681SAndroid Build Coastguard Worker ret <16 x double> %1 149*9880d681SAndroid Build Coastguard Worker} 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @uitofpv32i16v32double(<32 x i16> %a) { 152*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i16v32double 153*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 320 {{.*}} uitofp 154*9880d681SAndroid Build Coastguard Worker ; 155*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i16v32double 156*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 23 {{.*}} uitofp 157*9880d681SAndroid Build Coastguard Worker ; 158*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i16v32double 159*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 23 {{.*}} uitofp 160*9880d681SAndroid Build Coastguard Worker ; 161*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i16v32double 162*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 11 {{.*}} uitofp 163*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i16> %a to <32 x double> 164*9880d681SAndroid Build Coastguard Worker ret <32 x double> %1 165*9880d681SAndroid Build Coastguard Worker} 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @uitofpv2i32v2double(<2 x i32> %a) { 168*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i32v2double 169*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 20 {{.*}} uitofp 170*9880d681SAndroid Build Coastguard Worker ; 171*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i32v2double 172*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 6 {{.*}} uitofp 173*9880d681SAndroid Build Coastguard Worker ; 174*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i32v2double 175*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 6 {{.*}} uitofp 176*9880d681SAndroid Build Coastguard Worker ; 177*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i32v2double 178*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 179*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i32> %a to <2 x double> 180*9880d681SAndroid Build Coastguard Worker ret <2 x double> %1 181*9880d681SAndroid Build Coastguard Worker} 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @uitofpv4i32v4double(<4 x i32> %a) { 184*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i32v4double 185*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 40 {{.*}} uitofp 186*9880d681SAndroid Build Coastguard Worker ; 187*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i32v4double 188*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 6 {{.*}} uitofp 189*9880d681SAndroid Build Coastguard Worker ; 190*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i32v4double 191*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 6 {{.*}} uitofp 192*9880d681SAndroid Build Coastguard Worker ; 193*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i32v4double 194*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 195*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i32> %a to <4 x double> 196*9880d681SAndroid Build Coastguard Worker ret <4 x double> %1 197*9880d681SAndroid Build Coastguard Worker} 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @uitofpv8i32v8double(<8 x i32> %a) { 200*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i32v8double 201*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 80 {{.*}} uitofp 202*9880d681SAndroid Build Coastguard Worker ; 203*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i32v8double 204*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 13 {{.*}} uitofp 205*9880d681SAndroid Build Coastguard Worker ; 206*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i32v8double 207*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 13 {{.*}} uitofp 208*9880d681SAndroid Build Coastguard Worker ; 209*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i32v8double 210*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 211*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i32> %a to <8 x double> 212*9880d681SAndroid Build Coastguard Worker ret <8 x double> %1 213*9880d681SAndroid Build Coastguard Worker} 214*9880d681SAndroid Build Coastguard Worker 215*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @uitofpv16i32v16double(<16 x i32> %a) { 216*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i32v16double 217*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 160 {{.*}} uitofp 218*9880d681SAndroid Build Coastguard Worker ; 219*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i32v16double 220*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 27 {{.*}} uitofp 221*9880d681SAndroid Build Coastguard Worker ; 222*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i32v16double 223*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 27 {{.*}} uitofp 224*9880d681SAndroid Build Coastguard Worker ; 225*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i32v16double 226*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 3 {{.*}} uitofp 227*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i32> %a to <16 x double> 228*9880d681SAndroid Build Coastguard Worker ret <16 x double> %1 229*9880d681SAndroid Build Coastguard Worker} 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @uitofpv32i32v32double(<32 x i32> %a) { 232*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i32v32double 233*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 320 {{.*}} uitofp 234*9880d681SAndroid Build Coastguard Worker ; 235*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i32v32double 236*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 55 {{.*}} uitofp 237*9880d681SAndroid Build Coastguard Worker ; 238*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i32v32double 239*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 55 {{.*}} uitofp 240*9880d681SAndroid Build Coastguard Worker ; 241*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i32v32double 242*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 7 {{.*}} uitofp 243*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i32> %a to <32 x double> 244*9880d681SAndroid Build Coastguard Worker ret <32 x double> %1 245*9880d681SAndroid Build Coastguard Worker} 246*9880d681SAndroid Build Coastguard Worker 247*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @uitofpv2i64v2double(<2 x i64> %a) { 248*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i64v2double 249*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 20 {{.*}} uitofp 250*9880d681SAndroid Build Coastguard Worker ; 251*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i64v2double 252*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 10 {{.*}} uitofp 253*9880d681SAndroid Build Coastguard Worker ; 254*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i64v2double 255*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 10 {{.*}} uitofp 256*9880d681SAndroid Build Coastguard Worker ; 257*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i64v2double 258*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 259*9880d681SAndroid Build Coastguard Worker ; 260*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: uitofpv2i64v2double 261*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} uitofp 262*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i64> %a to <2 x double> 263*9880d681SAndroid Build Coastguard Worker ret <2 x double> %1 264*9880d681SAndroid Build Coastguard Worker} 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @uitofpv4i64v4double(<4 x i64> %a) { 267*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i64v4double 268*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 40 {{.*}} uitofp 269*9880d681SAndroid Build Coastguard Worker ; 270*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i64v4double 271*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 20 {{.*}} uitofp 272*9880d681SAndroid Build Coastguard Worker ; 273*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i64v4double 274*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 20 {{.*}} uitofp 275*9880d681SAndroid Build Coastguard Worker ; 276*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i64v4double 277*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 12 {{.*}} uitofp 278*9880d681SAndroid Build Coastguard Worker ; 279*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: uitofpv4i64v4double 280*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} uitofp 281*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i64> %a to <4 x double> 282*9880d681SAndroid Build Coastguard Worker ret <4 x double> %1 283*9880d681SAndroid Build Coastguard Worker} 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Workerdefine <8 x double> @uitofpv8i64v8double(<8 x i64> %a) { 286*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i64v8double 287*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 80 {{.*}} uitofp 288*9880d681SAndroid Build Coastguard Worker ; 289*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i64v8double 290*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 41 {{.*}} uitofp 291*9880d681SAndroid Build Coastguard Worker ; 292*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i64v8double 293*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 41 {{.*}} uitofp 294*9880d681SAndroid Build Coastguard Worker ; 295*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i64v8double 296*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 26 {{.*}} uitofp 297*9880d681SAndroid Build Coastguard Worker ; 298*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: uitofpv8i64v8double 299*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} uitofp 300*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i64> %a to <8 x double> 301*9880d681SAndroid Build Coastguard Worker ret <8 x double> %1 302*9880d681SAndroid Build Coastguard Worker} 303*9880d681SAndroid Build Coastguard Worker 304*9880d681SAndroid Build Coastguard Workerdefine <16 x double> @uitofpv16i64v16double(<16 x i64> %a) { 305*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i64v16double 306*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 160 {{.*}} uitofp 307*9880d681SAndroid Build Coastguard Worker ; 308*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i64v16double 309*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 83 {{.*}} uitofp 310*9880d681SAndroid Build Coastguard Worker ; 311*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i64v16double 312*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 83 {{.*}} uitofp 313*9880d681SAndroid Build Coastguard Worker ; 314*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i64v16double 315*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 53 {{.*}} uitofp 316*9880d681SAndroid Build Coastguard Worker ; 317*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: uitofpv16i64v16double 318*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 3 {{.*}} uitofp 319*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i64> %a to <16 x double> 320*9880d681SAndroid Build Coastguard Worker ret <16 x double> %1 321*9880d681SAndroid Build Coastguard Worker} 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Workerdefine <32 x double> @uitofpv32i64v32double(<32 x i64> %a) { 324*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i64v32double 325*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 320 {{.*}} uitofp 326*9880d681SAndroid Build Coastguard Worker ; 327*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i64v32double 328*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 167 {{.*}} uitofp 329*9880d681SAndroid Build Coastguard Worker ; 330*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i64v32double 331*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 167 {{.*}} uitofp 332*9880d681SAndroid Build Coastguard Worker ; 333*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i64v32double 334*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 107 {{.*}} uitofp 335*9880d681SAndroid Build Coastguard Worker ; 336*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: uitofpv32i64v32double 337*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 2 {{.*}} uitofp 338*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i64> %a to <32 x double> 339*9880d681SAndroid Build Coastguard Worker ret <32 x double> %1 340*9880d681SAndroid Build Coastguard Worker} 341*9880d681SAndroid Build Coastguard Worker 342*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @uitofpv2i8v2float(<2 x i8> %a) { 343*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i8v2float 344*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 345*9880d681SAndroid Build Coastguard Worker ; 346*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i8v2float 347*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 348*9880d681SAndroid Build Coastguard Worker ; 349*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i8v2float 350*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 351*9880d681SAndroid Build Coastguard Worker ; 352*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i8v2float 353*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 4 {{.*}} uitofp 354*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i8> %a to <2 x float> 355*9880d681SAndroid Build Coastguard Worker ret <2 x float> %1 356*9880d681SAndroid Build Coastguard Worker} 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @uitofpv4i8v4float(<4 x i8> %a) { 359*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i8v4float 360*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 8 {{.*}} uitofp 361*9880d681SAndroid Build Coastguard Worker ; 362*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i8v4float 363*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 2 {{.*}} uitofp 364*9880d681SAndroid Build Coastguard Worker ; 365*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i8v4float 366*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 2 {{.*}} uitofp 367*9880d681SAndroid Build Coastguard Worker ; 368*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i8v4float 369*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 370*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i8> %a to <4 x float> 371*9880d681SAndroid Build Coastguard Worker ret <4 x float> %1 372*9880d681SAndroid Build Coastguard Worker} 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @uitofpv8i8v8float(<8 x i8> %a) { 375*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i8v8float 376*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 377*9880d681SAndroid Build Coastguard Worker ; 378*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i8v8float 379*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 5 {{.*}} uitofp 380*9880d681SAndroid Build Coastguard Worker ; 381*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i8v8float 382*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 5 {{.*}} uitofp 383*9880d681SAndroid Build Coastguard Worker ; 384*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i8v8float 385*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 386*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i8> %a to <8 x float> 387*9880d681SAndroid Build Coastguard Worker ret <8 x float> %1 388*9880d681SAndroid Build Coastguard Worker} 389*9880d681SAndroid Build Coastguard Worker 390*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @uitofpv16i8v16float(<16 x i8> %a) { 391*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i8v16float 392*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 8 {{.*}} uitofp 393*9880d681SAndroid Build Coastguard Worker ; 394*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i8v16float 395*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 11 {{.*}} uitofp 396*9880d681SAndroid Build Coastguard Worker ; 397*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i8v16float 398*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 11 {{.*}} uitofp 399*9880d681SAndroid Build Coastguard Worker ; 400*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i8v16float 401*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 402*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i8> %a to <16 x float> 403*9880d681SAndroid Build Coastguard Worker ret <16 x float> %1 404*9880d681SAndroid Build Coastguard Worker} 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @uitofpv32i8v32float(<32 x i8> %a) { 407*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i8v32float 408*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 16 {{.*}} uitofp 409*9880d681SAndroid Build Coastguard Worker ; 410*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i8v32float 411*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 23 {{.*}} uitofp 412*9880d681SAndroid Build Coastguard Worker ; 413*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i8v32float 414*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 23 {{.*}} uitofp 415*9880d681SAndroid Build Coastguard Worker ; 416*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i8v32float 417*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 418*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i8> %a to <32 x float> 419*9880d681SAndroid Build Coastguard Worker ret <32 x float> %1 420*9880d681SAndroid Build Coastguard Worker} 421*9880d681SAndroid Build Coastguard Worker 422*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @uitofpv2i16v2float(<2 x i16> %a) { 423*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i16v2float 424*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 425*9880d681SAndroid Build Coastguard Worker ; 426*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i16v2float 427*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 428*9880d681SAndroid Build Coastguard Worker ; 429*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i16v2float 430*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 431*9880d681SAndroid Build Coastguard Worker ; 432*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i16v2float 433*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 4 {{.*}} uitofp 434*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i16> %a to <2 x float> 435*9880d681SAndroid Build Coastguard Worker ret <2 x float> %1 436*9880d681SAndroid Build Coastguard Worker} 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @uitofpv4i16v4float(<4 x i16> %a) { 439*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i16v4float 440*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 8 {{.*}} uitofp 441*9880d681SAndroid Build Coastguard Worker ; 442*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i16v4float 443*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 2 {{.*}} uitofp 444*9880d681SAndroid Build Coastguard Worker ; 445*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i16v4float 446*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 2 {{.*}} uitofp 447*9880d681SAndroid Build Coastguard Worker ; 448*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i16v4float 449*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 450*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i16> %a to <4 x float> 451*9880d681SAndroid Build Coastguard Worker ret <4 x float> %1 452*9880d681SAndroid Build Coastguard Worker} 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @uitofpv8i16v8float(<8 x i16> %a) { 455*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i16v8float 456*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 457*9880d681SAndroid Build Coastguard Worker ; 458*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i16v8float 459*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 5 {{.*}} uitofp 460*9880d681SAndroid Build Coastguard Worker ; 461*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i16v8float 462*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 5 {{.*}} uitofp 463*9880d681SAndroid Build Coastguard Worker ; 464*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i16v8float 465*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 466*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i16> %a to <8 x float> 467*9880d681SAndroid Build Coastguard Worker ret <8 x float> %1 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @uitofpv16i16v16float(<16 x i16> %a) { 471*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i16v16float 472*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 30 {{.*}} uitofp 473*9880d681SAndroid Build Coastguard Worker ; 474*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i16v16float 475*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 11 {{.*}} uitofp 476*9880d681SAndroid Build Coastguard Worker ; 477*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i16v16float 478*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 11 {{.*}} uitofp 479*9880d681SAndroid Build Coastguard Worker ; 480*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i16v16float 481*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 482*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i16> %a to <16 x float> 483*9880d681SAndroid Build Coastguard Worker ret <16 x float> %1 484*9880d681SAndroid Build Coastguard Worker} 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @uitofpv32i16v32float(<32 x i16> %a) { 487*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i16v32float 488*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 60 {{.*}} uitofp 489*9880d681SAndroid Build Coastguard Worker ; 490*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i16v32float 491*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 23 {{.*}} uitofp 492*9880d681SAndroid Build Coastguard Worker ; 493*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i16v32float 494*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 23 {{.*}} uitofp 495*9880d681SAndroid Build Coastguard Worker ; 496*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i16v32float 497*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 498*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i16> %a to <32 x float> 499*9880d681SAndroid Build Coastguard Worker ret <32 x float> %1 500*9880d681SAndroid Build Coastguard Worker} 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @uitofpv2i32v2float(<2 x i32> %a) { 503*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i32v2float 504*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 505*9880d681SAndroid Build Coastguard Worker ; 506*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i32v2float 507*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 508*9880d681SAndroid Build Coastguard Worker ; 509*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i32v2float 510*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 511*9880d681SAndroid Build Coastguard Worker ; 512*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i32v2float 513*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 2 {{.*}} uitofp 514*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i32> %a to <2 x float> 515*9880d681SAndroid Build Coastguard Worker ret <2 x float> %1 516*9880d681SAndroid Build Coastguard Worker} 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @uitofpv4i32v4float(<4 x i32> %a) { 519*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i32v4float 520*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 8 {{.*}} uitofp 521*9880d681SAndroid Build Coastguard Worker ; 522*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i32v4float 523*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 6 {{.*}} uitofp 524*9880d681SAndroid Build Coastguard Worker ; 525*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i32v4float 526*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 6 {{.*}} uitofp 527*9880d681SAndroid Build Coastguard Worker ; 528*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i32v4float 529*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 530*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i32> %a to <4 x float> 531*9880d681SAndroid Build Coastguard Worker ret <4 x float> %1 532*9880d681SAndroid Build Coastguard Worker} 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @uitofpv8i32v8float(<8 x i32> %a) { 535*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i32v8float 536*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 16 {{.*}} uitofp 537*9880d681SAndroid Build Coastguard Worker ; 538*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i32v8float 539*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 9 {{.*}} uitofp 540*9880d681SAndroid Build Coastguard Worker ; 541*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i32v8float 542*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 8 {{.*}} uitofp 543*9880d681SAndroid Build Coastguard Worker ; 544*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i32v8float 545*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 546*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i32> %a to <8 x float> 547*9880d681SAndroid Build Coastguard Worker ret <8 x float> %1 548*9880d681SAndroid Build Coastguard Worker} 549*9880d681SAndroid Build Coastguard Worker 550*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @uitofpv16i32v16float(<16 x i32> %a) { 551*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i32v16float 552*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 32 {{.*}} uitofp 553*9880d681SAndroid Build Coastguard Worker ; 554*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i32v16float 555*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 19 {{.*}} uitofp 556*9880d681SAndroid Build Coastguard Worker ; 557*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i32v16float 558*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 17 {{.*}} uitofp 559*9880d681SAndroid Build Coastguard Worker ; 560*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i32v16float 561*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} uitofp 562*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i32> %a to <16 x float> 563*9880d681SAndroid Build Coastguard Worker ret <16 x float> %1 564*9880d681SAndroid Build Coastguard Worker} 565*9880d681SAndroid Build Coastguard Worker 566*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @uitofpv32i32v32float(<32 x i32> %a) { 567*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i32v32float 568*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 64 {{.*}} uitofp 569*9880d681SAndroid Build Coastguard Worker ; 570*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i32v32float 571*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 39 {{.*}} uitofp 572*9880d681SAndroid Build Coastguard Worker ; 573*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i32v32float 574*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 35 {{.*}} uitofp 575*9880d681SAndroid Build Coastguard Worker ; 576*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i32v32float 577*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 3 {{.*}} uitofp 578*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i32> %a to <32 x float> 579*9880d681SAndroid Build Coastguard Worker ret <32 x float> %1 580*9880d681SAndroid Build Coastguard Worker} 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @uitofpv2i64v2float(<2 x i64> %a) { 583*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv2i64v2float 584*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 15 {{.*}} uitofp 585*9880d681SAndroid Build Coastguard Worker ; 586*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv2i64v2float 587*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 4 {{.*}} uitofp 588*9880d681SAndroid Build Coastguard Worker ; 589*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv2i64v2float 590*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 4 {{.*}} uitofp 591*9880d681SAndroid Build Coastguard Worker ; 592*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv2i64v2float 593*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 5 {{.*}} uitofp 594*9880d681SAndroid Build Coastguard Worker %1 = uitofp <2 x i64> %a to <2 x float> 595*9880d681SAndroid Build Coastguard Worker ret <2 x float> %1 596*9880d681SAndroid Build Coastguard Worker} 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @uitofpv4i64v4float(<4 x i64> %a) { 599*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv4i64v4float 600*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 30 {{.*}} uitofp 601*9880d681SAndroid Build Coastguard Worker ; 602*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv4i64v4float 603*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 10 {{.*}} uitofp 604*9880d681SAndroid Build Coastguard Worker ; 605*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv4i64v4float 606*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 10 {{.*}} uitofp 607*9880d681SAndroid Build Coastguard Worker ; 608*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv4i64v4float 609*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 10 {{.*}} uitofp 610*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i64> %a to <4 x float> 611*9880d681SAndroid Build Coastguard Worker ret <4 x float> %1 612*9880d681SAndroid Build Coastguard Worker} 613*9880d681SAndroid Build Coastguard Worker 614*9880d681SAndroid Build Coastguard Workerdefine <8 x float> @uitofpv8i64v8float(<8 x i64> %a) { 615*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv8i64v8float 616*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 60 {{.*}} uitofp 617*9880d681SAndroid Build Coastguard Worker ; 618*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv8i64v8float 619*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 21 {{.*}} uitofp 620*9880d681SAndroid Build Coastguard Worker ; 621*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv8i64v8float 622*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 21 {{.*}} uitofp 623*9880d681SAndroid Build Coastguard Worker ; 624*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv8i64v8float 625*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 26 {{.*}} uitofp 626*9880d681SAndroid Build Coastguard Worker %1 = uitofp <8 x i64> %a to <8 x float> 627*9880d681SAndroid Build Coastguard Worker ret <8 x float> %1 628*9880d681SAndroid Build Coastguard Worker} 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdefine <16 x float> @uitofpv16i64v16float(<16 x i64> %a) { 631*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv16i64v16float 632*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 120 {{.*}} uitofp 633*9880d681SAndroid Build Coastguard Worker ; 634*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv16i64v16float 635*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 43 {{.*}} uitofp 636*9880d681SAndroid Build Coastguard Worker ; 637*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv16i64v16float 638*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 43 {{.*}} uitofp 639*9880d681SAndroid Build Coastguard Worker ; 640*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv16i64v16float 641*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 53 {{.*}} uitofp 642*9880d681SAndroid Build Coastguard Worker %1 = uitofp <16 x i64> %a to <16 x float> 643*9880d681SAndroid Build Coastguard Worker ret <16 x float> %1 644*9880d681SAndroid Build Coastguard Worker} 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdefine <32 x float> @uitofpv32i64v32float(<32 x i64> %a) { 647*9880d681SAndroid Build Coastguard Worker ; SSE2-LABEL: uitofpv32i64v32float 648*9880d681SAndroid Build Coastguard Worker ; SSE2: cost of 240 {{.*}} uitofp 649*9880d681SAndroid Build Coastguard Worker ; 650*9880d681SAndroid Build Coastguard Worker ; AVX1-LABEL: uitofpv32i64v32float 651*9880d681SAndroid Build Coastguard Worker ; AVX1: cost of 87 {{.*}} uitofp 652*9880d681SAndroid Build Coastguard Worker ; 653*9880d681SAndroid Build Coastguard Worker ; AVX2-LABEL: uitofpv32i64v32float 654*9880d681SAndroid Build Coastguard Worker ; AVX2: cost of 87 {{.*}} uitofp 655*9880d681SAndroid Build Coastguard Worker ; 656*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: uitofpv32i64v32float 657*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 107 {{.*}} uitofp 658*9880d681SAndroid Build Coastguard Worker %1 = uitofp <32 x i64> %a to <32 x float> 659*9880d681SAndroid Build Coastguard Worker ret <32 x float> %1 660*9880d681SAndroid Build Coastguard Worker} 661*9880d681SAndroid Build Coastguard Worker 662*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @fptouiv8f32v8i32(<8 x float> %a) { 663*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: fptouiv8f32v8i32 664*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} fptoui 665*9880d681SAndroid Build Coastguard Worker %1 = fptoui <8 x float> %a to <8 x i32> 666*9880d681SAndroid Build Coastguard Worker ret <8 x i32> %1 667*9880d681SAndroid Build Coastguard Worker} 668*9880d681SAndroid Build Coastguard Worker 669*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fptouiv4f32v4i32(<4 x float> %a) { 670*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: fptouiv4f32v4i32 671*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} fptoui 672*9880d681SAndroid Build Coastguard Worker %1 = fptoui <4 x float> %a to <4 x i32> 673*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %1 674*9880d681SAndroid Build Coastguard Worker} 675*9880d681SAndroid Build Coastguard Worker 676*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fptouiv2f32v2i32(<2 x float> %a) { 677*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: fptouiv2f32v2i32 678*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} fptoui 679*9880d681SAndroid Build Coastguard Worker %1 = fptoui <2 x float> %a to <2 x i32> 680*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %1 681*9880d681SAndroid Build Coastguard Worker} 682*9880d681SAndroid Build Coastguard Worker 683*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @fptouiv16f32v16i32(<16 x float> %a) { 684*9880d681SAndroid Build Coastguard Worker ; AVX512F-LABEL: fptouiv16f32v16i32 685*9880d681SAndroid Build Coastguard Worker ; AVX512F: cost of 1 {{.*}} fptoui 686*9880d681SAndroid Build Coastguard Worker %1 = fptoui <16 x float> %a to <16 x i32> 687*9880d681SAndroid Build Coastguard Worker ret <16 x i32> %1 688*9880d681SAndroid Build Coastguard Worker} 689*9880d681SAndroid Build Coastguard Worker 690*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @fptouiv8f32v8i64(<8 x float> %a) { 691*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: fptouiv8f32v8i64 692*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} fptoui 693*9880d681SAndroid Build Coastguard Worker %1 = fptoui <8 x float> %a to <8 x i64> 694*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %1 695*9880d681SAndroid Build Coastguard Worker} 696*9880d681SAndroid Build Coastguard Worker 697*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @fptouiv4f32v4i64(<4 x float> %a) { 698*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: fptouiv4f32v4i64 699*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} fptoui 700*9880d681SAndroid Build Coastguard Worker %1 = fptoui <4 x float> %a to <4 x i64> 701*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %1 702*9880d681SAndroid Build Coastguard Worker} 703*9880d681SAndroid Build Coastguard Worker 704*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fptouiv2f32v2i64(<2 x float> %a) { 705*9880d681SAndroid Build Coastguard Worker ; AVX512DQ-LABEL: fptouiv2f32v2i64 706*9880d681SAndroid Build Coastguard Worker ; AVX512DQ: cost of 1 {{.*}} fptoui 707*9880d681SAndroid Build Coastguard Worker %1 = fptoui <2 x float> %a to <2 x i64> 708*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %1 709*9880d681SAndroid Build Coastguard Worker} 710