/external/llvm/test/CodeGen/X86/ |
D | vec_fp_to_int.ll | 2 …nknown-unknown -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 25 ; AVX-LABEL: fptosi_2f64_to_2i64: 26 ; AVX: # BB#0: 27 ; AVX-NEXT: vcvttsd2si %xmm0, %rax 28 ; AVX-NEXT: vmovq %rax, %xmm1 29 ; AVX-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0] 30 ; AVX-NEXT: vcvttsd2si %xmm0, %rax 31 ; AVX-NEXT: vmovq %rax, %xmm0 32 ; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0] 33 ; AVX-NEXT: retq [all …]
|
D | machine-combiner.ll | 2 …known-unknown -mcpu=x86-64 -mattr=avx -enable-unsafe-fp-math < %s | FileCheck %s --check-prefix=AVX 15 ; AVX-LABEL: reassociate_adds1: 16 ; AVX: # BB#0: 17 ; AVX-NEXT: vaddss %xmm1, %xmm0, %xmm0 18 ; AVX-NEXT: vaddss %xmm3, %xmm2, %xmm1 19 ; AVX-NEXT: vaddss %xmm1, %xmm0, %xmm0 20 ; AVX-NEXT: retq 35 ; AVX-LABEL: reassociate_adds2: 36 ; AVX: # BB#0: 37 ; AVX-NEXT: vaddss %xmm1, %xmm0, %xmm0 [all …]
|
D | sse-scalar-fp-arith.ll | 3 ; RUN: llc -mcpu=x86-64 -mattr=+avx < %s | FileCheck --check-prefix=AVX %s 17 ; AVX-LABEL: test_add_ss: 18 ; AVX: # BB#0: 19 ; AVX-NEXT: vaddss %xmm1, %xmm0, %xmm0 20 ; AVX-NEXT: retq 34 ; AVX-LABEL: test_sub_ss: 35 ; AVX: # BB#0: 36 ; AVX-NEXT: vsubss %xmm1, %xmm0, %xmm0 37 ; AVX-NEXT: retq 51 ; AVX-LABEL: test_mul_ss: [all …]
|
D | commute-fcmp.ll | 2 …N: llc -O3 -mtriple=x86_64-unknown -mcpu=x86-64 -mattr=+avx2 < %s | FileCheck %s --check-prefix=AVX 14 ;AVX-LABEL: commute_cmpps_eq 15 ;AVX: vcmpeqps (%rdi), %xmm0, %xmm0 16 ;AVX-NEXT: retq 29 ;AVX-LABEL: commute_cmpps_ne 30 ;AVX: vcmpneqps (%rdi), %xmm0, %xmm0 31 ;AVX-NEXT: retq 44 ;AVX-LABEL: commute_cmpps_ord 45 ;AVX: vcmpordps (%rdi), %xmm0, %xmm0 46 ;AVX-NEXT: retq [all …]
|
D | vector-idiv.ll | 4 ; RUN: llc -march=x86-64 -mcpu=core-avx2 < %s | FileCheck %s --check-prefix=AVX 41 ; AVX-LABEL: test1: 42 ; AVX: # BB#0: 43 ; AVX-NEXT: vpbroadcastd {{.*}}(%rip), %xmm1 44 ; AVX-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[1,1,3,3] 45 ; AVX-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[1,1,3,3] 46 ; AVX-NEXT: vpmuludq %xmm2, %xmm3, %xmm2 47 ; AVX-NEXT: vpmuludq %xmm1, %xmm0, %xmm1 48 ; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[1,1,3,3] 49 ; AVX-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2],xmm2[3] [all …]
|
D | machine-combiner-int-vec.ll | 2 …llc -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=avx2 < %s | FileCheck %s --check-prefix=AVX 14 ; AVX-LABEL: reassociate_and_v4i32: 15 ; AVX: # BB#0: 16 ; AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0 17 ; AVX-NEXT: vpand %xmm3, %xmm2, %xmm1 18 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0 19 ; AVX-NEXT: retq 35 ; AVX-LABEL: reassociate_or_v4i32: 36 ; AVX: # BB#0: 37 ; AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0 [all …]
|
D | lower-vec-shift-2.ll | 3 ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s --check-prefix=AVX 14 ; AVX-LABEL: test1: 15 ; AVX: # BB#0: # %entry 16 ; AVX-NEXT: vpxor %xmm2, %xmm2, %xmm2 17 ; AVX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2,3,4,5,6,7] 18 ; AVX-NEXT: vpsllw %xmm1, %xmm0, %xmm0 19 ; AVX-NEXT: retq 34 ; AVX-LABEL: test2: 35 ; AVX: # BB#0: # %entry 36 ; AVX-NEXT: vpxor %xmm2, %xmm2, %xmm2 [all …]
|
D | fp-load-trunc.ll | 2 ; RUN: llc < %s -march=x86 -mcpu=core-avx-i | FileCheck %s --check-prefix=AVX 16 ; AVX-LABEL: test1: 17 ; AVX: # BB#0: 18 ; AVX-NEXT: pushl %eax 19 ; AVX-NEXT: movl {{[0-9]+}}(%esp), %eax 20 ; AVX-NEXT: vmovsd (%eax), %xmm0 21 ; AVX-NEXT: vcvtsd2ss %xmm0, %xmm0, %xmm0 22 ; AVX-NEXT: vmovss %xmm0, (%esp) 23 ; AVX-NEXT: flds (%esp) 24 ; AVX-NEXT: popl %eax [all …]
|
D | pr12312.ll | 2 ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx,-avx2 < %s | FileCheck %s --check-prefix AVX 17 ; AVX: veccond128 18 ; AVX: vptest %xmm{{.*}}, %xmm{{.*}} 19 ; AVX: ret 36 ; AVX: veccond256 37 ; AVX: vptest %ymm{{.*}}, %ymm{{.*}} 38 ; AVX: ret 57 ; AVX: veccond512 58 ; AVX: vorps 59 ; AVX: vptest %ymm{{.*}}, %ymm{{.*}} [all …]
|
D | fp-trunc.ll | 2 ; RUN: llc < %s -march=x86 -mcpu=core-avx-i | FileCheck %s --check-prefix=AVX 17 ; AVX-LABEL: test1: 18 ; AVX: # BB#0: 19 ; AVX-NEXT: pushl %eax 20 ; AVX-NEXT: vmovsd {{[0-9]+}}(%esp), %xmm0 21 ; AVX-NEXT: vcvtsd2ss %xmm0, %xmm0, %xmm0 22 ; AVX-NEXT: vmovss %xmm0, (%esp) 23 ; AVX-NEXT: flds (%esp) 24 ; AVX-NEXT: popl %eax 25 ; AVX-NEXT: retl [all …]
|
D | sse41-pmovxrm-intrinsics.ll | 3 …%s -mtriple=x86_64-apple-darwin -mattr=+avx2 | FileCheck %s --check-prefix=CHECK --check-prefix=AVX 11 ; AVX-LABEL: test_llvm_x86_sse41_pmovsxbw: 12 ; AVX: ## BB#0: 13 ; AVX-NEXT: vpmovsxbw (%rdi), %xmm0 14 ; AVX-NEXT: retq 27 ; AVX-LABEL: test_llvm_x86_sse41_pmovsxbd: 28 ; AVX: ## BB#0: 29 ; AVX-NEXT: vpmovsxbd (%rdi), %xmm0 30 ; AVX-NEXT: retq 43 ; AVX-LABEL: test_llvm_x86_sse41_pmovsxbq: [all …]
|
D | splat-for-size.ll | 2 … -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=CHECK --check-prefix=AVX 6 ; for size optimization using splat ops available with AVX and AVX2. 8 ; There is no AVX broadcast from double to 128-bit vector because movddup has been around since SSE… 49 ; AVX can't do integer splats, so fake it: use vmovddup to splat 64-bit value. 61 ; AVX can't do 256-bit integer ops, so we split this into two 128-bit vectors, 64 ; AVX-LABEL: splat_v4i64: 65 ; AVX: # BB#0: 66 ; AVX-NEXT: vextractf128 $1, %ymm0, %xmm1 67 ; AVX-NEXT: vmovddup {{.*#+}} xmm2 = mem[0,0] 68 ; AVX-NEXT: vpaddq %xmm2, %xmm1, %xmm1 [all …]
|
D | fast-isel-select-sse.ll | 3 …86_64-apple-darwin10 -mcpu=corei7-avx | FileCheck %s --check-prefix=AVX 4 …_64-apple-darwin10 -fast-isel -fast-isel-abort=1 -mcpu=corei7-avx | FileCheck %s --check-prefix=AVX 14 ; AVX-LABEL: select_fcmp_oeq_f32 15 ; AVX: vcmpeqss %xmm1, %xmm0, %xmm0 16 ; AVX-NEXT: vblendvps %xmm0, %xmm2, %xmm3, %xmm0 28 ; AVX-LABEL: select_fcmp_oeq_f64 29 ; AVX: vcmpeqsd %xmm1, %xmm0, %xmm0 30 ; AVX-NEXT: vblendvpd %xmm0, %xmm2, %xmm3, %xmm0 42 ; AVX-LABEL: select_fcmp_ogt_f32 43 ; AVX: vcmpltss %xmm0, %xmm1, %xmm0 [all …]
|
D | vec_cmp_sint-128.ll | 5 …nknown-unknown -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 6 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 9 …n-unknown -mattr=+avx512f | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX5… 10 …-unknown -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX5… 34 ; AVX-LABEL: eq_v2i64: 35 ; AVX: # BB#0: 36 ; AVX-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0 37 ; AVX-NEXT: retq 54 ; AVX-LABEL: eq_v4i32: 55 ; AVX: # BB#0: [all …]
|
D | sse3-avx-addsub-2.ll | 3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx | FileCheck %s --check-prefix=AVX 14 ; AVX-LABEL: test1: 15 ; AVX: # BB#0: 16 ; AVX-NEXT: vaddsubps %xmm1, %xmm0, %xmm0 17 ; AVX-NEXT: retq 43 ; AVX-LABEL: test2: 44 ; AVX: # BB#0: 45 ; AVX-NEXT: vaddsubps %xmm1, %xmm0, %xmm0 46 ; AVX-NEXT: retq 64 ; AVX-LABEL: test3: [all …]
|
D | fold-load-binops.ll | 3 ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s --check-prefix=AVX 15 ; AVX-LABEL: addss: 16 ; AVX: # BB#0: 17 ; AVX-NEXT: vaddss (%rdi), %xmm0, %xmm0 18 ; AVX-NEXT: retq 32 ; AVX-LABEL: addsd: 33 ; AVX: # BB#0: 34 ; AVX-NEXT: vaddsd (%rdi), %xmm0, %xmm0 35 ; AVX-NEXT: retq 49 ; AVX-LABEL: subss: [all …]
|
D | vec_uint_to_fp-fastmath.ll | 6 ; RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=AVX --check-prefix=CST 40 ; AVX-LABEL: test_uitofp_v4i32_to_v4f32: 41 ; AVX: # BB#0: 42 ; AVX-NEXT: vandps [[MASKCSTADDR]](%rip), %xmm0, %xmm1 43 ; AVX-NEXT: vcvtdq2ps %xmm1, %xmm1 44 ; AVX-NEXT: vpsrld $16, %xmm0, %xmm0 45 ; AVX-NEXT: vcvtdq2ps %xmm0, %xmm0 46 ; AVX-NEXT: vmulps [[FPMASKCSTADDR]](%rip), %xmm0, %xmm0 47 ; AVX-NEXT: vaddps %xmm1, %xmm0, %xmm0 48 ; AVX-NEXT: retq [all …]
|
D | vector-shuffle-128-v8.ll | 5 …n -mcpu=x86-64 -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 6 … -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 17 ; AVX-LABEL: shuffle_v8i16_01012323: 18 ; AVX: # BB#0: 19 ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1] 20 ; AVX-NEXT: retq 30 ; AVX-LABEL: shuffle_v8i16_67452301: 31 ; AVX: # BB#0: 32 ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[3,2,1,0] 33 ; AVX-NEXT: retq [all …]
|
D | vec_cmp_uint-128.ll | 5 …nknown-unknown -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 6 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 9 …n-unknown -mattr=+avx512f | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX5… 10 …-unknown -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX5… 34 ; AVX-LABEL: eq_v2i64: 35 ; AVX: # BB#0: 36 ; AVX-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0 37 ; AVX-NEXT: retq 54 ; AVX-LABEL: eq_v4i32: 55 ; AVX: # BB#0: [all …]
|
D | sse3-avx-addsub.ll | 3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx | FileCheck %s --check-prefix=AVX 44 ; AVX-LABEL: test1: 45 ; AVX: # BB#0: 46 ; AVX-NEXT: vaddsubps %xmm1, %xmm0, %xmm0 47 ; AVX-NEXT: retq 61 ; AVX-LABEL: test2: 62 ; AVX: # BB#0: 63 ; AVX-NEXT: vaddsubps %ymm1, %ymm0, %ymm0 64 ; AVX-NEXT: retq 78 ; AVX-LABEL: test3: [all …]
|
D | preserve_allcc64.ll | 2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx | FileCheck --check-prefix=AVX %s 37 ;AVX-LABEL: preserve_allcc1 38 ;AVX: pushq %r10 39 ;AVX-NEXT: pushq %r9 40 ;AVX-NEXT: pushq %r8 41 ;AVX-NEXT: pushq %rdi 42 ;AVX-NEXT: pushq %rsi 43 ;AVX-NEXT: pushq %rdx 44 ;AVX-NEXT: pushq %rcx 45 ;AVX-NEXT: pushq %rax [all …]
|
D | avx-insertelt.ll | 1 …s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX 21 ; AVX-LABEL: insert_i8: 22 ; AVX: # BB#0: 23 ; AVX-NEXT: vpinsrb $0, %edi, %xmm0, %xmm1 24 ; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7] 25 ; AVX-NEXT: retq 37 ; AVX-LABEL: insert_i16: 38 ; AVX: # BB#0: 39 ; AVX-NEXT: vpinsrw $0, %edi, %xmm0, %xmm1 40 ; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7] [all …]
|
D | vector-shuffle-128-v4.ll | 6 …n -mcpu=x86-64 -mattr=+avx | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX1 7 … -mcpu=x86-64 -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2 18 ; AVX-LABEL: shuffle_v4i32_0001: 19 ; AVX: # BB#0: 20 ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,1] 21 ; AVX-NEXT: retq 31 ; AVX-LABEL: shuffle_v4i32_0020: 32 ; AVX: # BB#0: 33 ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,2,0] 34 ; AVX-NEXT: retq [all …]
|
D | fmaxnum.ll | 2 …iple=x86_64-unknown-unknown -mattr=avx < %s | FileCheck %s --check-prefix=CHECK --check-prefix=AVX 29 ; AVX: vmaxss %xmm0, %xmm1, %xmm2 30 ; AVX-NEXT: vcmpunordss %xmm0, %xmm0, %xmm0 31 ; AVX-NEXT: vblendvps %xmm0, %xmm1, %xmm2, %xmm0 32 ; AVX-NEXT: retq 72 ; AVX: vmaxss %xmm0, %xmm1, %xmm2 73 ; AVX-NEXT: vcmpunordss %xmm0, %xmm0, %xmm0 74 ; AVX-NEXT: vblendvps %xmm0, %xmm1, %xmm2, %xmm0 75 ; AVX-NEXT: retq 146 ; AVX: vmaxss %xmm0, %xmm1, %xmm2 [all …]
|
D | exedeps-movq.ll | 3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx | FileCheck %s --check-prefix=AVX 20 ; AVX-LABEL: store_floats: 21 ; AVX: # BB#0: 22 ; AVX-NEXT: vaddps %xmm0, %xmm0, %xmm0 23 ; AVX-NEXT: vmovlps %xmm0, (%rdi) 24 ; AVX-NEXT: retq 39 ; AVX-LABEL: store_double: 40 ; AVX: # BB#0: 41 ; AVX-NEXT: vaddpd %xmm0, %xmm0, %xmm0 42 ; AVX-NEXT: vmovlpd %xmm0, (%rdi) [all …]
|