Skip to content

Commit b0c9fed

Browse files
author
git apple-llvm automerger
committed
Merge commit 'e070cf81196d' from llvm.org/master into apple/master
2 parents e7374cf + e070cf8 commit b0c9fed

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

llvm/test/CodeGen/X86/extractelement-index.ll

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,42 @@
88
; ExtractElement - Constant Index
99
;
1010

11+
define i64 @extract_undef_index_from_zero_vec() nounwind {
12+
; SSE-LABEL: extract_undef_index_from_zero_vec:
13+
; SSE: # %bb.0:
14+
; SSE-NEXT: xorps %xmm0, %xmm0
15+
; SSE-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp)
16+
; SSE-NEXT: movq -{{[0-9]+}}(%rsp), %rax
17+
; SSE-NEXT: retq
18+
;
19+
; AVX-LABEL: extract_undef_index_from_zero_vec:
20+
; AVX: # %bb.0:
21+
; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
22+
; AVX-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
23+
; AVX-NEXT: movq -{{[0-9]+}}(%rsp), %rax
24+
; AVX-NEXT: retq
25+
%E = extractelement <2 x i64> zeroinitializer, i64 undef
26+
ret i64 %E
27+
}
28+
29+
define i64 @extract_undef_index_from_nonzero_vec() nounwind {
30+
; SSE-LABEL: extract_undef_index_from_nonzero_vec:
31+
; SSE: # %bb.0:
32+
; SSE-NEXT: pcmpeqd %xmm0, %xmm0
33+
; SSE-NEXT: movdqa %xmm0, -{{[0-9]+}}(%rsp)
34+
; SSE-NEXT: movq -{{[0-9]+}}(%rsp), %rax
35+
; SSE-NEXT: retq
36+
;
37+
; AVX-LABEL: extract_undef_index_from_nonzero_vec:
38+
; AVX: # %bb.0:
39+
; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
40+
; AVX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
41+
; AVX-NEXT: movq -{{[0-9]+}}(%rsp), %rax
42+
; AVX-NEXT: retq
43+
%E = extractelement <2 x i64> <i64 -1, i64 -1>, i64 undef
44+
ret i64 %E
45+
}
46+
1147
define i8 @extractelement_v16i8_1(<16 x i8> %a) nounwind {
1248
; SSE2-LABEL: extractelement_v16i8_1:
1349
; SSE2: # %bb.0:

0 commit comments

Comments
 (0)