~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/2012-01-12-extract-sv.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s
 
2
 
 
3
define void @endless_loop() {
 
4
; CHECK-LABEL: endless_loop:
 
5
; CHECK-NEXT:     # BB#0:
 
6
; CHECK-NEXT:   vmovaps (%eax), %ymm0
 
7
; CHECK-NEXT:   vextractf128    $1, %ymm0, %xmm0
 
8
; CHECK-NEXT:   vmovsldup       %xmm0, %xmm0    # xmm0 = xmm0[0,0,2,2]
 
9
; CHECK-NEXT:   vmovddup        %xmm0, %xmm1    # xmm1 = xmm0[0,0]
 
10
; CHECK-NEXT:   vinsertf128     $1, %xmm1, %ymm0, %ymm1
 
11
; CHECK-NEXT:   vxorps  %xmm2, %xmm2, %xmm2
 
12
; CHECK-NEXT:   vblendps        $128, %ymm1, %ymm2, %ymm1 # ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]
 
13
; CHECK-NEXT:   vxorps  %ymm2, %ymm2, %ymm2
 
14
; CHECK-NEXT:   vblendps        $1, %ymm0, %ymm2, %ymm0 # ymm0 = ymm0[0],ymm2[1,2,3,4,5,6,7]
 
15
; CHECK-NEXT:   vmovaps %ymm0, (%eax)
 
16
; CHECK-NEXT:   vmovaps %ymm1, (%eax)
 
17
; CHECK-NEXT:   vzeroupper
 
18
; CHECK-NEXT:   retl
 
19
entry:
 
20
  %0 = load <8 x i32>, <8 x i32> addrspace(1)* undef, align 32
 
21
  %1 = shufflevector <8 x i32> %0, <8 x i32> undef, <16 x i32> <i32 4, i32 4, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
 
22
  %2 = shufflevector <16 x i32> <i32 undef, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 undef>, <16 x i32> %1, <16 x i32> <i32 16, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 17>
 
23
  store <16 x i32> %2, <16 x i32> addrspace(1)* undef, align 64
 
24
  ret void
 
25
}