Home
last modified time | relevance | path

Searched refs:AVX2 (Results 1 – 25 of 117) sorted by relevance

12345

/external/llvm/test/CodeGen/X86/
Dvector-lzcnt-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
37 ; AVX2-LABEL: testv4i64:
38 ; AVX2: # BB#0:
39 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
40 ; AVX2-NEXT: vpextrq $1, %xmm1, %rax
41 ; AVX2-NEXT: bsrq %rax, %rax
42 ; AVX2-NEXT: movl $127, %ecx
43 ; AVX2-NEXT: cmoveq %rcx, %rax
44 ; AVX2-NEXT: xorq $63, %rax
45 ; AVX2-NEXT: vmovq %rax, %xmm2
[all …]
Dpmul.ll4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX2
39 ; AVX2-LABEL: mul8c:
40 ; AVX2: # BB#0: # %entry
41 ; AVX2-NEXT: vpmovsxbw %xmm0, %ymm0
42 ; AVX2-NEXT: vpmovsxbw {{.*}}(%rip), %ymm1
43 ; AVX2-NEXT: vpmullw %ymm1, %ymm0, %ymm0
44 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
45 ; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
46 ; AVX2-NEXT: vpshufb %xmm2, %xmm1, %xmm1
47 ; AVX2-NEXT: vpshufb %xmm2, %xmm0, %xmm0
[all …]
Dvector-shuffle-256-v16.ll3 ; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
14 ; AVX2-LABEL: shuffle_v16i16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
15 ; AVX2: # BB#0:
16 ; AVX2-NEXT: vpbroadcastw %xmm0, %ymm0
17 ; AVX2-NEXT: retq
32 ; AVX2-LABEL: shuffle_v16i16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_01_00:
33 ; AVX2: # BB#0:
34 ; AVX2-NEXT: vpbroadcastw %xmm0, %xmm1
35 ; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,2,3,0,1]
36 ; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
[all …]
Dvector-tzcnt-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
37 ; AVX2-LABEL: testv4i64:
38 ; AVX2: # BB#0:
39 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
40 ; AVX2-NEXT: vpsubq %ymm0, %ymm1, %ymm2
41 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
42 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
43 ; AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0
44 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
45 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3
[all …]
Dvector-shuffle-256-v8.ll3 ; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
14 ; AVX2-LABEL: shuffle_v8f32_00000000:
15 ; AVX2: # BB#0:
16 ; AVX2-NEXT: vbroadcastss %xmm0, %ymm0
17 ; AVX2-NEXT: retq
30 ; AVX2-LABEL: shuffle_v8f32_00000010:
31 ; AVX2: # BB#0:
32 ; AVX2-NEXT: vmovaps {{.*#+}} ymm1 = [0,0,0,0,0,0,1,0]
33 ; AVX2-NEXT: vpermps %ymm0, %ymm1, %ymm0
34 ; AVX2-NEXT: retq
[all …]
Dvector-popcnt-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
29 ; AVX2-LABEL: testv4i64:
30 ; AVX2: # BB#0:
31 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
32 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
33 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,…
34 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
35 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
36 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
37 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
[all …]
Dvector-shuffle-256-v32.ll3 … -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
15 ; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00…
16 ; AVX2: # BB#0:
17 ; AVX2-NEXT: vpbroadcastb %xmm0, %ymm0
18 ; AVX2-NEXT: retq
32 ; AVX2-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00…
33 ; AVX2: # BB#0:
34 ; AVX2-NEXT: vpbroadcastb %xmm0, %xmm1
35 ; AVX2-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
36 ; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
[all …]
Dvector-shuffle-256-v4.ll3 ; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
15 ; AVX2-LABEL: shuffle_v4f64_0000:
16 ; AVX2: # BB#0:
17 ; AVX2-NEXT: vbroadcastsd %xmm0, %ymm0
18 ; AVX2-NEXT: retq
35 ; AVX2-LABEL: shuffle_v4f64_0001:
36 ; AVX2: # BB#0:
37 ; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,0,0,1]
38 ; AVX2-NEXT: retq
57 ; AVX2-LABEL: shuffle_v4f64_0020:
[all …]
Dvec_uint_to_fp-fastmath.ll8 ; RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=AVX2
22 ; AVX2: [[FPMASKCSTADDR:.LCPI[0-9_]+]]:
23 ; AVX2-NEXT: .long 1199570944 # float 65536
25 ; AVX2: [[MASKCSTADDR:.LCPI[0-9_]+]]:
26 ; AVX2-NEXT: .long 65535 # 0xffff
50 ; AVX2-LABEL: test_uitofp_v4i32_to_v4f32:
51 ; AVX2: # BB#0:
52 ; AVX2-NEXT: vpsrld $16, %xmm0, %xmm1
53 ; AVX2-NEXT: vcvtdq2ps %xmm1, %xmm1
54 ; AVX2-NEXT: vbroadcastss [[FPMASKCSTADDR]](%rip), %xmm2
[all …]
Dviabs.ll3 ; RUN: llc < %s -march=x86-64 -mattr=avx2 | FileCheck %s -check-prefix=AVX2
18 ; AVX2-LABEL: test1:
19 ; AVX2: vpabsd
20 ; AVX2-NEXT: ret
43 ; AVX2-LABEL: test2:
44 ; AVX2: vpabsd
45 ; AVX2-NEXT: ret
68 ; AVX2-LABEL: test3:
69 ; AVX2: vpabsw
70 ; AVX2-NEXT: ret
[all …]
Davx-insertelt.ll2 … -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
27 ; AVX2-LABEL: insert_i8:
28 ; AVX2: # BB#0:
29 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm0, %xmm1
30 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
31 ; AVX2-NEXT: retq
43 ; AVX2-LABEL: insert_i16:
44 ; AVX2: # BB#0:
45 ; AVX2-NEXT: vpinsrw $0, %edi, %xmm0, %xmm1
46 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
[all …]
Dvector-shift-ashr-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
38 ; AVX2-LABEL: var_shift_v4i64:
39 ; AVX2: # BB#0:
40 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
41 ; AVX2-NEXT: vpsrlvq %ymm1, %ymm2, %ymm3
42 ; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm0
43 ; AVX2-NEXT: vpsrlvq %ymm1, %ymm0, %ymm0
44 ; AVX2-NEXT: vpsubq %ymm3, %ymm0, %ymm0
45 ; AVX2-NEXT: retq
102 ; AVX2-LABEL: var_shift_v8i32:
[all …]
Davx-cast.ll2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=AVX2
14 ; AVX2-LABEL: castA:
15 ; AVX2: vxorps %ymm1, %ymm1, %ymm1
16 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17 ; AVX2-NEXT: retq
30 ; AVX2-LABEL: castB:
31 ; AVX2: vxorpd %ymm1, %ymm1, %ymm1
32 ; AVX2-NEXT: vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
33 ; AVX2-NEXT: retq
40 ; AVX2 is needed for integer types.
[all …]
Dvec_int_to_fp.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
104 ; AVX2-LABEL: sitofp_8i16_to_2f64:
105 ; AVX2: # BB#0:
106 ; AVX2-NEXT: vpmovsxwd %xmm0, %ymm0
107 ; AVX2-NEXT: vcvtdq2pd %xmm0, %ymm0
108 ; AVX2-NEXT: vzeroupper
109 ; AVX2-NEXT: retq
150 ; AVX2-LABEL: sitofp_16i8_to_2f64:
151 ; AVX2: # BB#0:
152 ; AVX2-NEXT: vpmovsxbw %xmm0, %ymm0
[all …]
Dvector-shift-shl-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
27 ; AVX2-LABEL: var_shift_v4i64:
28 ; AVX2: # BB#0:
29 ; AVX2-NEXT: vpsllvq %ymm1, %ymm0, %ymm0
30 ; AVX2-NEXT: retq
66 ; AVX2-LABEL: var_shift_v8i32:
67 ; AVX2: # BB#0:
68 ; AVX2-NEXT: vpsllvd %ymm1, %ymm0, %ymm0
69 ; AVX2-NEXT: retq
124 ; AVX2-LABEL: var_shift_v16i16:
[all …]
Dvec_split.ll3 ; RUN: llc -march=x86-64 -mattr=avx2 < %s | FileCheck %s -check-prefix=AVX2
14 ; AVX2-LABEL: split16:
15 ; AVX2: vpminuw
16 ; AVX2: ret
35 ; AVX2-LABEL: split32:
36 ; AVX2: vpminuw
37 ; AVX2: vpminuw
38 ; AVX2: ret
62 ; AVX2-LABEL: split128:
63 ; AVX2: addq
[all …]
Dvec_uint_to_fp.ll4 …s -mtriple=x86_64-apple-macosx -mattr=+avx2 | FileCheck --check-prefix=CHECK --check-prefix=AVX2 %s
31 ; AVX2: [[LOWCSTADDR:LCPI0_[0-9]+]]:
32 ; AVX2-NEXT: .long 1258291200 ## 0x4b000000
34 ; AVX2: [[HIGHCSTADDR:LCPI0_[0-9]+]]:
35 ; AVX2-NEXT: .long 1392508928 ## 0x53000000
37 ; AVX2: [[MAGICCSTADDR:LCPI0_[0-9]+]]:
38 ; AVX2-NEXT: .long 3539992704 ## float -5.49764202E+11
71 ; The lowering for AVX2 is a bit messy, because we select broadcast
73 ; AVX2: vpbroadcastd [[LOWCSTADDR]](%rip), [[LOWCST:%xmm[0-9]+]]
74 ; AVX2-NEXT: vpblendw $170, [[LOWCST]], %xmm0, [[LOWVEC:%xmm[0-9]+]]
[all …]
Dvector-shift-lshr-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
27 ; AVX2-LABEL: var_shift_v4i64:
28 ; AVX2: # BB#0:
29 ; AVX2-NEXT: vpsrlvq %ymm1, %ymm0, %ymm0
30 ; AVX2-NEXT: retq
83 ; AVX2-LABEL: var_shift_v8i32:
84 ; AVX2: # BB#0:
85 ; AVX2-NEXT: vpsrlvd %ymm1, %ymm0, %ymm0
86 ; AVX2-NEXT: retq
144 ; AVX2-LABEL: var_shift_v16i16:
[all …]
Dvector-rotate-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
40 ; AVX2-LABEL: var_rotate_v4i64:
41 ; AVX2: # BB#0:
42 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
43 ; AVX2-NEXT: vpsubq %ymm1, %ymm2, %ymm2
44 ; AVX2-NEXT: vpsllvq %ymm1, %ymm0, %ymm1
45 ; AVX2-NEXT: vpsrlvq %ymm2, %ymm0, %ymm0
46 ; AVX2-NEXT: vpor %ymm0, %ymm1, %ymm0
47 ; AVX2-NEXT: retq
118 ; AVX2-LABEL: var_rotate_v8i32:
[all …]
Dsplat-for-size.ll3 …mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=CHECK --check-prefix=AVX2
6 ; for size optimization using splat ops available with AVX and AVX2.
50 ; We also generate vmovddup for AVX2 because it's one byte smaller than vpbroadcastq.
73 ; AVX2-LABEL: splat_v4i64:
74 ; AVX2: # BB#0:
75 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm1
76 ; AVX2-NEXT: vpaddq %ymm1, %ymm0, %ymm0
77 ; AVX2-NEXT: retq
90 ; AVX2-LABEL: splat_v4i32:
91 ; AVX2: # BB#0:
[all …]
Dunaligned-32-byte-memops.ll4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx2 | FileCheck %s --check-prefix=AVX2
20 ; AVX2-LABEL: load32bytes:
21 ; AVX2: # BB#0:
22 ; AVX2-NEXT: vmovups (%rdi), %ymm0
23 ; AVX2-NEXT: retq
44 ; AVX2-LABEL: store32bytes:
45 ; AVX2: # BB#0:
46 ; AVX2-NEXT: vmovups %ymm0, (%rdi)
47 ; AVX2-NEXT: vzeroupper
48 ; AVX2-NEXT: retq
[all …]
Dpmovsx-inreg.ll3 ; RUN: llc < %s -march=x86-64 -mcpu=core-avx2 | FileCheck -check-prefix=AVX2 %s
21 ; AVX2-LABEL: test1:
22 ; AVX2: vpmovsxbq
32 ; AVX2-LABEL: test2:
33 ; AVX2: vpmovsxbq
49 ; AVX2-LABEL: test3:
50 ; AVX2: vpmovsxbd
60 ; AVX2-LABEL: test4:
61 ; AVX2: vpmovsxbd
77 ; AVX2-LABEL: test5:
[all …]
/external/llvm/test/Analysis/CostModel/X86/
Dsitofp.ll3 …darwin -mattr=+avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX2 %s
13 ; AVX2-LABEL: sitofpv2i8v2double
14 ; AVX2: cost of 4 {{.*}} sitofp
29 ; AVX2-LABEL: sitofpv4i8v4double
30 ; AVX2: cost of 3 {{.*}} sitofp
45 ; AVX2-LABEL: sitofpv8i8v8double
46 ; AVX2: cost of 20 {{.*}} sitofp
61 ; AVX2-LABEL: sitofpv16i8v16double
62 ; AVX2: cost of 40 {{.*}} sitofp
77 ; AVX2-LABEL: sitofpv32i8v32double
[all …]
Duitofp.ll3 …darwin -mattr=+avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX --check-prefix=AVX2 %s
14 ; AVX2-LABEL: uitofpv2i8v2double
15 ; AVX2: cost of 4 {{.*}} uitofp
30 ; AVX2-LABEL: uitofpv4i8v4double
31 ; AVX2: cost of 2 {{.*}} uitofp
46 ; AVX2-LABEL: uitofpv8i8v8double
47 ; AVX2: cost of 20 {{.*}} uitofp
62 ; AVX2-LABEL: uitofpv16i8v16double
63 ; AVX2: cost of 40 {{.*}} uitofp
78 ; AVX2-LABEL: uitofpv32i8v32double
[all …]
Dcmp.ll2 …ple=x86_64-apple-macosx10.8.0 -mcpu=core-avx2 | FileCheck -check-prefix=CHECK -check-prefix=AVX2 %s
11 ;AVX2: cost of 1 {{.*}} fcmp
14 ;AVX2: cost of 1 {{.*}} fcmp
17 ;AVX2: cost of 1 {{.*}} fcmp
20 ;AVX2: cost of 1 {{.*}} fcmp
23 ;AVX2: cost of 1 {{.*}} fcmp
34 ;AVX2: cost of 1 {{.*}} icmp
37 ;AVX2: cost of 1 {{.*}} icmp
40 ;AVX2: cost of 1 {{.*}} icmp
43 ;AVX2: cost of 1 {{.*}} icmp
[all …]

12345