Lines Matching refs:VEX
4 …e-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,VEX,AVX1
5 …-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,VEX,AVX2
55 ; VEX-LABEL: uitofp_2i32_to_2f32:
56 ; VEX: # %bb.0:
57 ; VEX-NEXT: vpmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
58 ; VEX-NEXT: vmovdqa {{.*#+}} xmm1 = [4.503599627370496E+15,4.503599627370496E+15]
59 ; VEX-NEXT: vpor %xmm1, %xmm0, %xmm0
60 ; VEX-NEXT: vsubpd %xmm1, %xmm0, %xmm0
61 ; VEX-NEXT: vcvtpd2ps %xmm0, %xmm0
62 ; VEX-NEXT: retq
116 ; VEX-LABEL: sitofp_2i64_to_2f64:
117 ; VEX: # %bb.0:
118 ; VEX-NEXT: vpextrq $1, %xmm0, %rax
119 ; VEX-NEXT: vcvtsi2sd %rax, %xmm1, %xmm1
120 ; VEX-NEXT: vmovq %xmm0, %rax
121 ; VEX-NEXT: vcvtsi2sd %rax, %xmm2, %xmm0
122 ; VEX-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
123 ; VEX-NEXT: retq
227 ; VEX-LABEL: sitofp_8i16_to_2f64:
228 ; VEX: # %bb.0:
229 ; VEX-NEXT: vpmovsxwd %xmm0, %xmm0
230 ; VEX-NEXT: vcvtdq2pd %xmm0, %xmm0
231 ; VEX-NEXT: retq
285 ; VEX-LABEL: sitofp_16i8_to_2f64:
286 ; VEX: # %bb.0:
287 ; VEX-NEXT: vpmovsxbd %xmm0, %xmm0
288 ; VEX-NEXT: vcvtdq2pd %xmm0, %xmm0
289 ; VEX-NEXT: retq
483 ; VEX-LABEL: sitofp_8i16_to_4f64:
484 ; VEX: # %bb.0:
485 ; VEX-NEXT: vpmovsxwd %xmm0, %xmm0
486 ; VEX-NEXT: vcvtdq2pd %xmm0, %ymm0
487 ; VEX-NEXT: retq
548 ; VEX-LABEL: sitofp_16i8_to_4f64:
549 ; VEX: # %bb.0:
550 ; VEX-NEXT: vpmovsxbd %xmm0, %xmm0
551 ; VEX-NEXT: vcvtdq2pd %xmm0, %ymm0
552 ; VEX-NEXT: retq
670 ; VEX-LABEL: uitofp_2i32_to_2f64:
671 ; VEX: # %bb.0:
672 ; VEX-NEXT: vpmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
673 ; VEX-NEXT: vmovdqa {{.*#+}} xmm1 = [4.503599627370496E+15,4.503599627370496E+15]
674 ; VEX-NEXT: vpor %xmm1, %xmm0, %xmm0
675 ; VEX-NEXT: vsubpd %xmm1, %xmm0, %xmm0
676 ; VEX-NEXT: retq
811 ; VEX-LABEL: uitofp_8i16_to_2f64:
812 ; VEX: # %bb.0:
813 ; VEX-NEXT: vpmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
814 ; VEX-NEXT: vcvtdq2pd %xmm0, %xmm0
815 ; VEX-NEXT: retq
869 ; VEX-LABEL: uitofp_16i8_to_2f64:
870 ; VEX: # %bb.0:
871 ; VEX-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero…
872 ; VEX-NEXT: vcvtdq2pd %xmm0, %xmm0
873 ; VEX-NEXT: retq
1117 ; VEX-LABEL: uitofp_8i16_to_4f64:
1118 ; VEX: # %bb.0:
1119 ; VEX-NEXT: vpmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
1120 ; VEX-NEXT: vcvtdq2pd %xmm0, %ymm0
1121 ; VEX-NEXT: retq
1184 ; VEX-LABEL: uitofp_16i8_to_4f64:
1185 ; VEX: # %bb.0:
1186 ; VEX-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero…
1187 ; VEX-NEXT: vcvtdq2pd %xmm0, %ymm0
1188 ; VEX-NEXT: retq
1228 ; VEX-LABEL: sitofp_2i64_to_4f32:
1229 ; VEX: # %bb.0:
1230 ; VEX-NEXT: vpextrq $1, %xmm0, %rax
1231 ; VEX-NEXT: vcvtsi2ss %rax, %xmm1, %xmm1
1232 ; VEX-NEXT: vmovq %xmm0, %rax
1233 ; VEX-NEXT: vcvtsi2ss %rax, %xmm2, %xmm0
1234 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],zero,zero
1235 ; VEX-NEXT: retq
1297 ; VEX-LABEL: sitofp_2i64_to_4f32_zero:
1298 ; VEX: # %bb.0:
1299 ; VEX-NEXT: vmovq %xmm0, %rax
1300 ; VEX-NEXT: vcvtsi2ss %rax, %xmm1, %xmm1
1301 ; VEX-NEXT: vpextrq $1, %xmm0, %rax
1302 ; VEX-NEXT: vcvtsi2ss %rax, %xmm2, %xmm0
1303 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0],xmm0[0],zero,zero
1304 ; VEX-NEXT: retq
1364 ; VEX-LABEL: sitofp_4i64_to_4f32_undef:
1365 ; VEX: # %bb.0:
1366 ; VEX-NEXT: vpextrq $1, %xmm0, %rax
1367 ; VEX-NEXT: vcvtsi2ss %rax, %xmm1, %xmm1
1368 ; VEX-NEXT: vmovq %xmm0, %rax
1369 ; VEX-NEXT: vcvtsi2ss %rax, %xmm2, %xmm0
1370 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],zero,zero
1371 ; VEX-NEXT: retq
1911 ; VEX-LABEL: uitofp_2i64_to_4f32:
1912 ; VEX: # %bb.0:
1913 ; VEX-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
1914 ; VEX-NEXT: vpsrlq $1, %xmm0, %xmm2
1915 ; VEX-NEXT: vpor %xmm1, %xmm2, %xmm1
1916 ; VEX-NEXT: vblendvpd %xmm0, %xmm1, %xmm0, %xmm1
1917 ; VEX-NEXT: vpextrq $1, %xmm1, %rax
1918 ; VEX-NEXT: vcvtsi2ss %rax, %xmm3, %xmm2
1919 ; VEX-NEXT: vmovq %xmm1, %rax
1920 ; VEX-NEXT: vcvtsi2ss %rax, %xmm3, %xmm1
1921 ; VEX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],zero,zero
1922 ; VEX-NEXT: vaddps %xmm1, %xmm1, %xmm2
1923 ; VEX-NEXT: vpxor %xmm3, %xmm3, %xmm3
1924 ; VEX-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
1925 ; VEX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]
1926 ; VEX-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
1927 ; VEX-NEXT: retq
2026 ; VEX-LABEL: uitofp_2i64_to_2f32:
2027 ; VEX: # %bb.0:
2028 ; VEX-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
2029 ; VEX-NEXT: vpsrlq $1, %xmm0, %xmm2
2030 ; VEX-NEXT: vpor %xmm1, %xmm2, %xmm1
2031 ; VEX-NEXT: vblendvpd %xmm0, %xmm1, %xmm0, %xmm1
2032 ; VEX-NEXT: vpextrq $1, %xmm1, %rax
2033 ; VEX-NEXT: vcvtsi2ss %rax, %xmm3, %xmm2
2034 ; VEX-NEXT: vmovq %xmm1, %rax
2035 ; VEX-NEXT: vcvtsi2ss %rax, %xmm3, %xmm1
2036 ; VEX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],zero,zero
2037 ; VEX-NEXT: vaddps %xmm1, %xmm1, %xmm2
2038 ; VEX-NEXT: vpxor %xmm3, %xmm3, %xmm3
2039 ; VEX-NEXT: vpcmpgtq %xmm0, %xmm3, %xmm0
2040 ; VEX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]
2041 ; VEX-NEXT: vblendvps %xmm0, %xmm2, %xmm1, %xmm0
2042 ; VEX-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero
2043 ; VEX-NEXT: retq
2913 ; VEX-LABEL: sitofp_load_2i64_to_2f64:
2914 ; VEX: # %bb.0:
2915 ; VEX-NEXT: vcvtsi2sdq 8(%rdi), %xmm0, %xmm0
2916 ; VEX-NEXT: vcvtsi2sdq (%rdi), %xmm1, %xmm1
2917 ; VEX-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm1[0],xmm0[0]
2918 ; VEX-NEXT: retq
3107 ; VEX-LABEL: sitofp_load_4i64_to_4f64:
3108 ; VEX: # %bb.0:
3109 ; VEX-NEXT: vcvtsi2sdq 24(%rdi), %xmm0, %xmm0
3110 ; VEX-NEXT: vcvtsi2sdq 16(%rdi), %xmm1, %xmm1
3111 ; VEX-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm1[0],xmm0[0]
3112 ; VEX-NEXT: vcvtsi2sdq 8(%rdi), %xmm2, %xmm1
3113 ; VEX-NEXT: vcvtsi2sdq (%rdi), %xmm2, %xmm2
3114 ; VEX-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm2[0],xmm1[0]
3115 ; VEX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
3116 ; VEX-NEXT: retq
3346 ; VEX-LABEL: uitofp_load_2i32_to_2f64:
3347 ; VEX: # %bb.0:
3348 ; VEX-NEXT: vpmovzxdq {{.*#+}} xmm0 = mem[0],zero,mem[1],zero
3349 ; VEX-NEXT: vmovdqa {{.*#+}} xmm1 = [4.503599627370496E+15,4.503599627370496E+15]
3350 ; VEX-NEXT: vpor %xmm1, %xmm0, %xmm0
3351 ; VEX-NEXT: vsubpd %xmm1, %xmm0, %xmm0
3352 ; VEX-NEXT: retq
3871 ; VEX-LABEL: sitofp_load_4i64_to_4f32:
3872 ; VEX: # %bb.0:
3873 ; VEX-NEXT: vcvtsi2ssq 8(%rdi), %xmm0, %xmm0
3874 ; VEX-NEXT: vcvtsi2ssq (%rdi), %xmm1, %xmm1
3875 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[2,3]
3876 ; VEX-NEXT: vcvtsi2ssq 16(%rdi), %xmm2, %xmm1
3877 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
3878 ; VEX-NEXT: vcvtsi2ssq 24(%rdi), %xmm2, %xmm1
3879 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[0]
3880 ; VEX-NEXT: retq
4048 ; VEX-LABEL: sitofp_load_8i64_to_8f32:
4049 ; VEX: # %bb.0:
4050 ; VEX-NEXT: vcvtsi2ssq 40(%rdi), %xmm0, %xmm0
4051 ; VEX-NEXT: vcvtsi2ssq 32(%rdi), %xmm1, %xmm1
4052 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[2,3]
4053 ; VEX-NEXT: vcvtsi2ssq 48(%rdi), %xmm2, %xmm1
4054 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
4055 ; VEX-NEXT: vcvtsi2ssq 56(%rdi), %xmm2, %xmm1
4056 ; VEX-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[0]
4057 ; VEX-NEXT: vcvtsi2ssq 8(%rdi), %xmm2, %xmm1
4058 ; VEX-NEXT: vcvtsi2ssq (%rdi), %xmm2, %xmm2
4059 ; VEX-NEXT: vinsertps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[2,3]
4060 ; VEX-NEXT: vcvtsi2ssq 16(%rdi), %xmm3, %xmm2
4061 ; VEX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1],xmm2[0],xmm1[3]
4062 ; VEX-NEXT: vcvtsi2ssq 24(%rdi), %xmm3, %xmm2
4063 ; VEX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1,2],xmm2[0]
4064 ; VEX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
4065 ; VEX-NEXT: retq
5343 ; VEX-LABEL: extract0_uitofp_v4i32_f32:
5344 ; VEX: # %bb.0:
5345 ; VEX-NEXT: vmovd %xmm0, %eax
5346 ; VEX-NEXT: vcvtsi2ss %rax, %xmm1, %xmm0
5347 ; VEX-NEXT: retq
5387 ; VEX-LABEL: extract0_uitofp_v4i32_f64:
5388 ; VEX: # %bb.0:
5389 ; VEX-NEXT: vmovd %xmm0, %eax
5390 ; VEX-NEXT: vcvtsi2sd %rax, %xmm1, %xmm0
5391 ; VEX-NEXT: retq
5484 ; VEX-LABEL: extract3_uitofp_v4i32_f32:
5485 ; VEX: # %bb.0:
5486 ; VEX-NEXT: vextractps $3, %xmm0, %eax
5487 ; VEX-NEXT: vcvtsi2ss %rax, %xmm1, %xmm0
5488 ; VEX-NEXT: retq
5538 ; VEX-LABEL: extract3_uitofp_v4i32_f64:
5539 ; VEX: # %bb.0:
5540 ; VEX-NEXT: vextractps $3, %xmm0, %eax
5541 ; VEX-NEXT: vcvtsi2sd %rax, %xmm1, %xmm0
5542 ; VEX-NEXT: retq