424 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i386-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE3; RUN: llc < %s -mtriple=i386-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX14; RUN: llc < %s -mtriple=i386-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX256,AVX25; RUN: llc < %s -mtriple=i386-unknown -mcpu=knl | FileCheck %s --check-prefixes=AVX,AVX256,AVX5126; RUN: llc < %s -mtriple=i386-unknown -mcpu=skx | FileCheck %s --check-prefixes=AVX,AVX256,AVX5127; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE8; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX19; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX256,AVX210; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=knl | FileCheck %s --check-prefixes=AVX,AVX256,AVX51211; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=skx | FileCheck %s --check-prefixes=AVX,AVX256,AVX51212 13define <16 x i8> @allones_v16i8() nounwind {14; SSE-LABEL: allones_v16i8:15; SSE: # %bb.0:16; SSE-NEXT: pcmpeqd %xmm0, %xmm017; SSE-NEXT: ret{{[l|q]}}18;19; AVX-LABEL: allones_v16i8:20; AVX: # %bb.0:21; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm022; AVX-NEXT: ret{{[l|q]}}23 ret <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>24}25 26define <8 x i16> @allones_v8i16() nounwind {27; SSE-LABEL: allones_v8i16:28; SSE: # %bb.0:29; SSE-NEXT: pcmpeqd %xmm0, %xmm030; SSE-NEXT: ret{{[l|q]}}31;32; AVX-LABEL: allones_v8i16:33; AVX: # %bb.0:34; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm035; AVX-NEXT: ret{{[l|q]}}36 ret <8 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>37}38 39define <4 x i32> @allones_v4i32() nounwind {40; SSE-LABEL: allones_v4i32:41; SSE: # %bb.0:42; SSE-NEXT: pcmpeqd %xmm0, %xmm043; SSE-NEXT: ret{{[l|q]}}44;45; AVX-LABEL: allones_v4i32:46; AVX: # %bb.0:47; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm048; AVX-NEXT: ret{{[l|q]}}49 ret <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>50}51 52define <2 x i64> @allones_v2i64() nounwind {53; SSE-LABEL: allones_v2i64:54; SSE: # %bb.0:55; SSE-NEXT: pcmpeqd %xmm0, %xmm056; SSE-NEXT: ret{{[l|q]}}57;58; AVX-LABEL: allones_v2i64:59; AVX: # %bb.0:60; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm061; AVX-NEXT: ret{{[l|q]}}62 ret <2 x i64> <i64 -1, i64 -1>63}64 65define <2 x double> @allones_v2f64() nounwind {66; SSE-LABEL: allones_v2f64:67; SSE: # %bb.0:68; SSE-NEXT: pcmpeqd %xmm0, %xmm069; SSE-NEXT: ret{{[l|q]}}70;71; AVX-LABEL: allones_v2f64:72; AVX: # %bb.0:73; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm074; AVX-NEXT: ret{{[l|q]}}75 ret <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>76}77 78define <4 x float> @allones_v4f32() nounwind {79; SSE-LABEL: allones_v4f32:80; SSE: # %bb.0:81; SSE-NEXT: pcmpeqd %xmm0, %xmm082; SSE-NEXT: ret{{[l|q]}}83;84; AVX-LABEL: allones_v4f32:85; AVX: # %bb.0:86; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm087; AVX-NEXT: ret{{[l|q]}}88 ret <4 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>89}90 91define <32 x i8> @allones_v32i8() nounwind {92; SSE-LABEL: allones_v32i8:93; SSE: # %bb.0:94; SSE-NEXT: pcmpeqd %xmm0, %xmm095; SSE-NEXT: pcmpeqd %xmm1, %xmm196; SSE-NEXT: ret{{[l|q]}}97;98; AVX1-LABEL: allones_v32i8:99; AVX1: # %bb.0:100; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0101; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0102; AVX1-NEXT: ret{{[l|q]}}103;104; AVX256-LABEL: allones_v32i8:105; AVX256: # %bb.0:106; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0107; AVX256-NEXT: ret{{[l|q]}}108 ret <32 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>109}110 111define <16 x i16> @allones_v16i16() nounwind {112; SSE-LABEL: allones_v16i16:113; SSE: # %bb.0:114; SSE-NEXT: pcmpeqd %xmm0, %xmm0115; SSE-NEXT: pcmpeqd %xmm1, %xmm1116; SSE-NEXT: ret{{[l|q]}}117;118; AVX1-LABEL: allones_v16i16:119; AVX1: # %bb.0:120; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0121; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0122; AVX1-NEXT: ret{{[l|q]}}123;124; AVX256-LABEL: allones_v16i16:125; AVX256: # %bb.0:126; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0127; AVX256-NEXT: ret{{[l|q]}}128 ret <16 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>129}130 131define <8 x i32> @allones_v8i32() nounwind {132; SSE-LABEL: allones_v8i32:133; SSE: # %bb.0:134; SSE-NEXT: pcmpeqd %xmm0, %xmm0135; SSE-NEXT: pcmpeqd %xmm1, %xmm1136; SSE-NEXT: ret{{[l|q]}}137;138; AVX1-LABEL: allones_v8i32:139; AVX1: # %bb.0:140; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0141; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0142; AVX1-NEXT: ret{{[l|q]}}143;144; AVX256-LABEL: allones_v8i32:145; AVX256: # %bb.0:146; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0147; AVX256-NEXT: ret{{[l|q]}}148 ret <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>149}150 151define <4 x i64> @allones_v4i64() nounwind {152; SSE-LABEL: allones_v4i64:153; SSE: # %bb.0:154; SSE-NEXT: pcmpeqd %xmm0, %xmm0155; SSE-NEXT: pcmpeqd %xmm1, %xmm1156; SSE-NEXT: ret{{[l|q]}}157;158; AVX1-LABEL: allones_v4i64:159; AVX1: # %bb.0:160; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0161; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0162; AVX1-NEXT: ret{{[l|q]}}163;164; AVX256-LABEL: allones_v4i64:165; AVX256: # %bb.0:166; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0167; AVX256-NEXT: ret{{[l|q]}}168 ret <4 x i64> <i64 -1, i64 -1, i64 -1, i64 -1>169}170 171define <4 x double> @allones_v4f64() nounwind {172; SSE-LABEL: allones_v4f64:173; SSE: # %bb.0:174; SSE-NEXT: pcmpeqd %xmm0, %xmm0175; SSE-NEXT: pcmpeqd %xmm1, %xmm1176; SSE-NEXT: ret{{[l|q]}}177;178; AVX1-LABEL: allones_v4f64:179; AVX1: # %bb.0:180; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0181; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0182; AVX1-NEXT: ret{{[l|q]}}183;184; AVX256-LABEL: allones_v4f64:185; AVX256: # %bb.0:186; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0187; AVX256-NEXT: ret{{[l|q]}}188 ret <4 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>189}190 191define <4 x double> @allones_v4f64_optsize() nounwind optsize {192; SSE-LABEL: allones_v4f64_optsize:193; SSE: # %bb.0:194; SSE-NEXT: pcmpeqd %xmm0, %xmm0195; SSE-NEXT: pcmpeqd %xmm1, %xmm1196; SSE-NEXT: ret{{[l|q]}}197;198; AVX1-LABEL: allones_v4f64_optsize:199; AVX1: # %bb.0:200; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0201; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0202; AVX1-NEXT: ret{{[l|q]}}203;204; AVX256-LABEL: allones_v4f64_optsize:205; AVX256: # %bb.0:206; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0207; AVX256-NEXT: ret{{[l|q]}}208 ret <4 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>209}210 211define <8 x float> @allones_v8f32() nounwind {212; SSE-LABEL: allones_v8f32:213; SSE: # %bb.0:214; SSE-NEXT: pcmpeqd %xmm0, %xmm0215; SSE-NEXT: pcmpeqd %xmm1, %xmm1216; SSE-NEXT: ret{{[l|q]}}217;218; AVX1-LABEL: allones_v8f32:219; AVX1: # %bb.0:220; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0221; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0222; AVX1-NEXT: ret{{[l|q]}}223;224; AVX256-LABEL: allones_v8f32:225; AVX256: # %bb.0:226; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0227; AVX256-NEXT: ret{{[l|q]}}228 ret <8 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>229}230 231define <8 x float> @allones_v8f32_optsize() nounwind optsize {232; SSE-LABEL: allones_v8f32_optsize:233; SSE: # %bb.0:234; SSE-NEXT: pcmpeqd %xmm0, %xmm0235; SSE-NEXT: pcmpeqd %xmm1, %xmm1236; SSE-NEXT: ret{{[l|q]}}237;238; AVX1-LABEL: allones_v8f32_optsize:239; AVX1: # %bb.0:240; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0241; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0242; AVX1-NEXT: ret{{[l|q]}}243;244; AVX256-LABEL: allones_v8f32_optsize:245; AVX256: # %bb.0:246; AVX256-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0247; AVX256-NEXT: ret{{[l|q]}}248 ret <8 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>249}250 251define <64 x i8> @allones_v64i8() nounwind {252; SSE-LABEL: allones_v64i8:253; SSE: # %bb.0:254; SSE-NEXT: pcmpeqd %xmm0, %xmm0255; SSE-NEXT: pcmpeqd %xmm1, %xmm1256; SSE-NEXT: pcmpeqd %xmm2, %xmm2257; SSE-NEXT: pcmpeqd %xmm3, %xmm3258; SSE-NEXT: ret{{[l|q]}}259;260; AVX1-LABEL: allones_v64i8:261; AVX1: # %bb.0:262; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0263; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0264; AVX1-NEXT: vmovaps %ymm0, %ymm1265; AVX1-NEXT: ret{{[l|q]}}266;267; AVX2-LABEL: allones_v64i8:268; AVX2: # %bb.0:269; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0270; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1271; AVX2-NEXT: ret{{[l|q]}}272;273; AVX512-LABEL: allones_v64i8:274; AVX512: # %bb.0:275; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0276; AVX512-NEXT: ret{{[l|q]}}277 ret <64 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>278}279 280define <32 x i16> @allones_v32i16() nounwind {281; SSE-LABEL: allones_v32i16:282; SSE: # %bb.0:283; SSE-NEXT: pcmpeqd %xmm0, %xmm0284; SSE-NEXT: pcmpeqd %xmm1, %xmm1285; SSE-NEXT: pcmpeqd %xmm2, %xmm2286; SSE-NEXT: pcmpeqd %xmm3, %xmm3287; SSE-NEXT: ret{{[l|q]}}288;289; AVX1-LABEL: allones_v32i16:290; AVX1: # %bb.0:291; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0292; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0293; AVX1-NEXT: vmovaps %ymm0, %ymm1294; AVX1-NEXT: ret{{[l|q]}}295;296; AVX2-LABEL: allones_v32i16:297; AVX2: # %bb.0:298; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0299; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1300; AVX2-NEXT: ret{{[l|q]}}301;302; AVX512-LABEL: allones_v32i16:303; AVX512: # %bb.0:304; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0305; AVX512-NEXT: ret{{[l|q]}}306 ret <32 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>307}308 309define <16 x i32> @allones_v16i32() nounwind {310; SSE-LABEL: allones_v16i32:311; SSE: # %bb.0:312; SSE-NEXT: pcmpeqd %xmm0, %xmm0313; SSE-NEXT: pcmpeqd %xmm1, %xmm1314; SSE-NEXT: pcmpeqd %xmm2, %xmm2315; SSE-NEXT: pcmpeqd %xmm3, %xmm3316; SSE-NEXT: ret{{[l|q]}}317;318; AVX1-LABEL: allones_v16i32:319; AVX1: # %bb.0:320; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0321; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0322; AVX1-NEXT: vmovaps %ymm0, %ymm1323; AVX1-NEXT: ret{{[l|q]}}324;325; AVX2-LABEL: allones_v16i32:326; AVX2: # %bb.0:327; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0328; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1329; AVX2-NEXT: ret{{[l|q]}}330;331; AVX512-LABEL: allones_v16i32:332; AVX512: # %bb.0:333; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0334; AVX512-NEXT: ret{{[l|q]}}335 ret <16 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>336}337 338define <8 x i64> @allones_v8i64() nounwind {339; SSE-LABEL: allones_v8i64:340; SSE: # %bb.0:341; SSE-NEXT: pcmpeqd %xmm0, %xmm0342; SSE-NEXT: pcmpeqd %xmm1, %xmm1343; SSE-NEXT: pcmpeqd %xmm2, %xmm2344; SSE-NEXT: pcmpeqd %xmm3, %xmm3345; SSE-NEXT: ret{{[l|q]}}346;347; AVX1-LABEL: allones_v8i64:348; AVX1: # %bb.0:349; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0350; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0351; AVX1-NEXT: vmovaps %ymm0, %ymm1352; AVX1-NEXT: ret{{[l|q]}}353;354; AVX2-LABEL: allones_v8i64:355; AVX2: # %bb.0:356; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0357; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1358; AVX2-NEXT: ret{{[l|q]}}359;360; AVX512-LABEL: allones_v8i64:361; AVX512: # %bb.0:362; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0363; AVX512-NEXT: ret{{[l|q]}}364 ret <8 x i64> <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>365}366 367define <8 x double> @allones_v8f64() nounwind {368; SSE-LABEL: allones_v8f64:369; SSE: # %bb.0:370; SSE-NEXT: pcmpeqd %xmm0, %xmm0371; SSE-NEXT: pcmpeqd %xmm1, %xmm1372; SSE-NEXT: pcmpeqd %xmm2, %xmm2373; SSE-NEXT: pcmpeqd %xmm3, %xmm3374; SSE-NEXT: ret{{[l|q]}}375;376; AVX1-LABEL: allones_v8f64:377; AVX1: # %bb.0:378; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0379; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0380; AVX1-NEXT: vmovaps %ymm0, %ymm1381; AVX1-NEXT: ret{{[l|q]}}382;383; AVX2-LABEL: allones_v8f64:384; AVX2: # %bb.0:385; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0386; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1387; AVX2-NEXT: ret{{[l|q]}}388;389; AVX512-LABEL: allones_v8f64:390; AVX512: # %bb.0:391; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0392; AVX512-NEXT: ret{{[l|q]}}393 ret <8 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff, double 0xffffffffffffffff>394}395 396define <16 x float> @allones_v16f32() nounwind {397; SSE-LABEL: allones_v16f32:398; SSE: # %bb.0:399; SSE-NEXT: pcmpeqd %xmm0, %xmm0400; SSE-NEXT: pcmpeqd %xmm1, %xmm1401; SSE-NEXT: pcmpeqd %xmm2, %xmm2402; SSE-NEXT: pcmpeqd %xmm3, %xmm3403; SSE-NEXT: ret{{[l|q]}}404;405; AVX1-LABEL: allones_v16f32:406; AVX1: # %bb.0:407; AVX1-NEXT: vxorps %xmm0, %xmm0, %xmm0408; AVX1-NEXT: vcmptrueps %ymm0, %ymm0, %ymm0409; AVX1-NEXT: vmovaps %ymm0, %ymm1410; AVX1-NEXT: ret{{[l|q]}}411;412; AVX2-LABEL: allones_v16f32:413; AVX2: # %bb.0:414; AVX2-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0415; AVX2-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1416; AVX2-NEXT: ret{{[l|q]}}417;418; AVX512-LABEL: allones_v16f32:419; AVX512: # %bb.0:420; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0421; AVX512-NEXT: ret{{[l|q]}}422 ret <16 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>423}424