/external/llvm/test/CodeGen/X86/ |
D | vector-idiv-sdiv-256.ll | 3 … -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 …]
|
D | vector-idiv-udiv-256.ll | 3 … -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 …]
|
D | vector-half-conversions.ll | 3 …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 …]
|
D | vector-shuffle-256-v16.ll | 3 ; 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 …]
|
D | avx2-intrinsics-x86.ll | 2 ; 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 …]
|
D | masked_memop.ll | 3 …-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 …]
|
D | vector-shuffle-256-v8.ll | 3 ; 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 …]
|
D | vector-shuffle-variable-256.ll | 3 … -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 …]
|
D | vector-trunc-math.ll | 4 …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 …]
|
D | vector-popcnt-256.ll | 3 …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 …]
|
D | vector-shuffle-256-v32.ll | 3 … -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 …]
|
D | vector-lzcnt-256.ll | 3 …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 …]
|
D | vec_shift6.ll | 3 ; 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/ |
D | pmovsx-inreg.ll | 4 …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 …]
|
D | shuffle-of-splat-multiuses.ll | 2 ; 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 …]
|
D | v8i1-masks.ll | 4 ; 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 …]
|
D | funnel-shift.ll | 3 ; 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 …]
|
D | masked_gather.ll | 4 ; 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 …]
|
D | build-vector-256.ll | 4 …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 …]
|
D | vector-trunc-math.ll | 4 … %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 …]
|
D | reduce-trunc-shl.ll | 3 ; 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 …]
|
D | funnel-shift-rot.ll | 3 ; 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 …]
|
D | vector-ext-logic.ll | 3 ; 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 …]
|
D | splat-for-size.ll | 3 …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 …]
|
D | avoid-sfb.ll | 4 …-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 …]
|