summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/peep-vector-extract-insert.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/peep-vector-extract-insert.ll')
-rw-r--r--test/CodeGen/X86/peep-vector-extract-insert.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/X86/peep-vector-extract-insert.ll b/test/CodeGen/X86/peep-vector-extract-insert.ll
new file mode 100644
index 0000000000000..77332d02a9338
--- /dev/null
+++ b/test/CodeGen/X86/peep-vector-extract-insert.ll
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | llc -march=x86-64 | grep {pxor %xmm0, %xmm0} | count 2
+
+define float @foo(<4 x float> %a) {
+ %b = insertelement <4 x float> %a, float 0.0, i32 3
+ %c = extractelement <4 x float> %b, i32 3
+ ret float %c
+}
+define float @bar(float %a) {
+ %b = insertelement <4 x float> <float 0x400B333340000000, float 4.5, float 0.0, float 0x4022666660000000>, float %a, i32 3
+ %c = extractelement <4 x float> %b, i32 2
+ ret float %c
+}