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