/external/llvm/test/CodeGen/X86/ |
D | vector-lzcnt-256.ll | 3 …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 …]
|
D | pmul.ll | 4 ; 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 …]
|
D | vector-shuffle-256-v16.ll | 3 ; 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 …]
|
D | vector-tzcnt-256.ll | 3 …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 …]
|
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-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-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_uint_to_fp-fastmath.ll | 8 ; 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 …]
|
D | viabs.ll | 3 ; 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 …]
|
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 | 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 102 ; AVX2-LABEL: var_shift_v8i32: [all …]
|
D | avx-cast.ll | 2 ; 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 …]
|
D | vec_int_to_fp.ll | 3 …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 …]
|
D | vector-shift-shl-256.ll | 3 …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 …]
|
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 | 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 | vector-shift-lshr-256.ll | 3 …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 …]
|
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 | 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. 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 …]
|
D | unaligned-32-byte-memops.ll | 4 ; 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 …]
|
D | pmovsx-inreg.ll | 3 ; 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/ |
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 20 {{.*}} sitofp 61 ; AVX2-LABEL: sitofpv16i8v16double 62 ; AVX2: cost of 40 {{.*}} 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 20 {{.*}} uitofp 62 ; AVX2-LABEL: uitofpv16i8v16double 63 ; AVX2: cost of 40 {{.*}} uitofp 78 ; AVX2-LABEL: uitofpv32i8v32double [all …]
|
D | cmp.ll | 2 …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 …]
|