summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-10-25 15:58:35 -0400
committerSanjay Patel <spatel@rotateright.com>2019-10-25 17:22:37 -0400
commite070cf81196d2415f2f64ddbdfed9a49d9b96245 (patch)
tree22c8442773db2fb4494ddc6c690735300b5275b0 /llvm
parent0e4d41531157a8525ce59e9958ad3d81b7b38cf2 (diff)
downloadbcm5719-llvm-e070cf81196d2415f2f64ddbdfed9a49d9b96245.tar.gz
bcm5719-llvm-e070cf81196d2415f2f64ddbdfed9a49d9b96245.zip
[x86] add tests for extractelement with undef index (PR42689); NFC
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/CodeGen/X86/extractelement-index.ll36
1 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/extractelement-index.ll b/llvm/test/CodeGen/X86/extractelement-index.ll
index a34ea7fc37f..c70949aa9d2 100644
--- a/llvm/test/CodeGen/X86/extractelement-index.ll
+++ b/llvm/test/CodeGen/X86/extractelement-index.ll
@@ -8,6 +8,42 @@
; ExtractElement - Constant Index
;
+define i64 @extract_undef_index_from_zero_vec() nounwind {
+; SSE-LABEL: extract_undef_index_from_zero_vec:
+; SSE: # %bb.0:
+; SSE-NEXT: xorps %xmm0, %xmm0
+; SSE-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp)
+; SSE-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; SSE-NEXT: retq
+;
+; AVX-LABEL: extract_undef_index_from_zero_vec:
+; AVX: # %bb.0:
+; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
+; AVX-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
+; AVX-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; AVX-NEXT: retq
+ %E = extractelement <2 x i64> zeroinitializer, i64 undef
+ ret i64 %E
+}
+
+define i64 @extract_undef_index_from_nonzero_vec() nounwind {
+; SSE-LABEL: extract_undef_index_from_nonzero_vec:
+; SSE: # %bb.0:
+; SSE-NEXT: pcmpeqd %xmm0, %xmm0
+; SSE-NEXT: movdqa %xmm0, -{{[0-9]+}}(%rsp)
+; SSE-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; SSE-NEXT: retq
+;
+; AVX-LABEL: extract_undef_index_from_nonzero_vec:
+; AVX: # %bb.0:
+; AVX-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
+; AVX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
+; AVX-NEXT: movq -{{[0-9]+}}(%rsp), %rax
+; AVX-NEXT: retq
+ %E = extractelement <2 x i64> <i64 -1, i64 -1>, i64 undef
+ ret i64 %E
+}
+
define i8 @extractelement_v16i8_1(<16 x i8> %a) nounwind {
; SSE2-LABEL: extractelement_v16i8_1:
; SSE2: # %bb.0:
OpenPOWER on IntegriCloud