+++ /dev/null
-; RUN: llc < %s -march=x86-64 | FileCheck %s -check-prefix=X64
-; RUN: llc < %s -march=x86-64 -mattr=+avx | FileCheck %s -check-prefix=AVX
-
-
-; CHECK-LABEL: extractelement_index_1:
-define i8 @extractelement_index_1(<32 x i8> %a) nounwind {
- ; X64: movaps
- ; AVX: vpextrb $1
- %b = extractelement <32 x i8> %a, i256 1
- ret i8 %b
-}
-
-; CHECK-LABEL: extractelement_index_2:
-define i32 @extractelement_index_2(<8 x i32> %a) nounwind {
- ; X64: pshufd
- ; AVX: vextractf128 $1
- ; AVX-NEXT: vpextrd $3
- %b = extractelement <8 x i32> %a, i64 7
- ret i32 %b
-}
-
-; CHECK-LABEL: extractelement_index_3:
-define i32 @extractelement_index_3(<8 x i32> %a) nounwind {
- ; CHECK-NOT: pextr
- %b = extractelement <8 x i32> %a, i64 15
- ret i32 %b
-}
-
-; CHECK-LABEL: extractelement_index_4:
-define i32 @extractelement_index_4(<8 x i32> %a) nounwind {
- ; X64: movd
- ; AVX: vextractf128 $1
- ; AVX-NEXT: vmovd
- %b = extractelement <8 x i32> %a, i256 4
- ret i32 %b
-}
-
-; CHECK-LABEL: extractelement_index_5:
-define i8 @extractelement_index_5(<32 x i8> %a, i256 %i) nounwind {
- ; X64: movaps
- ; AVX: vmovaps
- %b = extractelement <32 x i8> %a, i256 %i
- ret i8 %b
-}
-
-; CHECK-LABEL: extractelement_index_6:
-define i8 @extractelement_index_6(<32 x i8> %a) nounwind {
- ; CHECK-NOT: pextr
- %b = extractelement <32 x i8> %a, i256 -1
- ret i8 %b
-}
\ No newline at end of file