summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/avx-load-store.ll
diff options
context:
space:
mode:
authorMichael Liao <michael.liao@intel.com>2013-03-25 23:47:35 +0000
committerMichael Liao <michael.liao@intel.com>2013-03-25 23:47:35 +0000
commitb4f98ea1213c866f39aa5b341ec0116f9c2335d7 (patch)
tree4e3fb2770e9b199990b04c41a72b14b19a02356e /test/CodeGen/X86/avx-load-store.ll
parentec43aaa3918877960722e93ad86c3bcabf908fe7 (diff)
downloadllvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.tar.gz
llvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.tar.bz2
llvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.tar.xz
Enhance folding of (extract_subvec (insert_subvec V1, V2, IIdx), EIdx)
- Handle the case where the result of 'insert_subvect' is bitcasted before 'extract_subvec'. This removes the redundant insertf128/extractf128 pair on unaligned 256-bit vector load/store on vectors of non 64-bit integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177945 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/avx-load-store.ll')
-rw-r--r--test/CodeGen/X86/avx-load-store.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/CodeGen/X86/avx-load-store.ll b/test/CodeGen/X86/avx-load-store.ll
index 432852d47d..0afaff830d 100644
--- a/test/CodeGen/X86/avx-load-store.ll
+++ b/test/CodeGen/X86/avx-load-store.ll
@@ -114,3 +114,16 @@ cif_mixed_test_any_check: ; preds = %cif_mask_mixed
unreachable
}
+; CHECK: add8i32
+; CHECK: vmovups
+; CHECK: vmovups
+; CHECK-NOT: vinsertf128
+; CHECK-NOT: vextractf128
+; CHECK: vmovups
+; CHECK: vmovups
+define void @add8i32(<8 x i32>* %ret, <8 x i32>* %bp) nounwind {
+ %b = load <8 x i32>* %bp, align 1
+ %x = add <8 x i32> zeroinitializer, %b
+ store <8 x i32> %x, <8 x i32>* %ret, align 1
+ ret void
+}