diff options
author | Michael Liao <michael.liao@intel.com> | 2013-03-25 23:47:35 +0000 |
---|---|---|
committer | Michael Liao <michael.liao@intel.com> | 2013-03-25 23:47:35 +0000 |
commit | b4f98ea1213c866f39aa5b341ec0116f9c2335d7 (patch) | |
tree | 4e3fb2770e9b199990b04c41a72b14b19a02356e /test/CodeGen | |
parent | ec43aaa3918877960722e93ad86c3bcabf908fe7 (diff) | |
download | external_llvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.zip external_llvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.tar.gz external_llvm-b4f98ea1213c866f39aa5b341ec0116f9c2335d7.tar.bz2 |
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')
-rw-r--r-- | test/CodeGen/X86/avx-load-store.ll | 13 |
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 432852d..0afaff8 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 +} |