/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-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-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-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 | vector-tzcnt-256.ll | 3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 39 ; AVX2-LABEL: testv4i64: 40 ; AVX2: # BB#0: 41 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1 42 ; AVX2-NEXT: vpsubq %ymm0, %ymm1, %ymm2 43 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0 44 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2 45 ; AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0 46 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1… 47 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3 [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 …]
|
D | vector-shuffle-256-v4.ll | 3 ; 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 …]
|
D | vec_int_to_fp.ll | 3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 106 ; AVX2-LABEL: sitofp_8i16_to_2f64: 107 ; AVX2: # BB#0: 108 ; AVX2-NEXT: vpmovsxwd %xmm0, %ymm0 109 ; AVX2-NEXT: vcvtdq2pd %xmm0, %ymm0 110 ; AVX2-NEXT: # kill 111 ; AVX2-NEXT: vzeroupper 112 ; AVX2-NEXT: retq 154 ; AVX2-LABEL: sitofp_16i8_to_2f64: 155 ; AVX2: # BB#0: [all …]
|
D | avx-insertelt.ll | 2 … -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 …]
|
D | vec_uint_to_fp-fastmath.ll | 8 ; RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=AVX2 26 ; AVX2: [[FPMASKCSTADDR:.LCPI[0-9_]+]]: 27 ; AVX2-NEXT: .long 1199570944 # float 65536 29 ; AVX2: [[MASKCSTADDR:.LCPI[0-9_]+]]: 30 ; AVX2-NEXT: .long 65535 # 0xffff 54 ; AVX2-LABEL: test_uitofp_v4i32_to_v4f32: 55 ; AVX2: # BB#0: 56 ; AVX2-NEXT: vpsrld $16, %xmm0, %xmm1 57 ; AVX2-NEXT: vcvtdq2ps %xmm1, %xmm1 58 ; AVX2-NEXT: vbroadcastss [[FPMASKCSTADDR]](%rip), %xmm2 [all …]
|
D | vector-compare-results.ll | 5 … -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2 146 ; AVX2-LABEL: test_cmp_v4f64: 147 ; AVX2: # BB#0: 148 ; AVX2-NEXT: vcmpltpd %ymm0, %ymm1, %ymm0 149 ; AVX2-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[0,2,0,2,4,6,4,6] 150 ; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,3,2,3] 151 ; AVX2-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill> 152 ; AVX2-NEXT: vzeroupper 153 ; AVX2-NEXT: retq 200 ; AVX2-LABEL: test_cmp_v8f32: [all …]
|
D | vec_uint_to_fp.ll | 4 …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 …]
|
D | vec_split.ll | 3 ; 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 …]
|
D | vector-rotate-256.ll | 3 …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 …]
|
D | vector-shift-ashr-256.ll | 3 …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 111 ; AVX2-LABEL: var_shift_v8i32: [all …]
|
/external/llvm/test/Analysis/CostModel/X86/ |
D | sitofp.ll | 3 …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 7 {{.*}} sitofp 61 ; AVX2-LABEL: sitofpv16i8v16double 62 ; AVX2: cost of 15 {{.*}} sitofp 77 ; AVX2-LABEL: sitofpv32i8v32double [all …]
|
D | uitofp.ll | 3 …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 5 {{.*}} uitofp 62 ; AVX2-LABEL: uitofpv16i8v16double 63 ; AVX2: cost of 11 {{.*}} uitofp 78 ; AVX2-LABEL: uitofpv32i8v32double [all …]
|