Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/extractelement-index.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 | |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s -check-prefix=X64 | |
2 ; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+avx | FileCheck %s -check-prefix=AVX | |
3 | |
4 | |
5 ; CHECK-LABEL: extractelement_index_1: | |
6 define i8 @extractelement_index_1(<32 x i8> %a) nounwind { | |
7 ; X64: movaps | |
8 ; AVX: vpextrb $1 | |
9 %b = extractelement <32 x i8> %a, i256 1 | |
10 ret i8 %b | |
11 } | |
12 | |
13 ; CHECK-LABEL: extractelement_index_2: | |
14 define i32 @extractelement_index_2(<8 x i32> %a) nounwind { | |
15 ; X64: pshufd | |
16 ; AVX: vextractf128 $1 | |
17 ; AVX-NEXT: vpextrd $3 | |
18 %b = extractelement <8 x i32> %a, i64 7 | |
19 ret i32 %b | |
20 } | |
21 | |
22 ; CHECK-LABEL: extractelement_index_3: | |
23 define i32 @extractelement_index_3(<8 x i32> %a) nounwind { | |
24 ; CHECK-NOT: pextr | |
25 %b = extractelement <8 x i32> %a, i64 15 | |
26 ret i32 %b | |
27 } | |
28 | |
29 ; CHECK-LABEL: extractelement_index_4: | |
30 define i32 @extractelement_index_4(<8 x i32> %a) nounwind { | |
31 ; X64: movd | |
32 ; AVX: vextractf128 $1 | |
33 ; AVX-NEXT: vmovd | |
34 %b = extractelement <8 x i32> %a, i256 4 | |
35 ret i32 %b | |
36 } | |
37 | |
38 ; CHECK-LABEL: extractelement_index_5: | |
39 define i8 @extractelement_index_5(<32 x i8> %a, i256 %i) nounwind { | |
40 ; X64: movaps | |
41 ; AVX: vmovaps | |
42 %b = extractelement <32 x i8> %a, i256 %i | |
43 ret i8 %b | |
44 } | |
45 | |
46 ; CHECK-LABEL: extractelement_index_6: | |
47 define i8 @extractelement_index_6(<32 x i8> %a) nounwind { | |
48 ; CHECK-NOT: pextr | |
49 %b = extractelement <32 x i8> %a, i256 -1 | |
50 ret i8 %b | |
51 } |