Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/2012-01-12-extract-sv.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 95c75e76d11b |
children | 7d135dc70f03 |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ; RUN: llc < %s -march=x86 -mcpu=corei7-avx -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s | 1 ; RUN: llc < %s -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s |
2 | 2 |
3 ; CHECK: endless_loop | |
4 define void @endless_loop() { | 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 | |
5 entry: | 19 entry: |
6 %0 = load <8 x i32> addrspace(1)* undef, align 32 | 20 %0 = load <8 x i32>, <8 x i32> addrspace(1)* undef, align 32 |
7 %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> | 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> |
8 %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> | 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> |
9 store <16 x i32> %2, <16 x i32> addrspace(1)* undef, align 64 | 23 store <16 x i32> %2, <16 x i32> addrspace(1)* undef, align 64 |
10 ret void | 24 ret void |
11 ; CHECK: ret | |
12 } | 25 } |