Home
last modified time | relevance | path

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

12345678910>>...27

/external/llvm/test/CodeGen/X86/
Dvector-idiv-sdiv-256.ll3 … -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2
47 ; AVX2-LABEL: test_div7_4i64:
48 ; AVX2: # BB#0:
49 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
50 ; AVX2-NEXT: vpextrq $1, %xmm1, %rax
51 ; AVX2-NEXT: movabsq $5270498306774157605, %rcx # imm = 0x4924924924924925
52 ; AVX2-NEXT: imulq %rcx
53 ; AVX2-NEXT: movq %rdx, %rax
54 ; AVX2-NEXT: shrq $63, %rax
55 ; AVX2-NEXT: sarq %rdx
[all …]
Dvector-idiv-udiv-256.ll3 … -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2
51 ; AVX2-LABEL: test_div7_4i64:
52 ; AVX2: # BB#0:
53 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
54 ; AVX2-NEXT: vpextrq $1, %xmm1, %rcx
55 ; AVX2-NEXT: movabsq $2635249153387078803, %rsi # imm = 0x2492492492492493
56 ; AVX2-NEXT: movq %rcx, %rax
57 ; AVX2-NEXT: mulq %rsi
58 ; AVX2-NEXT: subq %rdx, %rcx
59 ; AVX2-NEXT: shrq %rcx
[all …]
Dvector-half-conversions.ll3 …unknown -mattr=+avx2,+f16c | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
136 ; AVX2-LABEL: cvt_8i16_to_8f32:
137 ; AVX2: # BB#0:
138 ; AVX2-NEXT: vpextrq $1, %xmm0, %rdx
139 ; AVX2-NEXT: movq %rdx, %r8
140 ; AVX2-NEXT: movq %rdx, %r10
141 ; AVX2-NEXT: movswl %dx, %r9d
142 ; AVX2-NEXT: # kill: %EDX<def> %EDX<kill> %RDX<kill>
143 ; AVX2-NEXT: shrl $16, %edx
144 ; AVX2-NEXT: shrq $32, %r8
[all …]
Dvector-shuffle-256-v16.ll3 ; RUN: llc < %s -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
15 ; AVX2-LABEL: shuffle_v16i16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
16 ; AVX2: # BB#0:
17 ; AVX2-NEXT: vpbroadcastw %xmm0, %ymm0
18 ; 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 …]
Davx2-intrinsics-x86.ll2 ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=avx2 | FileCheck %s --check-prefix=AVX2
6 ; AVX2-LABEL: test_x86_avx2_packssdw:
7 ; AVX2: ## BB#0:
8 ; AVX2-NEXT: vpackssdw %ymm1, %ymm0, %ymm0
9 ; AVX2-NEXT: retl
22 ; AVX2-LABEL: test_x86_avx2_packsswb:
23 ; AVX2: ## BB#0:
24 ; AVX2-NEXT: vpacksswb %ymm1, %ymm0, %ymm0
25 ; AVX2-NEXT: retl
38 ; AVX2-LABEL: test_x86_avx2_packuswb:
[all …]
Dmasked_memop.ll3 …-mtriple=x86_64-apple-darwin -mattr=avx2 < %s | FileCheck %s --check-prefix=AVX --check-prefix=AVX2
27 ; AVX2-LABEL: test1:
28 ; AVX2: ## BB#0:
29 ; AVX2-NEXT: vpxor %ymm2, %ymm2, %ymm2
30 ; AVX2-NEXT: vpcmpeqd %ymm2, %ymm0, %ymm0
31 ; AVX2-NEXT: vpcmpeqd %ymm2, %ymm1, %ymm1
32 ; AVX2-NEXT: vpmaskmovd 32(%rdi), %ymm1, %ymm1
33 ; AVX2-NEXT: vpmaskmovd (%rdi), %ymm0, %ymm0
34 ; AVX2-NEXT: retq
63 ; AVX2-LABEL: test2:
[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-shuffle-variable-256.ll3 … -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
101 ; AVX2-LABEL: var_shuffle_v4i64_v4i64_xxxx_i64:
102 ; AVX2: # BB#0:
103 ; AVX2-NEXT: pushq %rbp
104 ; AVX2-NEXT: movq %rsp, %rbp
105 ; AVX2-NEXT: andq $-32, %rsp
106 ; AVX2-NEXT: subq $64, %rsp
107 ; AVX2-NEXT: vmovaps %ymm0, (%rsp)
108 ; AVX2-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
109 ; AVX2-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
[all …]
Dvector-trunc-math.ll4 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
34 ; AVX2-LABEL: trunc_add_v4i64_4i32:
35 ; AVX2: # BB#0:
36 ; AVX2-NEXT: vpaddq %ymm1, %ymm0, %ymm0
37 ; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,2,0,2,4,6,4,6]
38 ; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,3,2,3]
39 ; AVX2-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
40 ; AVX2-NEXT: vzeroupper
41 ; AVX2-NEXT: retq
99 ; AVX2-LABEL: trunc_add_v8i64_8i16:
[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-lzcnt-256.ll3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
36 ; AVX2-LABEL: testv4i64:
37 ; AVX2: # BB#0:
38 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
39 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
40 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
41 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
42 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
43 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
44 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
[all …]
Dvec_shift6.ll3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=avx2 | FileCheck %s --check-prefix=AVX2
16 ; AVX2-LABEL: test1:
17 ; AVX2: # BB#0:
18 ; AVX2-NEXT: vpmullw {{.*}}(%rip), %xmm0, %xmm0
19 ; AVX2-NEXT: retq
35 ; AVX2-LABEL: test2:
36 ; AVX2: # BB#0:
37 ; AVX2-NEXT: vpmullw {{.*}}(%rip), %xmm0, %xmm0
38 ; AVX2-NEXT: retq
58 ; AVX2-LABEL: test3:
[all …]
/external/llvm-project/llvm/test/CodeGen/X86/
Dpmovsx-inreg.ll4 …llc < %s -mtriple=x86_64-unknwon -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2
5 ; RUN: llc < %s -mtriple=i686-unknwon -mattr=+avx2 | FileCheck %s --check-prefix=X32-AVX2
27 ; X32-AVX2-LABEL: test1:
28 ; X32-AVX2: # %bb.0:
29 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
30 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
31 ; X32-AVX2-NEXT: vpmovsxbq (%ecx), %xmm0
32 ; X32-AVX2-NEXT: vxorps %xmm1, %xmm1, %xmm1
33 ; X32-AVX2-NEXT: vmovups %xmm1, (%eax)
34 ; X32-AVX2-NEXT: vmovdqu %xmm0, (%eax)
[all …]
Dshuffle-of-splat-multiuses.ll2 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX2,AVX2-SLOW
3 …e=x86_64-unknown -mattr=+avx2,+fast-variable-shuffle | FileCheck %s --check-prefixes=AVX2,AVX2-FAST
7 ; AVX2-LABEL: foo2:
8 ; AVX2: # %bb.0:
9 ; AVX2-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,1]
10 ; AVX2-NEXT: vmovapd %xmm0, (%rdi)
11 ; AVX2-NEXT: retq
19 ; AVX2-LABEL: foo4:
20 ; AVX2: # %bb.0:
21 ; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
[all …]
Dv8i1-masks.ll4 ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=X32-AVX2
5 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=X64-AVX2
37 ; X32-AVX2-LABEL: and_masks:
38 ; X32-AVX2: ## %bb.0:
39 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
40 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
41 ; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %edx
42 ; X32-AVX2-NEXT: vmovups (%edx), %ymm0
43 ; X32-AVX2-NEXT: vmovups (%ecx), %ymm1
44 ; X32-AVX2-NEXT: vcmpltps %ymm0, %ymm1, %ymm1
[all …]
Dfunnel-shift.ll3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=avx2 | FileCheck %s --check-prefixes=ANY,X64-AVX2
28 ; X64-AVX2-LABEL: fshl_i32:
29 ; X64-AVX2: # %bb.0:
30 ; X64-AVX2-NEXT: movl %edx, %ecx
31 ; X64-AVX2-NEXT: movl %edi, %eax
32 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
33 ; X64-AVX2-NEXT: shldl %cl, %esi, %eax
34 ; X64-AVX2-NEXT: retq
88 ; X64-AVX2-LABEL: fshl_i37:
89 ; X64-AVX2: # %bb.0:
[all …]
Dmasked_gather.ll4 ; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+avx2 < %s | FileCheck %s --check-prefix=AVX2
97 ; AVX2-LABEL: gather_v4f32_ptr_v4i32:
98 ; AVX2: # %bb.0:
99 ; AVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
100 ; AVX2-NEXT: vpcmpeqd %xmm3, %xmm1, %xmm1
101 ; AVX2-NEXT: vmovmskps %xmm1, %eax
102 ; AVX2-NEXT: testb $1, %al
103 ; AVX2-NEXT: je .LBB0_2
104 ; AVX2-NEXT: # %bb.1: # %cond.load
105 ; AVX2-NEXT: vmovq %xmm0, %rcx
[all …]
Dbuild-vector-256.ll4 …riple=i686-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX-32 --check-prefix=AVX2-32
5 …ple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX-64 --check-prefix=AVX2-64
70 ; AVX2-64-LABEL: test_buildvector_v4i64:
71 ; AVX2-64: # %bb.0:
72 ; AVX2-64-NEXT: vmovq %rcx, %xmm0
73 ; AVX2-64-NEXT: vmovq %rdx, %xmm1
74 ; AVX2-64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
75 ; AVX2-64-NEXT: vmovq %rsi, %xmm1
76 ; AVX2-64-NEXT: vmovq %rdi, %xmm2
77 ; AVX2-64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
[all …]
Dvector-trunc-math.ll4 … %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX2,AVX2-SLOW
5 …nown-unknown -mattr=+avx2,+fast-variable-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX2-FAST
32 ; AVX2-SLOW-LABEL: trunc_add_v4i64_v4i32:
33 ; AVX2-SLOW: # %bb.0:
34 ; AVX2-SLOW-NEXT: vpaddq %ymm1, %ymm0, %ymm0
35 ; AVX2-SLOW-NEXT: vextracti128 $1, %ymm0, %xmm1
36 ; AVX2-SLOW-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]
37 ; AVX2-SLOW-NEXT: vzeroupper
38 ; AVX2-SLOW-NEXT: retq
40 ; AVX2-FAST-LABEL: trunc_add_v4i64_v4i32:
[all …]
Dreduce-trunc-shl.ll3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx2 | FileCheck %s --check-prefix=AVX2
14 ; AVX2-LABEL: trunc_shl_7_v4i32_v4i64:
15 ; AVX2: # %bb.0:
16 ; AVX2-NEXT: vmovaps (%rsi), %xmm0
17 ; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2],mem[0,2]
18 ; AVX2-NEXT: vpslld $7, %xmm0, %xmm0
19 ; AVX2-NEXT: vmovdqa %xmm0, (%rdi)
20 ; AVX2-NEXT: retq
39 ; AVX2-LABEL: trunc_shl_15_v8i16_v8i32:
40 ; AVX2: # %bb.0:
[all …]
Dfunnel-shift-rot.ll3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=avx2 | FileCheck %s --check-prefixes=ANY,X64-AVX2
26 ; X64-AVX2-LABEL: rotl_i8_const_shift:
27 ; X64-AVX2: # %bb.0:
28 ; X64-AVX2-NEXT: movl %edi, %eax
29 ; X64-AVX2-NEXT: rolb $3, %al
30 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
31 ; X64-AVX2-NEXT: retq
43 ; X64-AVX2-LABEL: rotl_i8_const_shift1:
44 ; X64-AVX2: # %bb.0:
45 ; X64-AVX2-NEXT: movl %edi, %eax
[all …]
Dvector-ext-logic.ll3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefix=AVX2
17 ; AVX2-LABEL: zext_and_v8i32:
18 ; AVX2: # %bb.0:
19 ; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
20 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
21 ; AVX2-NEXT: retq
40 ; AVX2-LABEL: zext_or_v8i32:
41 ; AVX2: # %bb.0:
42 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
43 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
[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.
92 ; We also generate vmovddup for AVX2 because it's one byte smaller than vpbroadcastq.
101 ; AVX2-LABEL: splat_v2i64:
102 ; AVX2: # %bb.0:
103 ; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm1 = [2,2]
104 ; AVX2-NEXT: vpaddq %xmm1, %xmm0, %xmm0
105 ; AVX2-NEXT: retq
118 ; AVX2-LABEL: splat_v2i64_pgso:
119 ; AVX2: # %bb.0:
[all …]
Davoid-sfb.ll4 …-mtriple=x86_64-linux -mcpu=core-avx2 -verify-machineinstrs | FileCheck %s -check-prefix=CHECK-AVX2
44 ; CHECK-AVX2-LABEL: test_conditional_block:
45 ; CHECK-AVX2: # %bb.0: # %entry
46 ; CHECK-AVX2-NEXT: cmpl $18, %edx
47 ; CHECK-AVX2-NEXT: jl .LBB0_2
48 ; CHECK-AVX2-NEXT: # %bb.1: # %if.then
49 ; CHECK-AVX2-NEXT: movl %edx, 4(%rdi)
50 ; CHECK-AVX2-NEXT: .LBB0_2: # %if.end
51 ; CHECK-AVX2-NEXT: vmovups (%r8), %xmm0
52 ; CHECK-AVX2-NEXT: vmovups %xmm0, (%rcx)
[all …]

12345678910>>...27